Soft NMS根据前面对目标检测中NMS的算法描述 , 易得出标准NMS容易出现的几个问题:当阈值过小时 , 如下图所示 , 绿色框容易被抑制;当过大时 , 容易造成误检 , 即抑制效果不明显 。因此 , 出现升级版soft NMS 。
文章插图
Soft NMS算法伪代码如下:
文章插图
标准的NMS的抑制函数如下:
文章插图
IOU超过阈值的检测框的得分直接设置为0 , 而soft NMS主张将其得分进行惩罚衰减 , 有两种衰减方式 , 第一种惩罚函数如下:
文章插图
这种方式使用1-Iou与得分的乘积作为衰减后的值 , 但这种方式在略低于阈值和略高于阈值的部分 , 经过惩罚衰减函数后 , 很容易导致得分排序的顺序打乱 , 合理的惩罚函数应该是具有高iou的有高的惩罚 , 低iou的有低的惩罚 , 它们中间应该是逐渐过渡的 。因此提出第二种高斯惩罚函数 , 具体如下:
文章插图
这样soft NMS可以避免阈值设置大小的问题 。
Soft NMS还有后续改进版Softer-NMS , 其主要解决的问题是:当所有候选框都不够精确时该如何选择 , 当得分高的候选框并不更精确 , 更精确的候选框得分并不是最高时怎么选择。论文值得一看 , 本文不作更多的详解 。
此外 , 针对这一阈值设置问题而提出的方式还有Weighted NMS和Adaptive NMS 。
Weighted NMS主要是对坐标进行加权平均 , 实现函数如下:
文章插图
其中Wi = Si *IoU(M,Bi),表示得分与IoU的乘积 。
Adaptive NMS在目标分布稀疏时使用小阈值 , 保证尽可能多地去除冗余框 , 在目标分布密集时采用大阈值 , 避免漏检 。
Softer NMS论文链接:
https://arxiv.org/abs/1809.08545
Softer NMS论文代码:
https://github.com/yihui-he/softer-NMS
Weighted NMS论文链接:
https://ieeexplore.ieee.org/document/8026312/
Adaptive NMS论文链接:
https://arxiv.org/abs/1904.03629
DIoU NMS
文章插图
当IoU相同时 , 如上图所示 , 当相邻框的中心点越靠近当前最大得分框的中心点 , 则可认为其更有可能是冗余框 。第一种相比于第三种更不太可能是冗余框 。因此 , 研究者使用所提出的DIoU替代IoU作为NMS的评判准则 , 公式如下:
文章插图
DIoU定义为DIoU=IoU-d²/c² , 其中c和d的定义如下图所示 。
文章插图
在DIoU实际应用中还引入了参数β , 用于控制对距离的惩罚程度 。
文章插图
当 β趋向于无穷大时 , DIoU退化为IoU , 此时DIoU-NMS与标准NMS效果相当 。
当 β趋向于0时 , 此时几乎所有中心点与得分最大的框的中心点不重合的框都被保留了 。
注:除了DIoU外 , 还有GIoU , CIoU , 但这两个都没有用于NMS , 而是用于坐标回归函数 , DIoU虽然本身也是用于坐标回归 , 但有用于NMS的 。
推荐阅读
- 一文搞懂shell脚本
- 烫发|染发真的会致癌吗?染发和烫发哪个危害大?一文告诉你
- 一加|一加10T和一加10 Pro区别在哪?一文提前了解
- ARM|高通要用!一文了解ARMv9第二代Cortex核心:性能创新高
- 300块和3000块的眼镜,有啥区别?一文为你揭秘,涨知识了
- 一文读懂 Android 系统的源代码
- 微软|Win11 22000.778新版上线:一文了解更新详情
- 一文教你实现Spring动态启停定时任务
- 什么被誉为西方文明之源,被称为西方文明之源的是哪一文明-
- 微信|2022年高考分数线持续出炉:微信如何查分 一文看懂