Face Recoginition Using Eigenfaces
M.Sc Thesis, 1996
My M.Sc Thesis was on face recognition. After studying the two fundamental appoaches to a general face recognition problem,
I have decided to move on with the Eigenfaces Approach, which is based on Principal Component Analysis.
It is possible to try to classify faces by using the information extracted from individual components of a face such as eyes, lips, etc and the interrelations with them.
Recognition rate depends on how well the extractor can locate those individual features. If for example someone is wearing dark glasses it can not extract features
related to eyes.
On the contrary, Eigenfaces Approach is a principal component analysis method, in which a
small set of characteristic pictures are used to describe the variation between face
Goal is to find out the eigenvectors (eigenfaces) of the covariance matrix
of the distribution, spanned by a training set of face images. Later, every face
image is represented by a linear combination of these eigenvectors. Evaluation of
these eigenvectors are quite difficult for typical image sizes but, an approximation
can be made.
Recognition is performed by projecting a new image into the
subspace spanned by the eigenfaces and then classifying the face by comparing
its position in face space with the positions of known individuals.
Eigenfaces Approach is superior to feature based recognizers in its simplicity, speed, invariance to noise and indivual facial features.
Workflow of the Recognition Process in Eigenfaces Approach
Form a face library that consists of the face images of known individuals.
Choose a training set that includes a number of images (M) for each person
with some variation in expression and in the lighting.
Calculate the M x M matrix L, find its eigenvectors and eigenvalues, and
choose the M' eigenvectors with the highest associated eigenvalues.
Combine the normalized training set of images to produce M' eigenfaces.
Store these eigenfaces for later use.
For each member in the face library, compute and store a feature vector.
Choose a threshold e that defines the maximum allowable distance from any
face class. Optionally choose a threshold f that defines the maximum
allowable distance from face space.
For each new face image to be identified, calculate its feature vector and
compare it with the stored feature vectors of the face library members.
If the comparison satisfies the threshold for at least one member, then classify this
face image as "known", otherwise a miss has occured and classify it as
"unknown" and add this member to the face library with its featurevector.
Inorder to practice the Eigenfaces Approach, I have developed FACEPRO - a face recognition engine - based on the IMPRO
image processing platform that I have previously developed for my B.Sc thesis.
FACEPRO operates on 128 x 128 HIPS formatted face images. Since eigenfaces are kept in floating point numbers (this makes 64 KB for per image)
I have chosen that resolution for convenience and speed.
If image size is not 128 x 128, FACEPRO normalizes the image to that resolution automatically.
During my tests, I have seen that FACEPRO worked quite speedily on a moderate PC. Recognitions were almost done in real
FACEPRO runs on MS-DOS and comes with an installer together with sample HIPS formatted face files obtained
from the Media Lab of MIT.
If you are interested in installing and evaluating it yourself, then drop me a line
at email@example.com so that I can e-mail you the executables.