COS 496 - Computer Vision |
Spring 2003 |
Course home | Outline and lecture notes | Assignments |
Implement a system for recognizing faces using PCA. You might find it interesting to read the Turk and Pentland paper on eigenfaces. This assignment is a bit more open-ended than the previous ones, but at a minimum your system should do the following:
You will have to account for the differences in position of the face in each image (a simple way might be to define a standard window size, and center it around a point the user clicks on - save the results so you don't have to do this more than once). Randomly separate the data into training and test data, and see how well you can recognize people.
There are two databases for you to test on: the Yale database (15 people, 11 poses each - available as zip or tar.gz) and the CS496 database (11 people, 2 poses each - zip or tar.gz). If you find additional databases you wish to experiment with, you can of course do that as well.
Benedict has made a cleaned-up version of the face data available:
The Yale faces just have some shadows erased (to white). Our faces have been cropped around the faces, and had the background erased. They have also all been stretched/squished to 150 x 200 pixels. So the heads should line up fairly well.The Yale face data is available as zip or tar.gz and the CS496 faces are here as zip or tar.gz.
Answer the following questions, for the Yale database:
proj_subspace (image)and
image - proj_subspace (image)
Always remember to subtract the average face and, when reconstructing images based on the first k principal components, add the average back in at the end.
You are not expected to implement SVD from scratch - use the Matlab svd function, or any SVD or eigenvalue code you find.
This assignment is due Monday, March 31, 2002 at 11:59 PM Eastern Standard Time. Please see the general notes on submitting your assignments, as well as the late policy and the collaboration policy.
Please submit: