目标检测数据集
目录
数据集介绍
数据集是模型训练最重要的部分,一个好的数据集能够给模型效果很大的提升。我们构建一个项目首要的就是数据集的选择,包括数据和标注。衡量一个数据集好坏的标准:
- 数据集的规模。
- 数据集的内容质量。
- 数据集的标注质量。
VOC数据集
PASCAL Visual Object Classes(PASCAL VOC) 是 2005-2012 年由欧盟 PASCAL 网络维护的通用视觉基准,核心任务包括 分类、检测、分割、动作识别。当今仍常把它的数据格式称为“VOC 格式”。
1 时间线与版本
| 年份 | 主要新增 | 类别数 | 图像数 |
|---|---|---|---|
| 2005 | 仅 4 类分类 | 4 | 1 578 |
| 2007 | 首次检测任务 | 20 | 9 963 |
| 2008-2010 | 逐年扩增图片&分割 | 20 | ~10k/年 |
| 2011-2012 | 两组数据,仍开放 | 20 | 11 540 |
最常引用的是 VOC2007 与 VOC2012;两者常合并训练再于 2007-test 测试。
2 核心任务
a) Classification
- 给出图片,判断类别是否存在(多标签)。
b) Detection(我们关注的)
- 边框 + 类别;评估指标 mAP@0.5(PASCAL IoU 阈值)。
c) Segmentation
- 语义分割 21 类(20 对象 + 背景)。
d) Person Layout
- 人体部件边界框(头/手/脚)。
e) Action Classification
- 20 种人体动作,依赖部件框标注。
3 类别一览(20 类)
人: person
动物: bird, cat, cow, dog, horse, sheep
交通工具: aeroplane, bicycle, boat, bus, car, motorbike, train
室内/常见: bottle, chair, dining table, potted plant, sofa, tv/monitor
4 目录结构(官方下载包)
VOCdevkit
└── VOC2012
├── Annotations/ # 每张图一个 XML,存边框与 labels
├── ImageSets/ # 训练/验证/测试列表(txt),按任务分
├── JPEGImages/ # 原始 jpg,~17k 张
├── SegmentationClass/ # 逐像素类别 mask(PNG,调色板存储)
└── SegmentationObject/# 实例级 mask(同一类别不同实例不同色)
5 标注文件示范 (简化)
<annotation>
<filename>2007_000027.jpg</filename>
<size><width>500</width><height>333</height><depth>3</depth></size>
<object>
<name>person</name>
<truncated>0</truncated>
<difficult>0</difficult>
<bndbox>
<xmin>174</xmin>
<ymin>101</ymin>
<xmax>349</xmax>
<ymax>351</ymax>
</bndbox>
</object>
</annotation>
字段说明:
- truncated:光照、遮挡、小目标视线影响标记 (是否截断)
- difficult:辨识难度
- part:人体部件专用
6 格式衍生:VOC-style 数据
- 标签 = XML (边界框 + 类别)
- 遮罩 = PNG 调色板(0-20 整数)
- 列表 = txt
诸多数据集(自行收集的检测/分割)直接沿用上述模式,称为“VOC 格式”,无需改加载代码。
7 加载代码片段(PyTorch torchvision)
from torchvision.datasets import VOCDetection
ds = VOCDetection(root='./data', year='2007', image_set='train',
download=True, transforms=YourTransforms())
img, target = ds[0] # target 是 Python-dict 形式的 XML 内容
如只读边框,:
from pascal_voc_tools import XmlReader # 第三方小库
ann = XmlReader('VOC2007/Annotations/000001.xml')
boxes, labels = ann.get_boxes_labels() # ndarray, list
8 评估指标
- 检测/Layout:mAP@IoU=0.5(PASCAL-style)。
- 分割:mIoU (mean Intersection over Union)。
- Action:例-level AP。
9 VOC 的局限与影响
- 规模较小(仅 20 类,10k+ 图),易被现代大网络过拟合。
- 类别分布不均(人/车多,羊/盆栽少)。
- 提供的 VOC-style XML+PNG 工作流成为工业事实标准;
后续 COCO、Open Images 仍保留“列表文件+标注文件”思路。
10 快速上手命令
-
下载 VOC2007/test(官网仍可获取)
wget http://host.robots.ox.ac.uk/pascal/VOC/voc2007/VOCtest_06-Nov-2007.tar -
解压到
./data/,目录结构如第4点。 -
用 torchvision 或 detectron2 / MMDetection 直接训练/测试。
VOC 虽小,却是现代目标检测/分割任务的“基石数据集”;其目录与 XML 标注格式至今仍是业界默认模板。