Question

Can anyone point me in the right direction of some facial recognition libraries & algorithms ? I've tried searching/googling but i mostly find thesises and very little real software.

Was it helpful?

Solution

How about Eigenfaces? Utilizes simple mathematics to store recognizable eigenvector of the face and reconstruct faces using multiple vectors.

The code is all available in Python as well here.

OTHER TIPS

OpenCV is a great computer vision library.

Here's the OpenCV wiki page on face recognition.

In addition to Eigenfaces, I would look at Fisherfaces. Here is an academic paper that compares the performance of both algorithms Eigenfaces vs. Fisherfaces. It shows better performance with Fisherfaces. I also agree with tfinniga that OpenCV is worth your time, I've used it before for face detection.

Finally you should be more specific. Do you want to detect when there is a face in a picture and then identify where or do you want to detect a specific face in a picture? The solutions listed here are for the latter question. If you want to tackle the former question I suggest searching the literature for adaboost and haar features.

You're probably not going to find much finished software for face recognition. If you want to do it, your best chance is to implement something that is in someone's thesis.

About 4 years ago, someone at CMU, I believe, wrote an algorithm that was the most successful face recognition algorithm I have ever seen... I will try to find it for you, unless someone else knows what I am talking about.

If you've never implemented computer vision code before, then you might be able to tackle the problem by breaking it down into a simpler problem. How many people are you looking for? If it's a small group of people, could a color-space recognition algorithm work? If the people have differing skin tones, and differing hair colors, then you might just be able to use basic color-space recognition to get a good result.

Otherwise, you are in for a big project.

EDIT: here's a list of some CMU articles that may point you in the right direction

If I were you, I would read some of those articles, and follow up on the references.

I wrote a whole tutorial and demo program with free source code for performing face detection and face recognition in real-time from a webcam (based on Eigenfaces in OpenCV):

http://www.shervinemami.co.cc/faceRecognition.html

This kind of task is usually done using Neural Networks. This is your primary direction to look. Also some more specific kind of network for you to look is Kohonen Neural Network. It is the simpliest Image Recognition network, that can be also used in a face recognition tasks. You won't achieve any good results using ONLY this one kind of net, but connecting few of them together. I can't give more detail, as I know this only in theory, but have no practical skills in this area.

Btw, I don't think you will find any libraries for that task, as usually if you have such library - why dont make a product and sell it?

I find Luxand Facesdk the best for Face recognition and identification.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top