Homework 2 - due Oct 8
In this homework we will be implementing "Face Recognition Using Eigenfaces".
First download the AT&T face dataset. This consists of face images for 40 individuals, with 10 example images per person.
In Matlab:
Part 1: Face Recognition
- Resize all face images to thumbnail size 32x32.
- The first 5 images for each individual will be used as your training set, the other 5 as your test set.
- Perform PCA on the training faces and extract the first k eigenvectors (eigenfaces). These will form
the basis for your new lower dimensional "face space". Note you should calculate PCA yourself rather than
using matlab's built in PCA function.
- For each test image, compute its projection into your face
space. Classify each test image as the category of the nearest (SSD)
face in the training set.
- Visualize the top 20 eigenfaces and produce a plot showing the computed eigenvalues in sorted order.
- Produce a plot showing how recognition performance varies
with k (choose some rough sampling for values of k between 1 and 1024).
Part 2: Face Detection
- Collect some non-face images and resize them to thumbnail size 32x32.
- Project these images into your face space (for the k of your choice).
- Look at how the reconstruction error varies between face and non-face images.
- Find a good threshold on reconstruction error to divide your non-face images from face images.
What to Turn in
Email to cse591@gmail.com: your code + a web page describing the results of your experiments. Your web
page should include images showing: the first 20 eigenfaces computed by PCA, your plot showing eigenvalues
in sorted order, your plot showing how performance varies with k, and a table showing
face/non-face images nearby, but on either side of your computed threshold.