Matthew Kerner's Face Recognition Project - Finding Faces Writeup

1) I ran my program on the George W Bush image with 10 nonsmiling 25x25 eigenfaces with min_scale, max_scale & step of 0.25, 0.55 and 0.01. Here is what I got:

->

2) I ran my program on a picture of me with 10 nonsmiling 25x25 eigenfaces with min_scale, max_scale & step of 0.25, 0.55 and 0.01. The result wasn't perfect, and I believe it's due to the difference in lighting direction and intensity in this image from those that we saw in class. None of the eigenfaces that were available had the ability to control the intensity of only one half of the face, as is the case here. As a result, here is what I got:

->

3) I used a range of parameters, usually between 0.40 and 0.50 as the scale. This will depend on the size of the eigenfaces, as well as the size of the faces in the image. If you don't mind waiting, a small step works well to ensure that you find the right image subset.

4) First, I was able to find the four faces in the smiling group image from class with min_scale, max_scale and step of 0.43, 0.46, 0.01:

->

5) Next, I tried another group image from class with min_scale, max_scale & step of 0.46, 0.46, 0.01. This one didn't work perfectly. There was one error, with a face slot being assigned a part of the image that was textured and low-contrast. In fact, the shadows on the sweatshirt give it similar shading to the nose area in many of the actual faces with a brigh spot on the subject's right side and a shadow on the subject's right side:

->

However, when I imposed color constraints (see overall writeup page for details) on the matching process, it worked better. I required that there was at least one pixel in each candidate face region whose red intensity was in [75,125], green intensity was in [45,70], and blue intensity was in [35,50]. This eliminated the non-face areas from consideration, resulting in the best match being the four faces themselves:

6) Finally, I tried the program, with the same color constraints, on another image with min_scale, max_scale, and step of 0.25, 0.55, 0.01:

->

It didn't work so well, so I regenerated a set of ten 25x25 eigenfaces using the cropped faces from this image:

This gave me these eigenfaces:

Then I reran the color histograms on these faces:

Then I reran the find face routine with min_scale, max_scale, and step at 0.45, 0.55, 0.01. I constrainted the colors per the histograms at r=[75,155], g=[55,125], b=[75,125]. Here is what I got:

I tried one more time without color constraints, because I hypothesized that the image colors were quantized due to the file format, but I got the same result. I guess that smoothing the image in advance might work better next time: