# Gesture Recognition in 3D Space Using Dimensionally Reduced Set of Features

Łukasz Gadomer, Marcin Skoczylas

► To cite this version:

Łukasz Gadomer, Marcin Skoczylas. Gesture Recognition in 3D Space Using Dimensionally Reduced Set of Features. 16th IFIP International Conference on Computer Information Systems and Industrial Management (CISIM), Jun 2017, Bialystok, Poland. pp.167-179, 10.1007/978-3-319-59105-6_15 hal-01656209

HAL Id: hal-01656209

https://inria.hal.science/hal-01656209

Submitted on 5 Dec 2017

HAL is a multi-disciplinary open access
archive for the deposit and dissemination of sci-
entific research documents, whether they are pub-
lished or not. The documents may come from
teaching and research institutions in France or
abroad, or from public or private research centers.

L'archive ouverte pluridisciplinaire HAL, est
destinée au dépôt et à la diffusion de documents
scientifiques de niveau recherche, publiés ou non,
émanant des établissements d'enseignement et de
recherche français ou étrangers, des laboratoires
publics ou privés.

<figure><img src="image_1.png" /></figure>

Distributed under a Creative Commons Attribution 4.0 International License
Gesture recognition in 3D space using
dimensionally reduced set of features

Łukasz Gadomer, M. Skoczylas

Faculty of Computer Science
Bialystok University of Technology
Wiejska 45A, 15-351 Bialystok, Poland
{l.gadomer,m.skoczylas}@pb.edu.pl
http://www.wi.pb.edu.pl

**Abstract.** In this study authors present a solution to track and recog-
nize arbitrary gestures of hands in three dimensional space and review
the recognition accuracy. The idea of this novel gesture recognition sys-
tem is described and results of research made on a recorded gesture data
set are presented. Gesture instances were defined by user standing in
different distances from the controller, in different placements of their
field of vision and with different speeds, making recognition velocity and
position invariant. Authors' goal was to find the minimal number of fea-
tures that give satisfying gesture classification result in order to achieve
a compromise between accuracy and computation time. In this publica-
tion progress of the research on gesture recognition problem is described
and a comparative study is presented.

**Keywords:** gesture recognition, features, dimensionality reduction, singular value decomposition

# 1 Introduction

This paper presents a solution which allows tracking hand gestures in three
dimensional space that can be inserted into a CAVE3D (Automatic Virtual
Environment, see Figure 1).

System consists of two main parts: a gesture recognition tool and a graph-
ical environment. The gesture recognition tool allows user to create gestures
database, learn it using one of selected classifiers and then recognize gestures
performed by the user in real time. Implemented solution allows recognition of
gestures recorded with varied velocity and with different user placement relating
to the controller, so it is velocity and position invariant. It also contains build-in
features that test recognition accuracy which are helpful during research and
tests of the quality of this solution.

The whole system allows real-time position and velocity invariant gesture
recognition: preparation of user's own set of gestures, classifiers learning, and
then recognition of gestures in real-time using selected classifiers, it is a novel
and innovative solution.
<figure><img src="image_2.png" /><figcaption>**Fig. 1.** Cave3D experimental setup consists of 3 screens with 3D projectors that are surrounding the user.</figcaption></figure>

The main purpose of the work described in this paper is to reduce size of the data set and computation time of gesture recognition while maintaining the highest possible classification accuracy. To achieve this, number of attributes was reduced by extracting features from a prepared data set, performing dimensionality reduction and checking what is the minimal number of features needed to achieve satisfying accuracy. This goal was achieved, and the important issues concerning this work are described in the following paragraphs.

This work is the continuation of researches presented in [6] and [4].

## 2 Related work

The problem of gesture recognition is a challenging and popular issue. Many researchers tried to resolve it in their own way. Diversity of approaches is, inter alia, a consequence of different possible ways of gesture representation. Very often gesture is represented as a movement of single body's part, usually a hand. This approach is the same that was described in the following gesture definition: *gestures are* „movements of the arms and hands which are closely synchronized with the flow of speech” [3].

