创建自己的VOC2007数据集

创建自己的VOC2007数据集

一:VOC2007数据集简介

PASCAL VOC为图像识别和分类提供了一整套标准化的优秀的数据集,从2005年到2012年每年都会举行一场图像识别challenge。

VOC2007数据集是衡量图像分类识别能力的基准,faster-rcnn,yolo -v1, yolo-v2都以此数据集作为演示样例。

VOC2007数据格式如下:

  • Annotations ——xml标注文件
  • ImageSets ——类别标签
  • JPEGImages ——jpg图像文件
  • SegmentationClass
  • SegmentationObjec

训练自己的数据时只需要修改Annotations、ImageSets、JPEGImages 三个文件夹。

 

二:数据就制作流程

1:把所有ipg文件放入JPEGImages文件夹中(此处可以使用批量命名工具重新命名)下载链接:http://cl.wxyngq.com/download/%E6%89%B9%E9%87%8F%E4%BF%AE%E6%94%B9%E6%96%87%E4%BB%B6%E5%90%[email protected]

2:使用labelimg标注文件,可以直接下载exe可执行工具或者下载源码执行(此处百度一下有很多)。该工具可实现手动标注后生成XML文件中含有目标位置:name为目标分类,bndbox中为目标左上和右下两个点的坐标信息。

创建自己的VOC2007数据集_第1张图片

  一般模型,比如YOLO网络就是通过读取所有xml文件的信息来生成模型需要的label文件。

3:将标注好的xml文件放到Annotations文件夹下

4:生成ImageSets\Main文件夹下4个txt文件test.txt , train.txt , trainval.txt , val.txt。

  这四个文件夹中存储的时上一步中xml文件的文件名。trainval和 test内容相加为所有xml文件,train和val内容相加为trainval。

  可使用下面脚本生成,运行将该文件与ImageSets和Annotations放在同一目录下。

Python代码:

import os  
import random  
  
trainval_percent = 1  # trainval数据集占所有数据的比例
train_percent = 0.5  # train数据集占trainval数据的比例
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('ImageSetsMini/Main/trainval.txt', 'w')  
ftest = open('ImageSetsMini/Main/test.txt', 'w')  
ftrain = open('ImageSetsMini/Main/train.txt', 'w')  
fval = open('ImageSetsMini/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()

 

5:用修改了Annotations、ImageSets、JPEGImages\Main 三个文件夹的数据替换原来的数据,就可以跑自己的数据啦,当然可能该需要修改一些模型参数。

你可能感兴趣的:(DeepLearning)