【论文笔记】Libra R-CNN:Towards Balanced Learning for Object Detection

&论文概述

 

获取地址:https://arxiv.org/abs/1904.02701v1

 &总结与个人观点

本文中,系统地重温了检测器的训练过程,从而发现了由于训练过程中存在的不平衡问题导致模型结构的潜力并未被完全利用。基于这个观测结果,提出Libra R-CNN通过一个总体平衡的设计来解决对应的不平衡问题。通过使用IoU-balanced取样、balanced特征金字塔以及balanced L1 loss三个组件,Libra R-CNN在MS COCO数据集中得到了显著的提升。此外,延伸实验也表明,Libra R-CNN能够很好地扩展到one-stage或two-stage中各种backbone中。

Libra R-CNN主要针对检测过程中地不平衡问题进行展开研究,主要关注取样、特征融合以及多任务损失计算上,但是在对比实验中有些做的不够详尽地地方。

&贡献

1、在采样过程中,提出IoU-balanced采样方法,使得hard example的分布与原始分布较为均衡;

2、在特征融合过程中,提出balanced feature pyramid,通过一致的融合特征对特征图进行增强,针对在FPN中使用横向连接增强特征使其用于增强的特征各不相同的问题;

3、在损失计算过程中,提出balanced L1 Loss,尽量避免在计算过程中,由于损失之间的相互影响,使得其一出现折中的现象。

&拟解决的问题

问题:针对检测过程中出现的取样、特征融合以及多任务损失的不平衡问题。

分析

除了在pipeline结构上明显的不同(one-stage vs two-stage)外,当前的检测框架基本上遵循同一个训练样式:候选区域提取、由此得来的特征提取,以及在标准多任务目标函数中识别分类与精炼定位的结合。而基于这种样式,目标检测训练的性能主要依赖于三个方面:

  • 取样的区域是否具有代表性;
  • 提取出的视觉特征是否被完全利用;
  • 设计的目标函数是否是最优的。

然而,研究表明,典型的训练过程在这3个方面都极不平衡。而这些不平衡问题妨碍了模型结构的能力被全部利用,因此限制了整体性能。

取样不平衡

困难样本很有价值,因为他们对于提高检测性能有益。但是,随机取样通常选择大部分为简单样本,虽然OHEM能够尽量挖掘困难样本,然而其也对噪声标签敏感,同时产生更多的内容以及计算花费。Focal loss也能通过one-stage检测器解决这个问题,但是在扩展到R-CNN中时仅有很小的提升,由于大部分简单样本都被two-stage部分过滤。

 

特征层级不平衡

在网络中,high-level特征通常包含更多的语义信息,而low-level特征中包含更多的细节信息。当前,FPN以及PANet通过横向连接进行特征融合加快了目标检测的发展。而如何融合特征决定了检测的性能。那么最好的融合特征的方法是什么?通过实验表明,融合的特征应当拥有来自每一个分辨率的平衡的信息。而之前的方法都使得融合的特征更多关注于相邻分辨率。在非相邻层级中的语义信息在信息流的每次融合中都会被削弱。

 

目标层级不平衡

一个检测器需要执行两个任务(分类与回归),即在训练中会生成两个无关的目标。如果两者不适当地进行平衡,其中一个目标可能被折中,从而造成整体次优的性能。

这与训练过程中的采样类似,如果不进行平衡,由简单样本生成的小的梯度可能会被由困难样本生成的大的梯度淹没,限制了更深层地精炼。

 

针对以上不平衡问题,提出了对应的解决方法:1)采样过程中使用IoU-balanced采样,用来挖掘难例;2)在特征融合过程中使用balanced特征金字塔,使用相同的融合的balanced语义特征来对多层级的特征进行增强;3)在损失计算中使用balanced L1 loss,提升主要的梯度来对参与的分类、整体定位以及精准定位进行rebalance。

 

&框架及主要方法

1、Main Structure

2、IoU-balance Sampling

首先需要考虑“训练样本与其相应的ground truth间的覆盖率是否与其困难程度相关”。

上图分别为随机采样、困难负例挖掘、IoU-balanced采样方法的样本的IoU分布。从图中可以看出超过60%的困难负例有着大于0.05的IoU,而随机采样仅有30%的困难负例高于0.05的IoU。这种采样分布的极度不平衡使得困难负例在更多的简单样本中不起眼。

通过这些观察,提出了IoU-balanced采样。假定需要从M个响应候选区域采样N个负例,则在随机采样中选择每个样本的可能性为:p=N/M。

为了提高选择困难负例的可能性,按照IoU将采样间隔均分到K个bin中。N个负例均匀分布在每个bin中,则此时根据IoU采样的选取可能性为:pk=N/K*1/Mk, kϵ[0, K),其中Mk是第k个响应间隔中采样候选区域的数量。此实验中,K默认值为3。

