Techniques

 

Home

 

Different approaches:

There are many ways to detect a face in a scene - easier and harder ones. Here is a list of the most common approaches in face detection:

Finding faces in images with controlled background:

This is the easy way out. Use images with a plain monocolour background, or use them with a predefined static background - removing the background will always give you the face boundaries. The rest is easy going...

Finding faces by color:

If you have access to color images, you might use the typical skin color to find face segments. The disadvantage: doesn't work with all kind of skin colors, and is not very robust under varying lighting conditions...

  1. Explanation of basic color extraction for face detection  
  2. Face detection in color images (includes some source code) 
  3. Face detection in color images using PCA  
  4. Skin color detection under changing lighting conditions
  5. Face detection and recognition in color images with a complex background (PhD Work from 2003)
  6. Computer Vision and Human Skin Colour (Moritz Stoerring's PhD from 2004)

Finding faces by motion:

If you are able to use real-time video, you can use the fact that a face is almost always moving in reality. Just calculate the moving area, and here you go. Disadvantages: What if there are other objects moving in the background?

  1. Explanation of basic motion detection for face finding
  2. Blink detection: human eyes are simultaneously blinking; this can be used to find and normalize faces

Using a mixture of the above:

Combining several good approaches normally yields an even better result. Here are some works on that:

  1. A mixture of color and 3D
  2. A mixture of color and background removal

Finding faces in unconstrained scenes:

Well here we go - this is the main thing, the top of them all, the most complicated thing maybe in whole object recognition: Given a black and white still image, where is the face? Humans can do it, so where's the perfect algorithm that can do it, too? Here are some works on it:

  1. Neural Net approach
  2. Neural Nets using statistical cluster information
  3. Model-based Face Tracking
  4. There seems to be a revival of edge-based methods, using geometric models. Two top performing methods have been published in the early 2000s:

    Fröba, Küblbeck: Audio- and Video-Based Biometric Person Authentication, 3rd International Conference, AVBPA 2001, Halmstad, Sweden, June 2001. Proceedings, Springer. ISBN 3-540-42216-1.

    Jesorsky, Kirchberg, Frischholz: Audio- and Video-Based Biometric Person Authentication, 3rd International Conference, AVBPA 2001, Halmstad, Sweden, June 2001. Proceedings, Springer. ISBN 3-540-42216-1. (See also Geometric model for face finding using the modified Hausdorff distance)

    Kirchberg, Jesorsky, Frischholz: International ECCV Workshop on Biometric Authentication, Springer, Lecture Notes in Computer Science, LNCS-2359, pp. 103-111, Copenhagen, Denmark, June 2002. 

     

  5. Weak classifier cascades
  6. The breakthrough in face detection happened with Viola & Jones. Using a cascade of "weak-classifiers", using simple Haar features, can - after excessive training - yield impressive results. This approach is now the most commonly used algorithm for face detection. A basic implementation is included in OpenCV.

    Paul Viola, Michael J Jones: International Journal of Computer Vision 57, pp. 137-154, Netherlands, 2004. 

    A nice visualization of the algorithm can be found here.

     

 

The Face Detection Homepage. By Robert W. Frischholz