In [7] authors studied possibility of gesture recognition using accelerometer MEMS (Microelectromechanical System). This device was controlled by user's hand and its movement in three dimensions was observed. Authors performed their research on seven simple gestures. The same device was used in [1] to resolve similar problem. In that work, the gesture classification was realized using Dynamic Time Warping (DTW) algorithm. A database consisting of 3780 instances of gestures, grouped into 18 different decision classes was used. Another solution which is based on the accelerometer device and the same classification algorithm is described in [8]. In this publication authors tested classification accuracy in two cases: user-relevant and user-irrelevant. Their research database
contained 3200 instances, each of them represented one of eight different gestures. In this case every single instance of gesture took the same time (3,40 seconds). In all these solutions gestures were treated the same way as presented in following paragraphs – as a movement of one single point, which represents user’s palm in three dimensional space.

Another example of tracking hand’s movement was described in [9]. In this case to track gestures authors used a finger-worn device which was similar to a ring – it was called Magic Ring (MR). They presented personalized gesture recognition using a method of adaptive template adjustment. Another exemplary gesture recognition solution is called 1$\$ [5]. This name was given to symbolize algorithm’s low cost and simplicity – it’s implementation took only about a hundred lines of code. According to authors’ description it works satisfyingly even there is only one training instance of each gesture. This work was an inspiration for the authors of [2]. They designed a solution based on the algorithm described in [5] which used Sparse Representation (SR) and Compressed Sensing (CS) methods.

## 3 Gesture data collecting and processing

In this section authors describe issues connected with gesture data collection and processing. That was described in details in [6] and [4], however let’s outline briefly here: first, user has to prepare his own data set. He stands before the controller and performs gestures, signaling beginning and end of the gesture<fnref n="1" /> Then he can save created data set and use it for two purposes:

1. Learn selected classifier and use it to perform gesture recognition in real time,

2. Use selected data set for classifier’s parameters optimization and measure the recognition accuracy to evaluate solution quality.

The first issue was described widely in [6]. In this publication authors would like to concentrate on the progress which concerns the second one.

The issues connected with position and speed invariance was widely described in [6] and [4]. For this reason, we do not concentrate about them in this paper.

### 3.1 Gesture dataset

Gesture database included 12 different gestures shown in Table 1, recorded as values in relative data format. Each gesture type (a decision class) was recorded 80 times which in total sums up to a gesture database consisting of 960 gestures. All of gestures were performed by four different users – each user recorded 20 gestures. What is more, they were asked to perform gestures in a different

<footnote n="1">¹ It can be done by clicking „start recognition” and „end recognition” in our software. It can be done, for example, with a help of the operator, who can decide when are start and finish moments and that method was used in the data collecting process.</footnote>
way and change their positions a bit between every gesture. As a result, every recorded instance was a bit different than others. Gestures were recorded with different velocities, users were standing in different distances to the controller and they were placed in a different parts of detecting range. Such way of performing gestures provided research data that allows test of position and velocity invariance in a real scenario. In addition, recordings that were not perfect were also included into the dataset (but recordings were not repeated), making the data set even more difficult to analyze. The only limitation in recording instances was assumption that every gesture should be performed in the same direction. It means that, for instance, every horizontal line is performed from left side to right side.

As it is shown in Table 1, all gestures are two-dimensional by their definition (for example, brackets are designed to be two-dimensional, etc.). However they are captured in three-dimensional space. Device captured depth, that was recorded and written to the dataset the same way as width and height. It means that it was also important if the data collecting participants were performing movements in depth dimension. We have chosen such gestures, but there would be no problem to choose, for examples, "push" and "pull" ones – whichever selected gestures would be, the algorithm should work the same way.

All of recorded gestures were shuffled and written into a single dataset. The information about gesture performer was not saved. It means that gesture recognition is fully user-independent.

