之前有在Bilibili上简单介绍过这个数据集,但一直没有写博文,今天抽空总结下,如果不想看文章的,可以看下我在Bilibili上的讲解视频。

Pascal VOC2012数据集详解视频: https://b23.tv/F1kSCK
Pascal VOC2012官网地址:http://host.robots.ox.ac.uk/pascal/VOC/voc2012/
官方发表关于介绍数据集的文章 《The PASCALVisual Object Classes Challenge: A Retrospective》:http://host.robots.ox.ac.uk/pascal/VOC/pubs/everingham15.pdf


文章目录

  • 1 简介
  • 2 Pascal VOC数据集目标类别
  • 3 数据集下载与目录结构
  • 4 目标检测任务
  • 5 语义分割任务
  • 6 实例分割任务
  • 7 类别索引与名称对应关系

1 简介

PASCAL VOC挑战赛 (The PASCAL Visual Object Classes )是一个世界级的计算机视觉挑战赛,PASCAL全称:Pattern Analysis, Statical Modeling and Computational Learning,是一个由欧盟资助的网络组织。PASCAL VOC挑战赛主要包括以下几类:图像分类(Object Classification)目标检测(Object Detection)目标分割(Object Segmentation)行为识别(Action Classification) 等。

  • 图像分类与目标检测任务
  • 分割任务,注意,图像分割一般包括语义分割、实例分割和全景分割,实例分割是要把每个单独的目标用一种颜色表示(下图中间的图像),而语义分割只是把同一类别的所有目标用同一颜色表示(下图右侧的图片)。
  • 行为识别任务
  • 人体布局检测任务

2 Pascal VOC数据集目标类别

在Pascal VOC数据集中主要包含20个目标类别,下图展示了所有类别的名称以及所属超类。


3 数据集下载与目录结构

下载地址: http://host.robots.ox.ac.uk/pascal/VOC/voc2012/index.html#devkit

打开链接后如下图所示,只用下载training/validation data (2GB tar file)文件即可。

下载后将文件进行解压,解压后的文件目录结构如下所示:

VOCdevkit└── VOC2012├── Annotations               所有的图像标注信息(XML文件)├── ImageSets    │   ├── Action                人的行为动作图像信息│   ├── Layout                人的各个部位图像信息│   ││   ├── Main                  目标检测分类图像信息│   │     ├── train.txt       训练集(5717)│   │     ├── val.txt         验证集(5823)│   │     └── trainval.txt    训练集+验证集(11540)│   ││   └── Segmentation          目标分割图像信息│         ├── train.txt       训练集(1464)│         ├── val.txt         验证集(1449)│         └── trainval.txt    训练集+验证集(2913)│ ├── JPEGImages                所有图像文件├── SegmentationClass         语义分割png图(基于类别)└── SegmentationObject        实例分割png图(基于目标)

注意,train.txtval.txttrainval.txt文件里记录的是对应标注文件的索引,每一行对应一个索引信息。如下图所示:


4 目标检测任务

接下来简单介绍下如何使用该数据集中目标检测的数据。

  • 首先在Main文件中,读取对应的txt文件(注意,在Main文件夹里除了train.txtval.txttrainval.txt文件外,还有针对每个类别的文件,例如bus_train.txtbus_val.txtbus_trainval.txt)。比如使用train.txt中的数据进行训练,那么读取该txt文件,解析每一行。上面说了每一行对应一个标签文件的索引。
   ├── Main                  目标检测分类图像信息│     ├── train.txt       训练集(5717)│     ├── val.txt         验证集(5823)│     └── trainval.txt    训练集+验证集(11540)
  • 接着通过索引在Annotations文件夹下找到对应的标注文件(.xml)。比如索引为2007_000323,那么在Annotations 文件夹中能够找到2007_000323.xml文件。如下图所示,在标注文件中包含了所有需要的信息,比如filename,通过在字段能够在JPEGImages 文件夹中能够找到对应的图片。size记录了对应图像的宽、高以及channel信息。每一个object代表一个目标,其中的name记录了该目标的名称,pose表示目标的姿势(朝向),truncated表示目标是否被截断(目标是否完整),difficult表示该目标的检测难易程度(0代表简单,1表示困难),bndbox记录了该目标的边界框信息。

  • 接着通过在标注文件中的filename字段在JPEGImages 文件夹中找到对应的图片。比如在2007_000323.xml文件中的filename字段为2007_000323.jpg,那么在JPEGImages 文件夹中能够找到2007_000323.jpg文件。


