The paper discusses GRANDMA(Gesture Recognizers Automated in Novel Direct Manipulation Architecture) and GDP(Gesture-based drawing program) which was built using GRANDMA. With GRANDMA one can create gesture recognizers from example gestures, removing the need for hand-coding. In already existing gesture-based applications, the recognizer was hand coded which makes it difficult to create, maintain and modify.
GDP: The user begins the gesture by placing the mouse cursor and pressing the mouse button. The the user draws by moving the mouse. The end of gesture can be either by just releasing the mouse button in which case the gesture is recognized and drawn or can stop moving the mouse for given time while pressing the button in which case the recognized gesture is drawn and it allows dragging to resize and reshape the recognized shape. This is two-phase interaction, gesture collection followed by classification and manipulation. The gestures in GDP are all single strokes. This avoids segmentation problem which would be present with multi-stroke character recogniton and allows shorter timeouts to be used.\
GRANDMA is object oriented toolkit used to build click-and-drag interface and the application. The following is the GDP's the view class hierarchy.
GDP: The user begins the gesture by placing the mouse cursor and pressing the mouse button. The the user draws by moving the mouse. The end of gesture can be either by just releasing the mouse button in which case the gesture is recognized and drawn or can stop moving the mouse for given time while pressing the button in which case the recognized gesture is drawn and it allows dragging to resize and reshape the recognized shape. This is two-phase interaction, gesture collection followed by classification and manipulation. The gestures in GDP are all single strokes. This avoids segmentation problem which would be present with multi-stroke character recogniton and allows shorter timeouts to be used.\
GRANDMA is object oriented toolkit used to build click-and-drag interface and the application. The following is the GDP's the view class hierarchy.
It is MVC like system. A single input handler may be associated with a view class and shared between instances of the class. Using GRANDMA one can easily add new gestures and give training samples for it. The semantic of each gesture can be changed by entering expressions for each of recog(which is evaluated when gesture is recognized), manip(which is evaluated on subsequent mouse points) and done(which is evaluated when mouse button is released)
Gesture recognition: A vector of features is extracted from input and it is classified as one of the C possible gestures via a linear machine. The features for this tool should be chosen considering following:
Small change in input should result in small change in each feature.
There should be enough features to differentiate gestures but there should not be too many that it starts affecting efficiency
Feature should be incrementally computable in constant time per input point.
Gesture classification : Gesture class c has weights wci for 0<i<=F where F is the total number of features. The classification of gesture is the one which maximizes the vc.
Training: Training is to determine wci from example gestures. A well-known closed formula was used.
Rejection: Ambiguous gestures and outliers should be rejected. Gestures having P(g was classified correctly)<0.95 are rejected. Another method uses Mahalanobis distance to determine standard deviation and rejects gestures having (standard deviation)^2 > (1/2)F^2. Rejection should be disabled in applications since it increases number of gestures that need to be redone.
Thoughts:
User should be allowed to define his own features.
The tool can extend to include animation gestures too.
Different kinds of interfacing like finger touch can be used.

