NMS 系列:soft,softer,weighted,iou-guided, Diou, Adaptive

news/2024/7/10 1:25:09 标签: 深度学习, 人工智能, 算法, 目标检测

系列文章目录

IOU 系列:IOU,GIOU,DIOU,CIOU

文章目录

  • 系列文章目录
  • 一、NMS简介
    • (一)为什么要使用NMS
    • (二)NMS的算法流程
    • (三)NMS的置信度重置函数
    • (四)NMS的局限性
    • (五)改进思路
  • 二、Soft-NMS概述
    • (一)Soft-NMS的思想
    • (二)Soft-NMS的置信度重置函数
  • 三、softer NMS
    • (一)提出背景
    • (二)softer NMS的核心思想
    • (三)softer NMS的算法流程
      • 1、先验假设
      • 2、KL 损失
      • 3、网络架构
      • 4、算法步骤
  • 四、Weighted-NMS
    • (一)提出背景
    • (二)Weighted-NMs思想
  • 五、IOU-Guided NMS
    • (一)lOU-Guided NMs的思路
    • (二)lOU-Guided NMs的算法流程
  • 六、DIOU-NMS
  • 七、 Adaptive NMS
    • (一)Adaptive NMS的提出背景
    • (二)Adaptive-NMS的思想
    • (三)Adaptive-NMS的算法流程
    • (四)Adaptive-NMS的网络结构
  • 八、NMS系列总结
    • (一)根据是否需要训练分类
    • (二)根据改进策略进行分类


一、NMS简介

(一)为什么要使用NMS

非极大抑制的功能:筛选出一定区域内属于同一种类得分最大的框

大多数目标检测算法(稠密预测)在得到最终的预测结果时,特征图的每个位置都会输出多个检测结果,整个特征图上会出很多个重叠的框。例如要检测一辆车,可能会有多个bbox都把这辆车给框了出来,因此需要从这些bbox中选出框得最好的,删除掉其它的。要定义框得好与不好,就得看bbox的预测置信度;为了删掉重叠的多余的框,就得利用IoU来检查重叠程度。
在这里插入图片描述

(二)NMS的算法流程

每轮选取置信度最大的 Bounding Box ,接着关注所有剩下的 BBox 中与选取的 BBox 有着高重叠(IoU)的,它们将在这一轮被抑制。这一轮选取的 BBox 会被保留输出,且不会在下一轮出现。接着开始下一轮,重复上述过程:选取置信度最大 BBox ,抑制高 IoU BBox。
在这里插入图片描述

(三)NMS的置信度重置函数

对于IOU>阈值的两个相邻的检测框,NMS将其得分暴力置零,相当于直接舍弃。
在这里插入图片描述

(四)NMS的局限性

  • 循环步骤,GPU难以并行处理,运算效率低
  • 以分类置信度为优先衡量指标分类置信度高的定位不一定最准,降低了模型的定位准确度
  • 直接提高阈值暴力去除bbox 将得分较低的边框强制性地去掉,如果物体出现较为密集时,本身属于两个物体的边框,其中得分较低的框就很有可能被抑制掉,从而降低了模型的召回率,且阈值设定完全依赖自身经验。

(五)改进思路

  1. 根据手动设置阈值的缺陷,通过自适应的方法在目标系数时使用小阈值,目标稠密时使用大阈值。例如Adaptive NMS。

  2. 将低于阈值的直接置为0的做法太hard,通过将其根据IoU大小来进行惩罚衰减,则变得更加soft。例如Soft NMS,Softer NMS。

  3. 只能在CPU上运行,速度太慢的改进思路有三个,一个是设计在GPU上的NMS,如CUDA NMS,一个是设计更快的NMS,如Fast NMS,最后一个是掀桌子,设计一个神经网络来实现NMS,如ConvNMS。

  4. IoU的做法存在一定缺陷,改进思路是将目标尺度、距离引进IoU的考虑中。如DIoU。

二、Soft-NMS概述

nms的局限性:对于IOU>阈值的两个相邻的检测框,传统的NMS的做法是将其得分暴力置零相当于直接舍弃。这样的做法很有可能造成漏检,尤其在遮挡的场景下。

(一)Soft-NMS的思想

