发布网友 发布时间:2022-11-21 20:53
共1个回答
热心网友 时间:2024-11-16 05:58
NMS 是 one-stage 和 two-stage 目标检测任务中常用的一种后处理方法,用来过滤无效重叠的检测框。
NMS 全称非极大值抑制,出自 ICPR2006 的论文 《Efficient Non-Maximum Suppression》 。其基本思想很简单,就是保留局部最大值而去除局部非最大值。
NMS 对所有的类别的检测框进行循环过滤。对于某个类别 C ,首先对这些矩形框按照概率降序排列,选中概率最大的框作为候选框,对于剩下的框,依次与候选框求 IOU ,如果 IOU 大于某个阈值(超参),则将这些框丢弃(置0),并标记保留最大概率框。
以此类推,最终所有的框相互之间的 IOU 都是小于超参阈值的,或者概率被置为 0 了。剩下的所有概率非0的框就是最终的检测框。
基于这种计算逻辑的 NMS 有两个缺点。首先, NMS 算法需要一个超参即 IOU Threshold ,这个阈值在不同任务中很难平衡。其次, NMS 会将相邻或者重叠的两个物体对应的两个大概率目标框去掉一个,造成漏检。
实现:
Soft-NMS 出自 CVPR2017 的论文 《Improving Object Detection With One Line of Code》 ,对 NMS 做了一些改进。
Soft-NMS 总体算法流程同 NMS 相同,主要差别循环过程中对阈值的判断部分。 NMS 是简单的对 IOU 大于阈值的检测框进行删除出来,而 Soft-NMS 则是通过权重来降低检测框原有的置信度。对于有重叠的框,重叠区域越大,置信度衰减越严重。
Soft-NMS 计算降低置信度的权重常用两种方法:线性法和高斯法。
线性法:
高斯法:
实现如下,方法 1 为线性法,方法 2 为高斯法,其他参数的话 Soft-NMS 退化为 NMS :
模拟的 5 个候选框:
实验可以看出,在相同 IOU 阈值的情况下, Soft-NMS 相比 NMS 保留了一个检测结果,这在同类别物体重叠的情况下能够提升其召回率。但是 Soft-NMS 又多引入了一个超参,这个参数的设置也会显著影响后处理的结果;而且,由于 Soft-NMS 在每次迭代都会修改 score 值,其最大值是在动态变化的需要在每次迭代都寻找一次,因此 Soft-NMS 相比 NMS 计算效率有所降低。