PASCAL VOC数据集分析(分类部分)

来源:互联网 发布:微博淘宝版入口 编辑:程序博客网 时间:2024/06/06 00:25

PASCAL VOC数据集分析
PASCAL VOC为图像识别和分类提供了一整套标准化的优秀的数据集,从2005年到2012年每年都会举行一场图像识别challenge。
每一年都有自己的数据集。pascal_voc_2012网址:http://cvlab.postech.ac.kr/~mooyeol/pascal_voc_2012/

VOC2005:包括训练集,验证集,测试集。只有4类,bicycles, cars, motorbikes, people. 
Train/validation/test: 1578 images containing 2209 annotated objects.
VOC2006:包括训练集,验证集,测试集。扩充到10类,bicycle, bus, car, cat, cow, dog, horse, motorbike, person, sheep.
Train/validation/test: 2618 images containing 4754 annotated objects.
VOC2007:包括训练集,验证集,测试集。扩充到20类,
  • Person: person
  • Animal: bird, cat, cow, dog, horse, sheep
  • Vehicle: aeroplane, bicycle, boat, bus, car, motorbike, train
  • Indoor: bottle, chair, dining table, potted plant, sofa, tv/monitor
Train/validation/test: 9,963 images containing 24,640 annotated objects.

2007年之后,VOV数据集不再提供测试集的标签信息,Instead, results on the test data are submitted to an evaluation server.算法在测试集上的结果被提交到服务器上进行在线验证。
VOC201220 classes. The train/val data has 11,530 images containing 27,450 ROI annotated objects and 6,929 segmentations.

人类;
动物(鸟、猫、牛、狗、马、羊);
交通工具(飞机、自行车、船、公共汽车、小轿车、摩托车、火车);
室内(瓶子、椅子、餐桌、盆栽植物、沙发、电视)


本文主要分析PASCAL VOC数据集中和图像中物体识别相关的内容。
在这里采用PASCAL VOC2012作为例子。下载地址为:点击打开链接。(本文中的系统环境为ubuntu14.04)
下载完之后解压,可以在VOCdevkit目录下的VOC2012中看到如下的文件:

其中在图像物体识别上着重需要了解的是Annotations、ImageSets和JPEGImages。

JPEGImages
JPEGImages文件夹中包含了PASCAL VOC所提供的所有的图片信息,包括了训练图片和测试图片。
这些图像都是以“年份_编号.jpg”格式命名的。
图片的像素尺寸大小不一,但是横向图的尺寸大约在500*375左右,纵向图的尺寸大约在375*500左右,基本不会偏差超过100。(在之后的训练中,第一步就是将这些图片都resize到300*300或是500*500,所有原始图片不能离这个标准过远。)
这些图像就是用来进行训练和测试验证的图像数据。

Annotations

Annotations文件夹中存放的是xml格式的标签文件,每一个xml文件都对应于JPEGImages文件夹中的一张图片。
xml文件的具体格式如下:(对于2007_000392.jpg)
[html] view plain copy
  1. <annotation>  
  2.     <folder>VOC2012</folder>                             
  3.     <filename>2007_000392.jpg</filename>                               //文件名  
  4.     <source>                                                           //图像来源(不重要)  
  5.         <database>The VOC2007 Database</database>  
  6.         <annotation>PASCAL VOC2007</annotation>  
  7.         <image>flickr</image>  
  8.     </source>  
  9.     <size>                                               //图像尺寸(长宽以及通道数)                        
  10.         <width>500</width>  
  11.         <height>332</height>  
  12.         <depth>3</depth>  
  13.     </size>  
  14.     <segmented>1</segmented>                                   //是否用于分割(在图像物体识别中01无所谓)  
  15.     <object>                                                           //检测到的物体  
  16.         <name>horse</name>                                         //物体类别  
  17.         <pose>Right</pose>                                         //拍摄角度  
  18.         <truncated>0</truncated>                                   //是否被截断(0表示完整)  
  19.         <difficult>0</difficult>                                   //目标是否难以识别(0表示容易识别)  
  20.         <bndbox>                                                   //bounding-box(包含左下角和右上角xy坐标)  
  21.             <xmin>100</xmin>  
  22.             <ymin>96</ymin>  
  23.             <xmax>355</xmax>  
  24.             <ymax>324</ymax>  
  25.         </bndbox>  
  26.     </object>  
  27.     <object>                                                           //检测到多个物体  
  28.         <name>person</name>  
  29.         <pose>Unspecified</pose>  
  30.         <truncated>0</truncated>  
  31.         <difficult>0</difficult>  
  32.         <bndbox>  
  33.             <xmin>198</xmin>  
  34.             <ymin>58</ymin>  
  35.             <xmax>286</xmax>  
  36.             <ymax>197</ymax>  
  37.         </bndbox>  
  38.     </object>  
  39. </annotation>  