<table><caption>**Table 1.** Gestures dataset</caption><thead><tr><td>Gesture shape</td><td>Starting point</td></tr></thead><tbody><tr><td>(</td><td>Top</td></tr><tr><td>)</td><td>Top</td></tr><tr><td>&lt;</td><td>Top</td></tr><tr><td>&gt;</td><td>Top</td></tr><tr><td>^</td><td>Left</td></tr><tr><td>\</td><td>Top</td></tr><tr><td>/</td><td>Top</td></tr><tr><td>|</td><td>Top</td></tr><tr><td>—</td><td>Right</td></tr><tr><td>~</td><td>Left</td></tr><tr><td>O</td><td>Top</td></tr><tr><td>8</td><td>Top</td></tr></tbody></table>

## 3.2 Feature data representation

Number of attributes in a data set depends on the length of gesture. Authors assumed that all gestures have 40 samples, three dimensions each, which makes 120 attributes. Recording 40 samples using Kinect controller takes a bit more
than one second. It does not mean that user has to perform the gesture in exactly one second – it can take any amount of time. This assumed number is just a final length of the gesture after scaling.

To resolve this problem authors decided to extract features from the gesture instances. The advantage of this solution is the fact that it is possible to extract a given number of features independently from the gesture length. It means, no matter how long the gesture is, the number of features is always the same. This allows reduction or extension of dimension to the same number of dimensions, allowing to have unlimited length of gestures.

To extract data features authors decided to transform the prepared data set following way: from a relative hand position absolute values were computed, but always starting from point (0, 0, 0). That means gesture's samples values were translated to the beginning of the coordinate system. Authors performed this operation to express real movements of the hand – representation used in [6] was a proper one for direct recognition, but in authors' opinion it needs above transformation to achieve features that express the given problem best way.

Table 2 shows features extracted from the prepared dataset. Popular statistical and signal features were selected. As it is presented, most of these features were computed independently for each axis and for all of the axes together. Axis to axis features were computed between the cartesian of axes. In total 49 features were extracted. In the Table 2 *n* is the number of samples *k* and *l* are the sample pair of axes and *a* is the sample.

## 4 Dimensionality reduction

One of the main objective in this publication is to check whether the minimal number of features exists that allows to achieve rewarding gesture classification accuracy. As it was mentioned in section 3.2, 49 features were extracted. This is the maximal number of dimensions proposed in our computations. The next step is the dimensionality reduction, which objective is to reduce number of features. To achieve this a Singular Value Decomposition (SVD) algorithm was used, but considering only real numbers (which is a right assumption for the purposes of our gesture recognition problems, where numbers cannot be complex).

The singular value decomposition of *m* × *n* matrix *M* is a *M* = *U*Σ*V*\* factorization, where:

- *U* is a *m* × *m* unitary matrix,

- *Σ* is a *m* × *n* rectangular diagonal matrix with non-negative real numbers on the diagonal,

- *V*\* is a *n* × *n* unitary matrix, which is a transposition of *V*.

Values that are placed on the diagonal of *Σ* are called singular values of matrix *M*. The *m* columns of *U* are known as left-singular vectors of *M* and the *n* columns of *V* are called right-singular vectors of *M*.

