论文原文
https://arxiv.org/abs/1809.08545
论文题目的翻译
精确目标检测的不确定边界框回归
摘要
大规模的目标检测数据集(例如MS-COCO)在进行Ground Truth框标注时仍然存在歧义。这篇论文提出了新的边界框回归损失针对目标框的移动以及位置方差进行学习,这种方法在几乎不增加计算量的基础上提高不同结构定位的准确性。另一个关键点事,由于学习了bounding box的分布,可以将其应用在NMS阶段合并相邻目标框,进一步提升定位的准确性。代码可在github.com/yihui-he/KL-Loss找到。
介绍
\quad
在大规模目标检测数据集中,一些场景下目标框的标注是存在歧义的,这种情况如果直接使用以前目标检测的边界框回归损失,也即是Smooth L1Loss会出现学习很不稳定,学习的损失函数大的问题。Figure 1展示了哪些场景可能存在目标框标注不准确的情况:
(a,c),,框的标记不准确。(b)由遮挡引起的歧义。©图片物体不完整,不明确物体的边界在哪里。
\quad
目标检测包含分类以及定位,是一个多任务的学习问题。Faster R-CNN,Cascade R-CNN及Mask R-CNN依靠边界框回归来进行目标定位。
\quad
然而,传统的边界框损失即Smooth L1损失并没有考虑到ground truth模糊的情形。一般来说,分类的分数越高,其边界框的回归应该更加准确,然而,这种情况不是总是发生,例如Figure 2所示:
(a)两个候选框都是不准确的。大的过大,小的过小。
(b)具有较高分类分数的边界框的左边界是不准确。(颜色更容易观察)
\quad
为了解决这些问题,论文提出了新的边界框损失函数-KL损失,可以同时学习边界框的回归以及定位的不准确性。特别的,为了捕捉边界框预测的不确定性,首先将边界框的预测以及ground truth框分别看做高斯分布函数和狄克拉分布函数。则新定义的回归损失可以看作是预测分布和真实分布之间的KL散度。我们知道KL有3个优点:(1)可以成功捕获数据集中的模糊。边界框回归器从模糊的边界框中获得较小的损失。(1)在后处理过程中,所学的方差是有用的。论文提出了VaR投票(方差投票)方法,即在非最大抑制(NMS)过程中,利用相邻位置的预测方差加权,对候选框的位置进行投票。(3)所学概率分布反映了边界框预测的不确定性水平。
相关工作
双阶段检测器单阶段检测虽然高效,但是state-of-art仍然基于双阶段检测。双阶段首先会生成proposal,进而产生大量重叠的边界框,标准的NMS会将类别分数较低,但是较为准确的框给剔除掉。本文的var voting尝试利用相邻的边界框来进行更好的定位。
目标检测损失函数UnitBox引入IoU loss函数用于边界框的预测,Focal Loss通过修改标准的交叉熵损失用于处理类别不平衡问题,对于容易分类的样本其权重更低。KL损失可以在训练时调整每个物体的边界方差,可以学习到更多差异的特征。
NMSsoft NMS及learning NMS用于改进NMS,相比删除所有类别分数较低的边界框,soft NMS将衰减其他相邻框的检测分数来作为与更高分数框重叠率的连续函数,leaning NMS,提出学习一个新的网络只对boxes及分类分数进行NMS处理。
边界框精炼MR-CNN首次提出在迭代定位中将框进行merge操作。IoU-Net提出学习预测框与ground truth框之间的IoU,然后,根据学习到的IoU应用IoU-NMS,与IoU-Net不同,论文从概率分布的角度对位置方差进行单独学习。因此,本文可以对四个坐标的方差进行单独的学习,而不只是IoU。var voting 通过由KL损失学习到的相邻边界框的方差来对选择的框产生新的位置。
方法
3.1 边界框参数化
基于双阶段的目标检测网络如Faster-RCNN,Mask R-CNN。网络结构如Figure 3所示:
从图中看出,模型有3个分支,分别为Class代表图像的类别,Box代表预测的框,Box std是预测框的四个坐标(左上角和右下角两个点的四个坐标)与真实框之间的标准差,即坐标之间的距离。通过Box std计算得到的KL损失函数反向传播修改Box中的坐标点位置和预测框的大小。这里用
(
x
1
,
y
1
,
x
2
,
y
2
)
(x1,y1,x2,y2)
(x1,y1,x2,y2)代表预测边界框左上角和右下角的坐标。
(
x
1
∗
,
y
1
∗
,
x
2
∗
,
y
2
∗
)
(x_1^*,y_1^*,x_2^*,y_2^*)
(x1∗,y1∗,x2∗,y2∗)表示真实的边界框左上角和右下角的坐标。
(
x
1
a
,
x
2
a
,
y
1
a
,
y
2
a
,
w
a
,
h
a
)
(x_{1a},x_{2a},y_{1a},y_{2a},w_a,h_a)
(x1a,x2a,y1a,y2a,wa,ha)是Anchor。那么预测边界框和真实边界框分别与Anchor的偏差如公式1所示:
同样,不带
∗
*
∗号的t表示预测边框与Anchor的偏差,带
∗
*
∗号的t表示真实边框和Anchor的偏差。
论文的重点在于评估位置的置信度。所以,论文在预测边界框位置的基础上又预测了一个位置的分布,这里假设坐标是独立的,为了简单起见,使用了单变量的高斯函数,如公式2所示:
式子中边界框坐标表示为
x
x
x,因为我们可以独立地优化每个坐标,
Θ
\Theta
Θ是一组可以学习的参数,
x
e
x_e
xe是我们预测的边界框的位置。标准差
σ
\sigma
σ测量估计的不确定度。当
σ
\sigma
σ->0时,表示网络对估计的位置非常有信心。地面真实边界框也可以表示为高斯分布,由于是真实的框,我们让
σ
\sigma
σ->0,这就变成了狄克拉函数,如公式(3)所示:
其中
x
g
x_g
xg是地面真实边界框信息。
关于迪克拉函数的解释:https://baike.baidu.com/item/%E7%8B%84%E6%8B%89%E5%85%8B%CE%B4%E5%87%BD%E6%95%B0/5760582
基于KL损失的边界框回归
论文目标定位的目标是通过在N个样本最小化
P
Θ
(
x
)
P_\Theta(x)
PΘ(x)和
P
D
(
x
)
P_D(x)
PD(x)之间的KL散度来评估
Θ
^
\hat{\Theta}
Θ^,如公式(4)所示:
使用KL散度作为边界框回归的损失函数Lreg。分类损失Lcls保持不变。对于单个样本,有公式5:
公式使用分步积分展开得到。我们来观察一下Figure 4:
图中,蓝色和灰色的高斯分布是我们的估计。橙色中的dirac delta函数是地面真值边界框的分布。当位置
x
e
x_e
xe估计不准确时,我们期望网络能够预测更大的方差
σ
2
\sigma^2
σ2,从而使Lreg更低(蓝色)。
从公式可以得出,
l
o
g
2
π
2
\frac{log2\pi}{2}
2log2π和
H
(
P
D
(
x
)
)
H(P_D(x))
H(PD(x))不依赖于估计参数
Θ
\Theta
Θ,所以有公式(6):
特殊的,当
σ
=
1
\sigma=1
σ=1时,KL损失退化为标准欧几里得损失:
损失函数是可微的,对于
x
e
x_e
xe和
σ
\sigma
σ分别求偏导如公式(8)所示:
然而,由于
σ
\sigma
σ是分母,有时会在训练开始时梯度爆炸。为了避免梯度爆炸,网络在实际中预测
α
=
l
o
g
(
σ
2
)
\alpha=log(\sigma^2)
α=log(σ2) 而不是
σ
\sigma
σ。如公式9所示:
在测试过程中我们将
α
\alpha
α转回
σ
\sigma
σ。
对于 |xg−xe|>1,我们采用类似于fast R-CNN中定义的Smooth L1 的损失。最后回归损失函数定义为公式10:
用随机高斯分布对FC层进行初始化,标准偏差及均值分别设置为0.0001及0,因此,KL损失在训练的刚开始时与smooth L1损失相似。
3.3 方差投票
在得到预测位置的方差后,根据已知的相邻边界框的方差对候选边界框位置进行投票。如Algorithm1所示,用三行代码更改NMS,实际上这里为soft nms:
可以看到,这里不仅使用了softnms,使得同一类靠很近的目标漏检降低,还提出了var voting思想。即对于iou大于阈值的那些boxes,可以通过他们各自学到的方差(box的一对角点
x
1
,
y
1
,
x
2
,
y
2
x1,y1,x2,y2
x1,y1,x2,y2,四个值的方差
δ
x
1
,
δ
y
1
,
δ
x
2
,
δ
y
2
δx_1, δy_1, δx_2, δy_2
δx1,δy1,δx2,δy2加权以更新box坐标,使得定位更准。新坐标的计算方式如Figure 11所示:
δ
t
\delta_t
δt是变量表决的可调参数。当
I
O
U
(
b
i
,
b
)
IOU(bi, b)
IOU(bi,b)越大,pi越大,即"距离"越近或交并比越大的两个框产生的pi值越大。对剩下的3个坐标值也进行同样的操作。以下两种类型的相邻边界框在投票时会得到较低的权重:(1)方差较大的框。(2)带有所选框的小IOU的框。分类分数不参与投票,因为得分较低的框可能具有较高的信心。在Figure 5中,提供了方差投票的可视化说明。通过表决,有时可以避免Figure 2中前面提到的导致检测失败的两种情况。
实验
统计目标检测模型中每个损失对于MS-COCO数据集的表现。基本的模型baseline是VGG16做backbone的Faster RCNN,也就是下Table1 第一行。
推理时间比较见表2:
表3展示了Fast-RCNN网络的不同Head和backbone使用KL损失获得的AP值提升。
表4比较了使用了论文中的不同方法在MS-COCO上获得的精度提升。
Figure6测试了可调参数
σ
t
\sigma_t
σt对于方差投票的影响。当
σ
t
=
0
\sigma_t=0
σt=0,方差投票未被激活。我们看到
A
P
75
,
A
P
80
,
A
P
90
AP^{75},AP^{80},AP^{90}
AP75,AP80,AP90都被
σ
t
\sigma_t
σt所影响。
A
P
50
AP^{50}
AP50对
σ
t
\sigma_t
σt不太敏感。本文在所有实验中都取了
σ
t
=
0.02
\sigma_t=0.02
σt=0.02。
Table5测试了在PASCAL VOC 2007数据集上Faster-RCNN的表现,实验了本文的各种方法。
Table6 测试了使用ResNet-50做backbone,RPN网络做候选框提取的Faster-RCNN在MS-COCO数据及上应用我们的KL损失以及var vaoting,soft-nms等方法进行测试的结果。
结论
综上所述,大规模目标检测数据集中的不确定性会阻碍最先进的目标检测设备的性能。分类置信度并不总是与本地化置信度密切相关。本文提出了一种新的具有不确定性的边界盒回归损失方法,用于学习更精确的目标定位。通过训练KL损失,网络学习预测每个坐标的定位方差。由此产生的差异使方差投票成为可能,它可以通过投票来优化选定的边界框。在MS-COCO和Pascal VOC 2007上,vgg-16 Fast r-cnn、resnet-50 fpn和mask r-cnn上得到了令人信服的结果。
参考博客
https://www.cnblogs.com/fourmi/p/10721791.html
https://blog.csdn.net/u012839256/article/details/89005963
https://cloud.tencent.com/developer/article/1420811