论文原址:
github:
摘要
相比模型的结构,关注度较少的训练过程对于检测器的成功检测也是十分重要的。本文发现,检测性能主要受限于训练时,sample level,feature level,objective level的不平衡问题。为此,提出了Libra R-CNN,用于对目标检测中平衡学习的简单有效的框架。主要包含三个创新点:(1)IoU-balanced sampling用于减少采样过程中的不平衡(2)balanced feature pyramid用于减少feature 的不平衡(3)balanced L1 loss用于减少objective level的不平衡。
介绍
在较为大众的目标检测算法中,虽然存在着单阶段,双阶段之分,但训练整体流程大致相同:sampling regions->extracting features ->基于标准的多任务目标函数同时对类别的识别及位置的增强。因此,目标检测训练的成功主要依赖于三个方面:I.挑选出的区域样本是否具有代表性?II.是否可以完全利用提取出的视觉特征?III.设计的目标函数是否是最优的?然而,本文发现在训练过程中上述三个方面中存在这严重的不平衡问题。这些不平衡问题会使得网络的结构无法得到完全开发进而影响整体的目标检测性能。如下图所示。
Sample level imbalance:在目标检测的训练过程中,hard samples更有利于提升目标检测的性能,然而,基于随机采样机制造成的结果一般是使挑选的样本趋向于easy类型,harde mining算法如OHEM可以更多的关注hard samples。然而,这些方法对噪声标签比较敏感,容易造成大量的内存及计算量的消耗。Focal Loss应用于单阶段的效果较好,但是,扩展到大部分样本为简单负样本的双阶段检测模型中,效果一般。
Feature level imbalance:在backbone中深层具有更多的语义信息,而较低层为更多的内容描述等细节信息。FPN及PANet等通过侧连接来进行特征融合,因此,低层特征与高层特征可以对目标检测进行补充。结合金字塔的特征表示利用这些特征的方法决定着目标检测的性能。本文认为,融合的信息应该包含每个分辨率的平衡信息。但上述方法使得融合的特征更多关注于相邻的分辨率而不是其他分辨率。在信息传递过程中,每次融合操作,会使得非相邻层级的语义信息变得稀释。
Objective level imbalance:检测器包含分类及定位两个任务。因此,在训练目标函数中结合两个不同的目标。如果二者不是平衡的,一个目标可能会被限制,进而导致整体不好的效果。此情形同样适用于训练过程中的样本,如果不平衡,由简单样本产生的小梯度值会淹没hard样本产生的较大的梯度值,进而限制了后续的一些强化操作。因此,针对最优收敛,本文平衡了相关的任务及样本。
为解决上述问题,提出了简单有效的Libra R-CNN框架。三点创新如下:
(a)IoU-balanced sampling:根据assigned ground-truth进行mine hard samples
(b)balanced feature pyramid:利用相同深度融合的平衡后的语义特征增强多层次的特征。
(c)balanced L1 loss:增强重要的梯度,进而对分类,粗定位,细定位进行再平衡。
Methodology
Libra R-CNN整体结构如下,目标是消除目标检测训练过程中存在的不平衡问题。
IoU-balanced Sampling:本文首先提出了一个问题:训练样本及对应ground truth的重叠度IoU是否与样本的difficulty(这里类比于easy samble,hard sample)相关。实验如下所示,
主要考虑了hard sample,发现超过60%的hard negatives的IoU超过0.05,但基于随机采样只得到30%左右的训练样本。极度的不平衡导致许多hard samples被淹没在数以万计的easy样本中。为此,提出了IoU-balanced sampling:在不增加额外计算量的基础的简单有效的mining 方法。假定我们需要从M个相关候选中采样出N个负样本。基于随机采样,每个样本被挑选出的概率为:
为了提高hard negatives选中的概率。根据IoU的值将采样区间划分为K个格子。N要求负样本是在每个格子区间中是均匀分布的,然后对其进行均匀采样。得到的采样概率如下,
处理后的结果如上图,IoU-balanced的采样使得训练样本的分布更接近于hard negatives。同时,也表明,其性能与K的取值无关,更高IoU的样本更容易被挑选出来。同时,本方法也适用于hard positive 样本的挑选。然而,大多数情况下,没有足够的候选样本,对正样本进行扩充,因此,本文选择了一个替代的方法来达到平衡采样的目的,即对每个ground truth采样相同数量的正样本。
Balanced Feature Pyramid:本文不同于以前通过侧连接的方法来结合多个层级特征的方法,本文通过使用相同深度的融合平衡后的语义信息来增强不同层级的特征,如下图所示,主要包含四步:rescaling,integrating,refining,strengthening
Obtaining balanced semantic features:在l级分辨率的特征记作Cl,不同层级的特征数量记作L。最底层及最高层特征的索引记作lmin,lmax,为了融合不同层级的特征,同时保留其语义信息,首先将不同层级的特征{C2,C3,C4,C5}基于插值或者max pooling resize 到同一个尺寸,如C4,然后,取其均值得到平衡后的语义特征。得到的特征,进行rescale然后通过反向操作增强原始每层的特征,此过程不包含任何参数,证明了信息传递的高效性。
Refining balanced semantic features:平衡后的语义特征可以进一步增强增加其分辨性。本文发现卷积和non-local 模型的增强效果都很好,但是non-local模型更加稳健。因此,使用embeded Gaussian non-local attention。refining这一步可以进一步的丰富特征信息,进而提升结果。融合后得到的特征{P2,P3,P4,P5}用于后续的目标检测中,流程和FPN相同。
Balanced L1 Loss:Faster R-CNN中定义的多任务损失如下,用于同时处理,分类及定位问题。
平衡上述损失的一个常规方法是,调整两个任务损失的权重,然而,对于没有边界的回归目标,直接增加定位损失的权重将会是模型对outliers的点更加敏感,outliers可以被看作是hard samples,这些hard samples可能会产生过大的损失,不利于训练。inliers可以看作是easy samples,相比outliers对整体的梯度贡献度较低,相比hard sample,平均每个,easy sample对梯度的贡献为hard sample的30%,基于上述分析,提出了balanced L1 Loss记作Lb。
balanced L1 loss由传统的smooth L1损失演化而来,Smooth L1损失通过设置一个拐点来分类inliers与outliers,并对outliers通过一个max(p,1.0)进行梯度截断。如图5-a虚线所示,
balanced L1 loss的关键思想是,促进影响较大的回归梯度,(像来自inliers即准确样本的梯度)。进而平衡包含的样本及任务。从而可以在分类,粗定位,及细定位中进行平衡的训练。,基于balanced L1 loss的定位损失如下,
其梯度流程如下,
上图5-a中显示,通过调整参数alph,可以增加inliers的梯度,而对outliers不发生作用,通过设置参数gamma来调整回归误差的上界。通过调整这两个参数,可以得到更加平衡的训练。参数b用于保证Lb(x=1)条件下,下列等式中两种情形的值是相同的,及函数是连续的,balanced L1 loss如下
Experiments
Reference
[1] Sean Bell, C Lawrence Zitnick, Kavita Bala, and Ross Girshick. Inside-outside net: Detecting objects in context with skip pooling and recurrent neural networks. In IEEE Conference on Computer Vision and Pattern Recognition, 2016.
[2] Zhaowei Cai, Quanfu Fan, Rogerio S Feris, and Nuno Vasconcelos. A unified multi-scale deep convolutional neural network for fast object detection. In European Conference on Computer Vision, 2016.
[3] Zhaowei Cai and Nuno Vasconcelos. Cascade r-cnn: Delving into high quality object detection. In IEEE Conference on Computer Vision and Pattern Recognition, 2018.
[4] Kai Chen, Jiangmiao Pang, Jiaqi Wang, Yu Xiong, Xiaoxiao Li, Shuyang Sun, Wansen Feng, Ziwei Liu, Jianping Shi, Wanli Ouyang, and Dahua Lin. Hybrid task cascade for instance segmentation. arXiv preprint arXiv:1901.07518, 2019.