标准回答
判定 TP 与 PR 曲线
先对检测框做 NMS 去重,再按置信度从高到低排序。逐个判定:与某真实框 IoU 超过阈值(如 0.5)且类别正确、且该真值未被占用,记为 TP,否则为 FP;漏检的真值是 FN。随着阈值下移逐点累加,可得到一系列 (Recall, Precision) 点,构成 PR 曲线。
AP 与 mAP
AP(Average Precision)是单个类别 PR 曲线下的面积,常用 11 点插值或全点插值近似,召回越高仍能保持高精度则 AP 越大。mAP 则是把所有类别的 AP 取平均,得到整体指标。
COCO 的多阈值口径
VOC 常用单一 IoU=0.5 的 mAP;COCO 更严格,在 IoU 从 0.5 到 0.95、步长 0.05 的 10 个阈值上各算一次 mAP 再平均(记作 mAP@[.5:.95]),同时还细分了小/中/大目标的 AP,更全面地反映定位精度。
常见误区
⚠️ 常见踩坑
别忘了 mAP 必须先做 NMS 且按类别分别计算 PR——直接拿全部框混算会高估;也别混淆 VOC 的 mAP@0.5 与 COCO 的 mAP@[.5:.95],两者数值不可直接比较。
追问
追问 1:为什么要按置信度排序后再逐点算 PR,而不是固定一个阈值?
因为检测器对每个框都输出置信度,不同置信度阈值会得到不同的 Precision/Recall 权衡。按置信度从高到低逐步纳入预测框,能扫出完整的 PR 曲线,AP 才能综合反映模型在各工作点上的表现,而非只看某一个阈值。
追问 2:同一个真实框被多个预测框命中怎么算?
通常只把置信度最高、IoU 达标的那个预测框记为 TP,其余命中同一真值的框记为 FP(重复检测)。这也是为什么要先做 NMS——减少重复框,避免 FP 虚高拉低 Precision。
延伸学习
与本题相关的知识库文章、术语、工具与行业资讯。
🛠️ AI 工具
- Recall
为 Claude Code 提供持久化记忆能力,完全离线运行,避免每次会话重复解释项目上下文。468 stars。