Libra R-CNN: 面向目标检测中的均衡学习.

Libra R-CNN出发点为解决目标检测中的一些不均衡现象,如采样不均衡、不同阶段特征分布的不均衡、框回归过程中不均衡,提出了一些改进的过程。

Libra R-CNN的改进包括IoU均衡采样,对FPN结构的均衡以及对L1 loss的均衡:

1. IoU balanced Sampling

样本级别的随机采样会带来样本不平衡,由于负样本本身iou的不平衡,当采用随机采样后,会出现难负(iou 0.5附近)和易负(iou接近0)样本不平衡采样,导致后面性能不好。

如果是随机采样的话,随机采样到的样本超过$70\%$都是在IoU00.05之间的易学习负样本,而实际统计得到的事实是$60\%$的hard negative都落在IoU大于0.05的地方。

作者提出了IoU-balanced Sampling,核心操作是对负样本按照iou划分k个区间,先尝试在不同区间进行随机采样采相同多数目的样本,如果不够就全部采样;进行一轮后,如果样本数不够,再剩下的样本中均匀随机采样。保证易学习负样本和难负样本比例尽量平衡。实验表明对K不敏感,作者设置的是3

2. Balanced Feature Pyramid

Balanced Feature Pyramid直接基于FPN来改进设计了不同stage特征融合的过程,包括rescalingintegratingrefiningstrengthening四步,实现了在FPN结构下attention map的统一生成和使用。

3. Balanced L1 Loss

对于定位损失中的smooth L1 Loss,将梯度绝对值大于$1$的样本称为outlier,其他的为inlieroutlier可以看做困难样本,对梯度的贡献比较大,而inlier这类简单样本对梯度的贡献比较小,只有$30\%$左右。

\[L1_\text{smooth}(x) = \begin{cases} |x|-0.5, & |x| ≥ 1 \text{ (outlier)} \\ 0.5x^2, &|x| < 1 \text{ (inlier)} \end{cases}\] \[\frac{\partial L1_\text{smooth}}{\partial x} = \begin{cases} x, & |x| < 1 \\ 1, & x \geq 1 \\ -1, & x \leq -1 \end{cases}\]

对于目标检测过程,期望得到更精确的定位结果,如果直接增大定位损失的权重,可能让训练变得不稳定。因此,考虑平衡定位损失中的难易样本的梯度贡献,具体来说,增加容易样本inlier的梯度值,以帮助网络更好地定位。最终也使得分类和回归过程更加均衡。

Balanced L1 Loss首先设计梯度的函数,再通过积分得到loss的表达式。梯度形式为:

\[\frac{\partial L_b}{\partial x} = \begin{cases} \alpha \ln (b|x|+1), & |x| < 1 \\ \gamma, & |x| ≥ 1 \end{cases}\]

对于inlier部分使用对数函数后,显著增加了这部分的梯度。$\gamma$的取值来改变梯度的上界,而$b$则用来使梯度在$x=1$处连续。实验中设置$\alpha = 0.5, \gamma=1.5$。

在梯度表达式的基础上,积分得到Balanced L1 Loss的表达式:

\[L_b(x)= \begin{cases}\frac{\alpha}{b}(b|x|+1) \ln (b|x|+1)-\alpha|x| & \text { if }|x|<1 \\ \gamma|x|+C & \text { otherwise }\end{cases}\]

图像很直观地显示了梯度和loss的变化: