三种目标检测数据集格式对比:PASCAL VOC 格式、 COCO 格式、YOLO 格式
【代码】三种目标检测数据集格式对比:PASCAL VOC 格式、 COCO 格式、YOLO 格式。
·
三种目标检测数据集格式对比
| 特性 | PASCAL VOC 格式 | COCO 格式 | YOLO 格式 |
|---|---|---|---|
| 格式名称 | PASCAL Visual Object Classes | Common Objects in Context | You Only Look Once |
| 存储文件 | .xml 文件 |
.json 文件 |
.txt 文件 |
| 文件组织 | 每张图片对应一个XML文件 | 通常一个数据集划分(如训练集)对应一个大的JSON文件 | 每张图片对应一个TXT文件(若无目标则为空文件) |
| BBox坐标含义 | [xmin, ymin, xmax, ymax] |
[xmin, ymin, width, height] |
[x_center_norm, y_center_norm, width_norm, height_norm] |
| 坐标中文解释 | [左上角x, 左上角y, 右下角x, 右下角y] | [左上角x, 左上角y, 宽度, 高度] | [归一化的中心点x, 归一化的中心点y, 归一化的宽度, 归一化的高度] |
| 坐标类型 | 像素坐标 (绝对值) | 像素坐标 (绝对值) | 归一化坐标 (相对于图像尺寸的比例,0到1之间) |
| 优点 | 格式直观,XML结构清晰,包含丰富的元数据。 | 现代框架的事实标准,扩展性强,不仅支持bbox,还支持实例分割、关键点等复杂任务。 | 格式极其简单,文件小,磁盘IO效率高,可以直接被YOLO模型用于训练。 |
| 缺点/注意事项 | XML文件解析相对较慢,文件冗余信息多。 | 整个数据集一个大文件,不方便单独查看某个样本;JSON结构嵌套较深。 | 标签文件中不包含类别名称、图片尺寸等元数据,需要额外文件和操作来还原信息。 |
| 典型应用 | 经典的计算机视觉竞赛和框架,如早期版本的Faster R-CNN。 | 目前最主流的格式,被DINOv3, MMDetection, Detectron2等绝大多数现代检测框架所使用。 | YOLO系列模型(v3, v5, v8等)训练时的首选格式。 |
总结一下关键区别:
- 坐标定义:这是最核心的区别。VOC用右下角坐标定义大小,COCO用宽高定义大小,而YOLO用归一化的中心点和宽高。
- 坐标尺度:VOC和COCO使用绝对像素值,而YOLO使用相对比例值。
- 文件结构:VOC和YOLO是一个图片一个标签文件,而COCO是将所有图片的标注信息整合在一个大的JSON文件里。
COCO:
"images": [
{
"id": 0,
"file_name": "0001_41.bmp",
"height": 512,
"width": 512
},
"annotations": [
{
"id": 0,
"image_id": 0,
"category_id": 0,
"bbox": [
134.0,
311.0,
5.0,
5.0
],
"area": 25.0,
"iscrowd": 0,
"segmentation": []
},
PASCAL VOC:
<annotation><folder>VOC</folder><filename>0001_41.bmp</filename><size><width>512</width><height>512</height><depth>3</depth></size><object><name>nodule</name><bndbox><xmin>134</xmin><ymin>311</ymin><xmax>139</xmax><ymax>316</ymax></bndbox></object></annotation>
YOLO:
0 0.3251953125 0.6572265625 0.021484375 0.025390625
更多推荐



所有评论(0)