# A Deep Learning-Based Approach for Extraction of Positioning Feature Points in Lifting Holes
## 2 Methods
### The ADD Network Model
#### 2.3.2 ResNet50-ECA  
When selecting the backbone, we also considered using lightweight networks, similar to in [28]. However, it did not perform well on our dataset, and ResNet50 was chosen instead of MobileNet, as it has stronger feature extraction capabilities. ResNet50 [29] was proposed by introducing shortcut connections into the DCNN (Deep convolutional neural network) structure and using residual blocks (ResBlocks) as the main building blocks of ResNet. Each ResBlock contains two types of bottleneck structures, as illustrated in Figure 4. For a given input \(x\), the output features of BottleNeck1 and BottleNeck2 are mapped to \(x\) as follows:  
\[H_{1}=F(x,\{W\})+Q(x,\{W_{q}\}) \tag{1}\]  
\[H_{2}=F(x,\{W\})+x \tag{2}\]  
Figure 3: The structure of ADD. where \(F(x,\{W\})\) represents the feature maps obtained from the three convolution operations in the main branch, and \(\{W\}\) denotes the \(1\times 1\) weight convolution operation. It is worth noting that for BottleNeck1, \(Q(x,\{W_{q}\})\) represents the feature maps from the branch, where \(\{W_{q}\}\) also represents the \(1\times 1\) convolution operation. Different bottleneck blocks serve different purposes, as shown in Figure 5a. The main function of BottleNeck1 is to alter the dimensionality and channel size of the feature map using a linear function, matching the feature map size with the input dimensions for subsequent operations. This enables the extraction of deeper features through multiple convolutional operations. On the other hand, BottleNeck2 is primarily used to maintain the input feature map's dimensionality and channel size. It achieves this by employing a shortcut connection, directly adding the input \"\(x\)\" to the output \"\(y\)\", which helps prevent the vanishing and exploding gradient problems during training deep networks. Additionally, in ResNet50, each ResBlock incorporates a varying number of shortcut connections, as indicated in Table 2. Since BottleNeck1 alters the shape of the feature map, it is generally not used in a sequential manner, whereas BottleNeck2, which preserves the tensor's shape, can be concatenated. The conventional DCNN modules treat the semantic information of each channel equally important, which is not desirable when emphasizing specific features of interest. The ECA mechanism [30] addresses this issue by computing the global average value of the convolutional layer outputs to capture the channel-wise contributions, enabling channel feature compression. Subsequently, the channel weights obtained from the sigmoid \begin{table}
\begin{tabular}{c c c} \hline \hline
**Module** & **BottleNeck1** & **BottleNeck2** \\ \hline ResBlock 1 & 1 & 2 \\ ResBlock 2 & 1 & 3 \\ ResBlock 3 & 1 & 5 \\ ResBlock 4 & 1 & 2 \\ \hline \hline \end{tabular}
\end{table} 
Table 2: The number of times bottleneck is used in different ResBlocks. Figure 4: Two types of bottleneck. (**a**) Identity block. (**b**) Convolutional block. Figure 5: ResNet50-ECA module. (**a**) Improved ResNet50; (**b**) EAC mechanism. function are multiplied with the original outputs, enhancing useful features while suppressing irrelevant ones, as illustrated in Figure 5b. This approach facilitates the extraction of features of interest. ECA is a lightweight attention mechanism for convolutional neural networks. Unlike the traditional SE mechanism, it does not require computing the correlations between global positions, thus reducing computational and parameter overhead. In Figure 5b, H, W, and C represent the height, width, and number of channels of the image, while X and \(\mathcal{X}\) denote the input and output, respectively. GAP stands for Global Average Pooling, and \(\sigma\) is the activation function that modulates and outputs the weight w for each channel. The optimal range for cross-channel information interaction, denoted as k, refers to the size of the 1-dimensional convolutional kernel. Its calculation is as  
\[\mathrm{k}=\left\{