Andrew Lewis
CSE 455
Project 4 Artifact
Average face followed by Eigenfaces 1-10
Plot of number of faces correctly recognized versus eigenfaces used
Answers to recognition questions
- The graph shows that, between 1 and 11 eigenfaces, the recognition rate improves dramatically. For greater than 11 eigenfaces the no further improvement occurs, and the number recognized successfully actually drops after 15, indicating some overtraining has occured. The "best" number in of eigenfaces in this case is 11; this is the smallest number for which the peak recognition rate occurs. It isn't clear if these results extend to all data (since these images do have a special relationship to the set that the eigenfaces were computed from, being pictures of the same people).
- We show two misidentifications that occured in the "best" case, with 11 eigenfaces. This face, 01:

was identified as being most similar to this one, 22:

while this is the actual picture of person 01 in the training set:
.
Here, the extreme differences in facial expression as well as orientation between the images of 01, and the similarities in orientation between the smiling 01 image and the mismatch, make the misidentification plausible. Moreover, this image of 04:

was mismatched with the nonsmiling 01 image above; here also, orientation similarities and distribution of features make the misidentification somewhat reasonable, especially given the limited resolution. However for both mismatches there are other cues that humans will interpret to clearly identify them as different people which this method misses. The correct image was ranked in the top 3 for both.
Original elf.tga image and cropped face
Picture of myself and cropped face

IMG_0031.tga with faces identified
Large group photo with "faces" identified

This is a random photo of a group of people found via google. 10 of the top 20 "faces" found are correct matches, out of 26 total faces.
Answers to detection questions
- For elf.tga, settings were as specified. For the picture of me as well as IMG_0031.tga, min_scale = 0.2, max_scale = 0.4, and scale step = 0.05. For the large group picture, min_scale and max_scale were both set to 0.5 (searching multiple scales proved too time consuming when searching for a large number of matches).
- The group photo includes many false positives (half of the total). Some of them almost seem reasonable: They include areas of skin with shading similar to a face, and some contours (edges of clothing, arms and hands, etc.) in positions similar to faces. Others do not. There were also many false negatives, faces that were not found: Some of these are shadowed and have details obscured which may have made constructing them out of the basis more difficult. Others may have been good matches, but overlapped with false matches along the edges of heads which may have had even better error scores.
Notes about error function in findFace
To successfully detect faces in the elf and IMG_0031 images, the mean-squared error was multiplied by the squared distance of the average color in the candidate face area from a predetermined value. The value used right now is arbitrary and was set based on observations of image colors in faces, not rigorous image statistics, due to time constraints. The color determined for elf.tga was used both for the picture of myself and the large group photo, and improved the matching success in those cases also. A different value had to be used for this method to work successfully with IMG_0031, however.
Given lighting and camera response differences it seems unlikely that this method could succeed without using different color parameters for different environments. However, it was the most successful approach I was able to implement in the limited time available, working better than the suggested distance/variance approach, which made some things worse.
Without this additional factor, face detection fail with both images: Low-texture background and clothing regions are identified instead of the actual faces.