按AABB 目标检测 里最常见的 VOC-style 和 COCO-style 评估来对照;前者更偏经典/宽松,后者更严格、维度更多。([BrainChip Data][1])
| 对比维度 | VOC 风格 | COCO 风格 |
|---|---|---|
| 主指标 | 以每类 AP 和所有类别平均后的 mAP 为核心;经典 VOC 检测评估围绕 PR 曲线和 AP 展开。([BrainChip Data][1]) | 主指标是 AP@[0.50:0.95] ,同时还会单独给出 AP50 、AP75。COCO 官方评估代码的 summary 默认就这样输出。([GitHub][2]) |
| IoU 阈值 | 经典 VOC 检测通常按 IoU=0.5 判定 TP。很多人说的 "VOC mAP" 基本就是这个口径。([GitHub][3]) | COCO 会在 0.50 到 0.95 之间每隔 0.05 取一个 IoU,共 10 个阈值,再做平均。([GitHub][2]) |
| AP 计算方式 | 常见 VOC-style 有两种:VOC07 11-point AP ,以及后续常见实现里的 PR 曲线面积积分 。Detectron2 的 VOC evaluator 就明确区分了 use_07_metric=True 的 11-point 和 False 的积分式 AP。([GitHub][3]) |
COCO 使用 101 个 recall 采样点(0, 0.01, ..., 1.00),并在多 IoU 阈值上汇总。([GitHub][2]) |
| 召回采样密度 | VOC07 是 11 个 recall 点(0, 0.1, ..., 1.0)的插值 AP。([Informatics Homepages][4]) | COCO 是 101 个 recall 点(步长 0.01),更细。([GitHub][2]) |
| 输出指标丰富度 | 通常重点就是 AP / mAP。([BrainChip Data][1]) | 除了 AP / AP50 / AP75 ,还会输出 AR,以及按目标尺寸分开的指标。([GitHub][2]) |
| 尺度拆分 | VOC 主评估里没有 COCO 那种标准化的 small / medium / large 三档汇报。 | COCO 默认拆成 small / medium / large ;面积范围在官方代码里定义为 small: (02!\sim322),medium: (322!\sim962),large: (96^2!\sim\infty)。([GitHub][2]) |
| maxDets 限制 | VOC 风格里一般不是核心汇报维度。 | COCO 默认会用 maxDets = [1, 10, 100] ,并据此给出 AR@1 / AR@10 / AR@100 等结果。([GitHub][2]) |
| 忽略样本机制 | VOC 有 difficult 标注;这类目标在评估中会被丢弃,检测到它们通常也不受罚。([Informatics Homepages][4]) | COCO 有 ignore / iscrowd 等机制;评估代码会把这类 GT 设为 ignore,并在累计 TP/FP 时单独处理。([GitHub][2]) |
| 严格程度 | 更宽松,特别是只看 IoU=0.5 时,对框定位误差容忍更高。 | 更严格,因为既看 AP50 ,也看 AP75 ,还把 0.50:0.95 全部平均进去。([GitHub][2]) |
| 更适合什么场景 | 更适合快速比较"有没有检出来"、或与老论文/老项目保持一致。 | 更适合做现代 benchmark、真实部署前的综合比较,因为它对定位精度、小目标和候选数约束都更敏感。这个判断是基于其更严格、更细粒度的官方评估设置。([GitHub][2]) |
最容易混淆的 4 点
1)"VOC mAP" 往往就是 mAP@0.5,不等于 COCO 的 AP。
COCO 默认的 AP 是把 0.50 到 0.95 的多个 IoU 阈值平均后的结果,所以数值通常会比 VOC 风格更低。([GitHub][2])
2)"VOC-style" 里还分 VOC07 和非 VOC07。
VOC07 常指 11-point AP;很多后续实现会改成对 PR 曲线做面积积分。看论文或代码时,最好确认有没有 use_07_metric 之类的开关。([GitHub][3])
3)同一个数据集,也可能被按不同风格评估。
例如某些框架对 VOC 数据集也能输出 AP / AP50 / AP75,因为它们实现了"VOC 数据集 + 多 IoU 阈值统计"的 evaluator;Detectron2 的 VOC evaluator 就是按 0.50:0.95 循环阈值汇总出 AP/AP50/AP75。([GitHub][3])
4)工程里不要只看 AP50。
AP50 高只能说明"差不多框住了",不代表定位很准;AP75 和 COCO AP 更能反映框质量。([GitHub][2])
笔记
- VOC 风格 :
mAP@0.5,偏经典、偏宽松。([GitHub][3]) - COCO 风格 :
AP@[0.5:0.95] + AP50 + AP75 + APs/m/l + AR,偏现代、偏严格。([GitHub][2])
指标命名速查表
| 常见写法 | 通常表示什么 | IoU 阈值 | AP 计算方式 | 你该怎么理解 |
|---|---|---|---|---|
| VOC07 | Pascal VOC 2007 风格 AP | 0.5 | 11-point interpolation | 最经典、最宽松的 VOC 口径。([Informatics Homepages][4]) |
| VOC2007 mAP | 所有类别 AP 的平均 | 0.5 | 11-point | 和上面基本同义,只是强调是 mAP。([Informatics Homepages][4]) |
| VOC2010 / VOC2011 / VOC2012 风格 | Pascal VOC 后期常用 AP | 0.5 | all-points / integral AP | 2010 起官方说明 AP 改成 "all data points";很多人把这口径俗称成 "VOC2012"。([Oxford Robots][5]) |
| VOC2012 mAP | 社区常见说法 | 0.5 | 通常指 all-points AP | 不是一个像 COCO 那样特别标准化的单独"官方简称",更像工程圈简写。这个判断是根据 VOC 官方对 2010 起 AP 规则的说明,以及常见实现只区分 use_07_metric true/false 推出来的。([Oxford Robots][5]) |
| mAP@0.5 | 各类 AP 在 IoU=0.5 下求平均 | 0.5 | 取决于 evaluator | 只写 mAP@0.5 还不够,最好再说明是 VOC07 还是 all-points。([GitHub][3]) |
| AP50 | 单个总指标名 | 0.5 | 常见于 COCO 输出 | 在 COCO/Detectron2 输出里,AP50 是标准字段。([GitHub][3]) |
| AP75 | 单个总指标名 | 0.75 | 常见于 COCO 输出 | 比 AP50 更严格,更能看框是否贴得准。([GitHub][3]) |
| AP(COCO 默认) | AP@[0.50:0.95] | 0.50:0.95,步长 0.05 | 101-point recall sampling | 现代论文里只写 AP,大概率默认是 COCO AP。([GitHub][2]) |
| AP@[.5:.95] / AP@[0.50:0.95] | COCO 主指标 | 0.50 到 0.95 | 101 recall points | 和上面的 AP 通常同义。([GitHub][2]) |
| APs / APm / APl | COCO 小/中/大目标 AP | 多 IoU | COCO 方式 | 用于分析不同尺寸目标性能。([GitHub][2]) |
| AR@1 / AR@10 / AR@100 | COCO 平均召回 | 多 IoU | COCO 方式 | 与 maxDets=[1,10,100] 对应。([GitHub][2]) |
参考链接
1\]: https://data.brainchip.com/dataset-mirror/voc/VOC2007_doc.pdf "voc.dvi" \[2\]: https://github.com/cocodataset/cocoapi/blob/master/PythonAPI/pycocotools/cocoeval.py "cocoapi/PythonAPI/pycocotools/cocoeval.py at master · cocodataset/cocoapi · GitHub" \[3\]: https://github.com/facebookresearch/detectron2/blob/main/detectron2/evaluation/pascal_voc_evaluation.py "detectron2/detectron2/evaluation/pascal_voc_evaluation.py at main · facebookresearch/detectron2 · GitHub" \[4\]: https://homepages.inf.ed.ac.uk/ckiw/postscript/ijcv_voc09.pdf "ijcv27.uk.dvi" \[5\]: https://www.robots.ox.ac.uk/\~vgg/projects/pascal/VOC/voc2010/index.html?utm_source=chatgpt.com "Visual Object Classes Challenge 2010 (VOC2010)"