YOLOX训练数据集(VOC)

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          权重文件


版权声明:本文为liuyafengliu原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。