1.环境配置
(1)安装依赖的环境
pip3 install -r requirements.txt
(2)通过setup.py安装一些库文件
python setup.py develop
(3)下载apex文件
下载apex:https://github.com/NVIDIA/apex
将下载的文件解压到项目根目录
cd apex-master
pip install -v --disable-pip-version-check --no-cache-dir --global-option="--cpp_ext" --global-option="--cuda_ext" .
(4)下载pycocotools
这个应该已经下载好了,这里就不介绍了~
2.测试tools/demo.py
环境搭建好后,下载官方的预训练模型(https://github.com/Megvii-BaseDetection/YOLOX)
预训练权重的下载链接在官方代码的描述中。
这里以yolox_s.pth文件,将权重文件放在根目录下进行测试,这里以控制台命令行形式测试(我也是新生,直接修改demo.py中的参数,然后直接运行,总是报错~)。
python tools/demo.py image -f exps/default/yolox_s.py -c ./yolox_s.pth --path assets/dog.jpg --conf 0.3 --nms 0.65 --tsize 640 --save_result --device gpu
如果显示如下,说明测试成功,此时环境没有问题,可以开始训练了。
YOLOX的代码中,会新建一个YOLOX_outputs文件夹,在其中的yolox_s/vis_res/,可以看到带有检测效果的图片。
效果图:
3.训练tools/train.py(以VOC2007为例)
VOC2007标准数据集结构:
├── Annotations 进行 detection 任务时的标签文件,xml 形式,文件名与图片名一一对应
├── ImageSets 包含三个子文件夹 Layout、Main、Segmentation,其中 Main 存放的是分类和检测的数据集分割文件
├── JPEGImages 存放 .jpg 格式的图片文件
├── SegmentationClass 存放按照 class 分割的图片
└── SegmentationObject 存放按照 object 分割的图片
├── Main
│ ├── train.txt 写着用于训练的图片名称, 共 2501 个
│ ├── val.txt 写着用于验证的图片名称,共 2510 个
│ ├── trainval.txt train与val的合集。共 5011 个
│ ├── test.txt 写着用于测试的图片名称,共 4952 个
培训准备
修改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 ./yolox_s.pth
-d 使用多少张显卡训练
-b 批次大小
-fp16 是否开启半精度训练
-c 权重文件
版权声明:本文为博主Study->Java原创文章,版权归属原作者,如果侵权,请联系我们删除!
原文链接:https://blog.csdn.net/liuyafengliu/article/details/123223322