« Previous - Version 17/22 (diff) - Next » - Current version
Anthony Rowe, 10/04/2007 02:04 am

Viola Jones Face Detector

The Viola-Jones sample project that comes with the CMUcam3 is an example of a lightweight
face detector. The algorithm is based on the well known
paper “Robust Real-Time Face Detection” by P. Viola and M. Jones from 2004 [viola-ijcv04.pdf "r1"]. The implementation on the CMUcam3 will return coordinates for boxes where it detects a face in the image. If you test this code with a relatively uniform background (like a white wall), it works reasonably well. The images are trained from the CMU face database such that they generalize to all faces. Sometimes certain faces with features not found in the database can confuse the detector.

Image(face.jpg) Image(face1.jpg)

[viola-ijcv04.pdf "r1"] introduces a novel technique to detect faces in real-time and with very high
detection rate. It is essentially a feature-based approach in which a classifier is trained for
Haar-like rectangular features "[6"] selected by "[AdaBoost"]. The test image is scanned at
different scales and positions using a rectangular window, and the regions which pass the
classifier are declared as faces. One of the major contributions of this paper is the
extremely rapid computation of these features using the concept of Integral Image, which
enables the detection in real-time. Additionally, instead of learning a single classifier and
computing all the features for all the scanning windows in the image, a number of
classifiers are learnt which are put together in a series to form a cascade. The classifiers
in the beginning of the cascade are simpler and consist of smaller numbers of features.
However, as one proceeds in the cascade, the classifiers become more complex. A region
is reported as detection only if it passes all the classifier stages in the cascade. If it is
rejected at any stage, it is discarded and not processed further. This way, the easier
patches in the image which the “cascade of classifiers” is sure of not being a face, are
rejected very early while the difficult regions are operated on by more complex
classifiers. This greatly speeds up the detection process without compromising on the
accuracy and provides high detection rate. This overall system provides performance
comparable to the existing best face detector systems (Rowley et al., 1998 [CVPR00.pdf "r2"];
Schneiderman and Kanade, 2000 [nips00.pdf "r3"]; Roth at al., 2000 [rowley-ieee.pdf "r4"]) but with orders of magnitudes
faster than any of these systems. On a conventional desktop, it can detect faces at 15
frames per second.

More information on the Viola-Jones face detector and its CMUcam3 implementation can be found in our CC3 Face Detector document.

Extra Utilities and Images

viola-ijcv04.pdf - Viola-Jones, IJCV 2005 (316.6 kB) Anthony Rowe, 05/19/2007 09:27 am

rowley-ieee.pdf - Neural network-based face detection, Rowely, 1998 (522 kB) Anthony Rowe, 05/19/2007 09:28 am

CVPR00.pdf - A statistical method for 3D object detection applied to faces and cars, Schneiderman, ICCV, 2000 (1.8 MB) Anthony Rowe, 05/19/2007 09:30 am

nips00.pdf - A snow based face detector, Roth, NIPS, 2000 (229 kB) Anthony Rowe, 05/19/2007 09:32 am

generate_feat_in_struct_for_C.m - Feature Generation Matlab File (3.6 kB) Anthony Rowe, 05/19/2007 09:37 am

face.jpg - Sample Face 1 (29.9 kB) Anthony Rowe, 05/19/2007 09:51 am

face1.jpg - Sample Face 2 (30.9 kB) Anthony Rowe, 05/19/2007 09:51 am

get_scaled_feature.m (3.1 kB) Anthony Rowe, 10/04/2007 02:01 am