Rubine Algorithm

The Rubine algorithm was developed in 1991 and represented one of the first published algorithms for the recognition of mouse and pen-based gestures. An important feature of this algorithm is that gestures are not described programmatically but "learnt" by examples. With the appropriate tools, such as the Gesture Set Manager of the iGesture Workbench, it becomes a simple and quick task to create new gesture classes and add them to the gesture recognition engine.

Features are extracted from the gestures consisting of time stamped points and used in the recognition process. The classification itself does not depend on specific features which allows us to use it for different recognition tasks as long as it is possible to describe the classifiable objects by feature vectors.

Parameters

MIN_DISTANCE The minimal distance denotes the minimal space between two succeeding points of a gesture. Succeeding points which are too close may have a negative influence for the computation of particular features and are not meaningful in the context of the entire gesture.
FEATURE_LIST A feature has to implement the Feature interface. This parameter holds a list of comma separated full qualified class names of feature objects. These classes are instantiated during the initialisation of the algorithm using dynamic class loading.
MAHALANOBIS_DISTANCE This parameter holds the maximal distance an input gesture can have so that it is not detected as outlier. Rubine proposed to use half of the squared number of features as value for this parameter, but in practise this value seems to be too small.
AMBIGUITY This parameter is used to prevent ambiguous results. Rubine proposes to reject results which have a value lower than 0.95.

Example Configuration

  <configuration>
      <algorithm
             name="org.ximtec.igesture.algorithm.rubine.RubineAlgorithm">
             <parameter name="MAHALANOBIS_DISTANCE">100</parameter>
             <parameter name="MIN_DISTANCE">1</parameter>
             <parameter name="FEATURE_LIST">
                     org.ximtec.igesture.algorithm.feature.F1,
                     org.ximtec.igesture.algorithm.feature.F2,
                     org.ximtec.igesture.algorithm.feature.F3,
                     org.ximtec.igesture.algorithm.feature.F4,
                     org.ximtec.igesture.algorithm.feature.F5,
                     org.ximtec.igesture.algorithm.feature.F6,
                     org.ximtec.igesture.algorithm.feature.F7,
                     org.ximtec.igesture.algorithm.feature.F8,
                     org.ximtec.igesture.algorithm.feature.F9,
                     org.ximtec.igesture.algorithm.feature.F10,
                     org.ximtec.igesture.algorithm.feature.F11,
                     org.ximtec.igesture.algorithm.feature.F12,
                     org.ximtec.igesture.algorithm.feature.F13
             </parameter>
             <parameter name="PROPABILITY">0.95</parameter>
     </algorithm>
  </configuration>