论文名称:Libra R-CNN: Towards Balanced Learning for Object Detection
论文作者:Jiangmiao Pang, Kai Chen, Jianping Shi, Huajun Feng, Wanli Ouyang, Dahua Lin
发行时间:Submitted on 4 Apr 2019
论文地址:https://arxiv.org/abs/1904.02701v1#
代码开源:https://github.com/open-mmlab/mmdetection
在检测过程中,作者对在CNN中连续卷积不同尺寸的feature map划分成三个层次:sample level, feature level, objective level. 并提出 Libra R-CNN 来对object detection也就是上面三个level进行平衡。其中, Libra R-CNN 集称了三个部件:
Libra R-CNN在没有bells和whistles的情况下,在MSCOCO上分别比FPN和RetinaNet在AP(平均精度)上提高了2.5和2.0 points
作者将本文的检测模型分为了三个阶段:
对于Libra R-CNN,作者一共构建了三个组件:
对于一般的random sampling(从M个候选框中选出N个Negative样本),对每个样本的选择概率是 p = N M p= \frac{N}{M} p=MN
而通过实验发现hard和sample的分布不均衡,而作者提出 IoU-balanced sampling 的方法来提高hard negatives的选择概率,即通过将采样间隔均分成K个批次,然后每次从这些批次中均匀的选择样本(从M个候选框中选出N个Negative样本,并分成K个批次) p k = N K ∗ 1 M k , k ∈ [ 0 , K ) , p_k=\frac{N}{K}*\frac{1}{M_k},k\in [0,K), pk=KN∗Mk1,k∈[0,K),
其中,
作者提出,首先由FPN对image提取处4种不同尺度的feature { C 1 , C 2 , C 3 , C 4 } \left \{C_1,C_2,C_3,C_4\right \} {C1,C2,C3,C4}, 然后对这四种size的feature进行rescale操作到同一尺度的feature:上采样和下采样(线性插值和池化操作),最后再对之进行一个Refine操作,得到不同尺度的feature { P 1 , P 2 , P 3 , P 4 } \left \{P_1,P_2,P_3,P_4\right \} {P1,P2,P3,P4},过程如下图所示:
将AVG的feature经过 non-local network 或者 conv 再次得到和之前各层的相同尺寸4个的feature { P 2 , P 3 , P 4 , P 5 } \left \{P_2,P_3,P_4,P_5\right \} {P2,P3,P4,P5}
Non-local network 与 Conv操作相比,差别不大,但是 Non-local network 要更加稳定
首先定义两名词:
作者通过实验发现,在train过程中,较少的outliers却贡献了 70 % 70\% 70%的梯度,而较多的inliers却只贡献了 30 % 30\% 30%的梯度,需要采取某种措施来让loss的计算更加均衡:
重新定义L1 loss梯度,记为 L b L_b Lb:
∂ L b ∂ x = { α l n ( b ∣ x ∣ + 1 ) ) i f ∣ x ∣ < 1 γ o t h e r w i s e \frac{\partial L_b}{\partial x}=\left\{\begin{matrix} \alpha ln(b \left | x \right | + 1)) & if \left | x \right | < 1 & \\ \gamma & otherwise & \end{matrix}\right. ∂x∂Lb={αln(b∣x∣+1))γif∣x∣<1otherwise
即对 ∣ x ∣ < 1 \left | x \right | < 1 ∣x∣<1 的梯度进行了替换,通过
对上述梯度进行积分,得到 L1 loss function:
L b ( x ) { α b ( b ∣ x ∣ ) l n ( b ∣ x ∣ ) + 1 i f ∣ x ∣ < 1 γ ∣ x ∣ + C o t h e r w i s e L_b(x) \left\{\begin{matrix} \frac{\alpha}{b}(b \left | x \right |)ln(b \left | x \right |)+1 & if \left | x \right | < 1& \\ \gamma \left | x \right | + C & otherwise & \end{matrix}\right. Lb(x){bα(b∣x∣)ln(b∣x∣)+1γ∣x∣+Cif∣x∣<1otherwise
可见提升效果还是挺大的
作者提出 balanced 概念,并将这个概念分别应用到IoU检测候选框、特征融合、损失计算这三个方面上,效果显著提升,值得一读