# MSPNet: Multi-Scale Strip Pooling Network for Road Extraction from Remote Sensing Images
## 3 Materials and Methods
### Multi-Scale Strip Pooling  
Most natural objects often have bulk shapes. Accordingly, the traditional kernel shape of the pooling layer in most CNN architectures is designed to be square for feature learning, which is suitable for most computer vision tasks. However, the roads in remote sensing images are narrow, long-span and can be described as elongated areas. Traditional pooling layers with square kernel shapes neglect the modeling of linear features of roads. By contrast, the strip pooling is more in line with the shape of the roads, which utilizes a long but narrow kernel to capture long-range dependencies in road regions and thus enhance the embedding of linear features within CNN models. The strengthened learning ability of linear features is helpful for retaining the connectivity and making the segmentation results more complete.  
Motivated by the above fact and the advantages of strip pooling, we develop a multi-scale strip pooling module (MSP) to help our MSPNet generate road networks with better connectivity. As shown in Figure 4, MSP uses multiple strip pooling layers with long but narrow kernel shapes to capture multi-scale long-range context from horizontal and vertical directions. In addition, the two directions we choose are also aligned with the distribution of most roads in remote sensing images.  
Let \(X\in\mathbb{R}^{H\times W}\) denote the input tensor for the MSP module, where \(H\), \(W\) represent the height and width. In the MSP module, \(X\) is first fed into two pathways along either the horizontal or vertical spatial dimension, each of which contains a strip pooling layer with long but narrow kernel shapes of \(\frac{H}{r}\times r\) or \(r\times\frac{w}{r}\) to extract linear features of roads, where \(r\) is the scaling factor for adjusting the kernel sizes. Let \(y_{r}^{h}\) and \(y_{r}^{v}\) be the output feature maps extracted by the two strip pooling layers along the horizontal or vertical direction. Then, we upsample the two feature maps to the same size of input tensor by using a bilinear upsampling layer. Afterwards, we combine the two feature maps of \(y_{r}^{h}\) and \(y_{r}^{v}\) to obtain \(y_{r}\), which can be formulated as:  
\[y_{r}=y_{r}^{v}+y_{r}^{h} \tag{5}\]  
Figure 4: Multi-Scale Strip Pooling (MSP) Module.  
The feature maps of \(y_{r}\) contain rich long-range contextual information of roads with different scales, which is related to the scaling factor \(r\). The appropriate selection of the scaling factor \(r\) is usually based on experience. In this paper, \(r\) is set to 1, 3 and 7, respectively, to obtain three feature maps, containing information with three different scales. Like [32], different scales of features are concatenated as the final pooling global feature, which can be formulated as:  
\[y=Concat(y_{r=1},y_{r=3},y_{r=7}) \tag{6}\]  
Finally, the output of the MSP module can be written as:  
\[Z=Scale(x,\alpha(f(y))) \tag{7}\]  
where \(Scale(\cdot,\cdot)\) represents element-wise multiplication, \(\alpha\) is the sigmoid function and \(f\) is a \(1\times 1\) convolution.