views:

2321

answers:

7

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.

+3  A: 

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.

PaulMorel
A: 

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?

Max
Really? Most successful approaches that I have read about haven't used Neural Networks. Yes, they've used some kind of training, but I think that calling them "neural networks" is a red herring.
PaulMorel
Why are you so sure? Little googling gave me even an exact neural network algorithm used mostly for face recognition purposes. That is backpropagation algorithm. For example this dll provides the Face Recognition functions, and does use neural nets:http://www.research-lab.com/facerecognition.htm
Max
+8  A: 

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.

Tuminoid
Good call! Accept this answer!
PaulMorel
+6  A: 

OpenCV is a great computer vision library.

Here's the OpenCV wiki page on face recognition.

tfinniga
+2  A: 

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.

Carlos Rendon