Adaptive Rotated Convlution
Introduction
论文题目 :Adaptive Rotated Convolution for Rotated Object Detection
论文地址 :https://arxiv.org/pdf/2303.07820v1.pdf
论文出处 :arxiv PKU
代码实现 :Not released
Idea
在遥感图像检测场景中,具有相似特征的对象实例会以任意方向放置,
因此,有必要根据对象的不同方向旋转卷积核,以达到旋转等变性。

Detail
Rotate the convolution kernel

就是先用旋转矩阵公式把卷积核的权重按θ角旋转,然后再用双线性插值重新计算权重。
(x′y′)=(cosθsinθ−sinθcosθ)(xy)
Routing function
这里主要介绍决定卷积核旋转角度的路由函数

首先 feature map 送进来与一个3 x 3的kernel做Depthwise Convolution,接着就很常规的卷积后做Layer Nomalzation + relu,然后用平均池化,把特征平均合并到Cin个维度的向量中。
第一个分支是旋转角度预测分支,由Linear + softsign激活函数构成,输出[θ1...θn]
第二个分支是组合权重预测分支,由Linear + sigmod激活函数构成,输出[λ1...λn]
Wi′=Rotate(Wi,θ),i=1,2,...,n
y=λ1(W1’∗x)+λ2(W2’∗x)+...+λn(Wn’∗x)
Result
实际效果:

替换多个网络backbond后,精度提升:


总结

以前的网络模型中,都是先卷积,然后做一个RoI warpping,对特征图旋转
(x′y′)=(cosθsinθ−sinθcosθ)(x−wr/2y−hr/2)+(xryr)
后面Oritened RCNN把RoI warpping这个过程去掉了。
现在又在卷积核上做这个旋转了