I am currently working on a project for human body detection and recognition. I am using OpenCV. So far I've concentrated on the facial detection and recognition. The detection works well using the haarcascade classifier provided from OpenCV. However I'd like to create my own classifier, I tried but I failed miserably :( and I guessed it's probably due to enough images.

Anyone has an idea how I can obtain images, at least 3000. Or what software I could use to crop images?

Secondly with the facial recognition, I used EigenFaces but after it trains to recognize the images, it only recognizes everyone else as the person trained. What I mean is, say I trained "Dolly". It then recognizes everyone as "Dolly". Can anyone help??

Thanks for any assistance in advance :)

The basic problem with detecting bodies is the inconsistency of orientation. You'll notice that the Face detector is really only good at detecting faces that are pointed more or less toward the camera, and the detector does not find rotated faces well. This is because it is looking for similar structure at multiple scales in a single orientation. Detecting bodies is going to be much more difficult if you can't count on the bodies being oriented in the same direction and can't count on the bodies having the same pose.

In order to detect bodies, you would need some sort of detector that operated by detecting features of bodies and looking for clusters or connected components of these. This is not a trivial problem whatsoever. Using the detectors that ship with OpenCV will not help you much with this regardless of how many training images you supply.

Furthermore, we typically dress our bodies in clothing of different colors. If you were only detecting naked bodies, it would be much simpler. However, any sort of detector that you built would have to first be able to segment the structure of the body. This would most likely require some sort of edge finding, because you couldn't train it by color or gray level alone. Imagine how difficult it would be to isolate one torso dressed in a shirt with wide horizontal stripes and another one dressed in a camouflage shirt.

Like I said previously, this is not a trivial problem whatsoever. If you were able to solve it you could easily publish your results in a scientific journal. The steps you would need to solve are:

1. Isolate the bodies or body parts using some sort of edge finder or region segmenter
2. Detect features of bodies from the segmented contours in the image
3. Look for clusters or connected components of these features.

This project will take some serious time and you will probably have to read several journal papers on various topics before you can really even begin developing code. However, I wish you good luck, and, if you find a solution, please post about it here.

commented: Excellent points +4

hiiii i want to detect a naked human body in my project....someone plz suggest me a good algo as i m short of time.....

Be a part of the DaniWeb community

We're a friendly, industry-focused community of 1.18 million developers, IT pros, digital marketers, and technology enthusiasts learning and sharing knowledge.