对于与最高分框的IOU大于阈值的框M,我们不把他直接去掉,而是将他的置信度降低(添加惩罚项来抑制,I0U越大,抑制的程度也越大),这样的方法可以使多一些框被保留下来,从而一定程度上避免遮挡的情况出现。

在这里插入图片描述

(二)Soft-NMS的置信度重置函数

如果只是把置信度降低,那么是不是原来周围的多个表示同一个物体的框也没办法去掉了? Soft-NMS这样来解决这个问题,同一个物体周围的框有很多,每次选择分数最高的框,抑制其周围的框,与分数最高的框的loU越大,抑制的程度越大,一般来说,表示同一个物体的框(比如都是前面的马)的loU是会比另一个物体的框(比如后面的马)的loU大,因此,这样就会将其他物体的框保留下来,而同一个物体的框被去掉。

Soft-NMS算法的置信度重置函数有两种方式:

  • 一种采用线性加权:
    在这里插入图片描述

  • 另一种采用高斯加权:
    在这里插入图片描述

三、softer NMS

(一)提出背景

NMS 默认置信度分数较高的框,定位更精确,由于分类和回归任务没有直接相关性,因此这个条件并不总是成立。

  • 图(a)中两个边界框位置都不够精确;
  • 图(b)中置信度较高的边界框的左边界精确度较低。
    在这里插入图片描述

(二)softer NMS的核心思想

  • 针对图(a)中的问题一:提出一种方法根据IoU置信度加权合并多个框优化最终生成框
  • 针对图(b)中的问题二:构建一种IoU的置信度,来建模有多大把握认为当前框和GT是重合的

基于上述观察,softer NMS算法设计了一个新的网络结构来对检测框的位置概率分布进行建模,对所有框不仅预测位置坐标,还预测位置方差。对于重叠的检测框,根据重叠程度和位置不确定性进行投票,重叠程度高,位置分布方差小的检测框权重大,从而获得更精确的检测框。该文还提出了一种新的包围框回归的损失函数(KL Loss),用来同时学习包围框变换和定位置信度。

softer NMS的特点:

  • 边界框参数化(预测一个分布替代唯一的定位);
  • 训练时边框回归时采取KL损失;
  • 一个新的NMS方法提高定位准确性。

(三)softer NMS的算法流程

1、先验假设

Softer NMS 论文中有两个先验假设:( x x x表示偏移前的预测框, x e x_e xe表示偏移后的预测框, x g x_g xg表示GT框)

  • Bounding box的是高斯分布: P θ ( x ) = 1 2 π σ 2 e ( x − x e ) 2 2 σ 2 P_\theta(x)=\frac{1}{2\pi\sigma^2}e^{\frac{(x-x_e)^2}{2\sigma^2}} Pθ(x)=2πσ21e2σ2(xxe)2
  • ground truth bounding box是狄拉克delta分布(即标准方差为0的高斯分布极限): P D ( z ) = δ ( x − x g ) P_D(z)=\delta(x-x_g) PD(z)=δ(xxg)

2、KL 损失

然后,考虑到KL散度常用于衡量两个分布之间的差异,作者将最小化包围框预测的高斯分布和ground truth的狄拉克delta分布的KL散度作为文章的KL Loss。直观上解释,KL Loss使得包围框预测呈高斯分布,且与ground truth相近。而将包围框预测的标准差看作置信度。
在这里插入图片描述
最终推导后损失函数:
在这里插入图片描述

3、网络架构

softer NMS的网络结构图如下,上面是原始fasterRCNN的结构,下面是softer-nms结构,多加了一个sigma预测,也就是box std,而Box的预测其实就是上面公式中的 x e x_e xe。由图中可知,标准差估计与包围框定位都包含在损失函数Lreg中。
在这里插入图片描述

4、算法步骤

下图所示为Softer-NMS的实现过程,其实很简单,预测的四个顶点坐标,分别对IoU>Nt的预测加权平均计算,得到新的4个坐标点:

  • 蓝色部分是soft-nms,只是降低了S的权值
  • 绿色部分表示拿出所有与B的IoU大于Nt的框(用idx表示),然后将所有这些框做一个加权,B[idx]/C[idx]其实是B[idx] * 1/C[idx],后者是置信度,并使用sum做了归一化。
    在这里插入图片描述

四、Weighted-NMS

