YOLOX训练自有数据集

开源代码:https://github.com/Megvii-BaseDetection/YOLOX

参考:深入浅出Yolox之自有数据集训练超详细教程 – 知乎

Anchor-Free系列之YOLOX:Exceeding YOLO Series in 2021_程大海的博客-CSDN博客

Yolo系列目标检测算法知识点总结_程大海的博客-CSDN博客_yolo系列目标检测算法

训练数据标注

YOLOX采用VOC数据标注格式,VOC数据格式如下:

YOLOX训练自有数据集

其中图片训练的图片数据存放在JPEGImages目录中,每张图片对应的同名xml文件存放在Annotations目录下,ImageSets/Main目录下存放划分号的训练集train.txt和验证集文件val.txt,其中train.txt和val.txt中存放的训练集和测试集每个图片的文件名,不包含文件后缀,如下:

YOLOX训练自有数据集

训练集train.txt和验证集val.txt的划分脚本如下:

YOLOX训练自有数据集

Annotation目录下每个xml标注文件的格式如下:

YOLOX训练自有数据集

在训练数据标注格式上,YOLOX与Yolov5的数据格式不一致,需要通过脚本代码转换一下,网上一搜全都是。

备注:在U版的Yolov5开源代码中,模型训练时可以添加10%左右的负样本,也就是没有检测目标的图片样本,并且可以不需要为这些负样本添加空的标注文件,但是如果要在YOLOX的训练数据中添加负样本,需要为每个负样本图片生成对应的xml文件,xml文件中只包含图片的宽、高、通道等信息。

YOLOX训练自有数据集

模型训练

1、修改yolox/data/datasets/vos_classes.py文件中的元组VOC_CLASSES,元组中每个类别后面都要跟一个 逗号

2、当前YOLOX只支持加载jpg训练数据,修改yolox/data/datasets/voc.py中load_image函数,支持使用png训练图片,修改后的load_image函数如下:

YOLOX训练自有数据集

3、由于YOLOX代码训练VOC数据集,所以在yolox/data/datasets/voc.py中的VOCDetection类的__init__初始化函数中的125行左右来加载VOC数据集的训练集和验证集,如下:

YOLOX训练自有数据集

将上面的for训练以及rootpath修改如下:

YOLOX训练自有数据集

4、修改yolox/exp/yolox_base.py配置文件中的self.num_classes等相关配置项,关键配置项有以下几个:

a)、num_classes: 目标检测类别数量,与VOC_CLASSES中的类别数量保持一致

b)、input_size: 图片分辨

c)、mosaic_prob: 使用马赛克数据增强的概率

d)、test_size: 与input_size保持一致

e)、no_aug_epochs: 提前关闭马赛克和mixup数据增强的epoch数量

f)、mixup_prob: 使用mixup数据增强的概率

5、修改exps/example/yolox_voc/yolox_voc_s.py

a)、olox_voc_s.py中Exp类的__init__函数中的num_classes,与VOC_CLASSES中的类别数量保持一致

b)、修改get_data_loader函数,如下:

YOLOX训练自有数据集

c)、修改get_eval_loader函数,如下:

YOLOX训练自有数据集

6、下载预训练权重yolox_s.pth,放在./weights目录下

7、模型训练:CUDA_VISIBLE_DEVICES=”0,1,2,3″ python tools/train.py -f exps/example/yolox_voc/yolox_voc_s.py -d 4 -b 32 -c ./weights/yolox_s.pth

8、模型保存在YOLOX_outputs/yolox_voc_s/best_ckpt.pth

模型预测

1、修改yolox/data/datasets/init.py,添加VOC_CLASSES,如下:

YOLOX训练自有数据集

2、 修改tools/demo.py

a)、修改:

YOLOX训练自有数据集

为:

YOLOX训练自有数据集

b)、修改main函数:

YOLOX训练自有数据集

为:

YOLOX训练自有数据集

3、 模型预测:Python tools/demo.py image -n yolox-s -c ./ YOLOX_outputs/yolox_voc_s/best_ckpt.pth –path /data_path –conf 0.35 –nms 0.45 –tsize 960 –save_result –device gpu

模型预测结果保存在YOLOX_outputs/yolox_s/vis_res目录下。

Original: https://blog.csdn.net/cxx654/article/details/124738214
Author: 胖胖大海
Title: YOLOX训练自有数据集

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/680690/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球