Pascal VOC(VOC 2012、VOC 2007) 数据集的简介

2024-04-17 22:20
文章标签 数据 2012 简介 2007 pascal voc

本文主要是介绍Pascal VOC(VOC 2012、VOC 2007) 数据集的简介,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

一、数据集介绍

       PascalVOC(2005~2012)数据集是PASCAL VOC挑战官方使用的数据集。该数据集包含20类的物体。每张图片都有标注,标注的物体包括人、动物(如猫、狗、岛等)、交通工具(如车、船飞机等)、家具(如椅子、桌子、沙发等)在内的20个类别。每个图像平均有2.4个目标,所有的标注图片都有目标检测需要的标签。

       VOC2007 与 VOC2012

  • VOC2007:包含9963张标注过的图片, 由train/val/test三部分组成, 共标注出24,640个物体。 VOC2007的test数据label已经公布, 之后的没有公布(只有图片,没有label)。
  • VOC2012:是VOC2007数据集的升级版,一共有11530张图片。对于检测任务,VOC2012的trainval/test包含08-11年的所有对应图片。 trainval有11540张图片共27450个物体。 对于分割任务, VOC2012的trainval包含07-11年的所有对应图片, test只包含08-11。trainval有 2913张图片共6929个物体。    

       VOC2012数据集分为20类,包括背景为21类,分别如下:
       人:人
       动物:鸟、猫、牛、狗、马、羊
       车辆:飞机、自行车、船、巴士、汽车、摩托车、火车
       室内:瓶、椅子、餐桌、盆栽植物、沙发、电视/监视器

二、文件夹介绍

    Pascal VOC2012数据集包括五个文件夹:

1. Annotation文件夹

        Annotation:存放xml格式的标注信息,​一个xml文件对应一张图片,里面通过标签包围数据,如: 

具体解释如下:

<annotation><folder>VOC2012</folder><filename>2007_000027.jpg</filename>  <!-- 对应的图片名字 --><source><database>The VOC2007 Database</database><annotation>PASCAL VOC2007</annotation><image>flickr</image></source><size>		             <!-- 对应图片的尺寸和通道数  --><width>486</width>   <!--宽  --><height>500</height> <!-- 高 --><depth>3</depth>     <!-- 通道数为3,表示为彩色 --></size><segmented>0</segmented>	<object>	                 <!-- 图片里面的对象信息  --><name>person</name>		 <!-- 这里对象为:人  --><pose>Unspecified</pose><truncated>0</truncated><difficult>0</difficult> <!-- 表示是否为难以训练的数据,0表示不是  --><bndbox>		        <!-- 真实框的坐标信息,通常为左上角和右下角坐标  --><xmin>174</xmin>	<!-- 左上角x坐标 --><ymin>101</ymin>	<!-- 左上角y坐标 --><xmax>349</xmax>    <!-- 右下角x坐标 --><ymax>351</ymax>    <!-- 右下角y坐标 --></bndbox><part>		            <!-- 人的组成部分,比如头、手、脚  --><name>head</name>	<!-- 这里是人的部位:头 --><bndbox>	        <!-- 头的边界框信息  --><xmin>169</xmin><ymin>104</ymin><xmax>209</xmax><ymax>146</ymax></bndbox></part><part>                  <!-- 人的组成部分,比如头、手、脚  --><name>hand</name>   <!-- 这里是人的部位:手 --><bndbox>            <!-- 手的边界框信息  --><xmin>278</xmin><ymin>210</ymin><xmax>297</xmax><ymax>233</ymax></bndbox></part><part><name>foot</name><bndbox><xmin>273</xmin><ymin>333</ymin><xmax>297</xmax><ymax>354</ymax></bndbox></part><part><name>foot</name><bndbox><xmin>319</xmin><ymin>307</ymin><xmax>340</xmax><ymax>326</ymax></bndbox></part></object>
</annotation>

2. JPEGImages文件夹

     JPEGImages:存放所有图片,包括训练图片和测试图片。命名格式为:2007_000032.jpg

3. ImageSets文件夹

    ImageSets:存放每一种任务对应的数据,其又划分为四个文件夹

(1) Action文件夹:

      存放人体动作的txt文件,比如跳跃、打电话、读书等。而每个动作又分三类为训练集、训练的验证集和测试集。

       内容案例如下,每列数字分别表示:图像ID、人数、动作状态

  • 图像ID(如 2011_003285):这是图像的唯一标识符,用于在数据集中定位特定的图像。
  • 人数(如 1,2,3,4):这一列表示在对应图像中检测到的人数。例如,1 表示图像中有一个人,2 表示图像中有两个人,以此类推。
  • 动作状态(如 -1):这一列表示图像中对应的人的动作状态是否满足action文件所列举的10个动作标签之一(如jumping, phoning, playing instrument等)。通常,正数(如1)表示满足某个动作标签,而-1表示不满足或未标注。
 (2) Layout文件夹

      存放人体部位的txt文件,同样又分为训练集、训练的验证集和测试集。

(3) Main文件夹

       存放类别信息的txt文件,是最重要的文件夹,里面是图像检测的数据,共20个类别,同样又分为训练集、训练的验证集和测试集。

       内容如下,第一列是对应的图片名字,第二列表示这个对象是否出现在该图像中,1表示出现,-1表示没有出现。

