# RAU-Net++: River Channel Extraction Methods for Remote Sensing Images of Cold and Arid Regions
## 3 Methods
### Feature Fusion
#### 3.3.2 Residual Attention Feature Fusion Module (RAFF)  
In this paper, the residual attention feature fusion module (RAFF) is proposed for the problems of easily missed detection of fine river branches and unrefined segmentation of river edges. The RAFF module is located at all the short jump connections, which is supplemented by optimizing the dense jump connections to make extracting the river edge information more adequate. It contains a bottleneck attention-weighted branch, maximum pooling branch, and residual branch (shown in Figure 6).  
Figure 5: Dense skip connections.  
The bottleneck attention branch is composed of a parallel connection between the attention branch and the bottleneck branch. In the attention branch, we squeeze the input feature maps using average pooling. In order to increase the nonlinear expressiveness of the model to better fit the complex correlations between channels, we use two 1 \(\times\) 1 convolutions for scaling between feature channels, respectively, perform batch normalization before the Relu activation function to improve the network generalization ability, and finally, use the Sigmoid activation function to map the feature vectors to a range between 0 and 1 to obtain a weight which provides a regional category overview of river remote sensing images. The attention branch automatically obtains the importance level of each feature channel by learning and then enhances the features of the river channel and suppresses the features except the river channel according to the importance level [32]. In the bottleneck branch, we use a 1 \(\times\) 1 convolution and a 3 \(\times\) 3 convolution, respectively, to integrate the information of the river features from the input feature maps to effectively extract the local river features and perform batch normalization and Relu activation after both convolution operations to retain more edge features for the river. Finally, the obtained attentional weights are multiplied channel-by-channel with the weights obtained through the bottleneck branch to obtain the output feature map.  
Dense joins serve to adequately map the encoder features to the decoder, and in order to maximize the preservation of the river detail texture features during dense joins, we parallelize a maximum pooling branch with respect to the bottleneck attention-weighted branch. It consists of a maximal pooling layer with a pooling kernel of 3 \(\times\) 3 size and a 1 \(\times\) 1 convolution and, after convolution, a batch normalization and adding Relu activation function. Meanwhile, the maximum pooling branch in the first layer of short connections was concatenated with the downsampling in VGG16 to preserve more detailed texture features of the river.  
In order to prevent excessive loss of river features, we introduced a residual branch relative to the other two branches in parallel to get the original features of the input image. Finally, we performed feature fusion of the three feature maps output from the three branches to obtain the final output feature map. The above process can be represented by Equation (6):  
\[\begin{array}{c}Input=x\\ x_{1}=MP[Conv_{1}(BN(Relu(x)))]=MP[Conv_{1}(F(x))]\\ x_{2-1}=Conv_{1}[F(Conv_{3}(F(x)))]\\ x_{2-2}=AP[Conv_{1}(F(Conv_{1}(\sigma(x))))]\\ x_{2}=x_{2-1}\otimes x_{2-2}\\ Output=x+x_{1}+x_{2}\end{array} \tag{6}\]  
Figure 6: RAFF module.  
where \(x\) is the input, \(MP\) denotes maximum pooling, \(AP\) denotes average pooling, \(Conv_{1}\) denotes convolution kernel is 1 \(\times\) 1 convolution, \(Conv_{3}\) denotes convolution kernel is 3 \(\times\) 3 convolution, and \(F\) denotes \(BN(Relu)\) computation, where \(BN\) is the batch normalization process, \(Relu\) activation is performed after the batch normalization process, and \(\sigma\) denotes the Sigmoid computation.