# Skeleton-Based Dynamic Hand Gesture Recognition Using an Enhanced Network with One-Shot Learning
## 4 Experiments
### Experimental Setup  
#### 4.2.1 Data Pre-Process  
The skeleton-based hand gesture datasets should be preprocessed as the input of our network. The whole framework of the data preprocessing is shown in Figure 4, in which the \(k^{th}\) class gesture is processed by our method as an example. \begin{table}
\begin{tabular}{c c c} \hline \hline
**Name of the Gesture** & **Type of the Gesture** & **Type of the Gesture** \\ \hline
1 & Grab & Fine \\
2 & Tap & Coarse \\
3 & Expand & Fine \\
4 & Pinch & Fine \\
5 & Rotation Clockwise & Fine \\
6 & Rotation Counter Clockwise & Fine \\
7 & Swipe Right & Coarse \\
8 & Swipe Left & Coarse \\
9 & Swipe Up & Coarse \\
10 & Swipe Down & Coarse \\
11 & Swipe X & Coarse \\
12 & Swipe + & Coarse \\
13 & Swipe V & Coarse \\
14 & Shake & Coarse \\ \hline \hline \end{tabular}
\end{table} 
Table 1: List of 14 gestures in the dynamic hand gesture database (DHGD). Figure 3: Twenty-one joints of a right-hand skeleton. First of all, the nested interval unscented Kalman filter (UKF) [44] is used to eliminate the possible noise in the hand gesture datasets. Moreover, due to some hand gesture datasets may contain unequal sequences from different participants, the short and long sequences should be changed into a standard sequence. The length of the standard sequence is set to a fixed value \(n\) based on both the average length of the sequence of each gesture. For short sequences, the length of them is increased by linear interpolation. For long sequences, we will eliminate the first few frames and the last few frames of the sequence because there are usually many pause actions at the beginning and the end, and they are not important to the whole gesture. The joint \(P_{i,k}(t)\), a full hand skeleton \(H_{k}(t)\) and the \(k^{th}\) class gesture \(G_{k}\) are shown as follows:  
\[P_{i,k}(t)=\left[x_{i,k}(t),y_{i,k}(t),z_{i,k}(t)\right] \tag{8}\]  
\[H_{k}(t)=\sum_{i=1}^{m}P_{i,k}(t) \tag{9}\]  
\[G_{k}=\sum_{t=0}^{n}H_{k}(t) \tag{10}\]  
where \(n\) is the scale of the \(k^{th}\) class gesture sequences; all of the joints \(i\) in one hand are combined into a full hand skeleton \(H_{k}(t)\) when the time scale of the \(k^{th}\) class gesture is at \(t\); \(m\) represents the maximum number of joints in a full hand skeleton; the shape of the \(k^{th}\) class gesture \(G_{k}\) is processed into \(n\times(am)\); the feature scale is \(am\), and \(a\) is the spatial scale. The shape of the standard sequence is split into \(n_{1}\times n_{2}\times(am)\) through the segmentation gestures (SG), where the \(k^{th}\) class gesture forms \(n_{1}\) sets of sequences and the time scale of each set is \(n_{2}\). Then, the skeleton-based hand gesture sequences can be mapped to the same specific interval by normalizing the changing hand joints, which is effective to improve the convergence rate of our network:  
\[\mu_{B}\leftarrow\frac{1}{m}H_{k}(t) \tag{11}\]  
\[\sigma_{B}^{2}\leftarrow\frac{1}{m}\sum_{i=1}^{m}\left(P_{i,k}(t)-\mu_{B} \right)^{2} \tag{12}\]  
\[\hat{P}_{i,k}(t)\leftarrow\frac{P_{i,k}(t)-\mu_{B}}{\sqrt{\sigma_{B}^{2}+ \varepsilon}} \tag{13}\]  
where \(\mu_{B}\) is the mean of the sample and \(\sigma_{B}^{2}\) is the sample variance; The linear transformation is added to these sequences and normalizes them to obtain \(\hat{P}_{i,k}(t)\), which limits the distribution of them and  
Figure 4: Framework of the data preprocessing. makes the network more stable during training; \(\varepsilon\) is the role of the minimum number, which avoids zero in the denominator in the expression. The network may lose its original feature representation capabilities by the normalization. A pair of learnable parameters \(\gamma\) and \(\beta\) are set for each normalization to eliminate hidden dangers, which is used to restore the original distribution to obtain \(Q_{i,k}(t)\). \[Q_{i,k}(t)\leftarrow\gamma\cdot\hat{p}_{i,k}(t)+\beta\equiv BN_{\gamma,\beta} \Big{(}P_{i,k}(t)\Big{)} \tag{14}\]  
In the formula, \(BN_{\gamma,\beta}\Big{(}P_{i,k}(t)\Big{)}\) is represented as a complete batch normalization (BN).