Limitations


Automatic clustering Go back to the indexFuture improvements

The implemented face recognition algorithm has some known limitations. In this section we will list them:

1) Face angle: The software does not work when heads are tilted laterally or vertically. This is because all the template faces are directly looking to the camera, so the correlations when the heads are tilted are relatively low. In most natural photos, there is at least one face directly looking to the camera which would have high correlations, therefore, when the relative threshold is applied the low correlations in the tilted heads will fall below it. The next photos show two examples of this problem. The first photo shows the detected faces, and the second one the result image from which they have been detected.


2) Face occlusion: The algorithm performs poorly if a face is partially hidden by another object. This happens because the correlation in the hidden part will be lower, as it does not correspond to a face, providing a total lower correlation value. The following photo is an example of this problem (and also from the number (1)).


3) False positives: Although the software has a relatively low false positive probability, they still appear in some photos. Typically they show up in hands as they have the skin color and, if the face side is small, they produce significant correlations too. The next two photos are examples of false positives. In the second photo, there is a combination of problems, as the maximum correlation is low and therefore the relative threshold is low, producing false positives.


4) Daylight photos: The performance of the software is degraded for some daylight photos. This is due to the combination of two factors. First, the variety of possible shades in under daylight conditions is a challenge for this kind of algorithms because most of the templates are photos taken with flash and they do not show all possible shades. Second, the skin color can change with the light, and, as most of the templates are taken under flash light, colors may be different. The following photo is an example in which the algorithm had problem recognizing the skin color.


5) Low light photos:Those photos taken under low light conditions pose a severe challenge for face recognition. These photos are very noisy, so the colors are degraded. This degradation has two effects: first, the skin color is not correctly recognized, so the automatic color recognition may attenuate the correlations instead of enhancing them. Second, the 'a' and 'b' matrixes are very noisy and many features are lost, leading to low correlation values. The next photo is a good example of this kind of problem. In this photo the algorithm fails to detect the presence of faces, so the boxes are in red. The second image shows which points are detected as skin color, as previously explained, many points in the face are not correctly recognized. The final image is the result from which faces have to be detected. However note that in this case, even the white point is below the absolute face threshold.


6) Automatic size recognition failure: The algorithm is supposed to be able to find out what are the sizes of the faces in the photo. However, the algorithm assumes that all the faces have the same sizes, which is the usual case in most natural photos, but it is not in some of them (like people seating along a table). Moreover, the algorithm only tries 11 different sizes, so if a face is in the between two of those sizes the software may fail to recognize the correct size. In these cases, the software tends to use the smallest size, as it has fast variations that are usually present in the photos and induce higher correlation values. In these cases the result image is usually below the absolute face recognition threshold. The next photo is an example of what happens when the algorithm does not recognize the correct size. In this case, the photo did not go over the absolute face threshold so even the white points in the result image are quite low.

Automatic clustering Go back to the indexFuture improvements