CVPR 2019 检测框不确定性
github:https://github.com/yihui-he/KL-Loss
论文原址:https://arxiv.org/pdf/1809.08545.pdf
Bounding Box Regression with Uncertainty for Accurate Object Detection
zhangxiangyu
提出问题
真值框本身的模糊性和不确定性
1.gt框本身有歧义,存在模糊性。作者列举了三种情况:比如边界标注不准确(a,c),遮挡(b),边界不清或无法给出确切边界(d)
2.类别分数高的边界框,回归出来不一定是精确的。
在损失在设计方面:
作者指出,boundingbox 回归损失设计(如smooth L1 loss等)中,并没有对不确定情况进行处理。同时,会认为分类置信度高的框更加精准,
3.所有的候选框位置都不精确。
问题分析
模糊样例造成大的loss干扰。
为了捕捉到box预测时的不确定性,对box预测和GT分别建模为高斯分布和狄拉克函数,则新的bbox回归损失可以看为预测分布和真值分布的KL散度。使用kl散度有如下优点:
1.能够捕获数据集的模糊性,回归器从模糊的边框中得到较小的损失。
2.学习到的方差可以用于后处理过程。本文提出的variance voting通过在NMS时利用学习到的方差作为相邻框的权值来vote出候选框的位置。
3.学习到的分布具有可解释性,反映了边界框预测不确定性程度,可能对下游应用(自动驾驶及机器人)的决策有所帮助。
本文方法
提出一个全新的regression loss,结合KL散度,可以让网络更好的拟合ground truth,让网络更好的学习和收敛,且这个过程可以嵌入NMS中,使定位更准确
网络头
由于文章的方法源自于Faster RCNN系列的算法,其前面的网络部分是相似的,其网络结构上最大的区别在于RCNN头的部分,改动了预测回归的目标与添加了一个预测检测框方差的分支,这个分支与检测框的预测组合起来计算KL-Loss
边界框参数化
本文重点评估位置的置信度。本文预测一个位置的分布,而不是边界框的位置,本文假设四个坐标分布独立,定义了单方差的高斯来进行简化。
Xe是预测出的bounding box坐标位置,σ {\sigma}σ代表分布的不确定性(越大则代表不确定性越大)。
对于GT的边界框也同样计算其对应的高斯分布,不过这里的σ同样趋近于0,从而得到Dirac delta函数:
x_g 是GT边界框的位置。
基于KL_Loss的边界框回归
在上面的参数化描述中已经将预测与GT的高斯分布表示出来了,接下来就是约束他们的KL散度了,其形式见下面的公式所示:
回归损失进行修改,分类损失不变:
如图,作者希望借此使得网络在预测出不准确的坐标时,能够输出较大的σ 2 ,所以回归损失会更低。(即Xe不准确时,为了使loss降低,分母σ 2 会变大)。公式后两项不依赖于参数,所以:
由于计算梯度时σ在分母上,因此在训练初期容易导致梯度爆炸,于是设置α = l o g ( σ 2 )
而对于∣ x g − x e ∣> 1,使用smooth L1 loss的做法:
光凭KL Loss就能带来提升是非常奇怪的(作者也用了“surprisingly”)。对此作者解释:
1.在训练中通过对高不确定性预测出高方差,网络可以学习到更多的有用的samples
2.定位的梯度可由网络自适应地控制,因而鼓励网络更加精准的学习:
3.KL Loss融合了定位置信度的学习,可潜在地帮助网络学习更多的discriminative features。
ref
https://www.cnblogs.com/fourmi/p/10721791.html
https://blog.csdn.net/stezio/article/details/90678030