trainval_percent = 0.1
train_percent = 0.9
xmlfilepath = r'D:\YOLOX-1027\datasets\VOCdevkit\VOC2007\Annotations'
txtsavepath = r'D:\YOLOX-1027\datasets\VOCdevkit\VOC2007\JPEGImages'
total_xml = os.listdir(xmlfilepath)
num = len(total_xml)
list = range(num)
tv = int(num * trainval_percent)
tr = int(tv * train_percent)
trainval = random.sample(list, tv)
train = random.sample(trainval, tr)
ftest = open(r'D:\YOLOX-1027\datasets\VOCdevkit\VOC2007\ImageSets\Main\test.txt', 'w')
ftrain = open(r'D:\YOLOX-1027\datasets\VOCdevkit\VOC2007\ImageSets\Main\trainval.txt', 'w')
for i in list:
name = total_xml[i][:-4] + '\n'
if i in trainval:
ftest.write(name)
else:
ftrain.write(name)
ftrain.close()
ftest.close()
(1)在这个路径中,exps/example/yolox_voc/yolox_voc_s.py,修改自己分类的数量
(2) 在这个路径中,yolox/data/datasets/voc_classes.py,修改自己的标签名
(3)将这三个文件复制到主目录中:
(4)在主目录中的train.py中进行以下修改:
在这个文件中,exps/example/yolox_voc/yolox_voc_s.py ,删除('2012', 'trainval')
修改为:
tree = ET.parse(os.path.join('datasets/VOCdevkit/VOC2007/Annotations', filename))
(1)修改部分见下图
(2) 将demo.py中的三处 COCO_CLASSES 替换成 VOC_CLASSES
from yolox.data.datasets.voc_classes import VOC_CLASSES