写在前面
PASCAL VOC为图像识别提供了一套标准化的优秀的数据集。其三个主要的物体识别竞赛分别是分类classification, 检测detection, 分割segmentation。
PASCAL---- Pattern Analysis, Statistical Modelling and Computational Learning,分别是 模式分析、 统计建模、 计算学习;
VOC----Visual Object Class, 视觉对象类;
对于分割任务, VOC2012的trainval包含2007-2011年所有对应图片,test只包含2008-2011,trainval有2913张图片,共6929个物体。
分类
总共分成20+1类,有20类物体,第21类为背景:
Person : person
Animal : bird , cat , cow , dog , horse , sheep
Vehicle : aeroplane , bicycle , boat , bus , car , motorbike , train
Indoor: bottle, chaire, dining-table, potted plant, sofa, tv/monitor
编号分别如下:(序号为(0代表背景,1~20代表20个类别))
0 | background | ||
1 | aeroplane | 11 | dining-table |
2 | bicycle | 12 | dog |
3 | bird | 13 | horse |
4 | boat | 14 | motorbike |
5 | bottle | 15 | person |
6 | bus | 16 | pottedplant |
7 | car | 17 | sheep |
8 | cat | 18 | sofa |
9 | chair | 19 | train |
10 | cow | 20 | tv |
每个类别的分布如下:
类别与颜色的对应关系如下(RGB数值)
具体文件
下载后得到如下压缩包:(图是在linux系统下的图标)
解压后如图所示:
1、JPEG IMAGES
该文件夹包含了PASCAL VOC所提供的所有的信息图片,包括训练图片和测试图片。
这些图片的命名格式都是“年份_编号.jpg”,图片大小尺寸不一,横向图尺寸大概在500*375,纵向图尺寸大约在375*500, 偏差在100之内。
2、Annotations
此文件夹存放的是xml格式的标签文件,每个xml文件都与JPEGImages中的图片一一对应。
以2007_000392为例,xml文件的具体格式如下所示:
<annotation>
<folder>VOC2012</folder>
<filename>2007_000392.jpg</filename> //文件名
<source> //图像来源(不重要)
<database>The VOC2007 Database</database>
<annotation>PASCAL VOC2007</annotation>
<image>flickr</image>
</source>
<size> //图像尺寸(长宽以及通道数)
<width>500</width>
<height>332</height>
<depth>3</depth>
</size>
<segmented>1</segmented> //是否用于分割(在图像物体识别中01无所谓)
<object> //检测到的物体
<name>horse</name> //物体类别
<pose>Right</pose> //拍摄角度
<truncated>0</truncated> //是否被截断(0表示完整)
<difficult>0</difficult> //目标是否难以识别(0表示容易识别)
<bndbox> //bounding-box(包含左下角和右上角xy坐标)
<xmin>100</xmin>
<ymin>96</ymin>
<xmax>355</xmax>
<ymax>324</ymax>
</bndbox>
</object>
<object> //检测到多个物体
<name>person</name>
<pose>Unspecified</pose>
<truncated>0</truncated>
<difficult>0</difficult>
<bndbox>
<xmin>198</xmin>
<ymin>58</ymin>
<xmax>286</xmax>
<ymax>197</ymax>
</bndbox>
</object>
</annotation>
其对应的图片如下:
这里仅对比较重要的做出解释:
-
size
size下包括了与图片尺寸相关的信息,其中 :
- width为宽度
- height为高度
- depth为图片的通道数(彩色图像为3通道,灰度图为1通道)。
-
segmented
表示图像是否进行分割,1表示是,0表示否。
-
object
object下包括的是目标检测的相关信息,object可以出现多个。其中:
- name表示物体的名字
- pose表示拍摄的角度
- truncated表示目标检测的框是否被截断,1表示是,0表示否
- difficult 表示目标是否难以识别,1表示是,0表示否
- bndbox 下包括的是目标检测框的位置信息
- xmin,ymin 表示检测框的左上角
- xmax,ymax 表示检测框的右下角
3、ImageSets
该文件夹下存放的是每一种类型的challenge对应的图像数据,包含4个子文件夹:
- Action下存放的是人的动作
- Layout下存放的是人的部位的数据
- Main下存放的是 物体识别 的数据,总共分为20类
- Segmentation下存放的是用于 分割 的数据
Main文件
包含了20个分类的不同的 ***_train.txt, ***_val.txt, ***_trainval.txt。截图如下:
从图片中右边打开的txt文件可见:
最左一列为图片的name,后面的 1 表示这个样本为正样本, -1表示这个样本为负样本。
train里面放的是训练使用的数据,每一个CLASS有5717个;
val里面放的是验证结果使用的数据,每一个CLASS有5823个;
trainval是将上面两个进行合并;
Action文件
一共花分类11个动作类别,如下图所示:
下图为具体的TXT文件内容:第一列为图片名,第二列为上表中的序号,第三列为样本属性:1为正样本;-1为负样本;
LAYOUT
Layout文件夹存储的是人体部位识别竞赛中相关的数据集图片列表。
具体内容如下图所示:
第一列为图片名,第二列为图片中所包含的人数。
4、SegmentationClass & SegmentationObject
这个文件夹里面存放的是与 物体分割任务相关的图片。如下图展示:
上面的文件夹为SegmentationClass;存放语义分割图;标注每一个像素属于哪一个类别;
下面的文件夹为SegmentationObject; 存放实例分割图;标注每一个像素属于哪一个物体;
放一个图可以进行直观的对比:
可以看到同样是火车,语义分割时两个时同一个颜色,在实例分割时则为不同颜色。
在voc数据集里面,分割的颜色与类别对应关系如下图所示:
这里强调一点,这两个文件夹下面的图片位深度是8。
这里对比一下RGB图像的位深度位24,每个通道都有8位。而8位深的图像一般都是灰度图像,这是VOC2012 mask的特殊性。
PS:我也不太懂“ 由于colormap”的存在,使其看起来是彩色的,在deeplabv3+,准备数据时要去掉label的colormap” 。
下载
另附,voc2007,voc2012镜像下载的链接: