https://cloud.tencent.com/developer/article/1557486

VOC数据是 PASCAL VOC Challenge 用到的数据集,官网:http://host.robots.ox.ac.uk/pascal/VOC/
这里以常用的 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是给出了带有标记的测试集的,

其他年份的数据集是没有 Anotated test data的

至于训练集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 这 3 个,就如同前面两个文件夹一样,这三个文本文档肯定是有的,意思也是一样的。


还有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了

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

VOC数据集解析 VOC2007解析相关推荐

  1. YOLO,VOC数据集标注格式解析

    YOLO数据集txt标注格式: 0  0.160938  0.541667  0.120312  0.386111 分别指所标注内容的类别.归一化后的中心点x坐标,归一化后的中心点y坐标,归一化后的目 ...

  2. VOC数据集mAP计算(附带代码)解析

    VOC数据集mAP计算(附带代码)解析 一.几个概念 IoU:交并比 (目标检测实际上是分类问题,检测器在图片上以不同像素尺度生成大量的框,如果检测器认为某个框里存在物体,就把它画出来) TP:画出了 ...

  3. ubuntu16.04下使用YOLOV3训练自己做的VOC数据集(VOC数据集制作+模型训练步骤+训练参数解析和问题解决+训练日志可视化(loss、IOU)+模型测试(单张、摄像头、批量测试))

    前序 1.环境配置 请自行参考其他博客 本机环境 ubuntu16.04 python3 英伟达显卡驱动:nvidia-396 OpenCV3.4.5 CUDNN7.0.5 CUDA9.0 2.ubu ...

  4. 【VOC格式xml文件解析】——Python

    #!/usr/bin/env python # -*- coding: utf-8 -*- # @Time : 2021/4/26 12:49 # @Author : @linlianqin # @S ...

  5. 【用pandas_alive几行代码绘制竞赛动图】10.新南威尔士州 COVID 可视化(测试代码+数据集+绘图参数解析)

    目录 10.新南威尔士州 COVID 可视化 新南威尔士州 COVID 可视化API说明: 新南威尔士州 COVID 可视化数据集 新南威尔士州 COVID 可视化例程 总结 欢迎关注 『pandas ...

  6. MNIST数据集下载+idx3-ubyte解析【超详细+上手简单】

    前言 训练模型的时候经常会使用MNIST数据集来训练模型,那么如何获取到MNIST数据集呢?博主经过实践后,总结了经验,希望能帮助到屏幕前的你使用MNIST数据集. 目录 前言 1 下载MNIST数据 ...

  7. 一文多图搞懂KITTI数据集下载及解析

    转载自一文多图搞懂KITTI数据集下载及解析-阿里云开发者社区 KITTI Dataset 1.图片下载:点击下载:https://s3.eu-central-1.amazonaws.com/avg- ...

  8. python 读取 MNIST 数据集,并解析为图片文件

    python 读取 MNIST 数据集,并解析为图片文件 MNIST 是 Yann LeCun 收集创建的手写数字识别数据集,训练集有 60,000 张图片,测试集有 10,000 张图片.数据集链接 ...

  9. 【用pandas_alive几行代码绘制竞赛动图】8.城市人口(测试代码+数据集+绘图参数解析)

    目录 8.城市人口 城市人口API说明: 城市人口数据集 城市人口图例程 总结 欢迎关注 『pandas_alive绘制竞赛动图』 专栏,持续更新中 欢迎关注 『pandas_alive绘制竞赛动图』 ...

  10. Deep Learning---py-faster-rcnn基于PASCAL VOC数据集训练模型

    0 说明 系统环境为Ubuntu14.04, 已经安装好了CUDA和cuDNN以及Python等基础包. 1 设置和编译py-faster-rcnn 1.1 下载py-faster-rcnn $ gi ...

最新文章

  1. python导入处理txt文件-python怎么处理txt
  2. 思维模型篇:数据分析必知必会的两个原则
  3. 关于WS_CLIPCHILDREN和WS_CLIPSIBLINGS的理解
  4. uniitest怎么传参数
  5. flask-uploads扩展的使用笔记
  6. java sqlserver数据库连接_JAVA连接SQLserver数据库
  7. 浏览器插件 - Chrome 对 UserScript 的声明头(metadata)兼容性一览
  8. 美国大学 计算机,U.S.News美国大学计算机专业排名
  9. STM32库内程序一些好的编程思路、方法及好的程序
  10. LeetCode通关:哈希表六连,这个还真有点简单
  11. DialogUtils 弹出窗工具类
  12. EVE-NG物理机启动报错
  13. perl q qq qr qw qx 区别与使用方法
  14. java中的数组长度的计算
  15. JQuery选择器语法
  16. 绩效评估:最佳做法和要问的首要问题
  17. C++ STL 中的accumulate的用法
  18. java后台Controller下载文件方法
  19. 关于华为DevEco studio2.0的安装和运行第一个hello world的文章
  20. MES促进机械加工行业加工

热门文章

  1. Java 神级项目 yyds
  2. linux刷显卡bios版本,一种Linux系统下显卡刷新BIOS的方法与流程
  3. 探索实践之软件构建(一)
  4. Excel基础知识(10):多工作簿数据的引用与更新
  5. VTK:图像平滑——高斯滤波器
  6. 0-1背包问题、贪心算法、动态规划
  7. UniFi AP 5.5.20的基本使用与设置(普通漫游和无缝漫游)
  8. lldp协议代码阅读_microsoft,lldp协议
  9. DELL台式机安装centos系统
  10. java基本数据类型声明及初始化方法