是一种数据集的格式——VOC格式的数据集
PASCAL VOC挑战赛 (The PASCAL Visual Object Classes )是一个世界级的计算机视觉挑战赛,
PASCAL VOC挑战赛主要包括以下几类:
现在主要使用两个版本的voc,为2007和2012
链接地址:voc官网
voc2007数据集下载
voc2012数据集下载
浏览器或者迅雷(最快)下载。
在文件夹下按住shift+鼠标右键,打开shell(VOC2012为例)
VOCdevkit
└── VOC2012
├── Annotations 所有的图像标注信息(XML文件)
├── ImageSets
│ ├── Action 人的行为动作图像信息
│ ├── Layout 人的各个部位图像信息
│ │
│ ├── Main 目标检测分类图像信息
│ │ ├── train.txt 训练集(5717)
│ │ ├── val.txt 验证集(5823)
│ │ └── trainval.txt 训练集+验证集(11540)
│ │
│ └── Segmentation 目标分割图像信息
│ ├── train.txt 训练集(1464)
│ ├── val.txt 验证集(1449)
│ └── trainval.txt 训练集+验证集(2913)
│
├── JPEGImages 所有图像文件
├── SegmentationClass 语义分割png图(基于类别)
└── SegmentationObject 实例分割png图(基于目标)
存放xml格式的标签文件,每个xml对应JPEGImage中的一张图片。并且每个xml中存放的是标记的各个目标的位置和类别(C=20)信息,命名通常与对应的原始图像一样,以(x,y)的格式保存坐标点。可使用labelImg进行标注和查看。
xml文件解析:
<annotation>
<folder>VOC2012folder>
<filename>2007_000392.jpgfilename> //文件名
<source> //图像来源(不重要)
<database>The VOC2007 Databasedatabase>
<annotation>PASCAL VOC2007annotation>
<image>flickrimage>
source>
<size> //图像尺寸(长宽以及通道数)
<width>500width>
<height>332height>
<depth>3depth>
size>
<segmented>1segmented> //是否用于分割(在图像物体识别中01无所谓)
<object> //检测到的物体
<name>horsename> //物体类别
<pose>Rightpose> //拍摄角度
<truncated>0truncated> //是否被截断(0表示完整)
<difficult>0difficult> //目标是否难以识别(0表示容易识别)
<bndbox> //bounding-box(包含左下角和右上角xy坐标)
<xmin>100xmin>
<ymin>96ymin>
<xmax>355xmax>
<ymax>324ymax>
bndbox>
object>
<object> //检测到多个物体
<name>personname>
<pose>Unspecifiedpose>
<truncated>0truncated>
<difficult>0difficult>
<bndbox>
<xmin>198xmin>
<ymin>58ymin>
<xmax>286xmax>
<ymax>197ymax>
bndbox>
object>
annotation>
训练集与测试集
如何使用数据集中的数据进行目标检测呢?
如何领用数据集进行语义分割任务呢?
└── Segmentation 目标分割图像信息
├── train.txt 训练集(1464)
├── val.txt 验证集(1449)
└── trainval.txt 训练集+验证集(2913)
注意,在语义分割中对应的标注图像(.png)用PIL的Image.open()函数读取时,默认是P模式,即一个单通道的图像。在背景处的像素值为0,目标边缘处用的像素值为255(训练时一般会忽略像素值为255的区域),目标区域内根据目标的类别索引信息进行填充,例如人对应的目标索引是15,所以目标区域的像素值用15填充。
注意,在实例分割中对应的标注图像(.png)用PIL的Image.open()函数读取时,默认是P模式,即一个单通道的图像。在背景处的像素值为0,目标边缘处或需要忽略的区域用的像素值为255(训练时一般会忽略像素值为255的区域)。然后在Annotations文件夹中找到对应的xml文件,解析xml文件后会得到每个目标的信息,而对应的标注文件(.png)的每个目标处的像素值是按照xml文件中目标顺序排列的。如下图所示,xml文件中每个目标的序号是与标注文件(.png)中目标像素值是对应的。
{
"background": 0,
"aeroplane": 1,
"bicycle": 2,
"bird": 3,
"boat": 4,
"bottle": 5,
"bus": 6,
"car": 7,
"cat": 8,
"chair": 9,
"cow": 10,
"diningtable": 11,
"dog": 12,
"horse": 13,
"motorbike": 14,
"person": 15,
"pottedplant": 16,
"sheep": 17,
"sofa": 18,
"train": 19,
"tvmonitor": 20
}
参考博客:链接: 参考