论文:Alpha-IoU: A Family of Power Intersection over Union Losses for Bounding Box Regression
代码:https://github.com/Jacobi93/Alpha-IoU
出处:NeurIPS 2021
贡献:
- 提出了 IoU loss 的大一统模式: α \alpha α-IoU,是现有 IoU-based loss 的扩展形式
- 作者用实验证明了 α \alpha α-IoU 的效果,并且发现,对 α \alpha α 的良好选择(如 α \alpha α > 1),可以通过提升 high IoU object 的 loss 值和梯度,从而提升框的回归效果(实验验证 α = 3 \alpha=3 α=3 在大多数情况下都有较好的效果)
- α \alpha α-IoU 在多种数据集上都展现了比现有 IoU-based loss 更好的效果,尤其是对小数据集和 noisy bbox 更加鲁棒
一、背景
在 bbox 的回归问题中,loss 函数大致可以分为两种,其一是 l n l_n ln-norm loss,其二是 IoU loss。IoU loss 由于其对 bbox 尺度不敏感等优势,获得了更好的效果。IoU-based loss 从 IoU 到 GIoU,再到 DIoU 和 CIoU,在逐步改进,但形式过多,太过繁杂,每种形式都有其各自的优缺点。
也有一些 loss 通过提高 high IoU object 对 loss 的贡献,如 Rectified IoU (RIoU) 和 Focal-EIoU。这两个方法主要是提高 high IoU object 的梯度,但这两者都不够简洁,并且没有进行全面的实验对比。
在本文中,作者提出了一个对 IoU loss 的统一形式,通过 power transformation 来生成 IoU 和其对应惩罚项的统一形式,来动态调整不同 IoU 目标的 loss 和 gradient。
二、方法
2.1 Alpha-IoU 的提出
Box-Cox 变换:方差稳定变换,可以改变变量的分布,使得方差不再依赖于均值
当原始数据非正态分布,或者原始数据左偏、右偏时,需要对原始数据做一定的变换,经常会使用 Box-Cox 变换。
α \alpha α-IoU 的形式是怎样的:
首先,在 IoU loss
L
I
o
U
=
1
−
I
o
U
L_{IoU} = 1-IoU
LIoU=1−IoU 上使用 Box-Cox 变换,得到
α
\alpha
α-IoU:
L
α
−
I
o
U
=
(
1
−
I
o
U
α
)
α
,
α
>
0
L_{\alpha-IoU}=\frac{(1-IoU^{\alpha})}{\alpha}, \alpha>0
Lα−IoU=α(1−IoUα),α>0
对 α \alpha α 的分析如下,可以得到很多形式:
- 当 α → 0 \alpha \to 0 α→0, l i m α → 0 L α − I o U = − l o g ( I o U ) = L l o g ( I o U ) lim_{\alpha \to 0}L_{\alpha-IoU}=-log(IoU)=L_{log(IoU)} limα→0Lα−IoU=−log(IoU)=Llog(IoU)
- 当 α = 1 \alpha=1 α=1 时, L 1 − I o U = 1 − I o U = L I o U L_{1-IoU}=1-IoU=L_{IoU} L1−IoU=1−IoU=LIoU
- 当 α = 2 \alpha=2 α=2 时, L 2 − I o U = 1 2 ( 1 − I o U 2 ) = 1 2 L I o U 2 L_{2-IoU}=\frac{1}{2}(1-IoU^2)=\frac{1}{2}L_{IoU^2} L2−IoU=21(1−IoU2)=21LIoU2
对 α \alpha α-IoU 简化得到:
由于很多 IoU-based 方法都是
α
↛
0
\alpha \nrightarrow 0
α↛0 的,所以更多研究
α
↛
0
\alpha \nrightarrow 0
α↛0 的情况,并且引入了一个惩罚项:
- α 1 > 0 , α 2 > 0 \alpha_1>0, \alpha_2>0 α1>0,α2>0, P P P 是惩罚项
- 作者后面证明了 α 2 \alpha_2 α2 对结果影响不大,所以就让 α 1 = α 2 \alpha_1= \alpha_2 α1=α2
有了上面的形式后,作者对不同的 IoU-based 方法做了如下形式的统一,其实这些 IoU-based loss 都可以看做是 α = 1 \alpha=1 α=1 时的特例:
2.2 Alpha-IoU 的特性
作者使用 L α − I o U = 1 − I o U α L_{\alpha-IoU}=1-IoU^{\alpha} Lα−IoU=1−IoUα 来分析特性。
图 1 左侧展示了 IoU 和 L I o U L_{IoU} LIoU 的关系,图 1 右侧展示了 IoU 和梯度模值的关系。
- IoU Loss( α = 1 \alpha=1 α=1)和 IoU 呈线性关系,梯度是恒值
- L α − I o U L_{\alpha-IoU} Lα−IoU 会动态 reweight 不同 IoU 的目标的 loss, α > 1 \alpha>1 α>1 时,是凸型曲线,会增大 loss, 0 < α < 1 0<\alpha<1 0<α<1 时,是凹型曲线,会降低 loss
- 从 loss 的斜率来看,high iou 处,斜率更大,更有利于参数更新。
属性 1:Order 保持性
结论: L I o U L_{IoU} LIoU 和 L α − I o U L_{\alpha-IoU} Lα−IoU 都是随 IoU 而单调递减的
假设 B i B_i Bi 和 B j B_j Bj 对应了一个相同的真值框 B g t B^{gt} Bgt,且 I o U ( B i , B g t ) < I o U ( B j , B g t ) IoU(B_i, B^{gt})<IoU(B_j,B^{gt}) IoU(Bi,Bgt)<IoU(Bj,Bgt),则有:
属性 2:相对损失权重
α \alpha α 能根据目标的 IoU 来自适应的调整该目标的loss:
- α > 1 \alpha>1 α>1 时,加权因子 w w w 随 IoU 的增加而单调增加,可以帮助模型更专注于 High IoU 目标,以提高定位和检测的性能
- 0 < α < 1 0<\alpha<1 0<α<1 时,加权因子 w w w 随 IoU 的增加而单调减小
属性 3:相对梯度权重
- α > 1 \alpha>1 α>1 时,加权因子 w w w 随着 IoU 的增大而提高
- 0 < α < 1 0<\alpha<1 0<α<1 时,加权因子 w w w 随着 IoU 的降低而降低
综上所述, α > 1 \alpha>1 α>1,能够让网络更加关注 high IoU 的样本,且能够在训练后期提升训练效果
L α − I o U L_{\alpha-IoU} Lα−IoU 是如何动态调整的:
- 动态策略是基于绝对和相对特性的
- α > 1 \alpha>1 α>1 时,会先学习简单样本,提升到 I o U = 1 IoU=1 IoU=1,后面学习难样本,如图 3 所示,up-weighting 高 IoU 样本的 loss 和 gradient 会在训练后期提升效果
- 0 < α < 1 0<\alpha<1 0<α<1 时,会降低高 IoU 样本的 loss 和 gradient,使得定位效果变差。
三、效果
取 α = 3 \alpha=3 α=3:
作者还做了框回归准确性的分析:
可视化了在 PASCAL 上使用不同 IoU loss 得到的框和真实框的 IoU 分布,经过了阈值为 0.5 的 NMS。
结论:
- α − I o U \alpha-IoU α−IoU loss 比 IoU loss 得到的检测框更准确,在 I o U > = 0.5 IoU>=0.5 IoU>=0.5 时, α − I o U \alpha-IoU α−IoU loss 比 I o U IoU IoU loss 多检测了约 1% 的正样本,在 I o U > = 0.9 IoU>=0.9 IoU>=0.9 时, α − I o U \alpha-IoU α−IoU loss 比 I o U IoU IoU loss 多检测了约 11% 的正样本,这说明 α − I o U \alpha-IoU α−IoU loss 能够同时提升框的 precision 和 recall。
- α − I o U \alpha-IoU α−IoU loss 能够通过 up-weighting loss 来推进 low IoU 目标成为 high IoU 目标
- α − I o U \alpha-IoU α−IoU loss 会在训练后期提高网络效果(如 200 epoch 之后),同时也不会对前期训练产生不好的影响。属性 3 能够帮助前期训练中降低 low IoU 目标的梯度,让训练更平滑(降低难样本带来的高方差),稳定前期训练时的大梯度现象。
如何验证对小数据集和噪声数据的效果:
通过一系列实验发现, α \alpha α-IoU 对噪声数据更鲁棒的原因在于其对 low IoU object 的关注更少一些,会抑制噪声目标的效果。
作者在 PASCAL VOC 和 MS COCO 上生成了一些正态分布的噪声框, η \eta η 为噪声率,测试了 η = 0.1 , 0.2 , 0.3 \eta=0.1, 0.2, 0.3 η=0.1,0.2,0.3 的效果。
L α − I o U L_{\alpha-IoU} Lα−IoU 的 m A P / m A P 75 : 95 mAP/mAP_{75:95} mAP/mAP75:95从 L I o U L_{IoU} LIoU 的 2.97%/10.26% 提升到了 6.39%/24.09%。