CSE 455: Project 4
Face Recognition and Detection
Author
Jonathan Su
Testing recognition with cropped class images
Average face:

Top ten eigenfaces:










Results of face recognition (click here to read
the program output):

Question #1: Describe the
trends you see in your plots. Discuss the tradeoffs; how many
eigenfaces should one use? Is there a clear answer?
The general trend is as more eigenfaces are added, the number of faces matched correctly increases. The trade off is the more eigenfaces you use, the more faces you will match, but you will most likely get more false-positives also. It seems like you should use around 10 eigenfaces, since there is virtually no increase in the number of faces matched as you increase the number of eigenfaces used after 10.
Question #2: You likely saw
some recognition errors in step 3; show images of a couple. How
reasonable were the mistakes? Did the correct answer at least
appear highly in the sorted results?
1.tga:
was mistaken for 22.tga:
.
This seems like a very reasonable mistake. The two faces look very similar. Also, the correct face was the 2nd face, so it was a very close match.
9.tga:
was mistaken for 20.tga: 
At first glance, these two faces don't look that similar. But if you look at the features, like the mouth size, nose shape, eye shape, they look fairly similar, besides the glasses. Also, the correct face was the 2nd face, so it was a very close match.
Cropping and finding faces
Finding Dan's face:

Program found: 
Explanation: Originally, my face finder didn't work for this. So I accounted for distance from face space, variance, and color, and it fixed this. After I added these factors, I tested on all the other images again and it still worked.
Finding my own face:

Explanation: My face finder worked pretty well for this on the first try.
Finding faces in IMG_0031.tga:

Explanation: This one worked correctly on the first try.
Finding faces in another group photo:


Explanation: The only issue with this one was the faces are pretty small, so the scale is very close to 1. This means it almost has to search the original image, which is a lot of pixels. Therefore, the search takes a while.
Question #1: What min_scale, max_scale, and scale step did you use for each image?
Elf.tga: min_scale: .30, max_scale: .50, scale: .02
Picture of myself: min_scale: .25, max_scale: .35, scale: .02
Group picture:: min_scale: .85, max_scale: .87, scale: .02
IMG_0031.tga:: min_scale: .30, max_scale: .50, scale: .02
Question #2: Did your attempt to find faces result in any false positives and/or false negatives? Discuss each mistake, and why you think they might have occurred.
The one that it had a little difficulty finding was the group one with four people in it. However, I believe it was just because the faces in this image are small, so once I changed the scales, then it worked fine.
The other one it had trouble finding was the baby's face in the elf picture. But I think this was because we trained on adult faces, and the features of the baby's face are probably different.
Extra Credit Implemented:
Verify Face
RESULTS
Question #1: What MSE thresholds did you try? Which one worked best? What search method did you use to find it?
You can see what MSE thresholds I tried in the results link above. It seems like an MSE of 45000 works the best, because it minimizes both false positives and false negatives at the same time. I essentially used a binary search, starting with 10000 and 1000000 and narrowing my search down.
Question #2: Using the best MSE threshold, what was the false negative rate? What was the false positive rate?
The both the false positive and false negative rates were 5/27, or 18.5%, for an MSE of 45000.