前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >PASCAL VOC2012 数据集详解

PASCAL VOC2012 数据集详解

作者头像
OpenCV学堂
发布2019-08-14 11:33:58
5.8K0
发布2019-08-14 11:33:58
举报

点击上方↑↑↑“OpenCV学堂”关注我

关注可学习更多的OpenCV教程。 问题或建议,请公众号留言; 如果你觉得文章对你有帮助,欢迎转发支持

概述

Pascal VOC2012作为基准数据之一,在对象检测、图像分割网络对比实验与模型效果评估中被频频使用,但是如果没有制作过此格式的数据集就会忽略很多细节问题,今天我们一起来从头到尾扒一扒Pascal VOC2012 数据集各种细节问题。

Pascal VOC2012数据集主要是针对视觉任务中监督学习提供标签数据,它有二十个类别:

代码语言:javascript
复制
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

主要有四个大类别,分别是人、常见动物、交通车辆、室内家具用品。主要为图像分类、对象检测识别、图像分割三类任务服务。

图像分类与检测

分类:在测试图像预测是否为二十个分类之一,正确分类

检测:在测试图像上预测二十个分类对象的有无与位置信息

图像分割

分割:对每个对象与类别生成像素级别的分割标签,确定像素是为目标20个分类或者背景。

此外Pascal VOC还提供一些很有意思的标注数据包括行为识别、人体Layout分析等。

行为识别数据:预测图像中人的行为动作

Person Layout标注,检测人与其各个身体组成部分,如果手、脚、头等

数据集结构与描述

Pascal VOC2012的文件结构如下:

Annotations

里面是图像对应的XML标注信息描述,每张图像有一个与之对应同名的描述XML文件,XML前面部分声明图像数据来源,大小等元信息,举例如下:

上面表示图像对应路径为VOC2012/JPEGImages/2007_000033.jpg,来自flickr网站上,大小为WxHxC=500x366x3,是三通道的彩色图像,其中segmented为1有分割标注,0表示没有分割标注。后面的是对象检测的每个BOX标签信息极其描述信息,图示如下:

其中每个object标签是表示单独的box信息与对象描述,一张图像可以有多个object标签(boxes),

代码语言:javascript
复制
-name 表示对象类别
-pose 表示采用是从什么视角,常见的有Left、Right、Frontal、rear,
-difficult 是否被标记为很难识别对称,0表示不是,1表示是
-truncated 是否被标记为截断,0表示没有,1表示是
-Bndbox 标签描述box框在图像上的 位置

ImageSets

里面是标注类别的每个文件列表信息,Action中是所有具有Action标注信息图像文件名的txt文件列表,Layout中的txt文件表示包含Layout标注信息的图像文件名列表,Main文件夹中包含20个类别每个类别一个txt文件,每个txt文件都是包含该类别的图像文件名称列表,Segmentation则是包含语义分割信息图像文件的列表。

train.txt表示是的训练数据集合 val.txt 表示验证集数据 trainval.txt表示训练与验证集数据 test.txt表示测试集数据

Pascal VOC2012 Main中统计的训练、验证、验证与训练、测试图像如下:

可以看出训练图像有5717张,目标数13609个。

在main中针对每个类别都有个三个文件,分别为:

CLASSNAME_train.txt CLASSNAME_trainval.txt CLASSNAME_val.txt

以CLASSNAME = aeroplane为例,main中的三个文件分别为:

aeroplane_train.txt aeroplane_trainval.txt aeroplane_val.txt

每个类别txt文件里面的内容格式为

图像文件名 + 空格 + 标记,以aeroplane_train.txt中的举例如下:

2008_000290 0 2008_000291 1 2008_000297 -1

其中2008_000290、2008_000291、2008_000297表示三张图像文件名

0 表示图像中包含aeroplane对象但是难识别样本 1 表示图像中包含aeroplane -1 表示图像中不包含aeroplane

JPEGImages

所有的原始图像文件,格式必须是JPG格式,这个要特别注意!如果你打算使用VOC2012格式生成数据,那么原始图像格式在采样时候请用JPG格式保存,避免后期生成使用tensorflow工具生成的时候出错。

SegmentationClass

所有分割的图像标注,分割图像安装每个类别标注的数据

SegmentationObject

所有分割的图像标注,分割图像安装每个类别每个对象不同标注的数据

性能评价

对象检测类任务的性能评价是基于AP/AR 根据精度召回曲线计算mAP,相关阅读参考之前的文章即可:

详解对象检测网络性能评价指标mAP计算

图像分割类任务的性能评价是基于图像的平均分割精度,即20个类别与背景类别的分割计算得到:

标注制作

我喜欢用的制作VOC2012数据集的标注工具为labelImg

简单好用,自动生成VOC2012 Annotation XML文件。

更多数据标注与数据集制作工具参考之前的文章:

十个最常用深度学习图像/视频数据标注工具

参考资料

代码语言:javascript
复制
http://host.robots.ox.ac.uk/pascal/VOC/voc2012/index.html
本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-08-12,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 OpenCV学堂 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档