William Pitts

Computer Vision (CSE 455), Winter 2012

Project 4: Eigenfaces

Project Abstract

Objectives

In this project, we treated faces as vectors and did a PCA to make eigenfaces, which we then used for face matching, reconstruction, and location.

Challenges

The biggest challenge in this project was getting face detection to work, which is still only kind of does. The face matching and reconstruction were quite easy, but face finding... man.

Lessons Learned

It might be a wise idea to go to office hours when stuck. I started the assignment early, put over twenty hours into it, and still didn't finish.

Implementation

The project is structured as follows:

Experiment: Recognition

Average Face

Eigenfaces

Findings

Questions

It seems that more eigenfaces tends to correspond with more matches, at a rate that seems logarithmic. Going from 1 to 3 was an incredible jump, but the rate slows down incredibly quickly.

Here are some failed matches at ten eigenfaces:

and

and

They seem reasonably similar to each other, so I think that this isn't really that bad of a matching failure.

Experiment: Find Faces

Questions

For the picture of myself, I used a min of 0.1, a max of 0.3, and a step of 0.01. For the group picture that was provided, I used a min of 0.8, a max of 1.2, and a step of 0.01. For the group picture I was in, I used a min of 0.2, a max of 0.5, and a step of 0.01.

I got LOTS of both false positives and false negatives. The program kind of found my face, but not really that well. With the photo of my frieds and I, it found no faces. It did manage to find a face in the group shot, but it also found a guy's crotch... I've checked, and my program tends to really like areas that either have a high variance (because I divide by variance, as is suggested in the assignment) or areas that tend to just be a texture that can kind of look like a face if you squint just right, giving it a close MSE to the mean face. I've done projections, and some actual faces are definitely further than some blankish areas are.

Elf

...oops. My algorithm seems to really prefer blank areas, despite multiplying by the distance to the mean.

Me

...better. Seems to also really like complex areas, perhaps due to dividing by variance?

Group 1

It found a face! And a crotch!

Group 2

Sigh. Looks like it found everything but a face.

Experiment: Verify Faces

Findings

Questions

I tried every MSE between 2500 and 500,000, with a step of 2500. As for which worked best, that depends on your definition of best. The true positives overtake the false negatives at an MSE of 45,000, while the false positives overtake the true negatives at about 32,000. The attached graph shows it more clearly.

Once again, the question of "best MSE" is an unanswerable one until we know exactly what we're looking for. But the attached graph does have a wide selection of values at different MSEs.