论文:Towards Rotation Invariance in Object Detection——ICCV2021
代码:https://github.com/akasha-imaging/ICCV2021
众所周知,一般的检测网络并不具备旋转不变性或者旋转等变性,在某些场景如遥感图像中,经常会对训练数据使用“旋转增强”来增强网络的性能。对于旋转之后的目标的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))
在以下四个数据集的结果:
在COCO数据集的结果(对验证集分别旋转0,10,20,30度,得到新的验证集):
可以看到广泛使用的最大框法有时甚至会带来AP的负提升,而作者的椭圆表示法+RU Loss可以带来稳定的性能提升。(论文中有实验表示单独用椭圆表示法也可以带来性能提升,但不如加RU Loss提升多)
本文针对目标检测中的旋转增强提出两个贡献: