论文阅读笔记:Adaptive Rotated Convolution for Rotated Object Detection
- [1 背景](#1 背景)
-
- [1.1 问题](#1.1 问题)
- [1.2 提出的方法](#1.2 提出的方法)
- [2 创新点](#2 创新点)
- [3 方法](#3 方法)
- [4 模块](#4 模块)
-
- [4.1 旋转卷积核](#4.1 旋转卷积核)
- [4.2 路由函数](#4.2 路由函数)
- [4.3 自适应旋转卷积模块](#4.3 自适应旋转卷积模块)
- [5 效果](#5 效果)
-
- [5.1 与SOTA方法对比](#5.1 与SOTA方法对比)
- [5.2 消融实验](#5.2 消融实验)
论文:https://arxiv.org/pdf/2303.07820v2.pdf
代码:https://github.com/LeapLabTHU/ARC
1 背景
1.1 问题
近年来在旋转目标检测方面,各种旋转对象表示以及和这些表示对应的损失函数、旋转ROI提取、标签分配策略、网络的neck和head以及旋转RPN等方面都被提出并研究,但在设计合适的backbone方面也很少有人提及。
由于不同图像中的目标朝向不同,同一图像中的不同目标朝向也不同,在传统的视觉骨干设计中大多忽略了这两点,因此标准骨干模型的架构可能是次优的。
1.2 提出的方法
本文提出了一个简单而有效的自适应旋转卷积(ARC)模块来解决上面提到的问题。在该模块中,卷积核自适应的旋转以调整在每个输入条件下的参数,如图1所示,其中旋转角度由路由函数以数据依赖的方式进行预测。
此外,作者还采用了一种有效的条件计算技术,使检测器具有更强的适应性,以处理图像中不同方向的物体。具体来说,在应用卷积操作之前,将多个核单独旋转然后组合在一起。这种合并计算的过程相当于分别用不同的核进行卷积,然后对得到的结果进行求和,但计算量可以显著减少。
本文提出的ARC模块可以方便地在任意核大小的卷积层中作为即插即用的模块,因此任何具有卷积层的骨干网络都可以通过使用ARC模块来享受旋转物体的强大表示能力。
2 创新点
提出了即插即用的ARC模块。
3 方法
所提出的自适应旋转卷积模块ARC如图3所示。最终的卷积核 W ˜ \~{W} W˜ 由原始卷积参数 W W W 生成,由输入特征图 x x x 引导。核 W = [ W 1 , . . . , W n ] W=[W_1,...,W_n] W=[W1,...,Wn] 旋转 θ = [ θ 1 , ... θ n ] \theta=[\theta_1,...\theta_n] θ=[θ1,...θn] 度,再与权重 λ = [ λ 1 , ... λ n ] \lambda=[\lambda_1,...\lambda_n] λ=[λ1,...λn] 组合。 θ \theta θ 和 λ \lambda λ 由路由函数以数据依赖的方式进行预测。
与DCNv2的偏移和调制权重相似。
4 模块
4.1 旋转卷积核
标准卷积核作为大多数有向目标检测器的主干,使用一致的参数从所有图像样本中提取特征。在旋转目标检测器的场景中,这意味着目标实例使用了一个固定方向的静态卷积核,而与他们的旋转角度无关。为了弥补任意方向的目标实例与这些静态方向的卷积核之间的鸿沟,作者提出以数据驱动的方式,通过在核空间内采样权重来旋转卷积核。
首先,将卷积权重当做核空间的采样点(如图2(b))而不是独立的参数(如图2(a)),因此原始的卷积参数可以通过插值跨越一个核空间。在实际中,作者用双线性插值。卷积核旋转过程是从卷积核空间采样新的权重值的过程。将原始坐标饶中心点顺时针旋转 θ \theta θ 度得到样本坐标(如图2©)。通过在旋转坐标中从原始核空间采样值(如图2(d)),得到旋转卷积核(如图2(e))。注意,像图2中那样坐标顺时针旋转 θ \theta θ 度相当于使卷积核逆时针旋转 θ \theta θ度。
上述过程只对卷积核的一个通道进行了旋转,那么扩展到形状为 [ C o u t , C i n , k , k ] [C_{out},C_{in},k,k] [Cout,Cin,k,k] 的卷积层,只需要对所有 C i n C_{in} Cin 和 C o u t C_{out} Cout 通道使用相同的过程即可。
4.2 路由函数
路由函数是所提出的自适应卷积模块的关键组成部分之一,因为它以数据依赖的方式预测旋转角度和组合权重。路由函数以图像特征 x x x 为输入,预测一组旋转角度 [ θ 1 , ... θ n ] [\theta_1,...\theta_n] [θ1,...θn] 和相应的组合权重 [ λ 1 , ... λ n ] [\lambda_1,...\lambda_n] [λ1,...λn]。
路由函数的整体框架如图3©所示。输入图像特征 x x x 的大小为 [ C i n , H , W ] [C_{in},H,W] [Cin,H,W],首先输入一个 3 × 3 3×3 3×3 核大小的轻量级深度卷积,然后进行层归一化和ReLU激活。然后将激活的特征平均池化成具有 C i n C_{in} Cin 维度的特征向量。池化后的特征向量被传递到两个不同的分支中。第一个分支为旋转角度预测分支,有线性层和softsign激活函数组成。将这个线性层的偏置设置为False以避免学习有偏的角度。对softsign的输出乘上一个系数以扩大旋转的范围。第二个分支为组合去权重预测分支,负责预测组合权重 λ \lambda λ。由带偏置的线性层和sigmoid激活函数构成。
4.3 自适应旋转卷积模块
考虑到图像中的对象实例通常会面向多个方向,因此在ARC模块中引入了条件计算机制来判断多个方向的对象。ARC模块的 n 个卷积核 W 1 , W 2 , ... W N W_1,W_2,...W_N W1,W2,...WN,每个形状均为 [ C o u t , C i n , k , k ] [C_{out},C_{in},k,k] [Cout,Cin,k,k]。给定输入特征 x x x,路由函数 f f f 预测一组旋转角度 θ \theta θ 和 λ \lambda λ:
n 个核首选根据预测的旋转角度 θ = [ θ 1 , ... θ n ] \theta=[\theta_1,...\theta_n] θ=[θ1,...θn] 单独旋转:
其中 θ i \theta_i θi 表示 W i W_i Wi 的旋转角度, W i ′ W_i' Wi′ 是旋转核, Rotate(·) 中的旋转过程如4.1。这些旋转后的核分别与输入特征图卷积,并以逐元素的方式将输入特征图相加:
其中 λ = [ λ 1 , ... λ n ] \lambda=[\lambda_1,...\lambda_n] λ=[λ1,...λn] 是路由函数预测的组合权重。 ∗ * ∗ 为卷积操作, y y y 是组合后输出的特征图。收到条件参数化的启发,式(3)可以写成:
该策略增加了网络对多方向特征的表征能力,并且大计算量的卷积仅在式(4)中出现了一次。,因此仍保持较高的效率。
5 效果
5.1 与SOTA方法对比
不同检测器使用ARC模块后的提升。
和SOTA方法对比。
多尺度训练和测试策略的指标。
使用ARC模块带来的计算量。
使用本模块带来的效果提升可视化。
5.2 消融实验
自适应旋转模块和条件计算机制带来的提升。
Resnet中不同阶段替换ARC模块的消融实验。
路由函数中各模块的消融实验。