Face Recgonition

Jared Krinke
CSE 455 A
Project 4
Face Recognition with Eigenfaces

Recognition with Eigenfaces

Cropped, non-smiling images of 27 students in the class were used to construct 10 eigenfaces. This is a reduction from the 20x30 dimension original images.

Average Face

Eigenfaces (in order)

Recognition Performance vs. Number of Eigenfaces

Using the non-smiling eigenfaces to recognize smiling faces, the performance maxed out at 20/27 or about 72%. The following plot shows the percent of faces correctly recognized versus the number of eigenfaces used for recognition.

Analysis

Using fewer than 5 eigenfaces produces very poor performance, but this is expected. If at least 7 eigenfaces are used, the results are fairly close to the best results achieved with this method (using 27 eigenfaces; one for each source image).

When there was a mistake, often times the same face was recognized for two different target images. One example shown here is that student #22 was recognized as both #22 and #1. This is likely due to student #22 being closer to the eigenspace, or the possible faces that can be made with the eigenfaces, whereas student #1 is further outside the set of possible faces (i.e. student #1 has a more unique face).

Input FaceCorrect AnswerRecognized As

Unfortunately, sometimes the correct face did not even appear in the top 4 matches, as in this example:

Input FaceCorrect AnswerBest MatchSecond Best MatchThird Best MatchFourth Best Match

This is probably due to student #4 being very different from the average faces, so the eigenfaces don't match it very well.

Finding and Cropping Faces

The program can be used to find and crop faces. The first example is shown here:

The program was used to find and crop an image of myself using the min scale 0.4, max scale 0.8, and step of 0.0025:

Clearly, the result is incorrect. This may be due to the fact that dark areas may be easily recreated by subtracting the eigenfaces from the average face until an almost black noise image is created. This could have very low error.

Finding and Marking Faces

The program can be used to locate faces and mark the nonoverlapping regions. In this example, three faces are located and marked using scale 0.1 to 0.4 in steps of 0.05:

Clearly, the program did not do a good job at marking faces. It worked on the initial test case, but not very well on the subsequent images. This may be due to differences in scale, or due to the fact that I used more eigenfaces for later tests, while I used only 4 eigenfaces while testing the program initially. Increasing the number of eigenfaces can add eigenfaces that look suspiciously like noise or other objects and the algorithm then begins to break down.