论文:Acquisition of Localization Confidence for Accurate Object Detection
https://arxiv.org/abs/1807.11590
代码:https://github.com/vacancy/PreciseRoIPooling
1 问题提出
目标检测一般分为两个过程,一是对proposal进行分类获取目标的类别信息,二是对proposal进行回归以得到目标的位置信息,最后对获取的检测结果根据IOU进行NMS处理得到最终的检测结果。但是由于两个缺陷,造成了检测效果不够准确:
- 由于模型训练过程中并未记录各检测框的定位置信度,进行NMS处理时一般以分类的置信度为基准对各检测框进行排序,但是很多情况下,分类置信度和定位置信度是不一致的,分类准确度高的检测框定位置信度可能较小,这样的初步检测结果经过NMS处理后,虽然保留了分类准确度更高的检测框,但定位精度不够理想,如下图所示:
上图左图横轴为检测框和ground-truth box之间的IOU,纵轴为各检测框的分类置信度,从图上可以看出两者之间并不存在对应关系,分类置信度高的框其IOU可能较小。作者认为出现这样问题的原因是,训练过程中将和ground-truth box之间IOU大于设定阈值的proposal都设置为了正样本,这样的样本分类置信度为1,但IOU可能还是较小,使用这样的样本训练的模型的预测结果就会造成将和ground-truth box之间IOU较小的框预测的分类置信度较大。
如上图所示,作者进一步统计了和真实目标框之间不同IOU的检测框的数量,No-NMS表示未进行NMS处理前的原始检测框,可以看出对于和真实目标IOU大于0.9的检测框,NMS处理会把检测框的数量减少一半以上,而其他IOU更小的框被删除的数量却相对较小,最终也就造成了IOU较大的框被删除了,留下了IOU较小的框,定位精度较差。
针对上述问题,作者提出了推理过程中使用IOU作为检测框的定位置信度,然后基于IOU进行NMS处理提升定位精度。
2. bounding-box回归是学习proposal和真实框之间的偏移以提升目标的定位精度,很多算法为了进一步提升定位精度使用了多次bounding-box回归的迭代,但迭代的bounding box回归有可能会造成检测框的精度退化,如下图所示:
上图所示的bounding-box回归的迭代次数和检测效果之间的非线性关系和定位精度的不确信使得难以取得最优的目标定位效果。
针对这个问题,作者提出了基于优化的bounding box修正,在迭代过程中持续优化定位精度。
2 IOU-Net
针对第一节提出的两个问题,作者设计了IOU-Net,在检测过程中预测每一个检测框和真实框之间的IOU。
IOU-Net的整体框架如下图所示:
2.1 网络结构
如上图所示,IOU-Net从FPN中获取各区域的特征,然后经过precise ROI pooling层得到输出特征,然后将该特征送入一个两层的全连接层预测该区域和真实目标框之间的IOU。
2.2 训练数据
训练检测网络时的训练数据不是来自于RPN产生的proposal,而是通过对训练集的ground-truth bounding box进行随机变换得到的,变换后的bounding box集合中和真实框IOU大于0.5的框用于IOU-Net的训练。按照作者的说法,这种数据增广方式增强了IOU-Net的效果和鲁棒性。
2.3 IOU-guided NMS
IOU-guided NMS是以各检测框的IOU为基准进行排序,选取IOU最大的检测框,将何其IOU大于设定阈值的检测框删除掉。但是如果框 i i i将框 j j j删除掉了,则设置框i的分类置信度为 s i = m a x ( s i , s j ) s_i = max(s_i,s_j) si=max(si,sj),也就是说和同一个真实目标框匹配的多个检测框,经过NMS处理后,保留的框的分类置信度为所有匹配上的检测框中的最大值。
2.4 将bounding-box修正作为一个优化过程处理
bounding box修正过程可以表示为查找最优解 c ∗ c^* c∗的过程:
b
o
x
d
e
t
box_{det}
boxdet表示检测框;
b
o
x
g
t
box_{gt}
boxgt表示真实框;
transform表示以c为参数的变换函数;
crit表示两个bounding box距离的度量标准,Faster RCNN中使用的是对数域的smoothL1,Unitbox中使用的是
−
ln
(
I
O
U
)
-\ln(IOU)
−ln(IOU);
基于回归的算法直接使用前向网络来估计最优解 c ∗ c^* c∗,但如fig4所示,并不是迭代次数越多,检测效果越好。作者提出基于优化的bounding-box修正方法,使用IOU-Net作为一个高鲁棒性的定位准确性(IOU)估计器。
作者提出的Precise ROI Pooling层,使得可以计算IOU相对于bounding box坐标的梯度,从而可以通过梯度上升法找到式1的最优解。具体的计算算法如下图所示:
在上面的算法中,作者将预测框和真实框之间的IOU作为优化目标,计算IOU相对于各坐标点的梯度,然后使用梯度上升法计算得到最优解,从而得到了和真实目标具有最大IOU的检测框。
precise ROI Pooling:
作者提出了precise ROI Pooling,简称为PreROI Pooling,用于将各不同尺寸的ROI对应的feature map特征池化到固定的尺寸。前面已经有了ROI Pooling和ROI Align两种方法,ROI池化要根据各ROI对应的feature map的特征位置量化为整数值,然后根据输出的尺寸自适应决定池化核的大小,然后再进行最大池化得到最终结果。因为ROI池化中引入了量化误差,所以后续Mask R-CNN中提出了ROI Align,先根据整数位置的feature map值通过插值计算出非整数位置的feature值,然后再进行分组池化操作,ROI Align消除了量化误差。
作者提出的PreROI池化操作同样是先通过插值获取非整数位置的feature值,然后再通过积分计算每一个bin的值,这样得到的池化值对各坐标位置是连续的,可以计算池化结果相对于坐标点的梯度值。
插值得到各小数位置的特征值:
为插值系数。然后对于每个bin,假设其左上角坐标为
(
x
1
,
y
1
)
(x_1,y_1)
(x1,y1),右下角坐标为
(
x
2
,
y
2
)
(x_2,y_2)
(x2,y2),PreROI池化的计算过程为:
PreROI池化结果对位置
x
1
x_1
x1的偏导数为:
同样也可以求得PreROI池化结果对其他位置的偏导数。
2.5 训练细节
IOU预测器可以整合进标准的FPN处理过程进行端到端的训练和推理,如Fig5所示,就是以ResNet-FPN为骨干网络的IOU-Net。FPN获取了图像的不同尺度的特征,PreROI池化层用于对ROI的特征进行池化处理,池化后的特征送入不同的分支分别预测分类得分、bounding box回归结果和IOU。
作者使用了在ImageNet上预训练的ResNet模型,所有新的网络层都使用零均值、标准差为0.01或0.001的高斯分布进行初始化,IOU预测器使用smoothl1损失函数,IOU label进行了归一化处理,取值范围为[-1,1]。
输入图像缩放到短边为800或者长边为1200,训练过程中,对每一个图像保留来自于RPN的512个ROI,训练时batchsize为16,训练过程按照学习率为0.01进行了160k次迭代,其中120k次迭代之后学习了衰减为原来的0.1倍。训练过程中,初始的10k次迭代以初始学习率为0.004进行学习率warmup。权重衰减是1e-4,动量是0.9.
推理过程中,首先使用bounding box回归获取初步的目标位置,在所有的检测框上应用IOU-guided NMS,然后用基于优化的算法修正分类置信度最高的100个检测框得到最终的检测结果。基于优化的位置修正算法的超参数为: λ = 0.5 , Ω 1 = 0.001 , Ω 2 = − 0.01 , T = 5 \lambda = 0.5,\Omega_1 = 0.001,\Omega_2=-0.01,T=5 λ=0.5,Ω1=0.001,Ω2=−0.01,T=5。
3 实验
IOU-NMS的效果优于Soft-NMS,尤其是在 A P 90 AP_{90} AP90下的提升最大。
基于优化的bounding-box修正进一步改善了检测框的定位效果。
使用了IOU-Net,效果有提升,时间开销增加不大。
4 总结
本文首先分析了目标检测中分类置信度和定位置信度之间的不一致,提出了直接使用网络预测检测框和真实框之间的IOU作为定位置信度,然后基于IOU-NMS防止定位更准确的检测框在NMS过程中被一致。另外,针对bounding-box回归的迭代过程中对迭代次数和检测准确率之间的非线性变换关系,作者提出了基于优化的bounding-box修正算法,使用preroi池化层计算IOU相对于各坐标点的梯度,使用梯度上升法求解IOU最大时对应的最优坐标位置。实验效果证明了作者两项改进的有效性,在增加少量时间开销的情况下提升了目标检测的精度。