The plot shown above graphs the number of correctly identified faces with the number of principle components used in the recognition. In addition, I've included data for how many faces were near the top of their recognition lists.
With few eigenvectors, the system had difficulty matching the faces, but this quickly was overcome. WIth only 5 components, 2/3 of the matches were in the top 5 of their recognition lists. The number of strict correct matches steadily increases as we increase the number of eigenvectors used, as one might expect.
There were 4 sets that never got close, regardless of number of components:
hile
lane
treuille
One other interesting thing to look at is images that were close, but consistently ranked lower than another image. For example, hasselrot smiling was consistently matched to eckart's base image instead of its own:
In order to penalize low texture regions and other regions that fall in the space far from the faces, I used the suggestion to multiply by the magnitude of the coefficient vector and to divide by the variance of the overall image. Without this, the above image found the white regions of the blackboard before it found the faces. Unfortunately, on Aseem's image, it still ranked a low texture region best, and only finds the face as the second best match:
I don't know how to explain this... I was able to get a correct match in this image by instead dividing by the variance SQUARED, but that error function broke the previous result (the group picture), so I got rid of it.
I tried it on two images with multiple faces, both of family members of mine. The results came out about 50/50. I was hoping for more, but I'm not sure if that was realistic. The first image was looking for 5 faces, using scales .5 to .75, with a step of .05:
And this last image was looking for 4 faces, using scales .62 to .82 with a step of 0.02: