CSE 455 Winter 2012 - Project 4 - Jesse Jeng

Testing Recognition with cropped class images (eig 25 x 25)

Average Face :
Eigen Face 0 :
Eigen Face 1 :
Eigen Face 2 :
Eigen Face 3 :
Eigen Face 4 :
Eigen Face 5 :
Eigen Face 6 :
Eigen Face 7 :
Eigen Face 8 :
Eigen Face 9 :

Accuracies
Number of eigenfacesPercent CorrectFraction
1 4/33
3 17/33
5 23/33
7 22/33
9 23/33
11 22/33
13 22/33
15 22/33
17 22/33
1922/33
2122/33
2323/33
2523/33
2723/33
2923/33
3124/33
3324/33

Generally, the results improve with the number of eigenfaces used. After about 10 eigenfaces, the results stop improving as a function of the number of eigenfaces.

A balance point can be observed between the benefit of adding another eigenvector and the runtime/accuracy of the system. In this case, a good tradeoff value is 10 eigenfaces.


Here are the mistakes for 10 eigenfaces

smiling-12neutral-20
smiling-15neutral-1
smiling-17neutral-19
smiling-18neutral-27
smiling-2neutral-3
smiling-20neutral-27
smiling-22neutral-7
smiling-24neutral-18
smiling-27neutral-8
smiling-4neutral-17
The mistakes are somewhat reasonable. Some 'smiling' faces have very extreme facial expressions.

Cropping and finding faces

ELF Results (min_Scale = 0.45; max_scale = 0.55; step=0.01)
Portrait (min_Scale = 0.7; max_scale = 0.8; step=0.01)
group1 from 08 (min_Scale = 0.3; max_scale = 0.4; step=0.01)
neutral_group (2) (min_Scale = 0.7; max_scale = 0.8; step=0.01)

No false positives. The algorithm seems to work pretty well.

Several attemps had to be made to find the correct range of scales so that the green squares matche the size of the faces.


Verify Face

Average Face :
Eigen Face 0 :
Eigen Face 1 :
Eigen Face 2 :
Eigen Face 3 :
Eigen Face 4 :
Eigen Face 5 :

Using a similar method like the one above to find the best number of eigenfaces, I experimented with mse threshold from 50000.0 to 200000.0.

The intersection of the two plots seems to be a good choice. Threshold = 95000. False positives = 3/33. False negatives = 5/33.