一、数据集介绍
PascalVOC(2005~2012)数据集是PASCAL VOC挑战官方使用的数据集。该数据集包含20类的物体。每张图片都有标注,标注的物体包括人、动物(如猫、狗、岛等)、交通工具(如车、船飞机等)、家具(如椅子、桌子、沙发等)在内的20个类别。每个图像平均有2.4个目标,所有的标注图片都有目标检测需要的标签。
VOC2007 与 VOC2012
- VOC2007:包含9963张标注过的图片, 由train/val/test三部分组成, 共标注出24,640个物体。 VOC2007的test数据label已经公布, 之后的没有公布(只有图片,没有label)。
- VOC2012:是VOC2007数据集的升级版,一共有11530张图片。对于检测任务,VOC2012的trainval/test包含08-11年的所有对应图片。 trainval有11540张图片共27450个物体。 对于分割任务, VOC2012的trainval包含07-11年的所有对应图片, test只包含08-11。trainval有 2913张图片共6929个物体。
VOC2012数据集分为20类,包括背景为21类,分别如下:
人:人
动物:鸟、猫、牛、狗、马、羊
车辆:飞机、自行车、船、巴士、汽车、摩托车、火车
室内:瓶、椅子、餐桌、盆栽植物、沙发、电视/监视器
二、文件夹介绍
Pascal VOC2012数据集包括五个文件夹:
1. Annotation文件夹
Annotation:存放xml格式的标注信息,一个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> <!-- 通道数为3,表示为彩色 --> </size> <segmented>0</segmented> <object> <!-- 图片里面的对象信息 --> <name>person</name> <!-- 这里对象为:人 --> <pose>Unspecified</pose> <truncated>0</truncated> <difficult>0</difficult> <!-- 表示是否为难以训练的数据,0表示不是 --> <bndbox> <!-- 真实框的坐标信息,通常为左上角和右下角坐标 --> <xmin>174</xmin> <!-- 左上角x坐标 --> <ymin>101</ymin> <!-- 左上角y坐标 --> <xmax>349</xmax> <!-- 右下角x坐标 --> <ymax>351</ymax> <!-- 右下角y坐标 --> </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>
2. JPEGImages文件夹
JPEGImages:存放所有图片,包括训练图片和测试图片。命名格式为:2007_000032.jpg
3. ImageSets文件夹
ImageSets:存放每一种任务对应的数据,其又划分为四个文件夹
(1) Action文件夹:
存放人体动作的txt文件,比如跳跃、打电话、读书等。而每个动作又分三类为训练集、训练的验证集和测试集。
内容案例如下,每列数字分别表示:图像ID、人数、动作状态
- 图像ID(如 2011_003285):这是图像的唯一标识符,用于在数据集中定位特定的图像。
- 人数(如 1,2,3,4):这一列表示在对应图像中检测到的人数。例如,1 表示图像中有一个人,2 表示图像中有两个人,以此类推。
- 动作状态(如 -1):这一列表示图像中对应的人的动作状态是否满足action文件所列举的10个动作标签之一(如jumping, phoning, playing instrument等)。通常,正数(如1)表示满足某个动作标签,而-1表示不满足或未标注。
(2) Layout文件夹
存放人体部位的txt文件,同样又分为训练集、训练的验证集和测试集。
(3) Main文件夹
存放类别信息的txt文件,是最重要的文件夹,里面是图像检测的数据,共20个类别,同样又分为训练集、训练的验证集和测试集。
内容如下,第一列是对应的图片名字,第二列表示这个对象是否出现在该图像中,1表示出现,-1表示没有出现。
注意,在Main文件夹下,有两个最重要的txt文件,分别为train.txt和val.txt。这两个文件夹是总的划分,即相当于机器学习中的训练集和测试集的划分一样,需要保证两者数据不交叉。而这个文件也是我们后面训练需要用到的文件。
(4) Segmentation文件夹
存放分割训练的txt文件,分别为图像分割用到的训练、训练的验证集和测试集。这里对应的不仅仅是图片名字,还对应了分割文件夹下的分割图片。
4. SegmentationClass文件夹
SegmentationClass:语义分割任务中用到的label图片。
5. SegmentationObject文件夹
SegmentationObject:实例分割任务用到的label图片,即图像分割(即同一类别也要区分颜色)后的图像,如:
总结:
对数据了解后,才好对数据进行处理,例如需要对数据进行增强或其他处理。