您的位置:首页 > 理论基础

计算机视觉标准数据集整理—PASCAL VOC数据集

2018-01-24 10:08 483 查看

数据集下载

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里面,同一张图片里面的飞机会被不同颜色标注出来。

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