# NMS 不看真值,评价匹配必须看真值 [独立阅读](/course/blocks/nms-versus-matching.html)**课堂上下文:从哪个问题来** 三个重叠预测可能对应一只杯子。NMS 用预测之间的分数与重叠整理重复,评价匹配则使用真值,二者不是同一操作。先看三框算例,再看同一真实教学检测器放宽 NMS 后召回和精度的相反变化。 NMS 从预测框中整理重复。按类别与分数排序,保留最高分框 A,再抑制与 A 的 IoU 大于阈值的同类低分框,然后继续。输入只有预测框、分数和类别,不需要人工真值。 回到 P34 同一杯子上的三个框。A、B、C 的教学分数分别为 0.90、0.80、0.60;IoU(A,B)≈0.90,IoU(A,C)≈0.88。按分数先保留 A,在 NMS 阈值为 0.5 时,B 和 C 都与 A 过度重叠,因此都被抑制。蓝杯的另一个框与 A 不重叠,仍然保留。这里比较的是预测框彼此之间的重叠,还没有使用真值。 若把阈值放宽到 0.90,在本例原始坐标下,IoU(A,B)=0.8950778、IoU(A,C)=0.8774870,都没有超过阈值;重复框便可能继续留下。因此判定应使用未四舍五入的 IoU,图中 0.90 只是显示精度。下一步评价才用真值判断它们是在补漏检还是重复命中。 若两只真实杯子互相遮挡,两个正确框也可能高度重叠。将 `(0,0,2,2)` 与 `(.5,0,2.5,2)` 当作两只对象的框,交集 3、并集 5,IoU=.6;NMS=.5 就可能删掉较低分的真对象。它以几何重叠近似重复,没有直接知道对象身份。 评价再用保留下来的框与人工对象对应。重复命中同一真值只允许一次计为 TP,其余是 FP;漏掉的对象降低 recall。模型预测、后处理、评价三层分开,就能解释为什么“放宽 NMS 得到更多框”既可能补召回,也可能伤精度。 图内标签与数值:Lecture 03 课堂图解 P34;保留 A;B、C 与它过度重叠;教学分数 / IoU 阈值 0.5;A 0.90 保留;B 0.80 抑制;C 0.60 抑制;另一只杯子仍然保留;拥挤对象也可能互相压制;按同类别分数排序,抑制 IoU > 0.5 的重叠预测;分数是教学设定。 同一红杯上的 A、B、C:阈值0.5保留A、抑制B和C;蓝杯独立框继续保留。比较预测之间的IoU,不使用真值。 查看对应图解状态 - 保留 A;B、C 与它过度重叠 - 教学分数 / IoU 阈值 0.5 - A 0.90 保留 - B 0.80 抑制 - C 0.60 抑制 - 另一只杯子仍然保留 - 拥挤对象也可能互相压制 - 按同类别分数排序,抑制 IoU > 0.5 的重叠预测;分数是教学设定。同一红杯上的 A、B、C:阈值0.5保留A、抑制B和C;蓝杯独立框继续保留。比较预测之间的IoU,不使用真值。 [查看对应图解状态](/#/l3-r2-p34/1)[查看完整图解](/#/l3-r2-p34/1) ## 继续阅读与实验