NMS

Soft NMS

论文《Improving Object Detection With One Line of Code》
源码

1、Soft-NMS原理及实现

1.动机

非最大抑制(Non-maximum suppression, NMS)是物体检测流程中重要的组成部分(如下图划线部分)。NMS算法首先按照得分从高到低对建议框进行排序,然后分数最高的检测框M被选中其他框与被选中建议框有明显重叠的框被抑制。该过程被不断递归的应用于其余检测框。根据算法的设计,如果一个物体处于预设的重叠阈值之内,可能会导致检测不到该待检测物体。即当两个目标框接近时,分数更低的框就会因为与之重叠面积过大而被删掉
NMS_第1张图片

2.Soft-NMS的优势

它仅需要对传统的NMS算法进行简单的改动且不增额外的参数。该Soft-NMS算法在标准数据集PASCAL VOC2007(较R-FCN和Faster-RCNN提升1.7%)和MS-COCO(较R-FCN提升1.3%,较Faster-RCNN提升1.1%)上均有提升。
Soft-NMS具有与传统NMS相同的算法复杂度,使用高效
Soft-NMS不需要额外的训练,并易于实现,它可以轻松的被集成到任何物体检测流程中。

3.Soft-NMS原理

见下图伪代码,整个改进只需要使用绿色虚线表示的Soft-NMS替换红色虚线表示的NMS
B集合是检测到的所有建议框,S集合是各个建议框得分(分数是指建议框包含物体的可能性大小),Nt是指手动设置的阈值。M为当前得分最高框,bi 为待处理框。

NMS_第2张图片
综上,soft-nms的核心就是降低置信度

案例:

比如一张人脸上有3个重叠的bounding box, 置信度分别为0.9, 0.7, 0.85 。选择得分最高的建议框,经过第一次处理过后,得分变成了0.9, 065, 0.55(此时将得分最高的保存在D中)。这时候再选择第二个bounding box作为得分最高的,处理后置信度分别为0.65, 0.45(这时候3个框也都还在),最后选择第三个,处理后得分不改变。最终经过soft-nms抑制后的三个框的置信度分别为0.9, 0.65, 0.45。最后设置阈值,将得分si小于阈值的去掉。

缺点:但是,这里也有一个问题就是置信度的阈值如何选择,作者在这里依然使用手工设置的值,依然存在很大的局限性,所以该算法依然存在改进的空间。

NMS_第3张图片

4、f(iou(M,bi))权重函数的形式

原来的NMS可以描述如下:将IoU大于阈值的窗口的得分全部置为0。
NMS_第4张图片

Soft-NMS的改进有两种形式,一种是线性加权的:
NMS_第5张图片

你可能感兴趣的:(NMS)