VOC/COCO风格评估差异对照表

AABB 目标检测 里最常见的 VOC-styleCOCO-style 评估来对照;前者更偏经典/宽松,后者更严格、维度更多。(BrainChip Data1)

对比维度 VOC 风格 COCO 风格
主指标 以每类 AP 和所有类别平均后的 mAP 为核心;经典 VOC 检测评估围绕 PR 曲线和 AP 展开。(BrainChip Data1) 主指标是 AP@0.50:0.95 ,同时还会单独给出 AP50AP75。COCO 官方评估代码的 summary 默认就这样输出。(GitHub2)
IoU 阈值 经典 VOC 检测通常按 IoU=0.5 判定 TP。很多人说的 "VOC mAP" 基本就是这个口径。(GitHub3) COCO 会在 0.50 到 0.95 之间每隔 0.05 取一个 IoU,共 10 个阈值,再做平均。(GitHub2)
AP 计算方式 常见 VOC-style 有两种:VOC07 11-point AP ,以及后续常见实现里的 PR 曲线面积积分 。Detectron2 的 VOC evaluator 就明确区分了 use_07_metric=True 的 11-point 和 False 的积分式 AP。(GitHub3) COCO 使用 101 个 recall 采样点(0, 0.01, ..., 1.00),并在多 IoU 阈值上汇总。(GitHub2)
召回采样密度 VOC07 是 11 个 recall 点(0, 0.1, ..., 1.0)的插值 AP。(Informatics Homepages4) COCO 是 101 个 recall 点(步长 0.01),更细。(GitHub2)
输出指标丰富度 通常重点就是 AP / mAP。(BrainChip Data1) 除了 AP / AP50 / AP75 ,还会输出 AR,以及按目标尺寸分开的指标。(GitHub2)
尺度拆分 VOC 主评估里没有 COCO 那种标准化的 small / medium / large 三档汇报。 COCO 默认拆成 small / medium / large ;面积范围在官方代码里定义为 small: (02!\sim322),medium: (322!\sim962),large: (96^2!\sim\infty)。(GitHub2)
maxDets 限制 VOC 风格里一般不是核心汇报维度 COCO 默认会用 maxDets = 1, 10, 100 ,并据此给出 AR@1 / AR@10 / AR@100 等结果。(GitHub2)
忽略样本机制 VOC 有 difficult 标注;这类目标在评估中会被丢弃,检测到它们通常也不受罚。(Informatics Homepages4) COCO 有 ignore / iscrowd 等机制;评估代码会把这类 GT 设为 ignore,并在累计 TP/FP 时单独处理。(GitHub2)
严格程度 更宽松,特别是只看 IoU=0.5 时,对框定位误差容忍更高。 更严格,因为既看 AP50 ,也看 AP75 ,还把 0.50:0.95 全部平均进去。(GitHub2)
更适合什么场景 更适合快速比较"有没有检出来"、或与老论文/老项目保持一致。 更适合做现代 benchmark、真实部署前的综合比较,因为它对定位精度、小目标和候选数约束都更敏感。这个判断是基于其更严格、更细粒度的官方评估设置。(GitHub2)

最容易混淆的 4 点

1)"VOC mAP" 往往就是 mAP@0.5,不等于 COCO 的 AP。

COCO 默认的 AP 是把 0.50 到 0.95 的多个 IoU 阈值平均后的结果,所以数值通常会比 VOC 风格更低。(GitHub2)

2)"VOC-style" 里还分 VOC07 和非 VOC07。

VOC07 常指 11-point AP;很多后续实现会改成对 PR 曲线做面积积分。看论文或代码时,最好确认有没有 use_07_metric 之类的开关。(GitHub3)

3)同一个数据集,也可能被按不同风格评估。

例如某些框架对 VOC 数据集也能输出 AP / AP50 / AP75,因为它们实现了"VOC 数据集 + 多 IoU 阈值统计"的 evaluator;Detectron2 的 VOC evaluator 就是按 0.50:0.95 循环阈值汇总出 AP/AP50/AP75。(GitHub3)

