非极大值抑制(Non-Maximum Suppression,NMS)是在目标检测中广泛应用的一种方法:首先对每一个预测框给出一个分类和置信度,对每一类的框,按照置信度从小到大排序;然后选中置信度最大的框,依次和前面的同类框计算IOU,对于IOU大于阈值的框,就直接删除掉(也可以理解成将这些框的置信度设置为0);反复进行这个过程,直到被选中的框的数量达到设定的数量,或者没有剩下的框了.
NMS存在一个缺点,就是有可能把本来是一个好的预测框删除掉,如下图所示,红框的置信度高于绿框,而且和绿框的IOU也大于阈值,于是绿框就被删除了,但是红框和绿框预测的是不同的目标,绿框不应该被删除,否则就会漏掉这个目标.
Soft-NMS是对NMS的改进,改进之处在于,对于IOU大于阈值的框,并不是直接将这些框的置信度设置为0,而是让这些框的置信度变小(或者说衰减),也就是说这些框仍然有机会被保留下来,从而避免了好框被删除的情况,提高了mAP.NMS和Soft-NMS的区别如下图所示:
具体的,NMS对第i个框的置信度si按照下面的公式处理:
也就是如果小于阈值就保持不变,大于阈值就直接等于0.
而Soft-NMS对第i个框的置信度si按照下面的公式处理:
也就是小于阈值仍然保持不变,大于阈值就衰减.如si本来是0.80,IOU是0.50的话,就衰减为0.80×(1-0.50)=0.40.
实验结果表明,Soft-NMS将mAP提高了1%~2%.