face detection using matlab

Associate
Joined
28 Jul 2003
Posts
1,987
Location
The Moon
Hey I am looking to design an algorithm in Matlab which is able to highlight faces in an image. I have posted this in the programming forum but not many people post there and so I have had little success. Basically I want to use an approach known as Eigenfaces, I am a little stuck and was wondering if anyone here has any experience?
 
Another thread? :p

If you want to know more about Eigenfaces, check out the papers at the bottom of the Wiki entry, especially Turk & Pentland.

http://en.wikipedia.org/wiki/Eigenface

hehe. I have read through lots of papers etc but the problem is I am not experienced in this area and basically don't understand anything in the papers. I want to see examples of actual working code so I can understand how it works. I get lost at the shear amount of mathematics involved in some of those papers.
 
Nah, was part of my batchelors course, computer imaging and recognition using matlab.

Can you send me som info or help me in any way, I forgot to mention I am doing a degree in Mechanical Engineering so have no idea how this relates at all to my degree.
 
Its a required course at mine even for the automotive people for whatever reason. I did it a few years ago so let me fish it out.

Ok thanks, that would be most appreciated. Thanks a lot for all the info I recieved so far from everybody.
 
I am trying to create an eigenface and it wont work. I just end up with a fuzzy black picture with a few white marks.
 
I have managed to create the eigenfaces and started to get some positive results by detecting the odd face in images. Progress has been made.:)
 
Will give some screenshots once I have perfected the program. Have had vasts amounts of other work to deal with this week so have not worked on it much lately.
 
I have made my eigenfaces but am actually confused about what to do with them. Initially I was just correlating them with the image that contained the faces I want to detect, however, this rarely works and does not seem like the right way to go. Basically I don't know what the next step is once the eigenfaces have been calculated.
 
Eigenfaces are used to express a face as it's components of the different eigenfaces, in order to encode different faces in a standard scheme.

You'll probably just want to use your base eigenface (one with the highest eigenvalue?) as the basis for recognising faces in a picture.

That was what I was trying to do but it hardly works.
 
How large is your training set? I would imagine that a small training set would have the effect of giving you more 'unique' eigenfaces relative to more general eigenfaces from a larger set.

Could you post some pictures of your eigenfaces? Ideally the eigenface you pick should probably just look like a very basic face/ shadow for eyes etc.

The eigen face here is from a training set of 4 images, although I did try a training set of 9 and the results were no better. I was using this eigen image and using the normxcorr2 function in matlab to correlate this image with a given image containing a number of faces. Very rarely did it work, although it was able to find the face on one image quite well.

 
Can you remove the shirt and tie? That looks quite a specific face, I think you need a bigger training set :)

Ok cool, I will use a bigger training set and give it another go tomorrow. However, my main confusion comes from what to do next once the eigenfaces have been obtained. I was simply correlating that eigenface with an image and looking for the highest peak which should correspond to a face. However this only worked in 2 images and so I am wondering if it was more luck than anything that this technique worked, as for the majority of cases it proved extrememly inaccurate.
 
Have you tried my moving window idea? If you have a photograph with some random faces in and you are trying to resolve the entire photo in the direction of an eigenface I am not at all surprised it isn't working.

I don't really understand what you mean?
 
You cannot use eigenfaces for detection, they can only be used for recognition - this is not the same as detection. So basically I have wasted weeks of my time.
 
Back
Top Bottom