本文主要是介绍目标检测之Softer-NMS,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
一、目标检测之Softer-NMS
Bounding Box Regression with Uncertainty for Accurate Object Detection
- 论文链接:https://arxiv.org/abs/1809.08545
- 论文翻译:https://blog.csdn.net/weixin_42662134/article/details/88967206
- 论文详解:https://blog.csdn.net/lcczzu/article/details/86518615
- 论文代码:https://github.com/yihui-he/softer-NMS
二、Softer-NMS算法
1、论文动机
目前NMS会出问题的情况:
1)所有的候选包围框都不够精确(这时候该选择哪一个?或者有没有可能综合这些候选框的信息提高精度?);
2)拥有高的分类分数的候选包围框不精确(如何更有效地评价候选框的定位精度?)
如下图:
图中(a)展示了2个均在某些坐标不精确的候选包围框,(b)展示了定位精度高的候选框分类分数较低。
以上检测失败的例子都表明,定位置信度并不是与分类置信度强相关(事实上好的分类器应该对定位信息不敏感)。
2、论文算法思想
- 首先假设预测的bounding box的是高斯分布:
- ground truth bounding box是狄拉克delta分布(既标准方差为0的高斯分布极限):
上个式子里面的delta分布是当高斯分布的σ趋于0时的极限分布,大概就是这样:
当σ越小,曲线越瘦高,当σ非常小的时候,几乎是一条竖直的线,同时σ越小,表示越确定,因此1−σ可以作为置信度的。
网络架构:
KL 散度用来衡量两个概率分布的非对称性度量,KL散度越接近0代表两个概率分布越相似。
论文提出的KL loss,即为最小化Bounding box regression loss,即Bounding box的高斯分布和ground truth的狄拉克delta分布的KL散度。直观上解释,KL Loss使得Bounding box预测呈高斯分布,且与ground truth相近。而将包围框预测的标准差看作置信度。
我们估计值的高斯分布,对应蓝色和灰色的曲线。橙色的曲线是ground-truth对应的狄拉克函数。当预测bbox位置没被估计准确,我们期望预测结果有更大的方差,这样Lreg会比较低(蓝色)。
使用KL loss进行回归:
最终推导后损失函数:
为了避免梯度爆炸,我们的网络实际中预测的是α=log(σ²)α=log(σ²),而不是σ;
var voting(方差投票):
得到上述置信度,即可以在Soft NMS后进一步改进,将大于一定重叠度阈值Nt的候选包围框根据置信度加权平均。(因为在训练的时候寻求包围框预测的方差小,所以这一步加权平均后不会出现框出来“四不像”的情况)
计算过程如下:
结果
这篇关于目标检测之Softer-NMS的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!