5 语义分割任务

接下来简单介绍下如何使用该数据集中语义分割的数据。

  • 首先在Segmentarion文件中,读取对应的txt文件。比如使用train.txt中的数据进行训练,那么读取该txt文件,解析每一行,每一行对应一个图像的索引。
  └── Segmentation          目标分割图像信息├── train.txt       训练集(1464)├── val.txt         验证集(1449)└── trainval.txt    训练集+验证集(2913)
  • 根据索引在JPEGImages 文件夹中找到对应的图片。还是以2007_000323为例,可以找到2007_000323.jpg文件。

  • 根据索引在SegmentationClass文件夹中找到相应的标注图像(.png)。还是以2007_000323为例,可以找到2007_000323.png文件。

    注意,在语义分割中对应的标注图像(.png)用PIL的Image.open()函数读取时,默认是P模式,即一个单通道的图像。在背景处的像素值为0,目标边缘处用的像素值为255(训练时一般会忽略像素值为255的区域),目标区域内根据目标的类别索引信息进行填充,例如人对应的目标索引是15,所以目标区域的像素值用15填充。

6 实例分割任务

  • 同样首先在Segmentarion文件中,读取对应的txt文件。比如使用train.txt中的数据进行训练,那么读取该txt文件,解析每一行,每一行对应一个图像的索引。
  └── Segmentation          目标分割图像信息├── train.txt       训练集(1464)├── val.txt         验证集(1449)└── trainval.txt    训练集+验证集(2913)
  • 根据索引在JPEGImages 文件夹中找到对应的图片。这里以2007_000032为例,可以找到2007_000032.jpg文件,如下图所示。
  • 再根据索引在SegmentationObject文件夹中找到相应的标注图像(.png)。还是以2007_000032为例,可以找到2007_000032.png文件。

    注意,在实例分割中对应的标注图像(.png)用PIL的Image.open()函数读取时,默认是P模式,即一个单通道的图像。在背景处的像素值为0,目标边缘处或需要忽略的区域用的像素值为255(训练时一般会忽略像素值为255的区域)。然后在Annotations文件夹中找到对应的xml文件,解析xml文件后会得到每个目标的信息,而对应的标注文件(.png)的每个目标处的像素值是按照xml文件中目标顺序排列的。如下图所示,xml文件中每个目标的序号是与标注文件(.png)中目标像素值是对应的。


7 类别索引与名称对应关系

下面给出在Pascal VOC数据集中各目标类别名称与类别索引对应关系:

{"background": 0,"aeroplane": 1,"bicycle": 2,"bird": 3,"boat": 4,"bottle": 5,"bus": 6,"car": 7,"cat": 8,"chair": 9,"cow": 10,"diningtable": 11,"dog": 12,"horse": 13,"motorbike": 14,"person": 15,"pottedplant": 16,"sheep": 17,"sofa": 18,"train": 19,"tvmonitor": 20
}