First, the SVD algorithm is performed on all set of *n* features. Then, to reduce this data set to *k* dimensions, all elements of *k* + 1 to *n* columns of *Σ*
<table><caption>Table 2. Extracted features</caption><thead><tr><th>Feature</th><th>Description</th><th>Equation</th><th>Computed for</th></tr></thead><tbody><tr><td>Average</td><td>Sum of samples<br>divided by number of samples</td><td>1/n &sum;<sub>i=1</sub><sup>n</sup> a<sub>i</sub></td><td>Each axis, all of the axes</td></tr><tr><td>Standard deviation</td><td>Measure that is used to quantify<br>amount of dispersion of a set of samples</td><td>&radic;<span style="text-decoration: overline;">1/n &sum;<sub>i=1</sub><sup>n</sup>(a<sub>i</sub> - &bar;a)<sup>2</sup></span></td><td>Each axis, all of the axes</td></tr><tr><td>Variance</td><td>Measure that expresses how far<br>a set of samples is spread out</td><td>1/n &sum;<sub>i=1</sub><sup>n</sup>(a<sub>i</sub> - &bar;a)<sup>2</sup></td><td>Each axis, all of the axes</td></tr><tr><td>Ratio</td><td>Relationship between range<br>of two sets of samples</td><td>max(k<sub>i</sub>) - min(k<sub>i</sub>)<br>max(l<sub>i</sub>) - min(l<sub>i</sub>)</td><td>Each pair of axes</td></tr><tr><td>Covariance</td><td>Measure that expresses how much<br>two sets of samples are related</td><td>1/n &sum;<sub>i=1</sub><sup>n</sup> kl - k&bar;l</td><td>Each pair of axes</td></tr><tr><td>Correlation</td><td>Measure that expresses how much<br>two sets of samples are related</td><td>&radic;<span style="text-decoration: overline;">&sum;<sub>i=1</sub><sup>n</sup> kl - k&bar;l</span><br>&radic;<span style="text-decoration: overline;">&sum;<sub>i=1</sub><sup>n</sup>(k<sub>i</sub> - &bar;k)<sup>2</sup> &sum;<sub>i=1</sub><sup>n</sup>(l<sub>i</sub> - &bar;l)<sup>2</sup></span></td><td>Each pair of axes</td></tr><tr><td>Skewness</td><td>Measure of asymmetry<br>of set of samples</td><td>&radic;<span style="text-decoration: overline;">n &sum;<sub>i=1</sub><sup>n</sup>(a<sub>i</sub> - &bar;a)<sup>3</sup></span><br>&radic;<span style="text-decoration: overline;">&sum;<sub>i=1</sub><sup>n</sup>(a<sub>i</sub> - &bar;a)<sup>2</sup></span></td><td>Each axis, all of the axes</td></tr><tr><td>Kurtosis</td><td>Measure of tailedness<br>of set of samples</td><td>n &sum;<sub>i=1</sub><sup>n</sup>(a<sub>i</sub> - &bar;a)<sup>4</sup><br>&radic;<span style="text-decoration: overline;">&sum;<sub>i=1</sub><sup>n</sup>(a<sub>i</sub> - &bar;a)<sup>2</sup></span></td><td>Each axis, all of the axes</td></tr><tr><td>Signal magnitude area</td><td>Measure of magnitude<br>of set of samples</td><td>&sum;<sub>i=1</sub><sup>n</sup> x<sub>i</sub></td><td>Each axis, all of the axes</td></tr><tr><td>Signal magnitude vector</td><td>Measure of degree<br>of movement intensity</td><td>&radic;<span style="text-decoration: overline;">&sum;<sub>i=1</sub><sup>n</sup> &radic;<span style="text-decoration: overline;">x<sub>i</sub><sup>2</sup> + y<sub>i</sub><sup>2</sup> + z<sub>i</sub><sup>2</sup></span></span></td><td>All of the axes</td></tr><tr><td>Root mean square</td><td>Measure defined as a square root<br>of mean of squares of a sample</td><td>&radic;<span style="text-decoration: overline;">1/n &sum;<sub>i=1</sub><sup>n</sup> a<sub>i</sub><sup>2</sup></span></td><td>Each axis, all of the axes</td></tr><tr><td>Mean deviation</td><td>Average of absolute deviations<br>from a central point of set of samples</td><td>1/n &sum;<sub>i=1</sub><sup>n</sup> |a<sub>i</sub> - &bar;a|</td><td>Each axis, all of the axes</td></tr><tr><td>Interquartile range</td><td>Difference between the upper and lower<br>quartiles of set of samples</td><td>Q<sub>3</sub> - Q<sub>1</sub></td><td>Each axis</td></tr><tr><td>Energy</td><td>Energy<br>of set of samples</td><td>&radic;<span style="text-decoration: overline;">&sum;<sub>i=1</sub><sup>n</sup> |a<sub>i</sub>|<sup>2</sup></span></td><td>Each axis, all of the axes</td></tr></tbody></table>

and V matrices and rows of U matrices are set to zeroes. Then a new M' matrix is computed according to the procedure presented before. As a result, its first k columns are different from 0 — these columns form a new, dimensionally reduced set of features.

# 5 Research description

For accuracy testing purposes and to achieve best results in gestures recognition problem, authors performed several experiments with collected gesture data. Aim of this study was to check the classifiers, primarily to identify accuracy in different gestures recognition, as well as speed of calculations.

