School of Electronic Engineering and Computer Science
ECS797 Machine Learning for Visual Data Analysis Lab 2: Face Recognition using Eigenfaces
1. Introduction
This coursework is on learning models of human faces for recognition. In particular, you are required to understand and build programs that perform eigenface based recognition as described by Turk and Pentland’s paper.
The outcomes from the lab are to be handed in as a .zip file that contains a report and programs that show that you have completed the steps of the lab successfully. Details are given at the end of this sheet.
2. Getting Started
Download “ECS734Lab2.zip” from the course website and extract it to your workspace. There are three main files:
a. Two .tgz files containing the training and test face images respectively. The training set consists of 200 images of size 23 x 28 grey-scale raster images. There are also a set of the same images but of size in 92 x112 pixels for your information. Note, do not use this large size set for your experiment. The test set contains 70 images of the same size (23×28).
b. one .zip file containing the matlab files: lab2.m-> main executable Matlab file Recommend: create the subdirectories “ecs734” and “ecs734/lab2”.
Start Matlab. Use “cd
In Matlab, load the “lab2.m” file in the matlab editor. You will need to edit the code in the file in order to complete the missing parts. Those parts are explained below, as well as in the lab2.m file comments.
3. Complete the lab2.m file
1. Read in the training and test images. The two functions for loading the training and test image files have been provided in separate .m files.
2. Construct the mean image and the covariance matrix of the training image set. Code has been provided in lab2.m.
3. Compute the eigenfaces of the training set. Code has been provided in lab2.m.
4. Display the mean image. Code has been provided in lab2.m.
5. Display the first 20 eigenfaces. You need to write this part of the code. Hint: take
a look at the code for displaying the mean face in Step 4
6. Project both training images and testing images onto the first 20 eigenfaces. The function for the projection has been provided.
7. Compute the distance from the projected test images to the projected training images.
8. Display the top 6 best matched training images for each test image. Code has been provided in lab2.m.
9. Compute the recognition rate using 20 eigenfaces. Write your own code here.
10. Investigate the effect of using different number of eigenfaces for recognition (e.g. plot the recognition rate against the number of eigenfaces). Code has been provided in lab2.m.
11. Investigate the effect of K in K-Nearest-Neighbour (KNN) classifier. Plot the average recognition rate against K). You need to write your own code here.
4. Handing In
Create a folder that will contain:
• A .pdf report that that contains plots from experiments, a discussion of the experimental results, and program listings (including comments).
• The programs files
Create a .zip file and submit electronically.
IMPORTANT: Plagiarism (copying from other students, or copying the work of
others without proper referencing) is cheating, and will not be tolerated.
IF TWO “FOLDERS” ARE FOUND TO CONTAIN IDENTICAL MATERIAL,
BOTH WILL BE GIVEN A MARK OF ZERO.
5. Examination
You should be orally examined in one lab session after you have submitted your code and report. You should be prepared to explain the code that you wrote and critically evaluate the results that you obtained.