英文数据集txt_PASCAL VOC数据集标注格式

a93c01990a304e46cc3b5be2fb3c3b74.png

1. 简介

PASCAL VOC-Pattern Analysis Statical Modeling and Computational Learning

很多优秀的计算机视觉模型比如分类,定位,检测,分割,动作识别等模型都是基于PASCAL VOC挑战赛及其数据集上推出的,尤其是一些目标检测模型(比如大名鼎鼎的R CNN系列,以及后面的YOLO,SSD等)

2. 数据集

2.1 数据集分类

PASCAL VOC数据集共有4大类,vehicle ,household, animal, person,20小类,下图中黑色加粗字体所示

数据集主要关注分类和检测任务

07e7fbdf7456061c07ed9233e293e4e2.png

2.2 数据量

现在研究常用的数据集是VOC2007和VOC2012,VOC07包含9963张图片,总共24640物体,VOC12包含23080张图片,总共54900物体,两者对比如下:

61e99fc73eedf7bc6402e4cc69107f35.png
黑色字体所示数字是官方给定的,由于VOC2012数据集中 test 部分没有公布,因此红色字体所示数字为估计数据,按照PASCAL 通常的划分方法,即 trainval 与test 各占总数据量的一半

3. 标注信息格式

标注信息,采用xml文件格式组织如下,参考官网标注信息官网

<annotation>
	
  • filename 文件名
  • size 图片尺寸
  • segmented 是否分割
  • object 表明是否是一个目标,包含了目标的详细信息
    • name 20类别之一
    • pose 拍摄角度 left right front rear unspecified
    • truncated 目标是否被截断()比如在图片之外),或者被遮挡(超过15%)
    • difficult 检测难易程度,主要依据目标大小,光照变化,图片质量来判断的,图中用虚线dashed来标识
    • bndbox bounding box左上角和右下角的4个坐标值

6468e4f5a46b3a5513b7a8428b61cb68.png

4. 提交格式

4.1 classfication task

每一类都有一个txt文件,里面每一行都是测试集中的一张图片,前面一列是图片名称,后面一列是预测的分数

comp1_cls_test_car.txt:

000004 0.702732
000006 0.870849
000008 0.532489
000018 0.477167
000019 0.112426

4.2 object detection task

里面每一行都是测试集中的一张图片,每行的格式按照如下方式组织,confidence用来计算mAP

<image identifier> <confidence> <left> <top> <right> <bottom>

comp3_det_test_car.txt:

000004 0.702732 89 112 516 466
000006 0.870849 373 168 488 229
000006 0.852346 407 157 500 213
000006 0.914587 2 161 55 221
000008 0.532489 175 184 232 201

5. 评估标准

PASCAL的评估指标是mAP

PASCAL官方给了评估脚本mAP的脚本和示例代码development kit code and documentation,是用MATLAB写的

6. 数据集组织形式

数据集下载

# Download the data.
cd $HOME/data
wget http://host.robots.ox.ac.uk/pascal/VOC/voc2012/VOCtrainval_11-May-2012.tar
wget http://host.robots.ox.ac.uk/pascal/VOC/voc2007/VOCtrainval_06-Nov-2007.tar
wget http://host.robots.ox.ac.uk/pascal/VOC/voc2007/VOCtest_06-Nov-2007.tar
# Extract the data.
tar -xvf VOCtrainval_11-May-2012.tar
tar -xvf VOCtrainval_06-Nov-2007.tar

或者支直接点击下面链接下载:

  • Download the training/validation data (450MB tar file)
  • Download the annotated test data (430MB tar file)

上面的解压命令会将VOC2007的trainval和test解压到一块,数据会混在一起,如果不想,可以自己指定解压路径。以VOC 2007 为例,解压后的文件:

.
├── Annotations 进行detection 任务时的 标签文件,xml文件形式
├── ImageSets 存放数据集的分割文件,比如train,val,test
├── JPEGImages 存放 .jpg格式的图片文件
├── SegmentationClass 存放 按照class 分割的图片
└── SegmentationObject 存放 按照 object 分割的图片

Annotation文件夹,以xml 文件的形式,存放标签文件,文件内容如前述,文件名与图片名是一样的,6位整数

.
├── 000001.xml
├── 000002.xml
├── 000003.xml
├── 000004.xml
……
……
……
├── 009962.xml
└── 009963.xml

ImageSets文件夹,包含三个子文件夹,Layout, Main, Segmentation, 其中Main文件夹存放的是用于分类和检测的数据集分割文件,Layout文件夹用于 person layout任务,Segmentation用于分割任务