从上图的采样结果分布可以看出使用了IoU-balanced的采样方法的负例分布更接近于难例分布。同时实验表明只要带有更高的IoU更可能被选取,则最终性能对K并不敏感。

同样这种方法也适用于困难正例,然而大多情况下,没有足够的采样候选区域来将此扩展到正例中。为了使得balanced采样方法更详尽,从每个ground truth中采样相同的正例作为可选方案。

下图为IoU-balanced的可视化结果与随机采样的对比:

3、Balanced Feature Pyramid

与之前通过横向连接融合特征的方法不同,本文通过使用相同的深度融合balanced语义特征来对多层级的特征进行增强。

 

如上图所示,该部分主要包含4个步骤:rescaling、integrating、refining、strengthening。

  •  rescaling,为了同个多层级的特征,同时保存对应的语义层级,首先将多层级的特征{C2,C3,C4,C5}使用插值或最大池化resize到中间尺度,如与C4的size相同,通过平均化得到需要的balanced语义特征

 

   然后将该特征通过相同但相反的过程来对原始特征进行增强。每个分辨率在这个过程中获得从其他分辨率的来的相同的信息,且该过程没有任何的参数。

  •  refining,为了使得其更具有分辨力,对balanced语义特征进行精炼。发现直接卷积以及non-local模型都能表现地很好,但是non-local模型更具有稳定性,因此默认使用嵌入的高斯非局部注意力,这个过程能够增强融合特征同时提高精度。

 

4、Balanced L1 Loss

在Fast R-CNN中基于多任务损失的指导分类与定位问题被同时解决,其损失函数定义如下:

 

其中p为分类的预测值,u为目标值。定义样本的loss>=1.0的为outliers,其余的为inliers。用于平衡参与的任务的简单解决方式是调整它们的损失权重,然而,由于无边界的回归目标直接提高定位损失的权重将会使得模型对outliers更敏感。这些outliers可被视为难例,将会产生对训练过程有害的大的梯度,inliers可被看作间简单样本,相比于outliers只贡献很少的梯度,差不多是其30%。考虑到这些问题,提出了balanced L1 loss。

Balanced L1 loss由在传统的smooth L1 loss基础上设置转折点(loss=1.0)以分离inliers以及outliers,将由outliers生成的大的梯度限制到最大值为1.0,如上图的虚线所示。Balanced L1 loss的关键点在于提升主要的回归梯度,如来自inliers的梯度,以对参与的样本以及任务进行rebalance,因此能够在分类,全局定位以及精准定位中得到一个更balanced训练。其损失定义如下:

且其梯度的响应公式按照:

 

 

在上图(a)中显示了balanced L1 loss在α的控制下提高inliers的梯度,一个小的α对inliers能够提升更多的梯度,且不影响outliers的梯度。此外,由γ控制的全局promotion magnification也被引入用调节回归误差的上界,能够帮助目标函数更好地平衡参与的任务。

通过继承上述的梯度公式,可以得到如下balanced L1 loss:

  

其中b用于在上述公式中Lb(x=1)有着相同的值,γ、α以及b被限制为:

默认设置为:α=0.5,γ=1.5。

 

5、Experiments

1) 消融实验,测试IoU-balanced采样、balanced特征金字塔、Balanced L1 loss对Libra R-CNN的影响,实验结果使用数据集为COCO val-2017。从中可以看出每添加一个组件,最终的AP都能进行一定的增长。

下表为IoU-balanced采样过程中K值的影响对比,可以看出K值的变化对于整体的性能影响并不大:

下表为balanced语义金字塔的实验,比较了其中主要的两个步骤以及将这种方式应用到其他的网络层级中的性能比较:

下表为balanced L1 loss在实验中的对比结果,使用不同的α以及γ,得到最佳结果为α=0.5,γ=1.5:

 

2) Libra RPN与RPN的实验比较,结果表明,使用Libra RPN能够有效提高平均召回率。

&遇到的问题

1、在采样不平衡中,提到了OHEM的缺点,但是在论文中并没有对OHEM提到相关的对比实验,是否是OHEM能够达到更好的分布效果?

2、在特征层级不平衡中,文中提到使用相同的融合特征对每一层进行特征增强,但是在特征增强过程中,仍然对融合特征进行了max-pool或者interpolation,还是会使得用于增强的特征不相同,只是尽量降低了影响程度;如此,是否可以先将对应的特征图进行相应操作到融合特征的尺度,然后再回归到原始特征分辨率中,如此也不会影响其alignmence?

3、插值以及max-pool不会影响其语义层级吗?

4、在损失不平衡中,提到的regression error指的是什么?

&思考与启发

本论文通过针对训练过程中的不平衡问题展开讨论,对于这类方法,需要详细了解一下各种不平衡问题的产生原因及其当前解决方法。

 

猜你喜欢

转载自www.cnblogs.com/fanzhongjie/p/11690073.html