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

相关文章

SpringBoot分段处理List集合多线程批量插入数据方式

《SpringBoot分段处理List集合多线程批量插入数据方式》文章介绍如何处理大数据量List批量插入数据库的优化方案:通过拆分List并分配独立线程处理,结合Spring线程池与异步方法提升效率... 目录项目场景解决方案1.实体类2.Mapper3.spring容器注入线程池bejsan对象4.创建

PHP轻松处理千万行数据的方法详解

《PHP轻松处理千万行数据的方法详解》说到处理大数据集,PHP通常不是第一个想到的语言,但如果你曾经需要处理数百万行数据而不让服务器崩溃或内存耗尽,你就会知道PHP用对了工具有多强大,下面小编就... 目录问题的本质php 中的数据流处理:为什么必不可少生成器:内存高效的迭代方式流量控制:避免系统过载一次性

C#实现千万数据秒级导入的代码

《C#实现千万数据秒级导入的代码》在实际开发中excel导入很常见,现代社会中很容易遇到大数据处理业务,所以本文我就给大家分享一下千万数据秒级导入怎么实现,文中有详细的代码示例供大家参考,需要的朋友可... 目录前言一、数据存储二、处理逻辑优化前代码处理逻辑优化后的代码总结前言在实际开发中excel导入很

Spring Security简介、使用与最佳实践

《SpringSecurity简介、使用与最佳实践》SpringSecurity是一个能够为基于Spring的企业应用系统提供声明式的安全访问控制解决方案的安全框架,本文给大家介绍SpringSec... 目录一、如何理解 Spring Security?—— 核心思想二、如何在 Java 项目中使用?——

MyBatis-plus处理存储json数据过程

《MyBatis-plus处理存储json数据过程》文章介绍MyBatis-Plus3.4.21处理对象与集合的差异:对象可用内置Handler配合autoResultMap,集合需自定义处理器继承F... 目录1、如果是对象2、如果需要转换的是List集合总结对象和集合分两种情况处理,目前我用的MP的版本

GSON框架下将百度天气JSON数据转JavaBean

《GSON框架下将百度天气JSON数据转JavaBean》这篇文章主要为大家详细介绍了如何在GSON框架下实现将百度天气JSON数据转JavaBean,文中的示例代码讲解详细,感兴趣的小伙伴可以了解下... 目录前言一、百度天气jsON1、请求参数2、返回参数3、属性映射二、GSON属性映射实战1、类对象映

Java Stream 并行流简介、使用与注意事项小结

《JavaStream并行流简介、使用与注意事项小结》Java8并行流基于StreamAPI,利用多核CPU提升计算密集型任务效率,但需注意线程安全、顺序不确定及线程池管理,可通过自定义线程池与C... 目录1. 并行流简介​特点:​2. 并行流的简单使用​示例:并行流的基本使用​3. 配合自定义线程池​示

C# LiteDB处理时间序列数据的高性能解决方案

《C#LiteDB处理时间序列数据的高性能解决方案》LiteDB作为.NET生态下的轻量级嵌入式NoSQL数据库,一直是时间序列处理的优选方案,本文将为大家大家简单介绍一下LiteDB处理时间序列数... 目录为什么选择LiteDB处理时间序列数据第一章:LiteDB时间序列数据模型设计1.1 核心设计原则

Java+AI驱动实现PDF文件数据提取与解析

《Java+AI驱动实现PDF文件数据提取与解析》本文将和大家分享一套基于AI的体检报告智能评估方案,详细介绍从PDF上传、内容提取到AI分析、数据存储的全流程自动化实现方法,感兴趣的可以了解下... 目录一、核心流程:从上传到评估的完整链路二、第一步:解析 PDF,提取体检报告内容1. 引入依赖2. 封装

PostgreSQL简介及实战应用

《PostgreSQL简介及实战应用》PostgreSQL是一种功能强大的开源关系型数据库管理系统,以其稳定性、高性能、扩展性和复杂查询能力在众多项目中得到广泛应用,本文将从基础概念讲起,逐步深入到高... 目录前言1. PostgreSQL基础1.1 PostgreSQL简介1.2 基础语法1.3 数据库