In this post, as the progress goes, the hand detection technologies using openCV is introduced. As the pictures inllustrated below, this detection method is independent with distance and background ( just not the background full of hands ), and the main segment method is color abstract which means getting the hand color pixels filtered. As the result tested within several environments, it workd well except slightly noise varying. But the noise is easy to take off.
The tested source code file is offered underneath the illustrations, feel free to use it.
Revised by Andol on 28 Oct 2013
As asked by Niaz:
Among these or outside of these which method you think is the possible best approach to take.
1. Skin tone detection (Adaptive skin detection: opencv)
2. Blob detection (cvBlob: opencv)
3. Haar cascade classification
4. Feature-based scale invariant hand detection (using something like openSURF, SIFT, RANSAAC etc)
My anser is HAAR CASCADE CLASSIFICATION detection is the first choice, it take a lot time to work out the classifier though. Based on my experiences, if the background is clean and simple then skin colour detection is also a good choice;
while blob detection has generally lower detection accuracy in hand recognition; lastly the feature-based detection is only a choice for rigid object matching, that is, hands have different combination of features such like finger length and the ration between fingers and palm, that is not suitable for feature detection – as these hand features change all the time.