核心要点

  • 能讲流程:先对每类检测框按置信度排序,用 IoU 阈值(如 0.5)和 NMS 后结果判定 TP/FP,逐点算出 Precision-Recall

  • 能定义 AP:AP = PR 曲线下面积(在不同召回率点上对精度积分/插值),衡量单个类别的综合检测质量

  • 能定义 mAP:mAP = 所有类别 AP 的平均值,反映整体检测性能

  • 能说清 COCO 口径:COCO mAP 在 IoU 0.5:0.95 共 10 个阈值上分别算 mAP 再平均(mAP@[.5:.95]),比单一 IoU=0.5 更严格

标准回答

判定 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。

延伸学习

与本题相关的知识库文章、术语、工具与行业资讯。