Libra R-CNN: Towards Balanced Learning for Object Detection论文解读
Libra R-CNN: Towards Balanced Learning for Object Detection
论文地址:https://arxiv.org/abs/1904.02701v1#
程序地址:https://github.com/open-mmlab/mmdetection
(1)目的:在训练过程中,检测性能会受到不平衡的限制,这种不平衡分为样本级、特征级和目标级三个层次,为了减轻不平衡带来的影响,提出了平衡学习目标检测框架Libra R-CNN。
(2)改进点:集成了三个层次的组件, IoU-balanced sampling, balanced feature pyramid, and balanced L1 loss。
(3)网络结构1.IoU-balanced Sampling
假设需要从M个待选样本之中,采样N个负样本。随机采样每个样本被选中的概率为p=N/M,网络增加复杂负样本被选中的概率,根据iou将采样区间平均分成k份,需要的N个样本名额将平均在k个子区间中产生,然后依据正态分布选择,那么在iou平衡下,每个样本被选中的概率为
Mk是对应第k个子区间内的待选样本数。
2.Balanced Feature Pyramid
1)输入image,由FPN得到不同尺度的feature {C1,C2,C3,C4}{C1,C2,C3,C4}
2)执行Integrate操作得到平均了的一个feature CC
3)执行Refine操作得到和之前各层的相同尺寸4个的feature{P2,P3,P4,P5}{P2,P3,P4,P5}用于后面的对象检测
对于FPN的特征金字塔其特征用{C2,C3,C4,C5}进行表示,它们的分辨率依次减小,而这些特征中表达是存在差异的,文中是利用上图中结构将这些特征进行整合,从而起到丰富和平衡特征的目的。例如,以C4作为基准,那么其它的层就进行插值与最大值池化归一化到C4对应的尺寸上,然后再做相加取平均操作:
提取后的语义特征还可以进一步refine,论文中使用Guassian non-local attention增强integrate后的特征。利用该方法,可以同时对底层到高层的特征进行聚合,输出{P2,P3,P4,P5}用于对象检测。
3.Balanced L1 Loss
网络中的损失由两部分组成:分类损失、边界框损失,它们通过参数λ进行调整,但是这样会影响outlier(可以理解为困难样本)带来的梯度值,因为这些值本来就很大,这样就会导致训练过程的不稳定。而对于inlier(可以理解为简单样本)其梯度值只占到总梯度的30%,对此文章对原本的Smooth L1损失函数进行了改进。
对应的设计出来的梯度函数为:
其中,α控制inlier的梯度幅度,γ控制outlier,那么由梯度的公式那么就可以反推得到原始的函数形式:
其中还有几个参数需要满足如下的关系:
(4)实验结果
针对论文中提出 的balanced 概念,并将这个概念分别应用到IoU检测候选框、特征融合、损失计算这三个方面上,效果提升还是比较大的。