论文翻译 | Bounding Box Regression with Uncertainty for Accurate Object Detection | FACE++ 2019
Bounding Box Regression with Uncertainty for Accurate Object Detectiom, 对精准目标检测的含不确定性的边界框回归
写在前面
之前我在开源中国,感觉对latex公式的不支持让我在输入公式的时候不舒服,就只能截图,但是影响整体观感。了解到****支持公式,就来了这里。(都是废话,下面正文)
摘要
大尺度的目标检测数据集(如:MS-COCO)会试着将边界框框的非常清晰。但是,我们发现标注边界框的时候仍然有不确定性。本文中,我们提出了一种新的边界框回归损失,来同时学习边界框变换和定位差异。我们的损失在没有额外计算量的前提下,极大程度上提升了各种结构的定位精度。学到的定位偏差可以让我们用NMS来归并相邻的边界框,进一步提升了定位的准确性。在MS-COCO数据集上,我们将VGG-16 Faster R-CNN的AP从23.5%提升到了29.1%。而且,对于ResNet-50-FPN Mask R-CNN,我们的方法分别提高了AP和AP901.8%和6.2%,比其他sota的边界框微调的方法要更加出色。我们的代码和模型放在github.com/yihui-he/KL-Loss。
图1: 在目标检测数据集中,ground-truth边界框在一些情况下存在固有的不确定性。边界框回归器会用我们的KL Loss来从不确定的边界框中获得更小的损失。(a)© 标注的不确定性。(b) 遮挡带来的不确定性。(d) 目标自身边界是不确定的。由于树的遮挡,火车的左边界是不清晰的。
引言
大尺度目标检测数据集,如ImageNet、MS-COCO、CrowdHuman,都会尽量把边界框标清晰。
但是我们发现边界框在有些情况下会不可避免的存在不确定性。不确定性会使标注和边界框回归函数的学习变得困难。MS-COCO中一些不精确的标注展示在图1(a)©中。当物体被部分遮挡了,边界将更加难以区分,比如图1(d),来自YouTube-BoundingBoxes。
目标检测是一项多任务的学习问题,由目标定位和目标分类组成。当前最好的目标检测器(如:Faster R-CNN, Cascade R-CNN, Mask R-CNN)都依赖于边界框回归来定位目标。
然而,传统的边界框回归损失(如smooth L1 loss)并没有将边界框的不确定性考虑进去。而且边界框回归当分类分数很高的情况下被假定是准确的,但事实并不总是这样,如图2。
图2:VGG-16 Faster R-CNN在MS-COCO数据集上错误的案例。(a) 两个框都是不准的。(b) 分类分数高的边界框反而是错误的。
为了解决这个问题,我们提出了新的边界框回归损失,叫做KL Loss,旨在同时学习边界框回归和定位不确定性。具体来说,为了获得预测框的不确定性,我们首先为边界框预测和ground-truth框建模为高斯分布和狄拉克函数。接着定义了预测分布和真实分布的KL散度。采用KL Loss学习有三个好处:(1) 数据集中的不确定性可以被很好的捕获到,边界框回归器会从不确定边界框中计算出更小的损失;(2) 学习到的方差在后处理阶段非常有用。我们提出了方差投票(var voting),在NMS阶段使用预测方差来加权候选框相邻的位置,最后得到投票出候选框的最终定位。(3) 学到的概率分布是可解释的,因为它反映了边界框预测的不确定度,可以对自动驾驶和机器人上的应用有潜在的帮助。
为了证明KL Loss和var voting的泛化能力,我们在PASCAL VOC2007、MS-COCO上验证了多种CNN目标检测器,包括VGG-CNN-M-1024、VGG-16、ResNet-50-FPN和Mask R-CNN。我们的实验表明了我们方法在目标定位上有更好的准确性。对于MS-COCO数据集上的VGG-16 Faster R-CNN我们将AP从23.6%提高到了29.1%,GPU(GTX 1080Ti)上前向预测时间仅增加了2ms。而且,对于ResNet-50-FPN Mask R-CNN,我们分别提高了AP和AP901.8%和6.2%,超越了目前最先进的边界框精调算法。
相关文献
双阶段检测器
尽管单阶段检测算法十分高效,但是目前最先进的目标检测器都是基于双阶段+提议框的模式。双阶段检测器会生成大量目标提议框。但是在NMS阶段,就算定位是准确的,分类分数较低的提议框还是会被丢弃。我们的var voting基于定位置信度并利用相邻的边界框来获得更好的定位效果。
目标检测损失
为了更好地学习目标检测任务,学界提出不同的损失。UnitBox介绍了一种交并比损失函数来预测边界框。Focal Loss通过改变标准的交叉熵损失来处理样本类别不平衡的问题,也就是对于分类较好的样本会被赋予较低的权重。[39]通过梯度策略针对mAP优化,来直接学习全局优化的目标检测器。[28]介绍了深度估计的不确定性,这个想法被用在了3D目标检测中。[29]根据各个人物的不确定性,提出了在场景理解上给多任务损失加权的思想。借助KL Loss,我们的模型可以自适应的调整训练阶段每个目标边界的方差,使我们能更好的的学到有判别力的特征。
非极大值抑制
NMS数十年来都是计算机视觉领域非常重要的一部分。它被广泛使用在边缘检测、特征点检测、目标检测中。近期,soft NMS和learning NMS被提出用于提高NMS的性能。soft NMS根据和有更高分数的相邻边界框的重叠面积作为一个连续函数来衰减当前框的分数,而不是直接将除最高分框外的其他框直接丢弃。learning NMS通过学习一个新的神经网络,仅通过框和分类分数来处理NMS。
边界框精调(Bounding Box Refinement)
MR-CNN第一个提出在迭代定位阶段融合边界框。Relation network提出学习边界框之间的相关性。最近,IoU-Net提出了学习预测框和gt框之间的IOU的方法。受到learned IoU启发,IoU-NMS应用在检测框中。这使我们能学到预测边界框的四个坐标方差,而不是IoU。只有我们的var voting能够决定当前框的新的定位,基于KL Loss学到的边界框方差,而且我们的方法可以和soft NMS一起使用。
方法
在这一章节中,我们介绍了边界框参数化的内容,然后提出采用定位置信度的用于训练检测网络的KL Loss。最后,我们介绍了一种新的NMS方法来提升定位的准确性,用我们的置信度评估方法。
边界框参数化
基于图3所示的双阶段目标检测器Faster R-CNN或Mask R-CNN,我们认为可以分别回归边界框的各个边界。令是一个4D向量表示的边界框,其中每个维度都含有边界框的定位信息。我们使用的参数化方式而不是R-CNN中提到的:
其中,,,,为预测偏移量。,,,为ground-truth偏移量。,,,,,来自anchor框。,,,来自预测框。在接下来的讨论中,为了简化,我们将边界框坐标写做,因为我们可以独立优化各个坐标。
图3:用于估计位置置信度的网络结构。不同于传统的标准fast R-CNN的双阶段网络模型头部,我们的网络的KL Loss回归损失将估计到的边界框位置的标准差考虑在内。
我们的目标是估计定位置信度。严格上说,我们的网络预测一个概率分布而不仅仅是边界框位置。尽管分布可能非常复杂,像多元高斯或混合高斯那样,但是本文我们假设坐标是独立分布的,并且用一元高斯来简化问题:
其中,是可学习参数的集合。是待估计的边界框位置。标准偏差表示估计的不确定性。当时,代表了我们网络的估计值非常接近真实值。这通过一个在fast R-CNN头部的全连接网络fc7产生。图3说明了我们目标检测器的网络结构。
gt边界框也可以贝表示为一个高斯分布,当时,代表狄拉克函数:
其中,是ground_truth边界框的位置。
使用KL Loss进行边界框回归
在我们的语境下,物体定位的目标是估计,使和对于N个样本的KL散度最小化:
我们使用KL散度作为边界框回归的损失函数,分类损失保持不变。对于一个简单的例子:
如图4所示,当位置未被估计准确时,我们期望网络能够预测一个更大的方差,使减小。和不依赖于被估计的参数,因此:
图4:我们估计值的高斯分布,对应蓝色和灰色的曲线。橙色的曲线是ground-truth对应的狄拉克函数。当位置没被估计准确,我们期望预测结果有更大的方差,这样会比较低(蓝色)。
当时,KL Loss会生成标准的欧拉损失:
该损失关于位置估计和位置标准差可微分:
然而,因为在分母上,在训练初期有时会出现梯度爆炸的情况。为了避免梯度爆炸,我们的网络实际中预测的是,而不是:
我们在测试中将转换回。
对于,我采用一种和smooth 损失类似的定义:
我们用随机高斯初始化来初始化用于预测的全连接层的权重。标准差和平均值分别设置为0.0001和0,使KL Loss和标准的smooth 损失在训练初期相似。
方差投票
在我们获得预测位置的方差后,很明显接下来要根据学习到的相邻边界框的方差来选举出候选边界框来。算法1中我们用三行代码修改了NMS:
Algorithm 1 var voting
是初始化检测框的N×4矩阵。包含了对应的检测分数。是对应方差的N×4矩阵。是最终的检测集合。是一个方差投票的可调参数。蓝色行和绿色行分别代表soft-NMS和var voting。
while is not empty do
soft-NMS
var voting
end while
return
我们在NMS和soft-NMS循环中投票选出被选中框的位置。在选中有最大得分的检测结果后,即,新的位置通过它本身和对应相邻边界框计算得到。受到soft-NMS启发,我们分配更高的权重给那些接近的且有更少不确定性的框。严格来说,令为坐标(如),为第个框的坐标,那么新的坐标计算如下:
是方差投票中可调的参数。两种类型的相邻边界框会得到更低的权重:(1) 有大方差的框,(2) 和候选框的IoU小的框。类别得分在投票中不被考虑,因为更低得分的框可能有更高的定位准确度。图5中我们提供了一种方差投票的可视化解释。借助方差投票,两种在图2中提到的现象会被避免。
图5:在MS-COCO上VGG-16 Faster R-CNN模型的投票结果。绿色文本框对应公式2我们预测的标准差。两种错误的情形都被方差投票解决:(a) 当每个候选框在某些坐标上是不准确的情况下(右边的女性),我们的方差投票可以整合位置置信度,给出更好的框,(b) 高分类得分的边界框(火车 0.99)实际上相比低分类得分的边界框(火车 0.35)有更低的定位准确度,在方差投票后,0.99的得分框移动到了正确的位置上。
实验
为了证明我们方法在目标检测中的准确性,我们使用了两种数据集:MS-COCO和PASCAL VOC 2007。实验中使用4块GPU。训练策略和batch size根据线性尺度变换规则[15]调整。对于VGG-CNN-M-1024,我们基于Caffe实现。对于ResNet-50 FPN和Mask R-CNN,我们基于Detectron实现。对于VGG-16 Faster R-CNN,我们参考py-faster-rcnn,在train2014上训练,在val2014上测试。对于其他目标监测框架,我们训练和测试都在train2017和val2017上。我们设置为0.02。除非特别指定,所有超参数设置为默认。
消融研究
我们在VGG-16 Faster R-CNN验证了我们检测模型中每个模块的贡献:KL Loss、soft-NMS和var voting。详细结果表1中呈现。
表1:MS-COCO上我们模型每个模块的贡献,baseline是VGG-16 Faster R-CNN
KL Loss
令人惊讶的是,用KL Loss简单的训练就能获得2.8%的AP提升,这样的结果也同样表现在ResNet-50 Faster R-CNN和Mask R-CNN上(1.5%和0.9%),见表3和表4。首先,通过在训练中学习高不确定性的样本来预测高的方差,网络可以学到更多有用的样本。其次,定位用的梯度可以自适应通过训练来控制,这样鼓励网络学到更准确的目标位置。第三,KL Loss学习位置置信度,可以潜在帮助网络学习到更有判别力的特征。
通过KL Loss学到的方差是可解释的。我们网络对于有挑战性的目标边界会输出更高的方差,这样在一些诸如自动驾驶和机器人的视觉应用上会很实用。图5的第一行就展示了一些KL Loss学到的标准差定量的例子。
表2:GPU 1080TI,CUDA 8, CUDNN 6,MS-COCO, VGG-16 Faster R-CNN上的前向时间对比
soft-NMS
和预想的相同,soft-NMS在baseline和KL Loss训练的网络上表现一致,分别提升了AP 1.2%和1.4%,见表1。
表3:对比不同的fast R-CNN头部网络,模型是ResNet-60 Faster R-CNN
Variance Voting
最后,我们的方差投票进一步提高了AP 29.1%。我们观察提升主要来自于更准确的定位。注意到AP50只提升了0.1%,但是AP75,APM,APL分别提升了1.8%,1,8%,1,6%,见表1。这说明了分类置信度和位置置信度不总是相关的。因此,将定位置信度和分类置信度分开学习对提升目标定位准确性至关重要。
我们也发现方差投票和soft-NMS可以共同作用。用标准的NMS的方差投票,AP提升1.4%,用soft-NMS的方差投票,AP可以提升1.3%。我们认为soft-NMS擅长给候选框得分来提升性能,而方差投票擅长精调这些候选框以获得更精确的目标位置。图5第二行就展示了方差投票的定量的例子。
图6中,我们测试了方差投票中可调参数的灵敏度。当时,方差投票不被**。我们观察到对AP75,AP80,AP90作用明显,而AP50则较不敏感,可选的的范围是0.005~0.05,我们在实验中使用。
图6:ResNet-50 Faster R-CNN中,AP提升随着方差投票的的变化关系
预测延迟
我们也评估了再我们改进的VGG-16 Faster R-CNN在单卡1080TI上的前向计算时间,我们的方法非常适合在资源受限场合使用,见表2,我们的方法只提高了2ms的前向预测时间。不用于IoUNet,我们使用2mlp头部用于IoU预测,我们的方法只需要一个4096×324的全连接网络用于位置置信度的预测。
RoI框头部
我们在更深的骨架网络ResNet-50上用不同的RoI框头部测试了了KL Loss的有效性。res5/conv5由9个卷积层组成,每个都可以被应用在FAST RCNN头部网络作为RoI。2mlp由两个全连接层组成。res5头可以学习比普通的2mlp头更复杂的表征。如表3,KL Loss可以提升AP 0.9%,使用conv5头可以进一步提升1.5%。我们假设定位方差比定位本身更有学习难度,因此KL Loss会受益于conv5头部的表达能力。而conv5头部没有被广泛用于当前的先进检测器上,我们接下来的对比实验仍然采用2mlp头部。
表4:MS-COCO上不同的目标检测方法的准确度对比。baseline模型是ResNet-50-FPN Mask R-CNN。我们的方法比baseline提高了2%AP。
准确的目标检测
表4列举了不同目检测方法的准确度对比,在ResNet-50-FPN Mask R-CNN基础上。借助KL Loss,网络可以在训练阶段针对不明确的边界框调整梯度,因此,使用KL Loss训练的Mask R-CNN在有高重叠的指标AP90上非常出色。方差投票根据相邻框的位置置信度投票获得位置结果,从而提高了定位效果。AP80和AP90分别又提高了0.4%和1.2%。方差投票同样和soft-NMS兼容,并且两者的结合提升了AP90和AP各自6.2%和1.8%个点。对比IoUNet:(1) 我们用KL Loss同时学习方差和位置,提升了性能;(2) KL Loss不需要单独的2mlp头部来学习位置置信度,从而不增加计算量;(3) 方差投票不是通过迭代精调得到的,速度较快。
我们进一步评估了我们方法在特征金字塔网络上的有效性,见表6。
对于fast R-CNN版本, 用KL Loss训练提升了baseline 0.4%。在使用方差投票加soft-NMS后,我们的模型达到了38.0%的AP值,这比IoU-NMS和soft-NMS的baseline都要高。训练端到端的KL Loss可以帮助网络学到更加有判别力的特征,这可以提升0.6%AP。最后的模型达到了39.2%达到AP,相比baseline提升了1.3%。
表5:用Faster R-CNN在PASCAL VOC 2007上对比不同的方法。
PASCAL VOC 2007上的实验
尽管我们的方法针对大尺度目标检测任务设计,但它同样也能在小的数据集上有较好的泛化能力。我们用Faster R-CNN在PASCAL VOC 2007上进行了实验,包含了超过20个类别的5k张voc_2007_trainval图像和5k张voc_2007_test图像。骨架网络是:VGG-CNN-M-1024和VGG-16。
如表5所示,我们和soft-NMS和四元非限制二值优化(quadratic unconstrained binary optimizaion, QUBO[46])做了对比。对于QUBO来说,我们测试了贪心和经典tabu求解器(手动调节求解器参数使之达到更好的性能)。我们观察到它比标准的NMS效果还差,尽管论文中在行人检测任务中给出了很好的结果。我们假设QUBO在行人检测任务中效果好是因为有遮挡边界框的原因。对于VGG-CNN-M-1024,用方差投票训练提高了mAP 1.6%,进一步提高了0.8%。对于VGG-16而言,我们的方法和soft-NMS结合提高了mAP 2.9%。我们注意到方差投票仍然能提升性能即使已经对初始检测框进行了soft-NMS操作。这些结果在MS-COCO上的实验一致(表1)。
表6:在MS-COCO上用FPN ResNet-50对比性能
结论
总结来说,在大型数据集中的不确定性会影响先进的目标检测器的性能。分类置信度不总是和位置置信度有强的关联。本文提出了一种新的边界框回归损失,借助不确定性来学习更准确的目标位置。通过使用KL Loss训练,网络学到了每个坐标点的位置方差,并用其来进行方差投票精调边界框的位置。并在各种网络和数据集上证明了我们的效果。
over…
感谢看到这里,这是我的第一篇全文翻译,在每个公式上都复原了论文原文,阅读体验更佳,如有问题,请大佬们指出指教。^^