wii3d logo

 

The Wii3D Project System

 

Look Mom, it understands!

Gesture Recognition

 

There are three types of gestures that are defined in the Wii3D System:

  1. Pointer movement
  2. Finite State Automaton gesture
  3. Discrete Hidden Markov Model gesture

The pointer movement event is fired at the same rate as the Wii Remotes are queried for their coordinates. Once the Wii3D System processes the points and yields its resolved three dimensional coordinates, the event is fired and any subscribed components can then process the events.

Encoding

The Wii3D System uses two ways to encode the three dimensional coordinate data in preparation for recognition:

  1. Size functions
  2. Approximate directional vectors

The size functions are used for the Hidden Markov Model classification model. The resultant size function graph is further encoded to use only integral values, bounded within predefined maximum and minimum values. This doubly encoded array can then be used as an input for the Discrete Hidden Markov Model.

The approximate directional vectors are calculated by finding the closest unit vector of the principal directions and using this vector's integral identification value. The principal directions have been defined as Up, Down, Left, Right, Back and Forward. Using simple vector algebra, the angles between the vector and each of the principal axes are calculated, and the approximated direction vector is chosen as the unit vector with which the observed vector has the smallest angle.

Finite State Automata

The Finite State Automata gestures are processed using a deterministic recognition method for template matching. The encoding used for this method of recognition is the approximate directional vector approach. The templates are defined and exactly matched against the encodings. The direction vectors, however, are not sufficient for this approach on their own. However, there is more information that is needed. Size of the different gestures is required to ensure that the gestures are above a predefined minimum, which are achieved by examining the sizes of the vectors before they are processed for the directional vectors.

Hidden Markov Models

The Hidden Markov Models are taught to the Wii3D System at application start-up. Generation of sample data is done randomly about an ideal model. Gestures of different lengths with random sizes of each component are generated. For example, when using the approximate directional vectors, uniformly distributed lengths of the gesture are taken about a mean length, which is then divided into sections that are uniformly distributed.

An example of the generation of sample inputs for a circle gesture is:

By taking large samples of the randomly generated gestures, the Wii3D System uses the Accord.NET framework to build a model by example data.

Under the assumption that hand gestures with four points that need to be followed do not vary from person to person as much as speech or handwriting does, as there are much fewer degrees of freedom, the Hidden Markov Model will therefore be implemented instead of the Artificial Neural Network approach. Furthermore, the number of states the model will be limited, which removes the requirement for excessively large training sets.

<< Back to Project