## 2 Hand Gesture Recognition
### Classification  
The selection of the classification model is the part of the design, where the principal design requirements (fast, lightweight, and robust, with fewer examples) should really be taken into consideration. For the development, and in the framework of this paper, _scikit-learn_[36] was used. In recent years, deep learning algorithms have received a lot of attention. However, one caveat is in order: they require vast amount of data. In our case, the fact that the quantity of data required to train such an algorithm is limited rules them out, due to the specificity of the applications. Therefore, the selection process focuses on more classic machine learning algorithms. The studied models for this project are listed in Table 2, along with their advantages, specific to the design requirements. Figure 5: PCA’s linear projection of the dataset in two-dimensions (**a**) and three-dimensions (**b**). In order to test each model (and to optimize them at the same time), the selection process consisted of a grid search with random data selection. Each model was tested on a dataset of 475 data points (95 per class, 5 classes) on \(i_{max}\) iterations. The models were tested by first tuning their hyper-parameters and then retaining their best performance. For each model, a set of hyper-parameters was determined with a testing range associated with each one. At each iteration (\(i=0,1,\ldots,i_{max}-1\)), five data points of every class were selected (total of 25) to form the training set, and the remaining data constitutes the validation set (450 data points). Each model was trained with this training set and tested with the validation set once for every possible arrangement of hyper-parameters. After the \(i_{max}\) iterations, the performances were analyzed and the best model with the best arrangement of hyper-parameters was retained. Having the size of the validation test far greater than the size of the training set allows for evaluating how the algorithm succeeds in generalizing and does not overfit on the small set of data it has been given. Table 3 presents the selected hyper-parameters for each model, the best configuration, and the best prediction score of the models associated with those configurations for \(i_{max}=10\). The final choice for the prediction model is an SVM with a linear kernel. The satisfactory performance of the linear SVM implies that the data are almost linearly separable in the \(d-\)dimensions space, even if similar gestures were chosen. This means that it should not be difficult to choose new gestures to add to the system. Figure 6a shows the normalized confusion matrices for the optimized SVM, with the dataset previously described. Such matrices were obtained by choosing a training set at random (composed of 5 data points per class), similar to the optimization process, and by validating with the remaining 450 data points. This process was repeated 50 times. Finally, the results were inputted into the confusion matrix and normalized by row. Since most of the confusion results from the _Swipe-left_ and _Swipe-right_ gestures, it was possible to improve the performance of the system by simply removing the gestures that were too similar (and possibly adding some others). The result of this operation is shown in the matrix (b) of Figure 6. Referring to Section 4.1, four different gestures, with three gestures per sequence, allows 84 possible sequences, which is fairly sufficient to control an assistive technology. \begin{table}
\begin{tabular}{c c} \hline
**Classifier** & **Advantages** \\ \hline Support vector machines (SVM) & Limits overfitting, robust \\ Linear discriminant analysis (LDA) & Fast training, low memory usage, very easy to implement \\ Adaptative boosting (AdaBoost) & Fast, works well on smaller datasets \\ K-nearest neighbors (KNN) & Fast training, very easy to implement \\ \hline \end{tabular}
\end{table} 
Table 2: Studied machine learning classifiers and their advantages.