## 5.1 Parameters optimization

The basic issue connected with classification using many classifiers, especially SVM, is a parameter optimization. This process is essential due to the fact that
classification accuracy highly depends on parameters of the classifier. Parameters have to fit the character of data. It is a serious problem because there is no simple way of selecting proper parameters. A popular method to obtain kernel parameters is a grid search. Note, that it is also possible that selected parameters do not fit to the testing set. All these facts mean that parameter optimization does not have a perfect solution – choosing good parameters is rather a compromise than a sure answer.

To minimize risk of data fitting authors decided to perform parameter optimization, use a single random data set division (but the same each time) and the 5-fold cross-validation. This division assumes that in every one of the five parts there are the same number of each gesture class instances. For each parameter combination the dataset was randomly divided into five parts, but taking into account that described assumption. Classifier is then learned using four of these parts and tested using the fifth, out-of-bag (OOB) part. This process is repeated five times (each time the other part is OOB part) and then the result is averaged. The same actions are performed for each of parameters combination and the best one is selected.

Because of long time of computations, the parameter optimization procedure was performed in a parallel way. The parallelisation ratio was computed on a single personal computer with Intel i7 processor (8 cores, 16 threads).

## 5.2 Classification

After selection of best classifiers' parameters (and kernel function parameters for the SVM classifier) authors performed data classification using the obtained parameters set. Similarly to parameter optimization, 5-fold cross-validation was used, but the classification with 100 different random divisions was performed, not only the single one. The whole classification process was the same that it was in the case of parameters optimization – the difference is that research results were averaged over all these 100 divisions, and that value was recorded as a final classification accuracy.

## 5.3 Research parts – two experiments

Authors performed two main parts of the research and recognition accuracy evaluation.

The first experiment concerns analysis how tested classifiers deal with gesture classification problem. Evaluation of all four classifiers in two cases was performed: with and without the normalization. Additionally, for SVM classifier, five kernel functions were tested independently. Such research gave a large number of results, and they are summarized and presented in section 6.

For the latter, a Singular Value Decomposition was used to find the minimal number of features that give satisfying gesture classification results in order to obtain a compromise between the accuracy and computation time. To achieve this, gesture classification accuracy with the increase of number of dimensions was compared. In addition, best results using full data representation to feature
data representation were compared, in order to check if new way of expressing
data does not cause the severe drop of the classification accuracy.

One of the main purpose of second experiment was to check how many fea-
tures are enough to achieve satisfactory classification accuracy. To accomplish
this, dimensionality of data set was reduced, so that each example with 49 fea-
tures was reduced iteratively into 48 new data sets that consisted from 1 to 48
features. Each of these data sets was tested using method described above. This
allowed us to judge how an addition of a single dimension to a data set affects
the classification accuracy.

All the results obtained are presented and discussed in section 6.

6 Results and discussion

6.1 First experiment

First experiment was performed using relative data representation. For each clas-
sifier one configuration was selected that achieved best results based on recogni-
tion accuracy comparison, and then these were compared with other classifiers'
best configurations. Summarized results are presented in Table 3.

<table><caption>Table 3. Results of measurements obtained using selected classifiers</caption>
  <thead>
    <tr>
      <th>Classifier</th>
      <th>SVM</th>
      <th>NN</th>
      <th>RBF</th>
      <th>LMT</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>Average classification accuracy</td>
      <td>95.85</td>
      <td>92.74</td>
      <td>92.16</td>
      <td>90.04</td>
    </tr>
    <tr>
      <td>Mean standard deviation of the accuracy</td>
      <td>3.74</td>
      <td>5.60</td>
      <td>6.00</td>
      <td>6.11</td>
    </tr>
    <tr>
      <td>Calculations Time</td>
      <td>207.41</td>
      <td>21819.19</td>
      <td>201.23</td>
      <td>5630.90</td>
    </tr>
  </tbody>
</table>

On the basis of these observations, authors conclude that for the given prob-
lem of classification of gestures the best results are obtained using the SVM
classifier. SVM performed best in the shortest possible time and was character-
ized by a low diversity of the results achieved in subsequent repetitions.

