1.安装环境
windows环境可以将用来检测,不建议训练。
(1)安装依赖环境
pip3 install -r requirements.txt -i https://pypi.douban.com/simple/
(2)通过setup.py安装一些库文件
python setup.py develop
(3)下载apex文件
git clone https://github.com/NVIDIA/apex.git
将下载好的文件解压到项目根目录下
cd apex
pip install -v --disable-pip-version-check --no-cache-dir --global-option="--cpp_ext" --global-option="--cuda_ext" .
(4)下载pycocotools
网上搜教程
linux环境中
为了性能和完整的功能,建议通过CUDA和c++扩展来安装Apex
$ git clone https://github.com/NVIDIA/apex
$ cd apex
$ pip install -v --no-cache-dir --global-option="--cpp_ext" --global-option="--cuda_ext" ./
Apex 同样支持 Python-only build (required with Pytorch 0.4) via
$ pip install -v --no-cache-dir ./
2.测试tools/demo.py
环境搭建好后,下载官方的预训练模型
https://github.com/Megvii-BaseDetection/YOLOX.git
预训练权重的下载链接,在官方代码的说明中。
将下载好的yolox_s.pth放在根目录下的weights里面
测试运行
python tools/demo.py image -f exps/default/yolox_s.py -c weights/yolox_s.pth --path assets/dog.jpg --conf 0.3 --nms 0.65 --tsize 640 --save_result --device gpu
可能会报这个错误
解决方法:https://blog.youkuaiyun.com/canpian7/article/details/123608063?spm=1001.2014.3001.5502
显示如下就表示测试成功,此时的环境也没什么问题,接下来就可以进行训练。
YOLOX的代码中,会新建一个YOLOX_outputs文件夹,在其中的yolox_s/vis_res/,可以看到带有检测效果的图片。
效果图
3.训练tools/train.py(以VOC2007为例)
可以将voc2007直接放在datasets文件夹里面
4.进行训练
修改exps/example/yolox_voc/yolox_voc_s.py文件内容如下:
训练
python tools/train.py -f exps/example/yolox_voc/yolox_voc_s.py -d 1 -b 2 --fp16 -o -c weights/yolox_s.pth
-d 使用多少张显卡训练
-b 批次大小
-fp16 是否开启半精度训练
-c 权重文件
我的显存不够
可以跑通
注意使用linux进行训练的时候需要将相对路径改成绝对路径。
有路径的都需要改
python tools/train.py -f exps/example/yolox_voc/yolox_voc_s.py -d 1 -b 2 --fp16 -o -c weights/yolox_s.pth
预测
训练完毕之后可以查看得到的权重文件的mAP
python tools/eval.py -f exps/example/yolox_voc/yolox_voc_s.py -c <best_ckpt.pth.tar的路径> -d 0 -b 8 --conf 0.001 --fp16 --fuse
检测图片效果
python3 tools/demo.py image -n yolox-nano -c YOLOX_outputs/yolox_voc_s/best_ckpt.pth.tar --path <图片路径> --conf 0.3 --nms 0.5 --tsize 640 --save_result