论文:Towards Rotation Invariance in Object Detection——ICCV2021
代码:https://github.com/akasha-imaging/ICCV2021
1. 论文介绍
众所周知,一般的检测网络并不具备旋转不变性或者旋转等变性,在某些场景如遥感图像中,经常会对训练数据使用“旋转增强”来增强网络的性能。对于旋转之后的目标的ground truth,通常的做法是对原本的真值框旋转相同的角度,然后对旋转后的框取最大外接水平矩形,如下图红框所示。然而作者发现,这种最大外接框的取法会得到过于大的真值框,从而产生标签歧义问题,甚至会损害网络的检测性能,特别是AP75的性能。
这种通常的方法我们将它称为最大框法,它假设方框中的物体的形状为占满整个框的方形。而本文作者提出,用最大内接椭圆来表示bounding box中物体的形状为更优的表示,对图片旋转后,对这个椭圆进行旋转,取椭圆的最大外接矩作为旋转后物体的真值框,如上图墨蓝色框所示。最大内接椭圆的计算方法为:
其中,x_c 和 y_c 表示原始框的中心点坐标,b_W^0 和 b_H^0 表示初始框的宽和高。
至于为什么最大外接椭圆表示更好,这是作者建模了个优化问题,然后使用梯度下降法求出来的,这个优化问题最终表示为:
上式中 mathbf{b}_{k}^{theta}=mathcal{B}left(mathcal{R}^{theta}left(S_{k}right)right),mathcal{R}^{theta}(S)表示对形状S旋转 theta 度后的形状,mathcal{B}() 表示对形状求最大外接水平矩形框,
这个优化公式即求出一个初始外接框中的最优的形状hat{S},使得这个形状旋转 theta 度后的外接框和真实形状旋转 theta 度后的外接框的IoU的期望最大,这里期望的计算是通过对一个数据集形状分布进行K次随机采样。(中文解释数学公式比较费劲,没有理解的可以去看论文4.1.1节)
作者分别用COCO数据集的分割标签和生成随机形状进行了上述优化公式的求解,两者结果非常一致,实验结果如下图,可以看到原先的方法只能达到0.608的IoU期望,而椭圆形为最优形状,可以达到0.729的IoU期望。
虽然椭圆形比原先的方形可以达到更高的IoU期望,然而0.729仍然低于0.75,所以仍然可能损害AP75的精度,因此作者还提出一个旋转不确定损失RUloss,用于计算回归损失。旋转 theta 度后的标签确定性表示为: begin{gathered} alpha=2 cos (4 delta) \ C(theta)=1 frac{1}{alpha-2}(1-cos (4 theta)) end{gathered} $delta 为超参,代表 C(theta)=0.5 的角度。如果预测框的IoU大于 max(0.5,C(theta))
2. 实验结果
在以下四个数据集的结果:
在COCO数据集的结果(对验证集分别旋转0,10,20,30度,得到新的验证集):
可以看到广泛使用的最大框法有时甚至会带来AP的负提升,而作者的椭圆表示法 RU Loss可以带来稳定的性能提升。(论文中有实验表示单独用椭圆表示法也可以带来性能提升,但不如加RU Loss提升多)
3. 总结
本文针对目标检测中的旋转增强提出两个贡献:
- 旋转增强后新的标签怎么生成的问题,提出了比最大框法更优的椭圆表示法
- 提出用于回归损失计算的旋转不确定损失RU Loss,进一步提升了效果