Coral Peterson

Computer Vision (CSE 455), Winter 2012

Project 4: Eigenfaces

Project Abstract

Objectives

In this project we applied eigenvectors and values to "face space" in order to find faces in photographs. Once the eigenvalues and vectors for a set of faces are found, we can extract the eigenfaces. New potential faces can be projected to "face space", and then recreated using the eigenfaces. If there is relatively little error between the original face and the recreated face, then it is likely what you're looking at is actually a face.

Challenges

Finding the eigenfaces was the most difficult part of the project for me. I felt like a large portion of my time was spent trying to figure out where to start, or how to use the provided functions. Since I didn't get part of the face finding done before the deadline, and still can't get overlapping faces to work correctly, those also count as pretty challenging.

Lessons Learned

I mostly learned not to take two project courses at once (time management was an issue throughout the quarter). After looking at the source code for hours, I will further emphasize the important of comments to my 142 students. Scripting is also possibly important(!).

Implementation

This project allows a user to construct a set of eigenfaces, project faces into face space, and detect faces in an image.

The project is structured as follows:

Experiment: Recognition with cropped class images

Methodology

I ran the command "main --eigenfaces 10 25 25 faceImages/nonsmiling_cropped/neutral.txt neutral.face" to compute 10 eigenfaces.

To construct a user base I ran the command 'main --constructuserbase neutral.face faceImages/nonsmiling_cropped/neutral.txt neutral.db'

To match users, I ran 'main --recognizeface faceImages/smiling_cropped/smiling-1.tga neutral.db neutral.face 33', with different numbers 1-33 for the file names.

Questions

Direct response to Question 1.

There were definitely a few mistakes in the recognition of smiling faces from the database of nonsmiling faces. A few examples:
was mistakenly identified as .
and were both mistakenly identified as .

In these cases, the mistaken faces look somewhat similar to each other in expression and facial structure.

Discussion

The result obtained occured because of the alignment of the star crystals in the Charleston St. Orrery. We expected that the snow would be orange because of the velociraptor principle, however we did not expect that it would speak German. This can be explained by the use of imported Ketchup rather than home-brew, because the imported variety has higher trace levels of palladium.

Sample Results

The eigenfaces

main --eigenfaces 10 25 25 faceImages/nonsmiling_cropped/neutral.txt neutral.face

main --constructuserbase neutral.face faceImages/nonsmiling_cropped/neutral.txt neutral.db

main --recognizeface faceImages/smiling_cropped/smiling-1.tga neutral.db neutral.face 33
I got about 70% accuracy using 10 eigenfaces (23/33).

Experiment: Find Faces

Methodology

We did X and Y to accomplish the required experiments.

We also did P and Q to further explore the trans-hyperdimensional resonance problem which we encountered while exploring the handedness of the flitzgibbit.

Questions

For the picture of me, I used .44, .62, and .02, and experimented with values between the ranges of .4 to .8.

When trying to identify the picture of myself, it thought my shirt was more face-like. Most of the errors I got were false-positives as opposed to false-negatives. I think this most likely occurred because I am smiling in the image. Since the training images were all neutral-faced, it is more difficult to detect people who are similing.

Sample Results

Original image:
Cropped image:

main --findface "faceImages/elf.tga" neutral.face .45 .55 .01 crop 1 result.tga

This is interesting, because the program finds that the baby's face is more "face-like" than the adult humans. Although there were no humans as old as the man in the photograph, I would expect students in their twenties to more closely fit a slightly older adult than a baby.

A picture of me:
Original:
Cropped image: