目标检测中的检测框合并策略:NMS和Soft-NMS

概述

目标检测中的Region Proposal动辄上千,会形成大量有重合的检测框,需要使用某些算法对检测框去重。

常用的两种算法是NMS和Soft-NMS。

NMS

全称‘非极大值抑制(non maximum suppression)’.

算法思想很简单,按照分类概率排序,概率最高的框作为候选框,其它所有与它的IOU高于一个阈值(这是人工指定的超参)的框其概率被置为0。然后在剩余的框里寻找概率第二大的框,其它所有与它的IOU高于一个阈值(这是人工指定的超参)的框其概率被置为0。依次类推。

最终所有的框相互之间的IOU都是小于超参阈值的,或者概率被置为0了。剩下的所有概率非0的框就是最终的检测框。

NMS的缺点

首先,NMS算法需要一个超参,超参这玩意是个玄学,大了不行,小了也不行,很难平衡。

其次,NMS会将相邻的两个大概率目标框去掉一个,造成漏检,比如:

在这里插入图片描述

Soft-NMS

NMS算法是略显粗暴,因为NMS直接将删除所有IoU大于阈值的框。soft-NMS吸取了NMS的教训,在算法执行过程中不是简单的对IoU大于阈值的检测框删除,而是降低得分。算法流程同NMS相同,但是对原置信度得分使用函数运算,目标是降低置信度得分,伪代码如下:

在这里插入图片描述

其中红框内是NMS的步骤,绿框内是Soft-NMS的步骤(这两个步骤不共存,二选一)。
Soft-NMS没有在上述流程删除任何框,最后如果框的概率还大于一定值(如0.001,这又是一个超参了),则认为是一个有效检测框。

经典的NMS算法将IOU大于阈值的窗口的得分全部置为0,可表述如下:

在这里插入图片描述

soft-NMS置信度重置函数f有两种形式改进,一种是线性加权的:

在这里插入图片描述

一种是高斯加权的(线性的不平滑,高斯的加权函数是连续且平滑的):

在这里插入图片描述

可以说NMS是Soft-NMS特殊形式,当得分重置函数采用二值化函数时,Soft-NMS和NMS是相同的。soft-NMS算法是一种更加通用的非最大抑制算法。

论文作者提供的代码实现:https://github.com/bharatsingh430/soft-nms

Soft-NMS缺点

Soft-NMS的阈值仍然要手动指定,作者提到Soft-NMS对SSD、YOLO v2性能提升不明显。

总结

除了这两者还有很多检测框合并策略,比如Softter-NMS,还有旷视出品的IOU-Net等等。

参考资料

Soft-NMS论文原文: Soft-NMS: Improving object detection with one line of code

目标检测算法中检测框合并策略技术综述

NMS与soft NMS

Soft-NMS(3)_总结_ICCV2017

目标检测之非极大值抑制(NMS)各种变体

csdn博客:Soft-NMS: Improving object detection with one line of code

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值