使用背景:

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

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

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