# Real-Time Arm Gesture Recognition Using 3D Skeleton Joint Data
## 3 Arm Gesture Recognition
### Gesture Recognition
\begin{table}
\begin{tabular}{c c c} \hline \hline
**Feature Name** & **Frames Involved** & **Equation** \\ \hline Spatial angle & \(F_{2},F_{1}\) & \(\arccos\dfrac{\mathbf{v}_{2}^{(I)}\cdot\mathbf{v}_{1}^{(I)}}{\left\|\mathbf{v}_ {2}^{(I)}\right\|\cdot\left\|\mathbf{v}_{1}^{(I)}\right\|}\) \\ \hline Spatial angle & \(F_{N},F_{N-1}\) & \(\arccos\dfrac{\mathbf{v}_{N}^{(I)}\cdot\mathbf{v}_{N-1}^{(I)}}{\left\|\mathbf{v }_{N}^{(I)}\right\|\cdot\left\|\mathbf{v}_{N-1}^{(I)}\right\|}\) \\ \hline Spatial angle & \(F_{N},F_{1}\) & \(\arccos\dfrac{\mathbf{v}_{N}^{(I)}\cdot\mathbf{v}_{1}^{(I)}}{\left\|\mathbf{v }_{N}^{(I)}\right\|\cdot\left\|\mathbf{v}_{1}^{(I)}\right\|}\) \\ \hline Total vector angle & \(F_{1},\ldots,F_{N}\) & \(\sum\limits_{i=1}^{N}\arccos\left(\dfrac{\mathbf{v}_{i}^{(I)}\cdot\mathbf{v}_{ i-1}^{(I)}}{\left\|\mathbf{v}_{i}^{(I)}\right\|\left\|\mathbf{v}_{i-1}^{(I)} \right\|}\right)\) \\ \hline Squared total vector angle & \(F_{1},\ldots,F_{N}\) & \(\sum\limits_{i=1}^{n}\arccos\left(\dfrac{\mathbf{v}_{i}^{(I)}\cdot\mathbf{v}_{ i-1}^{(I)}}{\left\|\mathbf{v}_{i}^{(I)}\right\|\left\|\mathbf{v}_{i-1}^{(I)} \right\|}\right)^{2}\) \\ \hline Total vector displacement & \(F_{N},F_{1}\) & \(\left\|\mathbf{v}_{N}^{(I)}-\mathbf{v}_{1}^{(I)}\right\|\) \\ \hline Total displacement & \(F_{1},\ldots,F_{N}\) & \(\sum\limits_{i=1}^{n}\left\|\mathbf{v}_{i}^{(I)}-\mathbf{v}_{i-1}^{(I)}\right\|\) \\ \hline Maximum displacement & \(F_{1},\ldots,F_{N}\) & \(\max\limits_{i=2,\ldots,N}\left(\left\|\mathbf{v}_{i}^{(I)}-\mathbf{v}_{i-1}^{( I)}\right\|\right)\) \\ \hline Bounding box diagonal length \({}^{*}\) & \(F_{1},\ldots,F_{N}\) & \(\sqrt{a_{B(\mathcal{V}(\mathcal{J}))}^{2}+b_{B(\mathcal{V}(\mathcal{J}))}^{2}}\) \\ \hline Bounding box angle \({}^{*}\) & \(F_{1},\ldots,F_{N}\) & \(\arctan\dfrac{b_{B(\mathcal{V}(\mathcal{J}))}}{a_{B(\mathcal{V}(\mathcal{J}))}}\) \\ \hline \hline \end{tabular}
\end{table} 
Table 1: Proposed features, extracted from the skeletal joints (features marked with \(*\), are calculated using only HandLeft and/or HandRight). \begin{table}
\begin{tabular}{c c} \hline \hline
**Symbol** & **Definition** \\ \hline \(J\) & a given joint \\ \(l_{c},J_{p}\) & child/parent joint of \(J\), respectively \\ \(F_{i}\) & a given video frame, \(i=1,\ldots,N\) \\ \(\mathbf{v}_{i}^{I}\) & vector of 3D coordinates of \(J\) at \(F_{i}\) \\ \(v_{x,i}^{(I)},v_{y,i}^{(I)},v_{z,i}^{(I)}\) & the 3D coordinates of \(\mathbf{v}_{i}^{I}\) \\ \(\mathcal{J}\) & the set if all joints \\ \(\mathcal{V}\mathcal{J}\) & the set of all vectors \(\mathbf{v}_{i}^{I},J\in\mathcal{J},i=1,2,\ldots,N\) \\ \(B(\bullet)\) & a 3D bounding box of a set of vectors \\ \(a_{B(\bullet)},b_{B(\bullet)}\) & the lengths of the sides of \(B(\bullet)\) \\ \hline \hline \end{tabular}
\end{table} 
Table 2: Symbols used throughout this paper and their description. Also between two parent and child joints i.e., \(\{J_{p},I\}\), (or equivalently \(\{J,J_{c}\}\)) we calculate the initial and final (i.e., at \(F_{1}\) and \(F_{N}\), respectively), mean and maximum angle (i.e., for \(F_{1},\ldots,F_{N}\)). The angle \(\theta_{pc}\) used in these calculations is  
\[\theta_{pc}=\cos^{-1}\left(\frac{a_{pc}^{2}+b_{pc}^{2}-c_{pc}^{2}}{2a_{pc}b_{ pc}}\right)\, \tag{1}\]  
where  
\[a_{pc}^{2}=\left(v_{x}^{(I)}-v_{x}^{(L)}\right)^{2}+\left(v_{y}^{(I)}-v_{y}^{( L)}\right)^{2}\, \tag{2}\]  
\[b_{pc}=v_{x}^{(I)}\ \text{and} \tag{3}\]  
\[c_{pc}^{2}=\left(v_{x}^{(I_{p})}\right)^{2}+\left(v_{y}^{(I)}-v_{y}^{(I_{p})} \right)^{2}. \tag{4}\]  
Note that for the formulation of the triangle we use a reference point with coordinates \((v_{x,i}^{I_{p}},0,0)\) (any given point may be used). A visual representation of this triangle is illustrated in Figure 1b, where \(a_{pc},b_{pc}\) and \(c_{pc}\) have been drawn.