Question Set 1: Testing Recognition with Cropped Class Images

The Eigenfaces

Average Face

Eigenfaces 1-10



The images above are of dimensions 25 x 25 pixels. Together they constitute a hyper plane in picture space (which is very, vey large). To identify a face, we project the image onto the plane and look for the closest matches.

Result Graph

Number of Eigenfaces vs Number of Correct Matches for Different Sized Eigenfaces

Chart Generation and Script

The chart above was generated using d3.js. The script I used to generate the data can be found here. It takes a single parameter, the pixel size of eigenfaces, and outputs the success rate of using the top 1-30 eigenfaces for comparing each cropped interesting images to the neutral image set. Here is sample output from running the script:
$ ./q1script.sh 6
eigenface pixel size: 6
1 eigenfaces: 3/28
2 eigenfaces: 2/28
3 eigenfaces: 6/28
4 eigenfaces: 6/28
5 eigenfaces: 8/28
6 eigenfaces: 9/28
7 eigenfaces: 12/28
8 eigenfaces: 14/28
9 eigenfaces: 13/28
10 eigenfaces: 13/28
11 eigenfaces: 13/28
12 eigenfaces: 13/28
13 eigenfaces: 13/28
14 eigenfaces: 14/28
15 eigenfaces: 14/28
16 eigenfaces: 14/28
17 eigenfaces: 14/28
18 eigenfaces: 14/28
19 eigenfaces: 14/28
20 eigenfaces: 14/28
21 eigenfaces: 14/28
22 eigenfaces: 14/28
23 eigenfaces: 14/28
24 eigenfaces: 14/28
25 eigenfaces: 14/28
26 eigenfaces: 14/28
27 eigenfaces: 14/28
28 eigenfaces: 14/28
29 eigenfaces: 14/28
30 eigenfaces: 14/28

Interpreting the Results

It is easily observed that the first few eigenfaces added dramatically improve the result. However, at around 14-15 eigenfaces things begin to flatten out for good regardless of size. The lowest size, 6 x 6 pixels, flattens out at a lower success rate than the other two sizes, which have relatively similar results. I assume that with such a small size not all the important details of the faces are captured. The results suggest 10-15 eigenfaces with size greater than 10 x 10 yeild the best results, but the accuracy of this isn't clear without further testing. For example, at 100 eigenfaces would the success rate be even closer to 100%? The answer to this is likely no. With each eigenface added, the return is diminishing, or even detrimental. This is because by the definition of PCA we are taking the top eigenvalues which best characterize trends in the data. If we take too many eigenfaces, at some point, we aren't gaining any more useful information, and we may introduce noise that ruins the results. If you look at the 50th "best" eigenface you will hardly see something that even resembles a face.

What about if we had eigenfaces of size 100 x 100 pixels? Would this help? I don't have a definite answer to this but I see both positives and negatives. The positive is you could potentially capture more detail of each face and characterize sharper trends. The negatives are you may be more susceptible to random noise. I suspect that with eigenfaces this large the negatives probably outweight the positives.

Recognition Errors

Using the top ten 25 x 25 pixel eigenfaces, I was able to correctly identify 21/28 of the cropped interesting faces. In all but one of the cases the correct answer was within the top five returned results. Below I show the top three incorrect faces that were suggested (even if the correct image was in the top three).










It's hard to say how reasonable these mistakes are. It seems to me that the most important factor is the pixel location and sharpness of the defining features (eyes, eyebrows, nose, mouth). If you match some of the features above to the proper mismatches you will notice similarties. This is kind of hard to tell because we are thrown off by looking at non-grayscale images (if the images were all grayscale I think the similarities would be more pronounced).

Back