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 得到更多框”既可能补召回,也可能伤精度。