PASCAL VOC2012数据集介绍相关推荐

  1. PspNet在MMsegmentation框架下成功训练Pascal VOC2012数据集及踩坑实录

    时间:2021/08/29/05:45:28 一晚上了,难以置信,我竟然还不困,还有着整理博客的冲动.也就在这周,熬夜能力突然就在几个晚上的不归宿中突破了,一夜过后天壤之别,一晚比一晚能熬,之前还会担 ...

  2. PASCAL VOC2012数据集

    PASCAL VOC2012数据集 下载的官方网址:http://host.robots.ox.ac.uk/pascal/voc/voc2012/index.html#devkit 一.介绍与下载 P ...

  3. 目标检测数据集-Pascal VOC 数据集介绍

    个人微信公众号:AI研习图书馆 ID:(Art-Intelligence) 欢迎关注,交流学习,共同进步~ 1.引言 PASCAL VOC数据集,为图像识别和分类提供了一整套标准化的优秀数据集,从20 ...

  4. Pascal VOC 数据集介绍(tensorflow model zoo)

    Pascal VOC 数据集的下载 # 下载2007年的训练数据 wget http://host.robots.ox.ac.uk/pascal/VOC/voc2007/VOCtrainval_06- ...

  5. Ubuntu 16.04下Caffe-SSD的应用(六)——PASCAL VOC2007数据集介绍

    前言 1.PASCAL VOC为图像识别与分类提供了一整套标准化的图像数据集,VOC数据集是衡量图像分类识别能力的基准,好多深度学习的框架在识别这块都以此数据集作为演示样例.PASCAL VOC数据集 ...

  6. Pascal Voc数据集介绍

    1.Pascal Voc数据集下载地址 :http://host.robots.ox.ac.uk/pascal/VOC/voc2012/VOCtrainval_11-May-2012.tar 2.Pa ...

  7. PASCAL VOC2012 数据集讲解与制作自己的数据集

    前言 随着人工智能的不断发展,机器学习这门技术也越来越重要,很多人都开启了学习机器学习,本文就介绍了机器学习的基础内容.来源于哔哩哔哩博主"霹雳吧啦Wz",博主学习作为笔记记录,欢 ...

  8. Pascal VOC2012数据集下载

    数据集下载 刚发现原来数据集下载也是这么麻烦的一件事情,还有人用链接换积分.还好找到了一个好心人,连接在下面. 好心人的网址 他给的链接地址 https://pjreddie.com/projects ...

  9. 【图像分类】基于Pascal VOC2012增强数据的多标签图像分类实战

    接着上一次的多标签分类综述,本文主要以Pascal VOC2012增强数据集进行多标签图像分类训练,详细介绍增强数据集制作.训练以及指标计算过程,并通过代码进行详细阐述,希望能为大家提供一定的帮助! ...

  10. python不同曲线设置标签_【图像分类】基于Pascal VOC2012增强数据的多标签图像分类实战...

    接着上一次的多标签分类综述,本文主要以Pascal VOC2012增强数据集进行多标签图像分类训练,详细介绍增强数据集制作.训练以及指标计算过程,并通过代码进行详细阐述,希望能为大家提供一定的帮助! ...

最新文章

  1. 特别推荐:15个精美 Metro UI 风格 WordPress 主题
  2. 使用tab键分割的文章能快速转换成表格。( )_无需按空格键,就能将Word文字对齐,3种方法了解一下...
  3. vue 打包后访问接口报错404 解决方案 (前提是在vue里使用了代理)
  4. SpannableString
  5. AXIS2使用问题解决点滴
  6. 分布式 RPC架构简单理解
  7. 评审恩仇录——我为什么愿意执行代码评审
  8. Linux 多线程开发-等待线程结束pthread_join
  9. C++ Deque(双向队列
  10. 开源,并不意味着免费、开源,不是道德绑架
  11. notepad实现垂直标签
  12. Android代码修改SIM的PIN码,关于设置SIM卡PIN码及查询PUK码的教程
  13. WinForm界面开发
  14. 计算机程序无法响应如何解决,电脑卡死出现应用程序未响应不可以正常工作怎么办?...
  15. kylin构建cube时step1报错MoveTask
  16. 永恒python+6_永恒中心 – Eternal Center
  17. 想要制作出好看的软蜡笔画?来看这份JixiPix Pastello Pro操作指南!
  18. 回车符号和换行符号产生背景
  19. 在html中控制自动换行 1
  20. 超越Yann LeCun:世界模型的学习和推理

热门文章

  1. libiconv android编译,linux环境下libiconv库基于Android NDK的编译方法
  2. linux dosbox使用教程,在主流Linux操作系统上安装DOSBox的方法
  3. 怎样正确做 Web 应用的压力测试?
  4. 小米8 QFIL 刷机
  5. 关于Demo3D中的Random
  6. 2022年华为杯研究生数学建模竞赛ABCDEF题思路资料汇总贴
  7. 微信小程序系列(5)如何用微信小程序写一个论坛?贴心代码详解(三)列表页
  8. 基于NXP iMX8测试Secure Boot功能部署
  9. 【黑苹果】宏基Acer Predator Helios 300+ i7-7700HQ+Opencore +MacOS10.14.6 efi文件下载!
  10. 【正点原子STM32连载】第一章 本书学习方法 摘自【正点原子】MiniPro STM32H750 开发指南_V1.1