.
├── Layout
│   ├── test.txt
│   ├── train.txt
│   ├── trainval.txt
│   └── val.txt
├── Main
│   ├── aeroplane_test.txt
│   ├── aeroplane_train.txt
│   ├── aeroplane_trainval.txt
│   ├── aeroplane_val.txt
│   ├── bicycle_test.txt
│   ├── bicycle_train.txt
│   ├── bicycle_trainval.txt
│   ├── bicycle_val.txt
│   ├── bird_test.txt
│   ├── bird_train.txt
│   ├── bird_trainval.txt
│   ├── bird_val.txt
│   ├── boat_test.txt
│   ├── boat_train.txt
│   ├── boat_trainval.txt
│   ├── boat_val.txt
│   ├── bottle_test.txt
│   ├── bottle_train.txt
│   ├── bottle_trainval.txt
│   ├── bottle_val.txt
│   ├── bus_test.txt
│   ├── bus_train.txt
│   ├── bus_trainval.txt
│   ├── bus_val.txt
│   ├── car_test.txt
│   ├── car_train.txt
│   ├── car_trainval.txt
│   ├── car_val.txt
│   ├── cat_test.txt
│   ├── cat_train.txt
│   ├── cat_trainval.txt
│   ├── cat_val.txt
│   ├── chair_test.txt
│   ├── chair_train.txt
│   ├── chair_trainval.txt
│   ├── chair_val.txt
│   ├── cow_test.txt
│   ├── cow_train.txt
│   ├── cow_trainval.txt
│   ├── cow_val.txt
│   ├── diningtable_test.txt
│   ├── diningtable_train.txt
│   ├── diningtable_trainval.txt
│   ├── diningtable_val.txt
│   ├── dog_test.txt
│   ├── dog_train.txt
│   ├── dog_trainval.txt
│   ├── dog_val.txt
│   ├── horse_test.txt
│   ├── horse_train.txt
│   ├── horse_trainval.txt
│   ├── horse_val.txt
│   ├── motorbike_test.txt
│   ├── motorbike_train.txt
│   ├── motorbike_trainval.txt
│   ├── motorbike_val.txt
│   ├── person_test.txt
│   ├── person_train.txt
│   ├── person_trainval.txt
│   ├── person_val.txt
│   ├── pottedplant_test.txt
│   ├── pottedplant_train.txt
│   ├── pottedplant_trainval.txt
│   ├── pottedplant_val.txt
│   ├── sheep_test.txt
│   ├── sheep_train.txt
│   ├── sheep_trainval.txt
│   ├── sheep_val.txt
│   ├── sofa_test.txt
│   ├── sofa_train.txt
│   ├── sofa_trainval.txt
│   ├── sofa_val.txt
│   ├── test.txt
│   ├── train_test.txt
│   ├── train_train.txt
│   ├── train_trainval.txt
│   ├── train.txt
│   ├── train_val.txt
│   ├── trainval.txt
│   ├── tvmonitor_test.txt
│   ├── tvmonitor_train.txt
│   ├── tvmonitor_trainval.txt
│   ├── tvmonitor_val.txt
│   └── val.txt
└── Segmentation
    ├── test.txt
    ├── train.txt
    ├── trainval.txt
    └── val.txt
    
3 directories, 92 files

主要介绍一下Main文件夹中的组织结构,先来看以下这几个文件:

├── Main
│   ├── train.txt 写着用于训练的图片名称 共2501个
│   ├── val.txt 写着用于验证的图片名称 共2510个
│   ├── trainval.txt train与val的合集 共5011个
│   ├── test.txt 写着用于测试的图片名称 共4952个

里面的文件内容是下面这样的:以train.txt文件为例

000012
000017
000023
000026
000032
000033
000034
000035
000036
000042
……
……
009949
009959
009961

就是对数据库的分割,这一部分图片用于train,其他的用作val,test等。

Main中剩下的文件很显然就是每一类别在train或val或test中的ground truth,这个ground truth是为了方便classification 任务而提供的;如果是detection的话,使用的是上面的xml标签文件

├── Main
│   ├── aeroplane_test.txt 写着用于训练的图片名称 共2501个,指定正负样本
│   ├── aeroplane_train.txt 写着用于验证的图片名称 共2510个,指定正负样本
│   ├── aeroplane_trainval.txt train与val的合集 共5011个,指定正负样本
│   ├── aeroplane_val.txt 写着用于测试的图片名称 共4952个,指定正负样本
……
……

里面文件是这样的(以aeroplane_train.txt为例):

000012 -1
000017 -1
000023 -1
000026 -1
000032  1
000033  1
000034 -1
000035 -1
000036 -1
000042 -1
……
……
009949 -1
009959 -1
009961 -1

前面一列是训练集中的图片名称,这一列跟train.txt文件中的内容是一样的,后面一列是标签,即训练集中这张图片是不是aeroplane,是的话为1,否则为-1.

其他所有的 (class)_(imgset).txt 文件都是类似的。

  • (class)_train 存放的是训练使用的数据,每一个class都有2501个train数据。
  • (class)_val 存放的是验证使用的数据,每一个class都有2510个val数据。
  • (class)_trainval 将上面两个进行了合并,每一个class有5011个数据。
  • (class)_test 存放的是测试使用的数据,每一个class有4952个test数据。

所有文件都 指定了正负样本,每个class的实际数量为正样本的数量,train和val两者没有交集。

VOC2012 的数据集组织结构是类似的,不一样的地方在于VOC2012 中没有 test类的图片和以及相关标签和分割文件,因为这部分数据 VOC2012没有公布。

参考文件

Pascal VOC 数据集介绍​blog.csdn.net Pascal VOC 数据集介绍​blog.csdn.net
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值