The results of SVM kernels comparison are shown in Table 4. As we can see, in all the cases accuracy obtained using normalization is better than without using it. The best result was produced using wavelet kernel, but the difference between this kernel and the others was not large. It is important to note that without normalization Wavelet kernel generally gives much worse results. Authors have chosen best possible parameters and final results were good, but without cross validation it would be really hard to choose because most of parameters without normalization yielded bad results with the Wavelet kernel.

Considering results of presented research it is also worth to note what are the
reasons of recognition mistakes. Figure 2 shows classification errors for opening
bracket gesture. The most problematic were gestures similar to less-than sign
and often they were incorrectly recognized as a vertical line. It is vital to note
visual similarity between these gestures. When the user marks the curve too
<table><caption>**Table 4.** Results of measurements obtained using selected SVM kernels</caption><thead><tr><th>Kernel</th><th>Lienar</th><th>Polynomial</th><th>Radial</th><th>Sigmoid</th><th>Wavelet</th></tr></thead><tbody><tr><td>Without normalization</td><td>94.30</td><td>94.46</td><td>95.50</td><td>95.00</td><td>95.62</td></tr><tr><td>With normalization</td><td>95.01</td><td>95.36</td><td>95.46</td><td>95.69</td><td>95.85</td></tr></tbody></table>

sharply while performing opening bracket gesture, it makes similar to less-than sign. When user marks this curve not sharply enough, gesture starts to look like a vertical line gesture. This explains reasons of classification errors. Analysis of incorrectly classified instances of other gestures confirmed that observation.

<figure><img src="image_3.png" /><figcaption>**Fig. 2.** Incorrect recognition of opening bracket gesture as different decision classes</figcaption></figure>

## 6.2 Second experiment

The first tested approach was a check difference between classification accuracy using relative data representation, achieved in the first experiment, and the proposed feature representation using 49 or less proposed features. This was checked for each of five proposed kernel functions. The results are presented in Table 5.

<table><caption>**Table 5.** Comparison of relative data representation and feature data representation classification accuracy</caption><thead><tr><th>Kernel Function</th><th>Relative data [%]</th><th>Features [%]</th></tr></thead><tbody><tr><td>Linear</td><td>95.01</td><td>94.15</td></tr><tr><td>Polynomial</td><td>95.36</td><td>94.15</td></tr><tr><td>Sigmoid</td><td>95.46</td><td>77.90</td></tr><tr><td>RBF</td><td>95.69</td><td>92.85</td></tr><tr><td>Wavelet</td><td>95.85</td><td>93.11</td></tr></tbody></table>

As it is shown in section 5, for four of five kernels the difference was about 1.5%–3% (it was bigger for sigmoid kernel). It is a noticeable drop of classification
accuracy, which confirms that feature extraction causes loss of some information. The other reason can be not perfect choice of features that were extracted – this can be checked in further research. On the other hand, by performing feature extraction we reduced the number of dimensions more than twice (from 120 to 49), as a result we also reduced the classification time. We judge the 1.5%–3% difference is a price worth to pay for more than twice reduction of computation time.

The main part of our research dealt with classification accuracy using data sets that consisted of different number of dimensions. Authors checked 49 data sets having number of dimensions from 1 to 49 (with a step of 1). The results are presented in Figure 3.

<figure><img src="image_4.png" /><figcaption>**Fig. 3.** Classification accuracy referring to the number of dimensions</figcaption></figure>

First of all, addition of each dimension is significantly increasing the classification accuracy for each kernel, but this tendency stops after 7–12 dimensions. At this point classification gains stable and satisfactory results. Best results most kernels (instead of sigmoid) started to achieve at 16th dimension. The further increase of dimensions from 16 to 31 does not result in significant classification accuracy growth, which means next features do not provide any more important information about data. After 31th dimension in three of five kernels classification accuracy drops, that means some information is excessive and is bringing unnecessary noise to the data set for these kernel functions.

