## 3 Method
### OpenPose-Based Human Pose Estimation Algorithm  
The OpenPose algorithm represents the latest advances in human pose estimation for static images. This two-dimensional pose estimation algorithm is highly effective at detecting multi-target human bodies in images [43]. One of its key advantages is its bottom-up approach, which allows it to efficiently identify and track individuals even in images with a large number of people [4]. At the heart of this algorithm is an explicit non-parametric representation of skeletal joint point associations that encodes the orientation and position of human limbs [44]. This representation is used to detect jointly learned body parts and to identify associations between them. The algorithm also employs a set of frameworks for detecting body part associations and employs greedy analysis algorithms to estimate human body pose accurately [45]. Taken together, these features enable OpenPose to achieve outstanding performance in human pose estimation [46]. The algorithm's ability to detect multiple individuals in a single image, its high accuracy, and its versatility make it a valuable tool for a wide range of applications, including computer vision, robotics, and human-computer interaction. Figure 2: Framework diagram of human posture estimation. Figure 3 illustrates the complete network architecture of OpenPose, which comprises two distinct branches. The upper branch network, depicted in orange, is responsible for producing the confidence map L, which indicates the likelihood of the presence of skeletal joints. The lower branch network, shown in blue, is responsible for generating the partial affinity vector field S [47]. Prior to processing, the input image undergoes convolutional neural network (CNN) processing, which involves the use of the first 10 layers of VGG-19 for initialization and fine-tuning. This step allows for the extraction of a collection of feature maps F.  
As shown in Figure 3, the general flowchart of the OpenPose algorithm, the algorithm requires an input color image of size \(w\ \times\ h\) (Figure 4a), and first predicts the set of part confidence maps S (as in Figure 4b) from the input image through a feedforward network, and also predicts the part affinity vector fields L (Part Affinity Fields (PAFs) (Figure 4c), which encode the association between each skeletal joint in the human body, are predicted for subsequent association matching of skeletal joints. The set \((S_{1},\ S_{2},\ \ldots,S_{J})\) denotes each skeletal joint point with J body part confidence maps, where \(S_{J}\in R\ \times\ h\), \(j\in 1\ \ldots\ J\). Set the combined \(L=(L_{1},\ L_{2},\ \ldots,L_{C})\) with C site affinity vector fields for each limb site, where \(L\in R\ \times\ h\ \times\ 2\), \(c\in 1\ \ldots\ C\), and L encodes a 2D vector for representing the position in the image [20]. Finally, the part confidence map and the part affinity vector field are resolved by the greedy algorithm to output 2D human skeletal joint points for all people in the image. Algorithm 1 is the pseudo-code of IEF, a generic framework for pose estimation used for feature extraction. Figure 4: Flowchart of OpenPose algorithm. Figure 3: OpenPose network architecture diagram. In the first stage, the network outputs a set of confidence maps \(S=\rho l(F)\), and a set of partial affinity vector fields \(L,l=\ \ ql(F)\), where \(\rho(F)\) and \(\ ql(F)\) are product of the Convolutional Neural Networks (CNN) inferred in the first stage, and each branch can be iterated. When iterating, the output of the branch network in the previous stage will be mapped with the features of the original image F as the input of the branch network in the current stage, which is used to produce more refined predictions. As in Equations, \(\rho\) and \(\varphi^{t}\) are the intermediate results of step \(t\).