Question

I used the Database of Faces (formally the ORL Database) from the AT&T Laboratories Cambridge. The database consists of 400 images with 10 images per person, i.e, there is 10 images of each 40 person.

I separated 5 images of each person for training and the remaining 5 images of each person for testing.

So I have 2 folders:
1) Training (5 images/person = 200 images)
2) Testing (5 images/person = 200 images)
The photos in the training folder are different from those in the testing folder.

The percentage recognition rate I got is only 80%. But if I pre-process the image before recognition I got:
pre-processing with imajust: 82%
pre-processing with sharpen: 83%
pre-processing with sharpen and imadjust: 84%
(If pre-processing is done, it is applied to bot training and testing images)

For the number of eigenfaces used, all eigenvalues of matrix L are sorted and those who are less than a specified threshold, are eliminated.

L_eig_vec = [];
for i = 1 : size(V,2) 
    if( D(i,i)>1 )
        L_eig_vec = [L_eig_vec V(:,i)];
    end
end

I use matlab to implement the face recognition system. Is it normal that the recognition rate is that low?

Was it helpful?

Solution

The accuracy would depend on the classifier you are using once you have the data in the PCA projected space. In the original Turk/Pentland eigenface paper

http://www.face-rec.org/algorithms/PCA/jcn.pdf

they just use kNN / Euclidean distance but a modern implementation might use SVMs e.g. with an rbf kernel as the classifier in the "face space", with C and gamma parameters optimized using a grid search. LibSVM would do that for you and there is a Matlab wrapper available.

Also you should register the faces first i.e. warping the images so they have facial landmarks e.g. eyes, nose, mouyth in a harmonised position across all the dataset? If the images aren't pre-registered then you will get a performance loss. I would expect a performance in the 90s for a dataset of 5 people using Eigenfaces with SVM and pre-registration. That figure is a gut feeling based on prior implementation / performance of past student projects. One thing to note however is your number of training examples is very low - 5 points in a high dimensional space is not much to train a classifier on.

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