# DSA-SOLO: Double Split Attention SOLO for Side-Scan Sonar Target Segmentation
## 3 Methods  
### Dsa-Solo  
As shown in Figure 2, DSA-SOLO takes a sonar image as input, performs ResNet, double split attention (DSA) module, feature pyramid network (FPN) [35], and two branches of SOLOv2. The proposed DSA-SOLO is built on a host network called SOLOv2, and the proposed DSA module is embedded between ResNet and FPN to deal with the weak boundary features of sonar images. ResNet-18 is used as a backbone architecture for extracting the sonar image feature maps. We utilize the DSA module to improve the ability to extract the boundary information of the targets. In order to segment multi-scale targets more effectively, FPN is utilized. As shown in Table 1, some output maps of different layers have the same size, which are highlighted in the same stage. FPN obtains the feature map by taking the last layer output of each stage as a reference feature set. Specifically, the output of the last residual block in each stage of ResNet-18 acts as the input of FPN, and is denoted as \(\{C_{2},C_{3},C_{4},C_{5}\}\) for conv2, conv3, conv4, and conv5. Conv1 is not included because of its large memory footprint.  
\begin{table}
\begin{tabular}{c c c} \hline \hline
**Stage** & **Output Size** & **Backbone** \\ \hline Conv1 & \(112\times 112\) & \(7\times 7\) conv, 64 \\ \hline \multirow{3}{*}{Conv2} & \multirow{3}{*}{\(56\times 56\)} & \(3\times 3\) max pooling \\ \cline{3-3}  & & \(\begin{bmatrix}3\times 3,64\\ 3\times 3,64\end{bmatrix}\times 2\) \\ \hline Conv3 & \(28\times 28\) & \(\begin{bmatrix}3\times 3,128\\ 3\times 3,128\end{bmatrix}\times 2\) \\ \hline Conv4 & \(14\times 14\) & \(\begin{bmatrix}3\times 3,256\\ 3\times 3,256\end{bmatrix}\times 2\) \\ \hline Conv5 & \(7\times 7\) & \(\begin{bmatrix}3\times 3,512\\ 3\times 3,512\end{bmatrix}\times 2\) \\ \hline \hline \end{tabular}
\end{table}
Table 1: ResNet-18, the backbone of DSA-SOLO. An input image with the size of 224 \(\times\) 224 is taken as an example.  
Figure 2: The structure of DSA-SOLO. The proposed DSA module is utilized and embedded between the ResNet-18 and FPN. We show an example when \(S=5\).  
The outputs of the DSA module are used as input for the two branches mentioned in SOLOv2 to generate the final predictions. Similarly to SOLOv2, DSA-SOLO divides the input image into \(S\times S\) grids. For each grid, the category branch outputs a \(C\)-dimensional vector, which indicates the probability of each semantic class the pixel belongs to, where \(C\) is the number of classes. Therefore, the output space of a category branch is \(S\times S\times C\). In parallel, the mask branch generates the corresponding instance mask of each grid. For an input sonar image, \(I\), there are at most \(S^{2}\) predicted masks in total. Therefore, the output space of a mask branch is \(H\times W\times S^{2}\), where \(H\), \(W\) respectively, represent the height and width of the sonar image. The \(k\)-th channel denotes where the segment instance is at the grid \((i,j)\), where \(k=i\cdot S+j\)\((i,j\in[0,S-1])\). The instance segmentation result of each grid is obtained by associating the predictions of category and mask. Finally, a non-maximum-suppression (NMS) structure is used to obtain the accurate segmentation results.