Ask Your Question

Revision history [back]

Face Recognizer to find the closest matches in a set of one shot faces

I trying to use OpenCV to to compare an image to a data base of faces and find the nearest matches in a set faces (where each entry only has one image). (i.e to find your look alike)

The idea is that you query the database with a normiliazied face image, and it returns a list of the closest matches.

I've set the system up but the results just aren't that accurate.

This is what I have so far:

The Normilized face is an 64x64 pixel image with a circular border mask (to reduce the effect of the background). It is generated using face recognition to crop the image down to the face only.

The program uses LBPT to build up a recognizer with each image mapping to it's unique ID.

I've extending openCV so the recognizers can return a list of results insted of just the best match.

When a match needs to be made the recognizer is loaded and the best matches are found.

There is a little more too it, like the recogniser is actually split over multiple yml files and the results are merged.

But that is the basic picture.

I've tried various paramaters to the LBPT but these are the current settings which in some instances produce fairly good results:

circleSize 2
circlePoints 9
hrozontalRes 5
verticalRes 5

I get the feeling this isn't really what the system was intended for, but I don't know if I have many other options.

What I want to know is:

Which algorytim from the open CV recognizers would be best for this?
What should I know about normlisation (how much face is needed for this application)?
Is there an altenative in OpenCV to using the fac recognisers in this way?
How can I make this system more accurate?

click to hide/show revision 2
retagged

updated 2013-11-28 16:16:21 -0600

berak gravatar image

Face Recognizer to find the closest matches in a set of one shot faces

I trying to use OpenCV to to compare an image to a data base of faces and find the nearest matches in a set faces (where each entry only has one image). (i.e to find your look alike)

The idea is that you query the database with a normiliazied face image, and it returns a list of the closest matches.

I've set the system up but the results just aren't that accurate.

This is what I have so far:

The Normilized face is an 64x64 pixel image with a circular border mask (to reduce the effect of the background). It is generated using face recognition to crop the image down to the face only.

The program uses LBPT to build up a recognizer with each image mapping to it's unique ID.

I've extending openCV so the recognizers can return a list of results insted of just the best match.

When a match needs to be made the recognizer is loaded and the best matches are found.

There is a little more too it, like the recogniser is actually split over multiple yml files and the results are merged.

But that is the basic picture.

I've tried various paramaters to the LBPT but these are the current settings which in some instances produce fairly good results:

circleSize 2
circlePoints 9
hrozontalRes 5
verticalRes 5

I get the feeling this isn't really what the system was intended for, but I don't know if I have many other options.

What I want to know is:

Which algorytim from the open CV recognizers would be best for this?
What should I know about normlisation (how much face is needed for this application)?
Is there an altenative in OpenCV to using the fac recognisers in this way?
How can I make this system more accurate?