非极大值抑制(Non-Maximum Suppression,简称NMS)是一种在计算机视觉任务中,尤其是在目标检测领域扮演着重要角色的低层次处理技术。它通过筛选出局部极大值得到最优解,广泛应用于边缘检测、目标检测等领域。NMS算法在目标检测中,通过消除冗余的边界框来完善物体检测模型的输出,并确保每个物体只被检测一次。这一过程大大提高了检测结果的准确性和可解释性,使其成为现代物体检测管道不可或缺的组成部分。
NMS算法的核心思想是通过设定一个阈值来判断两个候选框是否重叠。常用的重叠度量是交并比(IoU),定义为两个候选框的交集面积除以它们的并集面积。当两个候选框的IoU大于设定的阈值时,认为它们重叠。算法的步骤如下:
-
按照置信度分数对所有候选框进行排序,从高到低。
-
选择置信度最高的候选框,并将其作为最终输出的一个检测结果。
-
计算该候选框与其他未处理的候选框的重叠区域的面积(可以使用交并比(Intersection over Union,IoU)来度量重叠程度)。
-
去除与已选择的候选框有较高重叠的候选框,以避免重复检测。
-
重复步骤2到4,直到所有候选框都被处理完毕。
NMS算法保留了置信度最高的候选框,并通过去除与其重叠的其他候选框,消除了冗余的检测结果。通过调整IoU阈值,可以控制NMS的严格程度。较高的IoU阈值会保留更多的候选框,但可能导致冗余检测;较低的IoU阈值可以去除更多的冗余框,但可能会错过一些真实目标
NMS(Non-Maximum Suppression)和Soft-NMS都是目标检测中用于去除冗余边界框的技术,但它们在处理边界框的方式上有所不同。
NMS通过直接消除那些与已选择边界框IoU(Intersection over Union)大于设定阈值的候选框来简化检测结果。这种方法简单直接,但有时可能会错误地抑制掉一些重要的边界框,特别是当这些边界框的置信度较高时。
Soft-NMS则是一种改进的NMS方法,它不是简单地删除那些IoU大于阈值的候选框,而是降低这些框的置信度。Soft-NMS通过一个函数来调整每个框的置信度,这个函数考虑了IoU值,对于那些原来置信度不高的Box,一打压,其置信度就会低于置信度门槛值,从而在后续的筛选中被过滤掉;而对于那些置信度很高的Box,即使打压,其置信度依然高,最后得以保留。Soft-NMS的IoU主要是用来打压Box的置信度的,以高斯函数举例,如果iou越大,则对Si的影响越大,使得Si越小,这样就更新了每个Box的Si的值。最终保留那些即使iou不是很高,同时置信度不是很低的Box。这种方法可以避免NMS中直接消除边界框的问题,从而保留更多有用的信息,有助于提高检测的召回率。
总的来说,Soft-NMS相对于传统的NMS来说,是一种更“柔软”的处理方式,它通过调整置信度而不是直接删除边界框,以期望获得更好的检测性能。Soft-NMS还有后续改进版Softer-NMS,其主要解决的问题是:当所有候选框都不够精确时该如何选择,当得分高的候选框并不更精确,更精确的候选框得分并不是最高时怎么选择。论文值得一看,本文不作更多的详解。