论文阅读 Bounding Box Regression with Uncertainty for Accurate Object Detection
论文地址:https://arxiv.org/abs/1809.08545
代码地址:https://github.com/yihui-he/KL-Loss
单位:旷视研究院
主要创新点:KL损失 + 方差投票(variance voting)
1.背景
在目标检测数据集中存在标注边界模糊的现象,如下图中,ac标注不准确;b物体被遮挡;d本身物体的边界存在歧义。所以本文针对这个问题提出一种KL loss来学习边界框变换和定位方差。结论:该方法在不增加计算量的情况下既提高了定位准确率,又在NMS过程中合并相邻的候选框。
传统的目标检测中的回归框方法的问题:
- 没有考虑回归框歧义的情况,如下图a,两个框都不准;
- 认为分类得分的候选框越准确,可能与现实不相符,如下图b,长外框准确率比小框低;
相关工作
目标检测:one-stage: yolov, ssd,two-stage: R-CNN序列
损失函数:
IoU loss(常用);
focal loss:解决正负样本不平衡问题;
NMS:消除重复候选框
变种:soft-NMS
候选框优化:
MR-CNN[11]: 在位置迭代过程中合并候选框;
Relation-network[25]: 学习候选框之间的关系,attention 机制;
IoU-net[27]:IoU,IoU-NMS
本文方法
边界框参数化
如图3所示,本文方法是在两阶段方法的基础上,例如Faster R-CNN、Mask R-CNN;原本的回归框参数是(x,y,w,h)四个参数,即中心点(x,y)、宽度w、高度h,改成回归(x1,y1,x2,y2),即一个思维向量,这样就可以每个维度单独优化。
为了在预测位置的同时给出置信度,网络通过预测候选框的概率分布来代替固定的候选框。概率可以更复杂,例如是多变量高斯分布或高斯混合分布,但该论文为了简单起见假设坐标是相互独立的且使用了单变量高斯分布。
如下公式,其中表示要学习的参数;表示预测的位置,即,方差表示位置估计的置信度,即不确定程度,越大置信度越低,它由fc7全连接层输出。
ground-truth bounding box框可以用一个接近于0的高斯函数来表示:狄拉克函数
其中 表示ground-truth的位置。
补充:狄拉克δ函数:在除了零以外的点函数值都等于零,而其在整个定义域上的积分等于1
基于KL loss的边框回归
传统方法(Faster R-CNN):损失=位置回归损失 + 分类损失
本 文: 损失=KL损失 + 分类损失
位置定位的目标:找到,最小化预测分布和基本 ground truth 分布之间的 KL 距离,即:
对于单个样本,可以表示为:
表示预测的位置。如图4所,当预测不准时,希望网络能够预测较大的(蓝色线)值,使得值较小。
后面两项和参数$\theta $没有关系;因此有:
当方差=1时,KL 损失就变成标准的欧式距离。公式(6)对和求偏导得:
在分母,为避免在训练初期其值很小时,产生梯度爆炸现象,网络通过预测来代替,公式(7)就可以转化为公式(9),如下
又因为,我们采用类似Fast R-CNN中的L1损失,最终的损失函数为:
方差投票
在获得预测位置的方差后,可根据所学习到的邻近边界框的方差直观地投票选择候选边界框位置。
本文是在NMS基础上实现的(绿色三行为方差投票):
- 选择最大分数的检测框;
- 根据它及其邻近边界框计算它的新位置(绿色三行);
- 邻近框中更近的(IoU更大)、确定性更大的(方差更小),对应权重更大;
下图是方差投票的结果,白色文本框表示分类得分,绿色文本框表示预测方差;a中两个框都不准确问题,b中框不准、得分更高问题,cd优化框位置。
实验
Ablation Study
每新增一项改进,都能实现结果的进一步提升,两次明显提升:
- KL Loss 明显提升
- KL loss + soft-NMS + var voting 明显提升
时间:和VGG-16 的Faster R-CNN相比,基本上没差别。
方差()对方差投票的影响: - AP75,AP80,AP90受影响较大
- 范围0.005-0.05,本文取=0.02
目标检测精度
Base line:ResNet-50-FPN Mask R-CNN ;
在coco上的精度:相对baseline大概提升2个百分点;
在上的精度提升最明显
Base line:FPN ResNet-50;在coco上的精度比较;相对M,L,反而S提升不是很明显,与预期结果不太一样?
结论
传统方法存在两个问题:
- 数据集中的标注不确定性会影响目标检测器的性能;
- 分类置信度并不总是与定位置信度强烈相关。