制作自己的VOC2007数据集用于Faster-RCNN-TensorFlow
一、数据集结构?
VOC2007文件夹下有以下5个文件夹:

Annotations文件夹
该文件下存放的是xml格式的标签文件,每个xml文件都对应于JPEGImages文件夹的一张图片。
JPEGImages文件夹
改文件夹下存放的是数据集图片,包括训练和测试图片。
ImageSets文件夹
该文件夹下存放了三个文件,分别是Layout、Main、Segmentation。在这里我们只用存放图像数据的Main文件,其他两个暂且不管。
main里有4个文件

决定了测试集test,训练集train、验证集val、训练集和验证集trainval。
在原始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()
将这个放到VOC2007文件夹下,运行即可自动生成4个文件。
其他
SegmentationClass文件和SegmentationObject文件。
这两个文件都是与图像分割相关。
因此我们只需要制作Annotations、JPEGImages、ImageSets\main
二、使用步骤
1. 制作文件夹
文件夹制作好后,将图片全部放入JPEGImages文件夹中,然后修改格式,将下面代码复制到JPEGImages的文件夹下,运行即可。
# -*- coding: utf-8 -*-
import os
path = './'
#图片后缀
last=['jpg','png']
files = os.listdir(path)
for i, file in enumerate(files):
if file.split('.')[-1] in last:
NewName = '%09d' % i + '.jpg'
oldname=file
os.rename(oldname, NewName)
i = i + 1
2.使用labelme进行标注
2.1安装使用labelme
https://github.com/tzutalin/labelImg#windows–anaconda
由于我使用的是anaconda,按照文档安装即可。
将压缩包下载,找个地方解压。比如我放在D盘的labelImg文件夹下
我的流程:
1.管理员身份打开 anaconda prompt
2、输入命令:conda create --name=labelme python=3.6
3、输入命令:activate labelme
我把albelme放到了一个环境下面,然后用cmd打开解压路径:
1. 管理员身份打开cmd
2、输入命令:d:
cd labelImg
cd labelImg-master
3、conda install pyqt=5
conda install -c anaconda lxml
pyrcc5 -o libs/resources.py resources.qrc
python labelImg.py
最后一行是运行labelme,打开如下界面


open dir是打开JPEGImages文件夹,save dir选择Annotations文件夹。然后就可以进行标注了。
左边画框,设置标签,设好保存。就可以了。
然后在Annotations文件夹下就可以看到xml的标准文件。
本文详细介绍了如何制作自定义的VOC2007数据集,适用于Faster-RCNN在TensorFlow中的训练。内容包括数据集的结构、Annotations和JPEGImages文件夹的创建、使用labelme进行标注的步骤,以及生成训练、测试和验证集所需的txt文件。
11万+

被折叠的 条评论
为什么被折叠?



