VOC数据集解析 VOC2007解析

article/2025/10/29 18:14:01

 

 

VOC数据是 PASCAL VOC Challenge 用到的数据集,官网:http://host.robots.ox.ac.uk/pascal/VOC/

备注:VOC数据集常用的均值为:mean_RGB=(122.67891434, 116.66876762,  104.00698793)

pytorch上通用的数据集的归一化指标为:mean=(0.485, 0.456,  0.406) ,std=(0.229, 0.224, 0.225)

这里以常用的 VOC2007数据集 作为代表来讲解一下VOC数据集

1.下载数据

官网:http://host.robots.ox.ac.uk/pascal/VOC/voc2007/index.html

训练集/验证集: http://host.robots.ox.ac.uk/pascal/VOC/voc2007/VOCtrainval_06-Nov-2007.tar

DevKit:http://host.robots.ox.ac.uk/pascal/VOC/voc2007/VOCdevkit_08-Jun-2007.tar

带有标记的测试集:http://host.robots.ox.ac.uk/pascal/VOC/voc2007/VOCtest_06-Nov-2007.tar

这里说明一下,VOC官方给出的数据集中,只有VOC2007是给出了带有标记的测试集的,

其他年份的数据集是没有给测试集test set的,只给的有带标记的验证集 annotatied validation set

 

至于训练集train set、验证集validation set 和 测试集 test set 分别是用来干什么的,属实是没有必要在这里讲...常识性知识

 

那么下载完成后得到如下压缩包:

分开来讲这三个包:

2. VOCdevikit:

其实就是 development kit code and documentation ,开发工具包代码和文档,换句话说就是怎么做出这个数据集的一些代码,和关于此数据集的说明书。解压后如下:

 

得到一个VOCdevkit,再打开里面:

如图所示,就是一些MATLAB代码,就是用这些代码处理的这个数据集,基本上没什么用,唯一可以看看的就是那个devkit_doc.pdf, 就是一个比较详细的说明书,有兴趣可以自己看看,比较细。

总结起来,这个压缩包对于我们使用数据 并没有什么用…,因为真正的图片并没有装在这里面,所以其实可下可不下;

 

3、VOCtrainval_06-Nov-2007,

这就是我们的训练集和验证集,解压后如下:

 

同样也是一个VOCdevkit,然后打开:

 

里面便是VOC2007,再点开,就得到5个文件夹:

 

这就是我们需要搞清楚的5个文件夹了,

A. Annotations

字面意思,就是标注信息,打开之后全是xml文件,文件名就是图像名称,

每个文件里面有该图片的一些标注信息,训练时要用的label信息其实就来源于此文件夹

 

B.ImageSets

这个文件夹值得好好看一下,从名称可以猜到,这个是文件夹是 图像集合 ,

点开之后有3个文件夹:Layout 、 Main、 Segmentation

为什么会有3个文件夹呢,这其实对应的是 VOC challenge 3类不同的任务!!!

VOC challenge的 Main task,其实是 classification 和 detection

所以在Main文件夹中,包含的就是这两个任务要用到的图像集合!

此外还有两个 taster tasks :Layout 和 Segmentation

这两个任务 也有各自需要用到的图像,就分别存于两个文件夹中

所以这3个文件夹中包含的是3类不同的任务需要用到的不同的图片集合

我们可以点开看一看,比如点开Layout,会有train.txt 、trainval.txt 、val.txt:

点开Segmentation,也有train.txt 、trainval.txt、 val.txt

这三个文本文档中,写的是图像的  ID号码 ,

train表示的是训练集,val表示的是验证集, trainval是把前两者写到了一起

Main文件夹单独讲一下:

如图,打开之后有很多文本文档,一共有63个,这63个怎么来的呢?

首先你可以从中找到 train.txt、 trainval.txt、 val.txt 这 ,就如同前面两个文件夹一样,这三个文本文档肯定是有的,意思也是一样的。

还有20个是怎么来的?那就是20个类

• person

• bird, cat, cow, dog, horse, sheep

• aeroplane, bicycle, boat, bus, car, motorbike, train

• bottle, chair, dining table, pottedplant, sofa, tv/monitor

一共20个类别,每个类别有该类的 类别名_train.txt 类别名_trainval.txt 类别名_val.txt 这3个文本,则20 x 3 = 60

加上上面的3个,就是 63个文本文档。

注意一点,这里面有三个文本文档名字是:train_train.txt 、train_trainval.txt 、train_val.txt

下划线前面的 train 是 ‘火车’, 下划线后面的 train 才是‘训练’,千万不要混到一起了

 

然后打开这些子类的文本文档的时候,会稍显不同,

比如打开aeroplane_train.txt (飞机)bicycle_train.txt (自行车)和 train.txt

你会发现它们都有2501行,是说此任务训练集图片共有2501个

只不过 aeroplane_train.txt bicycle_train.txt 每一行的图像ID后面 还跟了一个数字

