主要步骤还是根据官方教程来,并记录一些坑。
1、首先下载yolox到本地,并安装所需环境,因为我的环境之前跑v5的时候基本符合所以这一步很快就结束了。
git clone git@github.com:Megvii-BaseDetection/YOLOX.git
cd YOLOX
pip3 install -U pip && pip3 install -r requirements.txt
pip3 install -v -e . # or python3 setup.py develop
2、下载安装apex,自己要是不想训练模型这一步可以跳过去
git clone https://github.com/NVIDIA/apex
cd apex
pip3 install -v --disable-pip-version-check --no-cache-dir --global-option="--cpp_ext" --global-option="--cuda_ext" ./
在下载apex的过程中遇到无法下载的情况,不要慌将https改为git,就可以下载了。如下所示:
下载完成之后按照教程进行安装即可。
3、进行测试
测试之前我们需要从官方下载Benchmark,最好点击旁边github下载,下载完成之后将文件放到configs文件夹,这个文件夹是我自己创建的,大家也可以自己创建,输入以下命令:
python tools/demo.py image -n yolox-s -c configs/yolox_s.pth --path assets/dog.jpg --conf 0.25 --nms 0.45 --tsize 640 --save_result --device [gpu]
测试结果如下:嗯,,这是一幅很经典的图像了,这只狗永用的看着你
4、接下来可以训练自己的数据集了,yolox里面支持voc和coco数据集,这边我采用的是cooc数据集格式,因为之前跑其他模型得时候已经制作过coco数据集,这里就不介绍如何制作了,网上教程也很多,大家可以自行参考。
数据集主要存放在datssets文件夹下,如下:
打开coco_classes.py修改为自己标签,记住逗号不要忘记了,打开yolo_base.py修改epoch、num_work等参数
打开yolo_base.py将路径设置好。
修改之后输入已下命令:
python tools/train.py -n yolox-s -d 1 -b 1
这里d 是指gpu的数目,因为是在笔记本上运行,所以选择1
b是指batch size 按照官方教程来说计算方式为b=num-gpu * 8,但是为了防止给我报错 我还是选择了1
小风扇呼啦呼啦的响,真担心会突然炸了,,,更担心突然给你报啥错误。。。。
训练结束:
。。。。。best Ap 才59.29.。。。。。。。这。。。肯定哪个环节出错了。。。。。
整个训练结束之后会得到一个模型:
进行图像测试:
python tools/demo.py image -n yolox-s -c YOLOX_outputs/yolox_s/best_ckpt.pth --path datasets/COCO/images/zhachunling_1105_32.jpg --conf 0.25 --nms 0.45 --tsize 640 --save_result --device [gpu]
最终结果会在一个以当前时间为名称的文件夹下:
具体检测图像如下,因为我就一个标签pan,图上预测的概率是89.4%
至此,基于win10+pytorch1.9+yolox训练自己的数据集就算结束了,但总感觉哪里不对。。。。