(一)提出背景

NMS方法在一组候选框中选择分数最大的框作为最终的目标框。然而,非极大的检测结果保存了特征的最大值,因此忽略非极大的检测检测结果是不合适的。
在这里插入图片描述

(二)Weighted-NMs思想

soft NMS是通过抑制机制来改善剔除结果(降低超阈值的得分策略),Weighted NMS(W-NMS)则是从极大值这个方面进行改进。W-NMS认为Traditional NMS每次迭代所选出的最大得分框未必是精确定位的,冗余框也有可能是定位良好的。因此,W-NMS通过分类置信度与IOU来对同类物体所有的边框坐标进行加权平均,并归一化。 其中,加权平均的对象包括M自身以及IoU≥NMS阈值的相邻框。
在这里插入图片描述

五、IOU-Guided NMS

(一)lOU-Guided NMs的思路

在一般检测的框架中,增加了一个额外的分支用来预测每个框的定位置信度(该框与GT的loU,下图),然后用预测的loU代替分类置信度作为NMS排序的关键,消除误导性分类置信度引起的抑制失效。
在这里插入图片描述

(二)lOU-Guided NMs的算法流程

lOU-Guided NMs的伪代码如下图所示。具体来说,就是使用 定位置信度 作为 NMS 的筛选依据,每次迭代挑选出最大定位置信度的框 M ,然后将loU>=NMS 阈值的相邻框剔除,但把 冗余框及其自身的最大分类得分 直接赋子 M 。因此,最终输出的框必定是 同时具有最大分类得分与最大定位置信度的框。
在这里插入图片描述

六、DIOU-NMS

DIOU-NMS在nms过程中采用DloU的计算方式替换了loU,由于DloU的计算考虑到了两框中心点位置的信息,故使用DloU进行评判的nms效果更符合实际,效果更优。
在这里插入图片描述

七、 Adaptive NMS

(一)Adaptive NMS的提出背景

使用单一阈值的NMS会面临这种困境:较低的阈值会导致丢失高度重叠的对象(图中蓝框是未检测出来的目标),而较高的阈值会导致更多的误报(红框是检测错误的目标)。这在密集场景下,如行人检测中,会导致较低的准确率。
在这里插入图片描述

(二)Adaptive-NMS的思想

Adaptive NMS应用了动态抑制策略,其中阈值随着目标聚集和相互遮挡(密度)而上升,并在目标单独出现时衰减。并设了一个自网络用于学习密度的分数。

  • 对于远离M的检测框,它们被误报的可能性较小,因此应该保留它们。
  • 对于高度重叠的相邻检测,抑制策略不仅取决于与M的重叠,还取决于M是否位于拥挤区域。如果M位于拥挤的区域,其高度重叠的相邻框很可能是真正的正例,应该分配较轻的惩罚或保留。但是对于稀疏区域中的实例,惩罚应该更高以修剪误报。

(三)Adaptive-NMS的算法流程

对于每个目标的密度,定义如下:
在这里插入图片描述

依据这个定义,更新策略为:(其中 N M N_M NM表示 M M M的Adaptive NMS 阈值, d M dM dM 是目标 M M M覆盖的密度。)
在这里插入图片描述

可以看出,这个抑制措施具有三个属性:

  • 当相邻box远离 M M M时,即 loU ⁡ ( M , b i ) < N t \operatorname{loU}(\mathrm{M}, \mathrm{bi})<N_t loU(M,bi)<Nt时,他们的分值仍为 s i s_i si
  • 如果M位于拥挤区域, 即 d M > N t \mathrm{dM}>\mathrm{Nt} dM>Nt, 则NMS的阈值为 M M M的密度 d M dM dM。因此,相邻的边框被保留,既然它们非常可能定位到M周围的其他目标;
  • 如果目标在稀疏区域,即 d M < = N t \mathrm{dM}<=\mathrm{Nt} dM<=Nt,则NMS的阈值为 N t Nt Nt

(四)Adaptive-NMS的网络结构

文中将密度估计看作一个回归问题,使用如下的三层的卷积子网络进行预测,采用Smooth L1 损失。
在这里插入图片描述
Adaptive NMS的伪代码,与基本NMS算法相比仅替换了阈值。
在这里插入图片描述

八、NMS系列总结

