## 3 The Proposed Method
### Rotation Convolution for Oriented Feature Extraction  
The design of the LSK module and the proposal of the backbone network LSKNet have certainly solved the problem of low efficiency in multi-scale feature extraction to a certain extent. However, due to the lack of consideration that the detected targets in remote sensing images are rotating, only 2D convolutions are used for feature extraction and fusion. This approach to some extent reduces the efficiency and accuracy of network learning features. Therefore, we drew inspiration from the aligned convolution in S\({}^{2}\)A-Net and extended the application range of ARC convolution to rotation convolutions of any size.  
Firstly, the network uses the input layer \(x\) to predicts the rotation angle \(\theta\) and the corresponding weights \(w\) for each rotation angle through a simple set of regression networks, as shown in Equation (2). Then, based on the corresponding rotation angle and weight, feature extraction is performed. This process can be described in language as rotating the feature map by a certain angle and then using 2D convolutions for feature extraction. However, because the size of the input layer is often much larger than the size of the convolution, this can lead to an exponentially increased computational workload. Therefore, an efficient method is to rotate the convolution kernel in the opposite direction and then use the rotated convolution kernel to extract the feature map. This process is shown in Equation (3). In the equation, \(\times\) is the operator that weights the convolution results using the weight \(w_{i}\). \(W\) represents the weight of the original 2D convolution kernel, the rotate operator rotates the original weights by a certain angle \(\theta\) which ranges from \(-40\) degrees to \(40\) degrees, and the output feature map is represented as \(x^{\prime}\) which is the weighted result of \(x^{\prime}_{i}\). Note that the entire process of convolution and weighting is linear, so it can be further simplified as shown in Equation (4). In this way, we only need to calculate the weight of the transformed convolutional kernel and extract the feature map once to solve this task, greatly reducing the computational workload.  
\[w_{i},\theta_{i}=f(x) \tag{2}\]  
\[x^{\prime}=\sum_{i=1}^{n}x^{\prime}_{i}=\sum_{i=1}^{n}w_{i}\times conv2d(rotate (W,\theta_{i}),x) \tag{3}\]  
\[x^{\prime}=conv2d(\sum_{i=1}^{n}w_{i}\times rotate(W,\theta_{i}),x) \tag{4}\]  
The weight calculation process of the convolutional kernel is shown in Figure 3. This process is equivalent to the alignment convolution operation in S\({}^{2}\)A-Net. Firstly, we treat the original weights in the original convolution kernel as reference points and use bilinear interpolation to unfold them into an image. Next, we calculate the distance between each weight point and the center point of the image, and rotate this vector by the corresponding angle, as shown in Equation (5). Finally, we use the rotated reference points to sample the original image and ultimately obtain the rotated convolutional kernel weights.  
\[rotate(W_{i},\theta)=sampling\bigg{(}\left[\begin{array}{c}x_{center}\\ y_{center}\\ \end{array}\right]+\begin{bmatrix}\cos\theta&-\sin\theta\\ \sin\theta&\cos\theta\\ \end{bmatrix}\left[\begin{array}{c}x_{i}-x_{center}\\ y_{i}-y_{center}\\ \end{array}\right]\bigg{)} \tag{5}\]Compared to 2D convolution, using this method for convolution operations greatly enhances the feature capture ability of the convolution kernel for rotating features, making the network more accurate in recognizing rotating targets. This rotation feature extraction method can be applied to convolutions of any size and with any dilation rate. Compared to the original convolutions, it has wider universality and more adjustable parameters.