要么是-1, 要么是1,有时候也可能会出现0.

意义如下:

-1表示当前图像中,没有该类物体;

1 表示当前图像中有该类物体;

0 的话,我看了几张标0 的图像,似乎是说当前图像中,该类物体只露出了一部分

所以我们在做训练时,读取图像的时候,其实就是先从这个ImageSets文件夹中,找到对应任务的子文件夹,

然后读取其中txt文本文档的图像ID号码, 按照这个ID号码去找图像,从哪儿找呢?就在下一个文件夹中:

 

C、JPEGImages

字面意思,就是装的图片,点开之后全是jpg图片

ImageSets中文本文档记录的图像编号的所有图片,都装在这一个文件夹中了

所以我们要先通过读取不同文本中的图像ID(因为不同任务的需求),然后才来根据ID在这 JPEGImages 读取实体图像。

共有5011张个图像。

D、SegmentationClass

这个图像中装的是专门为 Segmentation任务做的一个文件夹里面存放的是Segmentation任务的label信息

就是那些花花绿绿的图片。因为Segmentation的label是需要每个像素点有一个label,

这个东西就不方便记录在Annotations文件夹中的xml文件中,更方便用同样大小的图像来记录label,每个点有一个类别信息,

你会发现该文件夹中的图片共有422张,而Imagesets文件夹中,Segmentation文件夹中的trainval.txt文档,也有422行。

这就对上号了。

实际上该文件夹中的图像的像素点上应该是0、1、2、...、20这些像素值才对,是一副灰度图

但很明显这些像素值太低了,肉眼其实看不见什么,所以它就把这些数字转换成了较大的像素值,且是3通道的像素值,这样肉眼就方便观看每一类(或者说每一个灰度图上的数字)对应的是同一种颜色。

这个东西叫做colormap,那么是怎么样的对应关系呢?

很明显,这个就需要去VOCdevkit_08-Jun-2007 里面找咯,那里面有创建这个数据集的所有代码

VOCdevkit_08-Jun-2007\VOCdevkit\VOCcode 中的 VOClabelcolormap.m文件,其实就是干的这个事儿,

其实这个VOCcode 文件夹里面的m文件还挺有意思的,还有各个任务的评价准则,比如那几个VOCeval文件,我以前还不知道VOC文件夹里面就写的有

 

E、SegmentationObject

这个其实现在管这个任务叫做Instance Segmentation,样例分割,

就同一图像中的同一类别的不同个体要分别标出来,也是单独给的label信息,因为每个像素点要有一个label信息

 

至此,VOCtrainval_06-Nov-2007 文件夹就解析完毕了

4、VOCtest_06-Nov-2007

其实这个文件夹可以比照着trainval那个文件夹来理解,两个的结构是完全一样的,最里面也是5个文件夹:

所以其实解压的时候,往往是把他俩直接解压到同一个地方,然后相同名字的文件夹会合并在一起,

这个VOCtest_06-Nov-2007 和 VOCtrainval_06-Nov-2007

唯一不同的就是 这里装得是test data,即测试用的图像,及其相关的annotations,所以不再赘述

这里再次重申,再官网上,只有2007年时给了Annotated test data的,其余年份即使能下载到test data也应该是没有Annotation标注信息的, 

然后真的不想再解释什么叫 train 、val 、test了

 

水平有限,难免挂一漏万,欢迎指正。

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 


http://chatgpt.dhexx.cn/article/j38TdDW6.shtml

相关文章

VOC2007数据集

官方下载地址: https://pjreddie.com/projects/pascal-voc-dataset-mirror/ 下面以voc2017为例 下载训练和验证集: http://host.robots.ox.ac.uk/pascal/VOC/voc2007/VOCtrainval_06-Nov-2007.tar 下载测试集: http://host.robots.ox.ac.uk…

voc数据集格式详解

计算机视觉经常会用到voc数据集 以如下数据集为例 http://www.eecs.berkeley.edu/Research/Projects/CS/vision/grouping/semantic_contours/benchmark.tgz Annotations 包含着xml文件,就是利用roLabelImg进行标注 JPEGImages 里面就是原始的图片 train.txt和va…

PASCAL VOC数据集分析

PASCAL VOC数据集分析 PASCAL VOC为图像识别和分类提供了一整套标准化的优秀的数据集,从2005年到2012年每年都会举行一场图像识别challenge。 本文主要分析PASCAL VOC数据集中和图像中物体识别相关的内容。 在这里采用PASCAL VOC2012作为例子。下载地址为&#xff…

VOC数据集详解

VOC数据集可以用于目标检测、目标分割。 该文件夹下有三个子文件。分别为:ImageSets,JPEGImages,SegmentationClass JPEGImages该文件夹下一般放置原图; SegmentationClass存放标签文件; 该分割结果图是一个灰度图,例如属于飞机部…

VOC数据集介绍及构建自己的VOC格式目标检测数据集