(一)根据是否需要训练分类

  • 不需要训练的NMS方法(NMS、Soft-NMS、Weighted-NMS、Cluster-NMS)
  • 需要训练的NMS(softerNMS、ConvNMS、PureNMS、 IOU-GuidedNMS、AdaptiveNMS)

(二)根据改进策略进行分类

  • 带权重的NMS(Soft NMS, Softer NMS,Weighted NMS)
  • 考虑定位的NMS(IOU-Guided NMS)
  • 阈值自适应的NMS(Adaptive NMS)
  • 并行的NMS(Fast NMS, Cluster NMS)

参考:
NMS系列(NMS,Soft-NMS,Weighted-NMS,IOU-Guided NMS,Softer-NMS,Adaptive NMS,DIOU NMS,Cluster NMS)
NMS方法总结(不需要训练的NMS方法&&需要训练的NMS方法)


http://www.niftyadmin.cn/n/5467092.html

相关文章

【SQL Server】1. 认识+使用

1. 创建数据库的默认存储路径 C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Microsoft SQL Server 2008 R2 当我们选择删除数据库时&#xff0c;对应路径下的文件也就删除了 2. 导入导出数据工具的路径 3. 注册数据库遇到的问题 ??? 目前的问题就是服务器新建…

AssetBundle在移动设备上丢失

1&#xff09;AssetBundle在移动设备上丢失 2&#xff09;Unity云渲染插件RenderStreaming&#xff0c;如何实现多用户分别有独立的操作 3&#xff09;如何在圆柱体类型的地图中编程玩家的输入 4&#xff09;Mixamo动画的根运动问题 这是第380篇UWA技术知识分享的推送&#xff…

【嵌入式开发 Linux 常用命令系列 15 -- 在管道符输出的内容后追加字符】

请阅读【嵌入式开发学习必备专栏 】 文章目录 在管道符输出的内容后追加字符使用 awk 追加字符使用 sed 追加字符 在管道符输出的内容后追加字符 在 shell 中&#xff0c;如果希望将某个命令的输出通过管道传递到另一个命令&#xff0c;并在每一行的末尾追加字符&#xff0c;可…

【御控物联】JSON结构数据转换在物流调度系统中的应用(场景案例三)

文章目录 一、前言二、场景概述三、解决方案四、在线转换工具五、技术资料 一、前言 物流调度是每个生产厂区必不可少的一个环节&#xff0c;主要包括线边物流和智能仓储。线边物流是指将物料定时、定点、定量配送到生产作业一线的环节&#xff0c;其包括从集中仓库到线边仓、…

恶劣条件下GNSS定位的鲁棒统计

全球导航卫星系统&#xff08;GNSS&#xff09;作为定位信息的主要来源&#xff0c;在智慧工厂、智慧能源、智慧交通的未来应用中发挥着重要作用。此外&#xff0c;GNSS为电网或股市等关键应用提供定时同步功能。然而&#xff0c;GNSS的性能很容易因自然现象和信号反射而降低。…

数字转型新动力,开源创新赋能数字经济高质量发展

应开放原子开源基金会的邀请&#xff0c;软通动力董事、鸿湖万联董事长黄颖基于对软通动力开源战略的思考&#xff0c;为本次专题撰文——数字转型新动力&#xff0c;开源创新赋能数字经济高质量发展。本文首发于2023年12月12日《中国电子报》“开源发展与开发者”专题第8版。以…

fdisk -l命令有什么用?fdisk -l详解

fdisk -l命令用于查看CentOS系统中所有硬盘及其分区的详细信息。该命令的输出会显示硬盘的大小、分区表结构、分区类型以及每个分区的起始和结束扇区等信息。 以下是一个典型的fdisk -l命令输出示例及其解释&#xff1a; Disk /dev/sda: 478.9 GB, 478888853504 bytes, 9353297…

【C/C++】循环移位

题目描述: 编写一个C程序&#xff0c;接受两个整数输入 i 和 j&#xff0c;如果 j 的值大于 0&#xff0c;则将 i 循环左移 j 位&#xff1b;如果 j 的值小于 0&#xff0c;则将 i 循环右移 j 位。最后输出 i 的值。 输入格式&#xff1a; 两个整数 i 和 j&#xff0c;以空格分…