PASCAL VOC2012数据集分析
Pascal VOC2012官网地址:http://host.robots.ox.ac.uk/pascal/VOC/voc2012/
PASCAL VOC论文:http://host.robots.ox.ac.uk/pascal/VOC/pubs/everingham15.pdf
一、简介
PASCAL VOC挑战赛 (The PASCAL Visual Object Classes Challenge)是关于计算机视觉的挑战赛,PASCAL VOC挑战赛主要包括以下几类:分类(Classification),检测(Detection),分割(Segmentation),行为识别(Action Classification) 等。
- 图像分类与检测
分类:在测试图像预测是否为二十个分类之一,正确分类。
检测:在测试图像上预测二十个分类对象的有无与位置信息。
- 图像分割
分割:图像分割一般包括实例分割和语义分割,实例分割是要把每个单独的目标用一种颜色表示(如下图中间的图像),而语义分割只是把同一类别的所有目标用同一颜色表示(如下图右侧的图片)。
- 行为识别
行为识别:预测图像中人的行为动作
- Person Layout标注
Person Layout标注:检测人与其各个身体组成部分,如果手、脚、头等。
二、PASCAL VOC2012数据集
Pascal VOC2012数据集主要是针对视觉任务中监督学习提供标签数据,它有二十个类别:
Person:person
Animal: bird, cat, cow, dog, horse, sheep
Vehicle:aeroplane, bicycle, boat, bus, car, motorbike, train
Indoor: bottle, chair, dining table, potted plant, sofa, tv/monitor
下载路径: http://host.robots.ox.ac.uk/pascal/VOC/voc2012/index.html#devkit
下载完之后解压文件,打开VOCdevkit-VOC2012可以看到如下文件。
Annotations文件夹
Annotations文件夹中存放的是xml格式的标签文件,每一个xml文件都对应于JPEGImages文件夹中的一张图片,一共有17125个项目文件。
xml文件具体格式如下图所示,
<annotation>
<folder>VOC2012</folder>
<filename>2007_000027.jpg</filename> //文件名
<source> //图片来源
<database>The VOC2007 Database</database>
<annotation>PASCAL VOC2007</annotation>
<image>flickr</image>
</source>
<size> //图片大小(长、宽、通道)
<width>486</width>
<height>500</height>
<depth>3</depth>
</size>
<segmented>0</segmented> //图片分割标注(0代表没有标注,1代表有标注)
<object> //检测到的物体
<name>person</name> //对象类别
<pose>Unspecified</pose> //拍摄角度
<truncated>0</truncated> //是否被标记为截断(0表示没有,1表示是)
<difficult>0</difficult> //是否被标记为很难识别对称(0表示不是,1表示是)
<bndbox> //标签描述box框在图像上的位置
<xmin>174</xmin>
<ymin>101</ymin>
<xmax>349</xmax>
<ymax>351</ymax>
</bndbox>
<part> //身体部位
<name>head</name>
<bndbox>
<xmin>169</xmin>
<ymin>104</ymin>
<xmax>209</xmax>
<ymax>146</ymax>
</bndbox>
</part>
<part>
<name>hand</name>
<bndbox>
<xmin>278</xmin>
<ymin>210</ymin>
<xmax>297</xmax>
<ymax>233</ymax>
</bndbox>
</part>
<part>
<name>foot</name>
<bndbox>
<xmin>273</xmin>
<ymin>333</ymin>
<xmax>297</xmax>
<ymax>354</ymax>
</bndbox>
</part>
<part>
<name>foot</name>
<bndbox>
<xmin>319</xmin>
<ymin>307</ymin>
<xmax>340</xmax>
<ymax>326</ymax>
</bndbox>
</part>
</object>
</annotation>
对应图片如下所示,
ImageSets文件夹
ImageSets存放的是每一种类型的challenge对应的图像数据。
在ImageSets下有四个文件夹:
- Action文件夹下面存放的是人的行为动作图像信息,比如running,jumping等。
- Layout文件夹存放的是人的各个部位图像信息,比如head,hand,feet等。
- Main文件夹存放的是目标检测分类图像信息,总共分为20类,包含了20个分类的***_train.txt、***_val.txt和***_trainval.txt文件。
- ***_train.txt文件表示训练集
- ***_val.txt文件表示验证集
- ***_trainval.txt文件表示训练集+验证集
这些txt文件中格式为:图像文件名 + 空格 + 标记,以aeroplane_tran.txt文件为例:
其中:
- 1 表示图像中包含aeroplane
- -1 表示图像中不包含aeroplane
Pascal VOC2012 Main文件中统计的训练、验证、验证与训练图像如下:
- Segmentation 文件夹存放的是目标分割图像信息,包含了train.txt(训练集1464个)、val.txt(验证集1449个)、trainval.txt(训练集+验证集2913个)。
JPEGImages文件夹
存放所有的原始图像文件,格式必须是JPG格式,这个要特别注意!如果你打算使用VOC2012格式生成数据,那么原始图像格式在采样时候请用JPG格式保存,避免后期生成使用tensorflow工具生成的时候出错。
SegmentationClass文件夹
存放所有分割的图像标注,分割图像按照每个类别标注的数据,相当于语义分割PNG图。
SegmentationObject文件夹
存放所有分割的图像标注,分割图像按照每个类别每个对象不同标注的数据,相当于实例分割PNG图。