Pascal VOC challenge 是一个非常流行的数据集,用于构建和评估图像分类、对象检测和分割的算法。
官网数据集镜像:https://pjreddie.com/projects/pascal-voc-dataset-mirror/
一、Challenge
Pascal VOC challenge 的目标就是从存在于现实场景中的许多可视对象类别中识别出对象(即不预先分割的对象)。全部有二十个类:
person, bird, cat, cow, dog, horse, sheep, aeroplane, bicycle, boat, bus, car, motorbike, train, bottle, chair, dining table, potted plant, sofa, tv / monitor
(一)主要任务
有五个主要任务:
- 分类:对于每一个类,在一张测试图片中预测该类至少一个对象是否存在。
- 检测:对于每一个类,在一张测试图片中预测该类的每一个对象的边界框(bounding box)。
- 分割:对于测试图片每一个像素,如果像素不属于20个指定类中的一个,则预测包含该像素或“背景”的对象的类。
- 动作分类:对于每个动作类别,预测测试图片中的指定的人(由其边界框指示)是否正在执行相应的动作。其中有 10 个动作类别:
- jumping; phoning; playing a musical instrument; reading; riding a bicycle or motorcycle; riding a horse; running; taking a photograph;using a computer; walking
- 大尺度识别:这个任务又 ImageNet 组织者执行。更多可查看其官网。
二、DATA
里面有一个 VOC2007 ,另一个是 VOC2012 。
进去里面有 5 个文件夹:
VOC2012
├──Annotations
├──ImageSets
├──Action
├──Layout
├──Main
└──Segmentation
├──JPEGImage
├──SegmentationClass
└──SegmentationObject
Annotations:存放 xml 文件,每个文件对应 JPEGImage 里面的一张图片
ImageSets:存放记录各个人物正负样本的 txt 文件
JPEGImage:存放图片,每张图片都有对应的编号
SegmentationClass:存放分割图片,按类分,相同的类用同一个颜色表示
SegmentationObject:存放分割图片,按物体分,不同的物体用不同的颜色表示
三、Annotations
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>
<object>
<name>person</name> //类别
<pose>Unspecified</pose>
<truncated>0</truncated>
<difficult>0</difficult> //是否难以识别
<bndbox> //bounding box
<xmin>174</xmin> //左上角的 x 坐标
<ymin>101</ymin> //左上角的 y 坐标
<xmax>349</xmax> //右下角的 x 坐标
<ymax>351</ymax> //右下角的 y 坐标
</bndbox>
</annotation>
里面指定了文件夹,文件名字,图片的长宽和深度,还有边界框(bounding box)及物体类别。
四、ImageSets
ImageSets 里面指定了每一张图片为正样本还是负样本,例如 Main 目录里面的 aeroplane_train.txt 内容如下:
2008_000008 -1
2008_000015 -1
2008_000019 -1
2008_000023 -1
2008_000028 -1
2008_000033 1
2008_000036 -1
2008_000037 1
2008_000041 -1
2008_000045 -1
2008_000053 -1
2008_000060 -1
...
前面的 2008_000008 代表了图片的名称,后面的 1 或 -1 代表了这张图片是正样本还是负样本。