【ImageSets文件夹】Pascal VOC数据集格式文件夹中test.txt、train.txt、trainval.txt、val.txt文件生成

使用背景:

适用于:自制数据集训练目录文件
通常在制作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文件啦!:

###########如果同学觉得有帮助的话还有劳点个赞支持下哈################

猜你喜欢

转载自blog.csdn.net/qq_45193872/article/details/122644495