欢迎访问 生活随笔!

生活随笔

当前位置: 首页 > 编程资源 > 编程问答 >内容正文

编程问答

YOLOX——Win10下训练自定义VOC数据集

发布时间:2025/3/21 编程问答 66 豆豆
生活随笔 收集整理的这篇文章主要介绍了 YOLOX——Win10下训练自定义VOC数据集 小编觉得挺不错的,现在分享给大家,帮大家做个参考.

前言

上个博客试着把yolox在win下的环境配置,然后就要试着训练自己的数据集,我这里用的是VOC格式的数据集,训练环境是win10 x64,CUDA11.0 cudnn 8.1 GPU 是GTX 3080,Anaconda 3.7,数据标注工具是LabelImg。

数据准备

1.在XXX/YOLOX/datasets/下创建一个VOCdevkit目录,在VOCdevkit下VOC2007目录,VOC2007目录下再创建三个空目录,分别是Annotations、ImageSets、JPEGImages,此时VOC2007目录下只有三个空的目录。


2.把要训练的图像放到JPEGImags目录下,如果有标注过的数据就把对应的xml文件放到Annotations目录,要从头标注则打开LabelImg,选择数据集路径(JPEGImags),选择保存标签文件路径(Annotations),开始标注。

3.把所有数据标注完成之后,在ImageSets目录下创建一个Main的目录,这个目录是用来保存数据配置文件的。

4.处理数据,把数据分成训练集和测试集,并生成对应的txt文件,处理数据python代码:

CreateVOCData.py

import os import randomtrainval_percent = 0.1 train_percent = 0.9 data_root_path = 'D:/DL/YOLOX/datasets/VOCdevkit/VOC2007/'total_xml = os.listdir(os.path.join(data_root_path,"Annotations"))label_num = len(total_xml) list = range(label_num) tv = int(label_num * trainval_percent) tr = int(tv * train_percent) trainval = random.sample(list, tv) train = random.sample(trainval, tr)train_file = open(os.path.join(data_root_path,"ImageSets/Main/train.txt"), 'w') val_file = open(os.path.join(data_root_path,"ImageSets/Main/val.txt"), 'w')for i in list:name = total_xml[i][:-4] + '\n'if i in trainval:val_file.write(name)else:train_file.write(name)train_file.close() val_file.close()

运行之后,在XXX/YOLOX/datasets/VOCdevkit/VOC2007/ImageSets/Main下有两个txt文件,这个就是训练集和验证集的目录标签。

训练

1.打开YOLOX\exps\example\yolox_voc\yolo_voc_s.py,把训练集和测试集路径改成自己的路径,在win下建议写绝对路径。
训练数据路径:

验证数据路径:

更改标签类数:

2.打开YOLOX/yolox/data/datasets/voc_classes.py

3.开始训练,我训练的是yolox_s的模型,从yolox官网下载yolox_s的权重放到YOLOX目录下,然后激活环境,开始训练。

cd YOLOX activate yolox python tools/train.py -f exps/example/yolox_voc/yolox_voc_s.py -d 1 -b 16 --fp16 -o -c yolox_s.pth

-d 使用多少张显卡训练
-b 批次大小
-fp16 是否开启半精度训练
-c 权重文件

如果出现这个代表已在开始,但也别高兴得太早,到10 epoch 之后开始验证,有可能报FileNotFoundError: [Errno 2] No such file or directory: ‘xxxxx.xml’ 这个错,然后打开val.txt文件,这xxx.xml文件是验证集的第一个文件,这是读不到目录引起的,更改YOLOX\yolox\evaluators\voc_eval.py文件。

重新训练就可以了。

总结

以上是生活随笔为你收集整理的YOLOX——Win10下训练自定义VOC数据集的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。