Face Recognition Assignment #4

posted May 20, 2004

target date: June 3, 2004 (By this date you have to write a report containing the answers and the source code for all the assignments related to the Face Recognition Project)

What You Have to Do.

In this assignment your goal is to use the eigenface method for face recognition.

  1. Create a data structure that associates to each student the face feature vector Omega obtained from the images contained in View_0.mat. You may find useful to use the routine Omega = project_face(Gamma, U, K) that you developed in the previous assignment. Store in this data structure all the 66 components of Omega.

    Name

    Omega

    ABRAHAMSEN, ADAM
    W1
    AGEE, GREGORY
    W2
    BAER, NIKOLAUS
    W3
    ...
    ...
    ZHUCHKOV, MAX
    W66

  2. Write a Matlab function that returns the five closest images in the image feature space (you can use the Euclidean distance to measure the difference between the feature vectors). Your function should look similar to the following:

    [Ir, names] = retrieve_face(I, FaceData, U, lambda, I_faces, K, n)

    DESC:
    retrieves the face corresponding to I

    INPUT:
    I = input query face
    FaceData = face data structure
    U, lambda = eigenface data
    I_faces = faces stored in the database
    K = number of eigenfaces used
    n = number of faces retrieved

    OUTPUT:
    Ir = retrieved face
    name = name of the retrieved person


    You may find useful to read carefully these notes.

  3. Test the performance of your algorithm using as query the different expressions of your face, which can be found in the datasets:

    View_1.mat - normal II
    View_2.mat - happy
    View_3.mat - angry
    View_4.mat - surprised
    View_5.mat - disgusted

    In your experiments show first five best retrivals, initally using just 10 eigenfaces (i.e. consider a face feature vector of length 10). If your face does not correspond to the first retrieval, try to increment the number of eigenfaces used (note that is not given for granted that by increasing the number of components of the feature vector the result will improve!). Comment the results.

  4. Using the different expression face datasets, compute the percentage of correct retrievals for different values of K (i.e. K=10, 30, 60). You are supposed to use each of the 66 faces in the datasets and count the number of times (in percentage) the best match actually corresponds to the query. Fill the following table with the results that you obtained. Comment on the results.

      Normal II Happy Angry Surprised Disgusted
    K=10          
    K=30          
    K=60          


Reading:

 
M. Turk and A. Pentland, "Eigenfaces for recognition," Journal of Cognitive Neuroscience, Vol. 3, No. 1, pp. 71-86, Winter 1991.
download from: http://www.cs.ucsb.edu/~mturk/research.htm
 
M. Turk and A. Pentland, "Face recognition using eigenfaces," Proc. IEEE Conference on Computer Vision and Pattern Recognition, Maui, Hawaii, 1991.
download from: http://www.cs.ucsb.edu/~mturk/research.htm