目标检测数据集 – PASCAL VOC2012

文章目录

    • 1. PASCAL VOC2012
    • 2. 标注自己的数据集

1. PASCAL VOC2012

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)等。

在这里插入图片描述

Classification and detection

在这里插入图片描述

Segmentation

在这里插入图片描述

Action classification

在这里插入图片描述

Person layout

在这里插入图片描述

PASCAL VOC2012下载链接:http://host.robots.ox.ac.uk/pascal/VOC/voc2012/

进入首页,在目录Contents下找到 Development Kit,进入后,点击Download the training/validation data (2GB tar file)即可下载。

测试集下载链接:http://host.robots.ox.ac.uk:8080/eval/downloads/VOC2012test.tar

PASCAL VOC2012针对分类与目标检测,共有20个类别。

在这里插入图片描述

目录结构

在这里插入图片描述

在这里插入图片描述

在Annotations中,每个图像就对应一个XML文件,如:

<annotation>
	<folder>VOC2012</folder>  <!-- 文件夹 -->
	<filename>2007_000187.jpg</filename> <!-- 文件名称 -->
	<source>  <!-- 数据来源 -->
		<database>The VOC2007 Database</database>
		<annotation>PASCAL VOC2007</annotation>
		<image>flickr</image>
	</source>
	<size>  <!-- 图像的宽度、高度、通道数 -->
		<width>500</width>
		<height>375</height>
		<depth>3</depth>
	</size>
	<segmented>1</segmented>  <!-- 图像是否可进行图像分割 -->
	<object>  <!-- 图像中的目标 -->
		<name>tvmonitor</name>  <!-- 目标的类别 -->
		<pose>Frontal</pose>
		<truncated>1</truncated>  <!-- 目标是否被截断 在我们自己标注图像时,当我们标注的目标在图像边缘附近,该属性就会为1 -->
		<difficult>0</difficult>  <!-- 检测的难度 -->
		<bndbox>  <!-- 边界框左上角,右下角的坐标 -->
			<xmin>1</xmin>
			<ymin>95</ymin>
			<xmax>240</xmax>
			<ymax>336</ymax>
		</bndbox>
	</object>
</annotation>

所以,在我们后面读取数据集的时候,就要来解析XML文件。

对于目标检测,我们主要会用到ImageSets下,Main目录中的内容。主要涉及到train.txtval.txttrainval.txt这三个文件。

trainval.txt是将train.txtval.txt融合在一起了。train.txtval.txt是互斥的。

此外,在Main文件夹下,还包含其他的txt文件,如boat_train.txtboat_val.txt等,这是针对单个物体的文件,如在boat_train.txt文件中:

2008_000008 -1
2008_000148  1
2008_000191  0

其中,2008_000008这种是图像的名称。-1代表是该图像中没有船,0代表船这个目标检测起来是有困难的,1代表存在有船这个目标。

载入图像信息流程(针对目标检测)

1.读入Main文件夹下的train.txt文件,获取每一行信息(即每一个图像的名称)

2.根据图像的名称,到Annotations目录下,找到对应的xml文件

3.解析xml文件

4.根据图像的名称,到JPEGImages目录下,找到对应的图像文件,载入内存


2. 标注自己的数据集

图像标注软件:LabelImgLabelme

推荐使用:LabelImg,可以生成xml文件。Labelme主要生成的是JSON文件。

安装LabelImg

pip install labelImg

简单使用流程:

在这里插入图片描述

  • 打开项目文件夹,->data->predefined_classes.txt修改标注类别信息

在这里插入图片描述

  • 打开软件

    启动命令:

    # labelimg 图像文件夹路径 类别文件
    labelimg labelme ./image ./classes.txt 
    

在这里插入图片描述

  • 设置图像文件所在目录,以及标注文件保存目录

    点击改变存放目录,来设置标注文件保存目录。

在这里插入图片描述

  • 标注图像,并保存

    点击创建区块,来进行绘制图框

在这里插入图片描述

然后,进行绘制,并且选取类别

在这里插入图片描述

如果认为,该目标检测起来是有难度的,则进行勾选

在这里插入图片描述

全部标注完成后,点击保存,这样标注信息文件便保存至我们指定的保存目录中了。