Information about the Face Detection

This face detector is a component-based face detector. First it detects the components i.e., nose, mouth, left eye, and right eye, then it uses graph algorithms to detect the faces based on the component detections. The advantage of the component based face detection, compared to holistic approaches, is a higher robustness especially in cases where parts of the face are occluded.

overview of the system

Component Detection

The four face components are detected, using a cascade of boosted classifiers. The classifiers work with Haar-like features. A modified version of the OpenCV Haar detection algorithm is used in this demo, which is based on the paper by Viola and Jones [1] and extended by Lienhardt [2,3].

In real-world applications it is possible that some of the components cannot be detected because of occlusions, which may be caused by sunglasses, scarfs, or beards. Nevertheless, a component-based face detector is able to detect the face even in such situations, because some of the components still can be detected reliably.

Graph Algorithms

In order to achieve this robustness several graph algorithms are applied to the detected components. First a graph is built out of them. Each detection is represented by a vertex and pairs of vertices are connected, if they seem to belong to one face, based on certain criteria. Then a connected component analysis separates possible faces and an error-tolerant graph matching algorithm checks if the configuration of the face components is likely to be a face.

It cannot be guaranteed that every face component has been detected and therefore it is very likely that some of the face components are missing in the connected components which are supposed to be a face. If there are at least two face components, the other, missing components can be estimated.

Note that the error-tolerant graph matching algorithm and the estimation of the missing componentts is only applied on the connected components, which helps to improve the speed significantly.

Further Processing

Based on the coordinates of the detected and estimated face components the bounding boxes of the whole faces are generated. These bounding boxes represent the detected faces and are the output given to the user.

[1] Viola, Paul ; Jones, Michael: Rapid Object Detection using a Boosted Cascade of Simple Features. In: Proc. Conf. on Computer Vision and Pattern Recognition, 2001

[2] Lienhart, Rainer ; Maydt, Jochen: An Extended Set of Haar-like Features for Rapid Object Detection. In: Proc. of the IEEE Conf. on Image Processing (ICIP 02), 2002, S. 155162

[3] Lienhart, Rainer ; Kuranov, A. ; Pisarevsky, V.: Empirical analysis of detection cascades of boosted classifiers for rapid object detection. In: DAGM 25th Pattern Recognition Symposium, 2003