Refining Haar detection

1.6k views Asked by At

I'm trying to make a hand detection program by using OpenCV and Haar cascade. It works quite well but it's very jerky. So I'm asking myself if this is a trouble of the haar file that would be too 'cheap' or if there's a way to refine the detection by using contours or feature detection (or may be some other techniques).

What I would like to perform would be the same as this face detection, but for hands : Face Detection (see FaceOSC)

Thanks a lot.

EDIT : here is the kind of stuff I would like to do : Hand extraction It seems that he performs it with contour detection, but how to find the hand ?

2

There are 2 answers

4
Abid Rahman K On BEST ANSWER

The Hand Extraction video, you gave the link, is based on skin color detection and convex hull finding.

1) Change image to YCrCb (or HSV).

2) Threshold the image so that hand becomes white and everything other to black.

3) Remove noise

4) Find center of hand (if you like).

5) Use convex hull to find sharpest points which will be finger tips.

You can get full details from this paper.

Anyway, no need of haar cascades.

3
Andol Li On

obviously if the HAAR classifier-based detection results become so-called 'jerky', in my opinion which means the detection is not stable and jumps around the detecting image, then the problem is on the quality of classifier.

as far as there are enough positive/negative samples, lets say 5k/5k, the results should be quite robust already. Based on my experiences, I used 700 positive hand gesture samples and 1200 negative samples, and the results seemed satisfied to some extent. but after I used another group of 8000 positive samples and 10200 negative samples with different features included, the results were even worse than the former.

So, I would suggest you to carefully reset your training samples, such like the ratio, content features and colours.