PASCAL VOC数据集训练集、验证集、测试集的划分和提取
发布日期:2022-03-11 10:18:54 浏览次数:16 分类:技术文章

本文共 1374 字,大约阅读时间需要 4 分钟。

1、训练集、验证集、测试集按比例精确划分

#数据集划分import osimport random root_dir='./park_voc/VOC2007/' ## 0.7train 0.1val 0.2testtrainval_percent = 0.8train_percent = 0.7xmlfilepath = root_dir+'Annotations'txtsavepath = root_dir+'ImageSets/Main'total_xml = os.listdir(xmlfilepath) num = len(total_xml)  # 100list = range(num)tv = int(num*trainval_percent)  # 80tr = int(tv*train_percent)  # 80*0.7=56trainval = random.sample(list, tv)train = random.sample(trainval, tr) ftrainval = open(root_dir+'ImageSets/Main/trainval.txt', 'w')ftest = open(root_dir+'ImageSets/Main/test.txt', 'w')ftrain = open(root_dir+'ImageSets/Main/train.txt', 'w')fval = open(root_dir+'ImageSets/Main/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()

2、训练集、验证集和测试集提取(只给出trian文件的提取方法)

# -*- coding:UTF-8 -*-import shutil f_txt = open('D:\dataset\VOCdevkit\split\VOC2007\ImageSets\Main\\trainval.txt', 'r')f_train = 'D:\dataset\VOCdevkit\VOC2007\\train' context = list(f_txt)for imagename in context:
imagename = imagename[0:6]
imagename = imagename + '.jpg'
imagepath = 'D:\dataset\VOCdevkit\VOC2007\JPEGImages\\'+ imagename
shutil.copy(imagepath,f_train)
# 删除训练集和验证集,剩余图片为测试集
# os.remove(imagepath) #处理Annotations同理只需将.jpg改为.xml

参考:

转载地址:https://blog.csdn.net/weicao1990/article/details/107082865 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:darket53与yolov3
下一篇:Python3.5.2的pip3升级教程(解决:ImportError: cannot import name 'main')

发表评论

最新留言

关注你微信了!
[***.188.10.150]2022年09月30日 06时48分26秒

关于作者

    喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!

最新文章