对应的图片为:
ImageSets

ImageSets存放的是每一种类型的challenge对应的图像数据。
在ImageSets下有四个文件夹:
其中Action下存放的是人的动作(例如running、jumping等等,这也是VOC challenge的一部分)
Layout下存放的是具有人体部位的数据(人的head、hand、feet等等,这也是VOC challenge的一部分)
Main下存放的是图像物体识别的数据,总共分为20类。
Segmentation下存放的是可用于分割的数据。

在这里主要考察Main文件夹。
Main文件夹下包含了20个分类的***_train.txt、***_val.txt和***_trainval.txt。
这些txt中的内容都差不多如下:
前面的表示图像的name,后面的1代表正样本,-1代表负样本。
_train中存放的是训练使用的数据,每一个class的train数据都有5717个。
_val中存放的是验证结果使用的数据,每一个class的val数据都有5823个。
_trainval将上面两个进行了合并,每一个class有11540个。
需要保证的是train和val两者没有交集,也就是训练数据和验证数据不能有重复,在选取训练数据的时候 ,也应该是随机产生的。
SegmentationClass和SegmentationObject

这两个文件夹下保存了物体分割后的图片,在物体识别中没有用到,在这里不做详细展开。

VOC2007数据集共包含:训练集(5011幅),测试集(4952幅),共计9963幅图,共包含20个种类。

数据集的组成架构如下:

  • Annotations —目标真值区域
  • ImageSets —-类别标签
  • JPEGImages —–图像
  • SegmentationClass
  • SegmentationObjec

    JPEGImages 中存放原始图像,jpg格式。大小一般为 500*375 或 375*500; 
    ImageSets 中有三个文件夹【Layout】【Main】【Segmentation】,分类识别我们只关注【Main】,它内部存储类别标签,-1表示负样本,+1为正样本 
    *_train.txt 训练样本集 
    *_val.txt 评估样本集 
    *_trainval.txt 训练与评估样本汇总

    2 各类别统计信息

    20个类别中,后面数字代表数据集中对应的的正样本图像个数(非目标个数)。

    - 训练集

    aeroplane 238 
    bicycle 243 
    bird 330 
    boat 181 
    bottle 244 
    bus 186 
    car 713 
    cat 337 
    chair 445 
    cow 141 
    diningtable 200 
    dog 421 
    horse 287 
    motorbike 245 
    person 2008 
    pottedplant 245 
    sheep 96 
    sofa 229 
    train 261 
    tvmonitor 256

    - 测试集

    aeroplane 204 
    bicycle 239 
    bird 282 
    boat 172 
    bottle 212 
    bus 174 
    car 721 
    cat 322 
    chair 417 
    cow 127 
    diningtable 190 
    dog 418 
    horse 274 
    motorbike 222 
    person 2007 
    pottedplant 224 
    sheep 97 
    sofa 223 
    train 259 
    tvmonitor 229

    可以看出,除了person数量较多,其他类别样本个数不算多。

    因此,用VOC数据来训练模型,做行人检测或者车辆检测,数据是不够的,需要自己扩充数据。


    转载自:http://blog.csdn.net/zhangjunbob/article/details/52769381
    原创粉丝点击