使用背景:
适用于:自制数据集训练目录文件
通常在制作Pascal VOC数据集格式文件夹数据集时,我们需要根据我们已经准备好的数据集图片以及标签文件进行数据集、验证集、测试集的文件划分,那么test.txt、train.txt、trainval.txt、val.txt这四个文件的作用就是用于网络的训练、评估、测试的目录标注。
生成如下文件:
生成代码:
import os
import random
#训练集所占比例
trainval_percent = 0.9
train_percent = 0.9
#标签文件路径
xmlfilepath = 'D:\VOC2007\Annotations'
#生成txt目录文件夹所在路径
txtsavepath = 'D:\VOC2007\ImageSets\Main'
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)
ftrainval = open(txtsavepath + '/trainval.txt', 'w')
ftest = open(txtsavepath + '/test.txt', 'w')
ftrain = open(txtsavepath + '/train.txt', 'w')
fval = open(txtsavepath + '/val.txt', 'w')
for i in list:
name = total_xml[i][:-4] + '\n'
if i in trainval:
ftrainval.write(name)
if i in train:
ftrain.write(name)
else:
fval.write(name)
else:
ftest.write(name)
ftrainval.close()
ftrain.close()
fval.close()
ftest.close()
通过上述代码就可以顺利的生成所需要的四个txt文件啦!:
###########如果同学觉得有帮助的话还有劳点个赞支持下哈################