OpenCV Hand tracking Fingers tracking + static gesture recognition (K-curvature convexity defects)

HCI Yeo · 116K views · 2013 · 0:49

Open on YouTube

Computer vision, speech & NLPTesting, debugging & developer toolsdemo

Why Stack Overflow recommends it

Stack Overflow users link it as a concrete example of webcam-only finger tracking and gesture recognition with OpenCV, and as a target to replicate.

Recommended by 2 people across 2 different months, 2013 to 2016.

What it is

A 49-second demo of real-time hand and fingertip tracking with static gesture recognition from a webcam, built in OpenCV/EmguCV. The description lists the pipeline: YCrCb background subtraction and skin extraction, contour cleanup, Haar-cascade face removal, convex hull with K-curvature convexity defects for fingertips, and thumb detection to tell left from right hand.

What people said

Recommends Nallath · 2013-06 · Stack Overflow · on “Determine skeleton joints with a webcam (not Kinect)”

The most common approach can be seen in the following youtube video. [this video] This method is not quite robust, as it tends to fail if the hand is rotated to much (eg; if the camera is looking at the side of the hand or at a partially bent hand). If you do not mind using two camera's you can look into the work Robert Wang. His current company ( 3GearSystems [LINK] ) uses this technology, augmented with a kinect, to provide tracking. His original paper uses two webcams but has much worse tracking. Wang, Robert, Sylvain Paris, and Jovan Popović. "6d hands: markerless hand-tracking for computer aided design." Proceedings of the 24th annual ACM symposium on User interface software and technology.

Recommends Tonmoy · 2014-01 · Stack Overflow · on “Finger tracking using Kinect SDK in C++”

You can use OpenCV along with your Kinect SDK for finger tracking. Here is an inspiring video: [this video] You can also see this link: Finger detection in human hand [LINK]

Cites Andrew Schaff · 2016-05 · Stack Overflow · on “Skin Detection and Background Subtraction in Python cv2”

For the past couple of days, I've been working on a gesture recognition program using OpenCV Python. Ideally, I'd like to have a system like the one shown in this video [this video] . I've read through the algorithm described in the video description, and I understand just about all of it. However, I have been having trouble replicating his success in background subtraction and skin tone detection. All of my attempts have ended up very noisy and/or very lighting-dependent, both of which render my code useless for the time being. I have tried the following: BackgroundSubtractorMOG and BackgroundSubtractorMOG2 applied to color frame Split image into Y Cr Cb, applied MOG or MOG2 to each before recom