| 维度 / 特性 | VOC 格式 (XML) | COCO 格式 (JSON) | YOLO 格式 (TXT) |
|---|---|---|---|
| 设计初衷 | PASCAL VOC 竞赛标准,重可读性与完整性 | MS COCO 竞赛标准,面向大规模、多任务 | YOLO 系列原生格式,为极致训练效率而生 |
| 文件类型 | XML | JSON | TXT |
| 典型扩展名 | .xml(每张图片一个) | .json(整数据集一个或几个大文件) | .txt(每张图片一个) |
| 代表数据集 | PASCAL VOC 2007/2012 | MS COCO | Darknet / Ultralytics 训练集 |
| 数据结构 | 单图单 XML,含尺寸、难度等丰富元数据 | 集中式 JSON,ID 关联图像与标注,支持关键点/分割 | 单图单 TXT,每行'class x_center y_center width height'(归一化) |
| 主要特点 | 结构化、可读性强,坐标为绝对像素值,含 object、bndbox、part 等 | 信息最丰富,支持实例分割、关键点,学术研究事实标准 | 极简高效,全归化坐标,文件小,加载快 |
| 优点 | 1. 信息完整,易人工阅读调试 |
- 早期框架兼容性佳
- 元数据助困难样本分析 | 1. 信息最丰富,支持实例分割、关键点等
- 新论文/模型首选
- 海量预训练模型与工具支持 | 1. 极简高效,文件小,加载快
- 与 YOLO 系列无缝对接
- 结构简单,易生成解析 | | 缺点 | 1. 冗余高,文件多,总容量大
- 训练时信息冗余成负担 | 1. 结构复杂,手动处理难
- 单文件损坏可致全数据集不可用 | 1. 信息损失严重,无图像元数据
- 可读性差,纯数字不直观
- 与非 YOLO 框架兼容需转换 | | 典型应用场景 | 1. 数据标注、审查与质检阶段
- 小型项目/教学,追求结构清晰
- 使用早期框架(R-CNN/Fast R-CNN) | 1. 学术研究/论文复现,前沿模型
- 需实例分割、关键点等多任务
- 使用 MMDetection、Detectron2 等现代框架 | 1. 工业部署/生产,追求训练推理速度
- 使用 YOLOv5/v8/v9、Ultralytics 生态
- 边缘设备或资源受限场景 |
1. 历史与生态原因
- VOC 格式:最早(2007 年),R-CNN、Fast R-CNN、Faster R-CNN 等两阶段检测器大多基于 VOC 数据集开发,很多经典代码(如 py-faster-rcnn)直接支持 XML。
- COCO 格式:2014 年发布,更丰富(80 类、实例分割、关键点),成为现代检测器的标准评测数据集(torchvision、MMDetection、Detectron2 等官方实现默认支持 COCO)。
- YOLO 格式:YOLO 系列从 2016 年起流行,因其极简高效,社区为方便训练 YOLO 模型,普遍会把 VOC 或 COCO 数据集转换为 YOLO txt 格式。
2. 工具链支持完善
- 几乎所有主流框架都内置或有成熟脚本支持这三种格式的互相转换:
- VOC ↔ COCO:pycocotools、MMDetection 工具
- VOC → YOLO:大量 GitHub 脚本(roboflow、ultralytics 等)

