## 3 Improved SSD Network Structure
### Improved SSD with Deconvolution  
Deconvolution is the inverse process of convolution. High-level features are mapped to low-level features by deconvolution to enrich their semantic information. The deconvolution schematic is shown in Figure 3.  
The deconvolution operation is completed with the matrix multiplication of a one-dimensional vector expanding from the feature map and a sparse matrix expanding from the convolution kernel. The deconvolution calculation is shown in Formula (2):  
\[C^{\mathsf{T}}\star\overrightarrow{X}=\overrightarrow{Y} \tag{2}\]  
where \(\overrightarrow{X}\) and \(\overrightarrow{Y}\) represent one-dimensional vectors expanded from the input and output features. \(C\) denotes the sparse matrix by expanding the convolution kernel. Deconvolution is an inverse process of normal forward propagation of convolution only by exchanging the input and output feature maps. Therefore, the parameters of the deconvolution kernel are the same as those of the convolution kernel. In the training process, the parameters of the deconvolution kernel can be learned by a back propagation algorithm.  
Through deconvolution, high-level features can be mapped onto low-level features. The new features are spliced with the original low-level features to achieve a feature fusion. The default boxes are extracted from the combined feature maps. The low-level feature map will have more global information by combining with the mapping feature without changing the fitting ability of the high-level feature map. The feature fusion method with deconvolution is shown in Figure 4.  
Figure 3: Schematic diagram of deconvolution.  
In order to improve the SSD detection ability of small objects without increasing too much computation, we introduce deconvolution only to low levels, since they contain more details of small objects.  
The input image is \(300\times 300\). A feature map with a resolution of \(75\times 75\) is added as a detection layer. Feature maps with resolutions of \(19\times 19\) and \(38\times 38\) are deconvoluted and fused with \(38\times 38\) and \(75\times 75\) feature maps. The resolution relationship between the deconvolution input and output feature maps is shown as Equation (3):  
\[O=S\times(W-1)+F-2\times P \tag{3}\]  
where \(O\) is the resolution of the output feature map; \(S\) is the stride of the convolution kernel, \(W\) denotes the resolution of the input feature map; \(F\) is the convolution kernel size; and \(P\) is the padding size. In order to splice, it is necessary to ensure that the resolution of the deconvolution feature maps is consistent with that of the low-level feature maps. In Formula (3), the deconvolution kernel size of the \(19\times 19\) feature maps is \(2\times 2\), stride is \(2\), and padding size is \(0\). The deconvolution kernel size of the \(38\times 38\) feature maps is \(3\times 3\), stride is \(2\), and padding size is \(1\).  
The structure of the improved SSD network is shown in Figure 5. Conv3_3 and Conv5_3 are used as detection layers. The feature map sizes of Conv3_3, Conv4_3, and Conv5_3 are \(75\times 75\), \(38\times 38\), and \(19\times 19\), respectively. The feature map DeConv5_3 is deconvoluted by Conv5_3 with a resolution of \(38\times 38\) and spliced to Conv4_3 for the feature fusion. The fused feature map is named Feature Fusion 1 (FF1). The feature map DeConv4_3 is deconvoluted by Conv4_3 with a resolution of \(75\times 75\) and spliced to Conv3_3 for the feature fusion. The fused feature map is named Feature Fusion 2 (FF2).  
Figure 4: Feature fusion with deconvolution.