4)工程里不要只看 AP50。

AP50 高只能说明"差不多框住了",不代表定位很准;AP75 和 COCO AP 更能反映框质量。(GitHub2)

笔记

  • VOC 风格mAP@0.5,偏经典、偏宽松。(GitHub3)
  • COCO 风格AP@[0.5:0.95] + AP50 + AP75 + APs/m/l + AR,偏现代、偏严格。(GitHub2)

指标命名速查表

常见写法 通常表示什么 IoU 阈值 AP 计算方式 你该怎么理解
VOC07 Pascal VOC 2007 风格 AP 0.5 11-point interpolation 最经典、最宽松的 VOC 口径。(Informatics Homepages4)
VOC2007 mAP 所有类别 AP 的平均 0.5 11-point 和上面基本同义,只是强调是 mAP。(Informatics Homepages4)
VOC2010 / VOC2011 / VOC2012 风格 Pascal VOC 后期常用 AP 0.5 all-points / integral AP 2010 起官方说明 AP 改成 "all data points";很多人把这口径俗称成 "VOC2012"。(Oxford Robots5)
VOC2012 mAP 社区常见说法 0.5 通常指 all-points AP 不是一个像 COCO 那样特别标准化的单独"官方简称",更像工程圈简写。这个判断是根据 VOC 官方对 2010 起 AP 规则的说明,以及常见实现只区分 use_07_metric true/false 推出来的。(Oxford Robots5)
mAP@0.5 各类 AP 在 IoU=0.5 下求平均 0.5 取决于 evaluator 只写 mAP@0.5 还不够,最好再说明是 VOC07 还是 all-points。(GitHub3)
AP50 单个总指标名 0.5 常见于 COCO 输出 在 COCO/Detectron2 输出里,AP50 是标准字段。(GitHub3)
AP75 单个总指标名 0.75 常见于 COCO 输出 比 AP50 更严格,更能看框是否贴得准。(GitHub3)
AP(COCO 默认) AP@0.50:0.95 0.50:0.95,步长 0.05 101-point recall sampling 现代论文里只写 AP,大概率默认是 COCO AP。(GitHub2)
AP@.5:.95 / AP@0.50:0.95 COCO 主指标 0.50 到 0.95 101 recall points 和上面的 AP 通常同义。(GitHub2)
APs / APm / APl COCO 小/中/大目标 AP 多 IoU COCO 方式 用于分析不同尺寸目标性能。(GitHub2)
AR@1 / AR@10 / AR@100 COCO 平均召回 多 IoU COCO 方式 maxDets=[1,10,100] 对应。(GitHub2)

参考链接

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)"

相关推荐
火山引擎开发者社区1 小时前
技术速递|使用 GitHub Copilot CLI 构建 Emoji 列表生成器
人工智能
codefan※2 小时前
干掉“幻觉“实战:如何构建企业级知识图谱增强 RAG
人工智能·知识图谱
wukangjupingbb2 小时前
传统基于药物 SMILES 序列和蛋白质氨基酸序列的 DTI(Drug-Target Interaction)预测方法的缺陷
人工智能
沪漂阿龙2 小时前
Codex 额度重置周期变化:AI 编程免费试玩时代正在结束
人工智能
TickDB2 小时前
美股行情 API 接入避坑:REST 快照、WebSocket 推送、盘前盘后数据的边界
人工智能·python·websocket·行情数据 api
装不满的克莱因瓶2 小时前
深入理解卷积神经网络(CNN)——从原理到代码实践
人工智能·神经网络·cnn
完成大叔2 小时前
模块二,Agent知识图谱的工具链思考
人工智能
lauo2 小时前
ibbot手机发布:搭载poplang技术 + token节点经济,革新AI手机体验
人工智能·智能手机
咖啡星人k3 小时前
云端开发环境技术架构深度解析:从容器隔离到AI Agent集成
人工智能·架构
袋鼠云数栈3 小时前
从前端到基础设施,ACOS 如何打通企业全链路可观测
运维·前端·人工智能·数据治理·数据智能