Tuesday, February 14, 2012



Recognizing Hand Gestures with Microsoft’s Kinect
Matthew Tang
Department of Electrical Engineering
Stanford University

This paper, like my first, also focuses on finding and recognizing hand gestures.  It attempts to differentiate between two main hand gestures, namely an open hand and a closed fist.  These gestures are demonstrated in a program that allows you to drag and drop virtual objects on the screen.

The algorithm employed is also somewhat similar to the first paper I read.  Because the resolution of the Kinect makes using depth data an unreliable method for finding the 'hand pixels', it is also helpful to check the RGB value of the pixels to determine if they are a hand.  A glove is an easy way to do this (the hand will be a solid, known color), but makes it inconvenient for the user, so the RGB is compared against common skin colors.  The method of determining the probability that a pixel is skin relies on adequate lighting, so performance decreases when the area is poorly lit.  Color balancing is used to compensate for this.  By integrating both depth and RGB data, you can get a much more accurate representation of the hand.

Now that the hand has been found, you need to see if it is making a gesture.  The image of the hand is rotated based on the arm from the skeleton data.  A center of mass for the hand is calculated in order to center the hand in the middle of the image.  Now that the image is somewhat regulated, it can be analyzed to check if the hand is open or closed.  Gestures extend naturally from this by being the transition of the hand from open to closed or vice versa.



No comments:

Post a Comment