COMP 776 Assignment 03 - Eigenfaces for recognition
Eric LaForce
4/17/08
Overall
In this assignment we were required to create a face recognition system based on eigenfaces
using a nearest neighbor classifier. The original research can be found here.
The power point slides that supplements this paper can be found here.
For this assignment we used a database of 400 images. We used 10 images per person for 40 people. We used
7 images per person for training, and 3 images per person for testing.
The algorithm for the work is as follows:
-
Find mean image (uimage)
-
Find k principal components (eigenvectors of covariance matrix)u1,…uk
-
Project each training image xi onto subspace spanned by principal components:(wi1,…,wik) = (u1T(xi – uimage), … , ukT(xi – uimage))
Once we had our training data the following algorithm will classify our test images using a nearest neighbor classifier:
-
Project onto subspace:(w1,…,wk) = (u1T(x – uimage), … , ukT(x – uimage))
-
Classify as closest training face in k-dimensional subspace. For nearest neighbor simply compare each test image projection to
every training image projection and find the training image that is closest, i.e. has the minimum Euclidean distance.
Code
faces.m
Results
Below I have presented the results of this assignment. I present the mean face image. Then I present the top 20 eigenvectors. Then I present
all the incorrect classifications of my nearest neighbor search. The top row of images are the original test images, and the bottom row is the person it thinks the test image is.
Next I present
The results of my classification for all 40 people classifying 3 test images a piece with the training data. This classification was done using
100 eigenvectors and I acheived 90% accuracy. Finally I present a graph demonstrating how the k value (number of principal components to use)
affects the classification rate. As you can see low k values produce very poor classification. As k increases the classification rate increases
rapidly and levels off very quickly. So we can assume that the top 20 eigenfaces provides enough information to perform nearest neighbor classification



Classification 1
Classification 2
Classification 3
Classification 4
Classification 5
Classification 6
Classification 7
Classification 8
Classification 9
Classification 10