核心要点

  • IoU = 两框交集面积 / 并集面积,取值 0~1,衡量框的重叠程度

  • IoU 既用于训练时判正负样本,也用于评估时判定 TP(如 IoU≥0.5)

  • NMS:按置信度降序,保留最高分框,删掉与它 IoU 超阈值的其余框

  • 阈值要权衡:NMS 阈值过低会漏检密集目标,过高会留下重复框

标准回答

IoU(Intersection over Union)

两个边界框交集面积除以并集面积,即 IoU = 交集 / 并集,范围 [0,1]。值越大重叠越多。它是检测里最核心的几何度量:训练时按 IoU 把 anchor 划为正/负样本;评估 mAP 时按 IoU 阈值(如 0.5、0.75)判定预测框是否命中真值。

NMS(非极大值抑制)

模型对同一物体常输出多个高度重叠的框,NMS 用来去重。流程:

  • 按置信度对所有框降序排序
  • 取分数最高的框作为保留框
  • 计算其余框与它的 IoU,删除 IoU 超过阈值(如 0.5)的框
  • 在剩余框上重复,直到全部处理完

变体 Soft-NMS 不直接删除而是按 IoU 衰减分数,缓解密集场景误删。

常见误区

⚠️ 常见踩坑

NMS 是跨类别还是按类别要看实现,标准做法是逐类别独立执行;NMS 阈值与评估 IoU 阈值是两回事,不要混为一谈。

追问

追问 1NMS 阈值设置过高或过低会怎样?

阈值过高(更宽松)会保留大量重叠框,造成重复检测、精确率下降;阈值过低(更严格)会把密集排列的相邻目标误删,造成漏检、召回下降。需结合场景(如人群密集)调参,或用 Soft-NMS。

追问 2Soft-NMS 相比标准 NMS 改进了什么?

标准 NMS 对重叠超阈值的框直接置零删除,密集目标易误删。Soft-NMS 改为按与保留框的 IoU 连续衰减其置信度(IoU 越大衰减越多),让本属于另一目标的高分框得以保留,通常能提升密集场景的召回与 mAP。

延伸学习

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

🛠️ AI 工具

  • OpenCV

    开源计算机视觉库,87,181+ stars。全球最广泛使用的计算机视觉库,提供 2500+ 优化算法,涵盖图像处理、目标检测、人脸识别、相机标定等领域。支持 C++、Python、Java,是 AI 视觉应用的基石。

  • Pytorch

    Meta 开源的深度学习框架,100K+ stars。以动态计算图和 Pythonic 风格著称,在学术界和工业界都有广泛应用,支持分布式训练、移动端部署和 ONNX 导出