赞
踩
VOC数据集是目标检测领域最常用的标准数据集之一,在类别上可以分为4大类,20小类
参考博客:【机器学习】 - 目标检测 - VOC格式数据集介绍与自己制作_51CTO博客_制作voc数据集
【目标检测】三个文件夹:
1、第一步:我们参照原始VOC2007数据集的文件层次创建上述四个文件夹,也就是创建一个VOCdevkit文件夹,下面再创建Annotations、JPEGImages、ImageSets三个文件夹,最后在ImageSets文件夹下再创建一个Main文件夹。
创建好所有文件夹后,我们将自己的数据集图片都放到JPEGImages文件夹下。按照习惯,我们将图片的名字修改为000001.jpg这种格式的(参照原始数据集图片命名规则)。
另外强调两点:
2、第二步:我们来制作Annotations文件夹下所需要存放的xml文件。
说明:每标注完一张图片后进行保存,保存的xml文件名要与对应图片名一致,大家可以参考原始VOC2007数据集中JPEGImages文件夹下图片的命名和Annotations文件夹中的xml文件命名规则。
备注:这里还有个制作工具 VOC2007数据格式制作工具 也很好用,大家也可以试一试VOC2007样本制作工具.zip_免费高速下载|百度网盘-分享无限制
3、第三步:我们来制作ImageSets文件夹下Main文件夹中的4个文件(test.txt、train.txt、trainval.txt、val.txt)。
在原始VOC2007数据集中,trainval大约占整个数据集的50%,test大约为整个数据集的50%;train大约是trainval的50%,val大约为trainval的50%。所以我们可参考以下代码来生成这4个txt文件:
- import os
- import random
-
- trainval_percent = 0.5
- train_percent = 0.5
- xmlfilepath = 'Annotations'
- txtsavepath = '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()
-
- #注意:上述代码中涉及到的路径要写全
- #另外各个数据集所占比例根据实际数据集的大小调整比例。

Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。