​ 注意,在Main文件夹下,有两个最重要的txt文件,分别为train.txt和val.txt。这两个文件夹是总的划分,即相当于机器学习中的训练集和测试集的划分一样,需要保证两者数据不交叉。而这个文件也是我们后面训练需要用到的文件。

(4) Segmentation文件夹

       存放分割训练的txt文件,分别为图像分割用到的训练、训练的验证集和测试集。这里对应的不仅仅是图片名字,还对应了分割文件夹下的分割图片。

4. SegmentationClass文件夹

    SegmentationClass:语义分割任务中用到的label图片。

5. SegmentationObject文件夹

    SegmentationObject:实例分割任务用到的label图片,即图像分割(即同一类别也要区分颜色)后的图像,如:

总结:

       对数据了解后,才好对数据进行处理,例如需要对数据进行增强或其他处理。

这篇关于Pascal VOC(VOC 2012、VOC 2007) 数据集的简介的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/913015

相关文章

Java利用JSONPath操作JSON数据的技术指南

《Java利用JSONPath操作JSON数据的技术指南》JSONPath是一种强大的工具,用于查询和操作JSON数据,类似于SQL的语法,它为处理复杂的JSON数据结构提供了简单且高效... 目录1、简述2、什么是 jsONPath?3、Java 示例3.1 基本查询3.2 过滤查询3.3 递归搜索3.4

MySQL大表数据的分区与分库分表的实现

《MySQL大表数据的分区与分库分表的实现》数据库的分区和分库分表是两种常用的技术方案,本文主要介绍了MySQL大表数据的分区与分库分表的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有... 目录1. mysql大表数据的分区1.1 什么是分区?1.2 分区的类型1.3 分区的优点1.4 分

Mysql删除几亿条数据表中的部分数据的方法实现

《Mysql删除几亿条数据表中的部分数据的方法实现》在MySQL中删除一个大表中的数据时,需要特别注意操作的性能和对系统的影响,本文主要介绍了Mysql删除几亿条数据表中的部分数据的方法实现,具有一定... 目录1、需求2、方案1. 使用 DELETE 语句分批删除2. 使用 INPLACE ALTER T

Python Dash框架在数据可视化仪表板中的应用与实践记录

《PythonDash框架在数据可视化仪表板中的应用与实践记录》Python的PlotlyDash库提供了一种简便且强大的方式来构建和展示互动式数据仪表板,本篇文章将深入探讨如何使用Dash设计一... 目录python Dash框架在数据可视化仪表板中的应用与实践1. 什么是Plotly Dash?1.1

Redis 中的热点键和数据倾斜示例详解

《Redis中的热点键和数据倾斜示例详解》热点键是指在Redis中被频繁访问的特定键,这些键由于其高访问频率,可能导致Redis服务器的性能问题,尤其是在高并发场景下,本文给大家介绍Redis中的热... 目录Redis 中的热点键和数据倾斜热点键(Hot Key)定义特点应对策略示例数据倾斜(Data S

Python实现将MySQL中所有表的数据都导出为CSV文件并压缩

《Python实现将MySQL中所有表的数据都导出为CSV文件并压缩》这篇文章主要为大家详细介绍了如何使用Python将MySQL数据库中所有表的数据都导出为CSV文件到一个目录,并压缩为zip文件到... python将mysql数据库中所有表的数据都导出为CSV文件到一个目录,并压缩为zip文件到另一个

SpringBoot整合jasypt实现重要数据加密

《SpringBoot整合jasypt实现重要数据加密》Jasypt是一个专注于简化Java加密操作的开源工具,:本文主要介绍详细介绍了如何使用jasypt实现重要数据加密,感兴趣的小伙伴可... 目录jasypt简介 jasypt的优点SpringBoot使用jasypt创建mapper接口配置文件加密

使用Python高效获取网络数据的操作指南

《使用Python高效获取网络数据的操作指南》网络爬虫是一种自动化程序,用于访问和提取网站上的数据,Python是进行网络爬虫开发的理想语言,拥有丰富的库和工具,使得编写和维护爬虫变得简单高效,本文将... 目录网络爬虫的基本概念常用库介绍安装库Requests和BeautifulSoup爬虫开发发送请求解

Oracle存储过程里操作BLOB的字节数据的办法

《Oracle存储过程里操作BLOB的字节数据的办法》该篇文章介绍了如何在Oracle存储过程中操作BLOB的字节数据,作者研究了如何获取BLOB的字节长度、如何使用DBMS_LOB包进行BLOB操作... 目录一、缘由二、办法2.1 基本操作2.2 DBMS_LOB包2.3 字节级操作与RAW数据类型2.

MySQL使用binlog2sql工具实现在线恢复数据功能

《MySQL使用binlog2sql工具实现在线恢复数据功能》binlog2sql是大众点评开源的一款用于解析MySQLbinlog的工具,根据不同选项,可以得到原始SQL、回滚SQL等,下面我们就来... 目录背景目标步骤准备工作恢复数据结果验证结论背景生产数据库执行 SQL 脚本,一般会经过正规的审批