| ||||||||||||||||||||||||||||||||||||||
| ||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||
Mouse Gestures RecognitionBy Konstantin Boukreev
Title: Mouse gestures recognition Author: Konstantin Boukreev Email: konstantin@mail.primorye.ru Environment: VC++ 6.0. SP5, Win2k SP2, MS Platform SDK April 2001 Description: Feedforward multilayer neural network and mouse gesture recognition
IntroductionRecently I installed Opera 5 and was impressed on a Gesture UI. IMHO, the neural network most suitable for this purpose. As I a little know neural network I tried to implement such feature themselves.
What is Neural Network ? Hm it's not easy to say. A rephrased definition Zurada, J.M.:
I think I can point any person concerned to theory directly to several neural network sites. Here is small list of web resources about Neural networks:
ImplementationLet's return to mouse gestures. After some research I have chosen a multilayer perceptron and standard back-propagation algorithm for training. The main problem was in the representation of an input data for neural network. The best result I found was in the transformation of a mouse path into a vector of cosines and sines. For example: path {170:82 172:83 175:85 177:86 ...}
transformed into
vector {0.45 0.55 0.45 0.71 0.89 0.83 0.89 0.71 ...}
Recognition algorithm.
Neural network architecture.
ApplicationTraining
TestingAs soon as you have a trained net, you can test it. Select the patterns (or test all of them), a speed value and a noise level. Besides, you can familiarize oneself with ideal presentation of gestures via setting minimal noise and minimal speed.RecognitionFor recognition of mouse gestures you must press right mouse button during moving a mouse. For example for recognition "left" gesture, press right mouse button and move a mouse to the left. If a neural network can recognize the gesture, then you will see the name, probability and ideal presentation of winner. Because of freeware nature of GestureApp the mouse path must have at least 16 points :(. Sorry I didn't implemented a "stretch a path" feature so far. Note: the direction is very important. The network is trained to recognize the gestures but not 2D images. Hence, you can draw the "circle" gesture a thousand different ways, but the only valid way is: press mouse button and move a mouse to the right and down and so on. Once more: it's gesture, not 2D image. Mouse gesturesCompatibilityCompatible with Win2k, WinXP, Win98, WinMe. Unfortunately doesn't work on WinNT because of the need for the AlphaBlend API.Acknowledgement
Special Thanks:
Submitted: 15/12/2001 Article content copyright © Konstantin Boukreev, 2001.
|
|
|||||||||||||||||||||||||||||||||||||
All content copyright © 1998-2007, Generation5 unless otherwise noted.
- Privacy Policy - Legal - Terms of Use -