计算机视觉标准数据集整理—PASCAL VOC数据集
另外一篇重要的参考文章:PASCAL VOC 2012数据集介绍,https://blog.****.net/zz2230633069/article/details/84769339?depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromBaidu-19&utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromBaidu-19
————————————————————————————————————————————————————
数据集下载
PASCAL VOC为图像识别和分类提供了一整套标准化的优秀的数据集,从2005年到2012年每年都会举行一场图像识别challenge。此数据集可以用于图像分类、目标检测、图像分割。
数据集下载镜像地址如下(包括VOC2007和VOC2012):
https://pjreddie.com/projects/pascal-voc-dataset-mirror/
PASCAL:pattern analysis,statistical modelling and computationallearning
VOC:visual object classes
该挑战的主要目的是识别真实场景中一些类别的物体。在该挑战中,这是一个监督学习的问题,训练集以带标签的图片的形式给出。这些物体包括20类:
Person: person;
Animal: bird, cat, cow, dog, horse, sheep;
Vehicle: aeroplane, bicycle, boat, bus,car, motorbike, train;
Indoor: bottle, chair, dining table, pottedplant, sofa, tv/monitor;
该挑战主要包括三类任务:分类(classification),检测(detection),和分割(segmentation)
包括任务
Classification/DetectionCompetitions
Classification:对20类中的每一类,预测test image中该类的presence/absence;
Detection:预测test image中物体的boundingbox以及该物体属于20类中的哪一类;
对于这两类任务,允许参与者通过两种方式参与:
- 使用除VOC测试集以外的任何数据集来构建、训练他们的分类/检测系统;
- 仅使用VOC提供的训练/校验集来构建、训练分类/检测系统;
前者是为了衡量目前在这些任务上,我们的方法到底可以到达怎样一种程度的成功;
后者则是为了建立一种在指定数据集上最为成功的方法。
Segmentation Competition
Segmentation:在test image上产生一个像素级别的分割,给出每一个像素属于哪一类,包括“背景”类。

Action Classification Competition
Action Classification:预测静态图像中人做出的动作。
该任务有两种形式,一种是:图像中做出动作的人被一个bounding box框出来;
另一种是:图像中做出动作的人仅被一个点标示出来,该点落在这个人身体的某处。
后者面向的是基于图像中只给定一个人的大概位置的方法。
ImageNet LargeScale Visual Recognition Competition
该任务的内容是预测图像中的内容,这对图像检索、自动标注等目标的实现有重要意义。
训练集是ImageNet数据集(10,000,000张标注了的图像,包含10,000多类物体)的一个子集。
测试集在给出的时候没有任何的标注、分割和标签。该任务的目的是提出一种方法,可以产生一些标签,对应着图像中出现了哪些物体。
VOC2012中只要求识别图像中出现的主要物体,不要求指定物体出现的位置,即只识别不定位。
Person LayoutTaster Competition
Person Layout:即人体轮廓布局。该任务的目标是预测人体部位(头,手,脚)的bounding box和对应的label》
数据集简介
- 训练集由一套图像组成:每个图像拥有一个对应的标注文件,给出了图像中出现的物体的bounding box和class label,该
- 物体属于上述20类中的某一类。同一张图像中,可能出现属于多个类别的多个物体。
- 所有的标注图片都有Detection需要的label,但只有部分数据有Segmentation Label。
- VOC2007中包含9963张标注过的图片, 由train/val/test三部分组成, 共标注出24,640个物体。
- VOC2007的test数据label已经公布, 之后的没有公布(只有图片,没有label)。
- 对于检测任务,VOC2012的trainval/test包含08-11年的所有对应图片。 trainval有11540张图片共27450个物体。
- 对于分割任务, VOC2012的trainval包含07-11年的所有对应图片, test只包含08-11。trainval有 2913张图片共6929个物体。
- 这些图像中的一部分图像还拥有像素级的标注,用于segmentationcompetition.
- 用于action classification的图片集与用于classification/detection/segmentation的图片集不相交。它们被部分地标注上了图像中人的bounding box,参考点和动作。
- 用于person layout taster的图像,被额外的标注上了人的身体部位(头、手、脚),其测试集与主任务(classification/detection)的测试集不相交。
- 数据集按1:1的比例被分为训练(验证)集和测试集。这两部分的图像中类别的分布也大致相等。
数据集文件结构
Annotation
Annotations文件夹中存放的是xml格式的标签文件,每一个xml文件都对应于JPEGImages文件夹中的一张图片。
格式如下,我们以2007_000033.xml为例。
ImageSets
ImageSets存放的是每一种类型的challenge对应的图像数据。
ImageSets下的四个文件夹,如下:
Action下存放的是人的动作(running、jumping等等,这也是VOC challenge的一部分)
Layout下存放的是人体部位(head、hand、feet等等,这也是VOC challenge的一部分)
Main下存放的是图像物体识别的数据,总共分为20类
Main文件夹下包含了20个分类的***_train.txt、***_val.txt和***_trainval.txt。
这些txt中的内容都差不多如下:
前面的表示图像的name,后面的1代表正样本,-1代表负样本。
_train中存放的是训练使用的数据,每一个class的train数据都有5717个;
_val中存放的是验证结果使用的数据,每一个class的val数据都有5832个;
_trainval将上面两个进行了合并,每一个class有11540个;
需要保证的是train和val两者没有交集,也就是训练数据和验证数据不能有重复,在选取训练数据的时候,也应该是随机产生的。
- Segmentation下存放的是可用于分割的图片的编号。
- *_train中存放的是训练集的图片编号。
- *_val中存放的是验证集的图片编号。
- *_trainval是上面两者的合并集合。
- train和val包含的图片没有交集。
JPEGImages
JPEGImages文件夹中包含了PASCAL VOC所提供的所有的图片,包含训练图片和测试图片,共有17125张。图片均以“年份_编号.jpg”格式命名。图片的尺寸大小不一,所以在后面训练的时候需要对图片进行resize操作。
图片的像素尺寸大小不一,但是横向图的尺寸大约在500*375左右,纵向图的尺寸大约在375*500左右,基本不会偏差超过100。(在之后的训练中,第一步就是将这些图片都resize到300*300或是500*500,所有原始图片不能离这个标准过远,具体resize方式可以看最下面github链接里data.py。)
这些图像就是用来进行训练和测试验证的图像数据。
SegmentationClass
这里面包含了2913张图片,每一张图片都对应JPEGImages里面的相应编号的图片。
图片的像素颜色共有20种,对应20类物体。
SegmentationObject
这里面同样包含了2913张图片,图片编号都与Class里面的图片编号相同。
这里面的图片和Class里面图片的区别在于,这是针对Object的。
在Class里面,一张图片里如果有多架飞机,那么会全部标注为红色。
而在Object里面,同一张图片里面的飞机会被不同颜色标注出来。
————————————————
版权声明:本文为****博主「Winni有魅力」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.****.net/xingwei_09/article/details/79142558