Pascal Voc数据集详解 以Voc2012为例

Pascal VOC网址:http://host.robots.ox.ac.uk/pascal/VOC/ 

一. VOCdevkit文件夹

数据集下载后解压得到一个名为VOCdevkit的文件夹,该文件夹结构如下:

.
└── VOCdevkit     #根目录
    └── VOC2012   #不同年份的数据集,这里只下载了2012的,还有2007等其它年份的
        ├── Annotations        #存放xml文件,与JPEGImages中的图片一一对应,解释图片的内容等等
        ├── ImageSets          #该目录下存放的都是txt文件,txt文件中每一行包含一个图片的名称,末尾会加上±1表示正负样本
        │   ├── Action
        │   ├── Layout
        │   ├── Main
        │   └── Segmentation
        ├── JPEGImages         #存放源图片
        ├── SegmentationClass  #存放的是图片,分割后的效果,见下文的例子
        └── SegmentationObject #存放的是图片,分割后的效果,见下文的例子

Pascal Voc数据集详解 以Voc2012为例_第1张图片

文件目录一览:

Pascal Voc数据集详解 以Voc2012为例_第2张图片

1.  Annotation文件夹

Pascal Voc数据集详解 以Voc2012为例_第3张图片

其中xml主要介绍了对应图片的基本信息,如来自那个文件夹、文件名、来源、图像尺寸以及图像中包含哪些目标以及目标的信息等等,内容如下:


    VOC2012  #表明图片来源
    2007_000027.jpg #图片名称
                      #图片来源相关信息
        The VOC2007 Database
        PASCAL VOC2007
        flickr
    
         #图像尺寸
        486
        500
        3  #通道数
    
    0 #可否用于语义分割任务,1表示可以,也就是这张图片在SegmentationClass/Object里面有
      #检测的目标,如果有多个会有多个标签
        person #目标类别
        Unspecified #拍摄角度
        0 #是否被截断, 0表示完整  
        0 #目标是否难以识别, 0表示容易识别
          #bounding-box, 包含左下角和右上角xy坐标
            174
            101
            349
            351
        
         #头
            head
            
                169
                104
                209
                146
            
        
           #手
            hand
            
                278
                210
                297
                233
            
        
           #脚
            foot
            
                273
                333
                297
                354
            
        
        
            foot
            
                319
                307
                340
                326
            
        
    

 
  

2.  ImageSets文件夹

Pascal Voc数据集详解 以Voc2012为例_第4张图片

各个文件夹中存放的是各种用途的TXT文件。例如在Main文件夹下有名为aeroplane_train.txt的文件,顾名思义是用于飞机类别的训练数据。该txt的具体内容如下,其中±1表示的是正负样本:

①Action:存放的是人的动作。共10个动作标签,分别是:jumping、phoning、playinginstrument、reading、ridingbike、ridinghorse、running、takingphoto、usingcomputer、walking。

标签内容格式:2011_003279 1 1 (第一个1表示图中包含的人数。第二个表示图中人的动作状态是否满足:jumping,-1代表不跳)

Pascal Voc数据集详解 以Voc2012为例_第5张图片

②Layout:存放的是具有人体部位的数据(人的head、hand、feet等)

 

Pascal Voc数据集详解 以Voc2012为例_第6张图片

③Main:存放的是图像物体识别的数据,总共分为20类(算背景就是21类),包含了20个分类的***_train.txt(存放训练集的图片编号,每一个class的train数据都有5717个)、 ***_val.txt(存放验证集的图片编号,每一个class的val数据都有5832个) 和 ***_trainval.txt(存放以上两者的完全合并集,每一个class有5717+5832=11540个) 。

Pascal Voc数据集详解 以Voc2012为例_第7张图片

- 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和val两者没有交集,也就是训练数据和验证数据不能有重复,在选取训练数据的时候 ,也应该是随机产生的)

Pascal Voc数据集详解 以Voc2012为例_第8张图片

Pascal Voc数据集详解 以Voc2012为例_第9张图片

④Segmentation:存放的是可用于分割的图片的编号。

Pascal Voc数据集详解 以Voc2012为例_第10张图片

3.  JPEGImages文件夹

包含了PASCAL VOC所有的图片,包含训练图片和测试图片,共有17125张。图片均以“年份_编号.jpg”格式命名。图片的尺寸大小不一,所以在后面训练的时候需要对图片进行resize操作。

图片的像素尺寸大小不一,但是横向图的尺寸大约在500*375左右,纵向图的尺寸大约在375*500左右,基本不会偏差超过100。(在之后的训练中,第一步就是将这些图片都resize到300*300或是500*500,所有原始图片不能离这个标准过远,具体resize方式可以看最下面github链接里data.py。)

Pascal Voc数据集详解 以Voc2012为例_第11张图片

4.  SegmentationClass文件夹

共2913张图片,每一张图片都对应JPEGImages里的相应编号的图片。图片的像素颜色共有20种,对应20类物体。

Pascal Voc数据集详解 以Voc2012为例_第12张图片

5.  SegmentationObject文件夹

同样包含了2913张图片,图片编号都与SegmentationClass文件夹里面的图片编号相同。这里和Class里面图片的区别在于,这是针对Object的。

在Class里面,一张图片里如果有多架飞机,那么会全部标注为红色;而在Object里面,同一张图片里面的飞机也会被不同颜色标注出来。

Pascal Voc数据集详解 以Voc2012为例_第13张图片

注:参考了诸多资料后的统一整理,感谢大家的共同贡献,让学习更简单。

你可能感兴趣的:(深度学习)