文章目录 1、安装标注工具1.1 ubuntu linux 系统1.2 windows系统 2、labelimg使用方法3、标注结果文件说明3.1 Pascal VOC数据集介绍3.2 Pascal VOC格式3.3 YOLO格式说明 4、标注图片和结果文件整理4.1 Pascal VOC数据组织结构4.2 自定义数据集整理为Pascal VOC格式4.3 Pascal …

VOC数据集制作

VOC数据集制作 1 获取数据1.1 获取图片1.2 图片大小重置1.3 图片重命名 2 标记图片3 按照PascalVOC数据集的格式整理自己的数据4 划分训练集和测试集 1 获取数据 1.1 获取图片 对于数据的获取,可以是图片形式,也可以是视频形式,但最终将转化…

VOC数据集介绍

1、VOC数据集下载 ubuntu系统下打开终端输入命令即可下载 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 wget http://host.robots.ox.ac.uk/pascal/VOC/…

Voc数据集简述

文章目录 一、了解VOC1.1 voc数据集下载 二、VOC文件结构2.1 Annotations2.2 ImageSets2.3 JPEGImages2.4 SegmentationClass2.5 SegmentationObject 三、目标检测任务四、语义分割任务五、实例分割任务六、类别索引与名称对应关系 一、了解VOC 是一种数据集的格式——VOC格式…

【DataWhale Obj Dec Task01】目标检测基础

目标检测的基本概念 报名参加datawhale的目标检测组队学习,虽然做objdec有一段时间了,但是还没有系统的记录过自己的学习历程,就借此机会记录一下自己的感想和经历吧,就当是记笔记了。 理解 目标检测实际上也是一种分类算法&am…

【目标检测】VOC数据集介绍

数据集介绍 VOC数据集是目标检测领域最常用的标准数据集之一,在类别上可以分为4大类,20小类 Annotations 进行 detection 任务时的标签文件,xml 形式,文件名与图片名一一对应ImageSets 包含三个子文件夹 Layout、Main、Segmentat…

VOC数据集简介与制作

一、VOC数据集简介 1.1 VOC的任务 PASCAL VOC 挑战赛主要有 Object Classification (分类)、Object Detection(检测)、Object Segmentation(分割)、Human Layout、Action Classification 这几类子任务。 …

详解 VOC 数据集

本视频配套视频链接:https://www.bilibili.com/video/BV1ZL4y1p7Cz/ 我们先来介绍一个经典的数据集:VOC 数据集。Visual Object Class 的首字母缩写,它的官方地址为 http://host.robots.ox.ac.uk/pascal/VOC/。 虽然现在大家更倾向于使用我…

测试报告编写,测试结果编写

测试报告,就是向整个团队告诉你的测试情况,以及发现一些问题说明。 所以: 第一步,先告诉别人,你的测试结果,测试结果只有两种,测试通过/测试未通过。 第二步,写出这个需求的提测的…

软件测试项目测试报告总结

测试计划概念:就在软件测试工作实施之前明确测试对象,并且通过资源、时间、风险、测试范围和预算等方面的综合分析和规划,保证有效的实施软件测试。 需求挖掘的6个方面: 1、输入方面 2、处理方面 3、结果输出方面 4、性能需求…

稳定性测试-几点总结

混合场景业务比例: 稳定性测试一般基于混合场景进行压测,业务比例由项目组人员给出。(最好基于线上业务调用量情况进行统计,但大部分系统没有该数据,那就由他们自己拍脑袋吧) PS: JMeter控制业务比例用 th…

测试总结报告模板

1. 编写目的 [简述本报告的目的。例如:本测试报告为XX项目的测试总结报告,目的在于总结测试阶段的测试及分析测试结果,描述系统是否符合需求(或达到XX功能目标),同时对软件质量进行相关的评估,…

性能测试结果分析结果

在做性能测试的时候,在使用LR或者jmeter等一些性能测试工具测试执行结束后,首先要做的是判断采集到的结果数据是否真实有效。多数的性能测试场景都要迭代的进行测试,因此很多测试结果本身就不能反应问题,深入分析这样的结果没啥意…

主观评价测试

一、静物测试 1.测试目的:测试IPC在室内正常照度场景下的效果 2.测试设备:色温照度计,激光红外测距仪 3.测试环境:在不同色温环境下A,TL84 CWF D65对静物场景测试图卡和人物进行拍摄,观察图像和人物效果&#xff08…

测试总结的重要性

测试总结很重要,包括项目整理的总结、个人的总结、小组的总结;做项目总结,是为了梳理整个过程,明确问题和找到原因,改进整个流程和推进项目状态越来越好。 自己目前所做的是项目的总结,会针对三方做一个总结&#xff0…

测试总结该怎么写...

最近参与了几次面试,面试者的简历中都会提及:需求或者版本测试结束后会进行版本总结,而不仅仅是提供一份测试报告。 于是特意追问了一下,总结中都包含什么内容,答复上基本都是围绕此次测试过程中发现的BUG数量以及修复…