Ask Your Question

Face recognition verification using fisherfaces algorithm

asked 2014-03-21 02:02:56 -0600

varunIITD gravatar image

updated 2014-03-26 07:08:16 -0600

berak gravatar image

I am working on Face recognition as a part of my project. I am using the fisherfaces program provided in OpenCV website for the same. But the program code provided there does not have verification and the recognition always results in a subject in the database even though it is a false subject. The fisherfaces reconstruction does not perform well. The Similarity error for both the true test inputs (true test input - picked from the database) and false test inputs (false test input - NOT picked from the database) are quite close to each other and some even overlap with the range of values from true test inputs.

I performed an experiment on AT & T database which has 40 subjects.

I selected 20 out of them for database and rest 20 i used to provide false test input where the ideal behavior of false test input is not to get recognized to one of the images in database. But the normalized euclidean distance of the false test inputs are quite near and some even overlap with the normalized euclidean distance of the true test inputs. Please let me know if there is any method to set an appropriate threshold and hence make the algorithm work well.

Results for false_test_inputs

Identity: 0. Similarity error: 0.357048 Identity: 0. Similarity error: 0.364141 Identity: 0. Similarity error: 0.368228 Identity: 0. Similarity error: 0.322856 Identity: 0. Similarity error: 0.298744 Identity: 0. Similarity error: 0.3978 Identity: 0. Similarity error: 0.354158 Identity: 8. Similarity error: 0.417423 Identity: 0. Similarity error: 0.42364

Results for true_test_inputs

Identity: 8. Similarity error: 0.291803 Identity: 8. Similarity error: 0.381701 Identity: 8. Similarity error: 0.455005 Identity: 8. Similarity error: 0.378799 Identity: 8. Similarity error: 0.480244 Identity: 8. Similarity error: 0.456196 Identity: 8. Similarity error: 0.419657 Identity: 8. Similarity error: 0.361412

I can mail the complete list if in case it is needed. I am not posting the similarity errors of all 100 true and false test samples as it will not be clear in viewing them in the forum.

I can attach a plot of the samples.At_T.png

edit retag flag offensive close merge delete

1 answer

Sort by ยป oldest newest most voted

answered 2014-03-26 06:33:27 -0600

Vijay gravatar image

Face verification and recognition are two different problems. Recognition is a multi-class problem where the goal is to assign the test image a known label from the database while verification is a binary problem where you need to say whether the given two images are similar or not.

OpenCV fisher faces is aimed at recognition and always assigns the test image a label from the database. However, it may not perform well on verifying unknown faces since the fisher face algorithm needs the training samples of all the subjects.

Face verification is getting lot of attention these days. Many algorithms are introduced in the last few years and tested on challenging LFW dataset. I would advice you to take a look at implementations available at

edit flag offensive delete link more


And to add to that, keep in mind that face recognition will always give you the best possible database match... This is normal behaviour of these algorithms!

StevenPuttemans gravatar imageStevenPuttemans ( 2014-03-26 08:26:03 -0600 )edit

Question Tools

1 follower


Asked: 2014-03-21 02:02:56 -0600

Seen: 669 times

Last updated: Mar 26 '14