传统的NMS (Non-Maximum Supression)去重过程如下:
但是对于两个“高度重合的object”,却容易“误杀”,导致只剩下一个bbox:
针对传统的NMS计算公式:
Bharat Singh等人提出了soft版的NMS:
即:
不再删除所有与highest-score的bbox大于IoU阈值的框,而改为降低它们的置信度。
根据新公式易知,soft-nms对于 低overlap (注意不是低score)的bbox 保留得更好 。
落实到代码中真的就是“One line of code”:
作者的实验显示,在相同召回率的情况下,不论阈值取0.6、0.7还是0.8,Soft-NMS的accuracy都要稍高过传统NMS一丢丢:
作者找了一些higly-overlap objects的场景图来验证Soft-NMS的优越性: