当前位置:   article > 正文

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

yolox 训练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 random

trainval_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()

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29

运行之后,在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
  • 1
  • 2
  • 3

-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文件。
在这里插入图片描述
重新训练就可以了。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/正经夜光杯/article/detail/778145
推荐阅读
相关标签
  

闽ICP备14008679号