The best results in 16–31 dimensions were comparable for each kernel function, but not sigmoid. Slightly better in this range is a wavelet function. In the larger number of dimensions the best classification accuracy was achieved by linear and polynomial kernel functions, and they achieved best results in the whole research. Sigmoid functions, comparing to the other ones, gave unsatisfactory results. We were unable to select a correct set of parameters for this function to achieve results comparable to other ones.

In Figure 4 the best results achieved during the parameters optimization process are shown. Figure 5 shows differences between classification accuracy achieved during optimization of parameters.
<figure><img src="image_5.png" /><figcaption>**Fig. 4.** Classification accuracy referring to the number of dimensions — parameter optimization</figcaption></figure>

<figure><img src="image_6.png" /><figcaption>**Fig. 5.** Differences between parameter optimization accuracy and research accuracy</figcaption></figure>

In almost all of the cases results achieved using parameters optimization were better than during the research. Differences are the result of data overfitting. For four of five kernels (instead of the wavelet one) the differences were oscillating about 0%–3% all the time. For wavelet kernel the differences were much larger. For 0 to 30 dimensions they did not exceed 10%. For the larger number of dimensions (above 30) it was oscillating between 15% and 30%. It means this kernel function is the most sensitive to selection of parameters.

# 7 Conclusion

The method and algorithm of real-time gestures recognition described in this paper can be inserted into the CAVE3D system. Gestures can be successfully recognized using classifiers. Selection of appropriate classifier to solve the problem of gestures recognition is crucial. Based on studies presented in this paper it can be concluded that the decision should fall on the SVM classifier. It should be emphasized however, that results could be slightly different for different sets of gestures or other selected classifiers parameters, but taking into account specific
nature of the problem and carefully conducted study by authors, the result of them can be considered as representative for a given research problem.

Also, according to the research presented in this paper, only 16 features are enough to achieve results that are about 1.5%–3% worse than using full data representation. This means that it is possible to reduce data set size about 7–8 times for slightly lower and probably unnoticeable cost of the classification accuracy.

Authors tested selected classifiers and found the best one that fits gesture recognition problem. Then, using this classifier, authors proved that it is possible to reduce the number of data set dimension using different feature data representation. The minimal number of features which gives satisfying result was also found for the data set used in this research.

## Acknowledgment

This work was supported by the grant S/WI/1/2013 from Bialystok University of Technology founded by Ministry of Science and Higher Education.

## References

1. A. Akl, C. Feng, and S. Valaee. A novel accelerometer-based gesture recognition system. *Signal Processing, IEEE Transactions on*, 59(12):6197–6205, Dec 2011.

2. A. Boyali, and M. Kavakli. A robust gesture recognition algorithm based on sparse representation, random projections and compressed sensing. In *Industrial Electronics and Applications (ICIEA), 2012 7th IEEE Conference on*, pages 243–249, July 2012.

3. D. McNeill. * Gesture and Thought*. University of Chicago Press, Chicago, USA, 2007.

4. Ł. Gadomer. Towards gesture recognition in three-dimensional space. *Advances in Computer Science Research*, Nr 12:5–20, 2015.

5. J. O. Wobbrock, A. D. Wilson, and Y. Li. Gestures without libraries, toolkits or training: A $1 recognizer for user interface prototypes. In *ACM Symposium on User Interface Software and Technology (UIST '07). Newport, Rhode Island*, pages 159–168, July 2007.

6. Ł. Gadomer, M. Skoczylas. Real time gesture recognition using selected classifiers. *Architecturae et Atribus*, 6(1):14–18, 2014.

7. R. Xu, S. Zhou, and W. J. Li. Mems accelerometer based nonspecific-user hand gesture recognition. *Sensors Journal, IEEE*, 12(5):1166–1173, May 2012.

8. S. M. A Hussain, and A. B. M. H. Rashid. User independent hand gesture recognition by accelerated dtw. In *Informatics, Electronics Vision (ICIEV), 2012 International Conference on*, pages 1033–1037, May 2012.

9. Y. Zhou, D. Saito, and L. Jing. Adaptive template adjustment for personalized gesture recognition based on a finger-worn device. In *Awareness Science and Technology and Ubi-Media Computing (iCAST-UMEDIA), 2013 International Joint Conference on*, pages 610–614, Nov 2013.