## 2 The Proposed Method
### GHPNet Network Architecture  
The constructed network needs to predict the heat map information of all bird targets. The predicted value should be the highest in the center of each bird and gradually decreases outward along the center. This is a very challenging task. The GHPNet network takes an  
Figure 3: Gaussian heat map generation process, (a) bird gathering or overlapping region image; (b) targets manually annotated with rectangle boxes; (c) the resulting Gaussian heatmap ground truth; (d) 2D Gaussian kernel. image of the size \(128\times 128\) as input, and outputs a pixel-wise Gaussian heatmap of the same size, not a binary map of whether it belongs to the target. As shown in Figure 4, the GHPNet consists of three components: a feature encoder (FE), multi-scale fusion (MF), and Gaussian heap estimator (GHE). The parameter settings of each module are shown in Table 1.  
FE is comprised by the first 9 pretrained layers of the VGG-16 [35] network, which extracts multi-scale features and multi-level semantic information by combining the stack of \(3\times 3\) convolution layers and \(2\times 2\) max-pooling layers. Specifically, it consists of 5 convolution layers and 4 maximum pooling layers. Each of the first four convolution layers are followed by a max-pooling layer with a stride of two, due to which the output of CNN layers is down-sampled by a factor of four. The top feature maps (\(1/16\) in size of the original input) from the fifth convolution layer are fed into MF to learn image-level bird features and the contextual information at multiple rates. The MF module is composed of several groups of skip connection layers, up-sampling layers, and convolution layers. The skip connection is designed to remind the network to learn multi-scale features to avoid the gradient disappearing during training. The up-sampling layer can retrieve a high-resolution feature map. In order to solve the problem that the pooling layer of the network will lead to the loss of small targets, we use a maximum-no-pooling layer to enhance the targets. The specific method is to use the output feature map of the Conv5 layer of the FE module as the input of the Conv6 layer of the MF module, and before the convolution layer of the Conv6 layer, the fifth convolution layer from FE is connected to a max-pooling layer with both a stride and a padding of one. The insight of choosing this maximum-no-pooling layer is to highlight the saliency target feature without changing its scale. Figure 4: The structure diagram of the GHPNet. Figure 5 shows the original two target feature maps and their corresponding feature results obtained by max-pooling and maximum-no-pooling processing. As can be seen from Figure 5, maximum-no-pooling can highlight the target area better than max-pooling, which can ensure that the target will not easily be lost in the deep layers of the network. After convolutions, the output feature of each scale from MF are concatenated with the output feature from FE at the same scale before passing through a specified fusion layer, which comprises of a \(1\times 1\) convolution layer, with a batch-norm layer and a \(3\times 3\) convolution layer, with a batch-norm layer. Additionally, for reducing the network parameters, a \(1\times 1\times(\text{Out}\times 2)\) convolution is added before a \(3\times 3\times\text{Out}\) convolution layer in which Out means the number of channels of the output feature map. Figure 5(a,b) are the processing procedures with and without \(1\times 1\) convolution: the input is \(8\times 8\times 1024\) and the output is \(8\times 8\times 256\). The number of parameters corresponding to two different convolutions are Num1 and Num2, respectively, which are calculated as \(\text{Num1}=8\times 8\times 1024\times 3\times 3\times 256=150,994,944\), \(\text{Num2}=8\times 8\times 1024\times 1\times 1\times 512+8\times 8\times 512 \times 3\times 3\times 256=109,051,904\). It can be seen that applying \(1\times 1\) convolution can save \(27.8\%\) of the computation compared to not using \(1\times 1\) convolution.