<< Chapter < Page Chapter >> Page >
  1. Extract HAAR features of a face from a set of positive and negative training images.
  2. Use adaptive boosting machine learning to train a multistage, or cascade, classifier against positive and negativeHAAR features.
  3. Apply a final cascade classifier to a loaded image or real time video frame.

Due to the resource capacity necessary to train a full facial recognition classifier, we used a pre-trained frontal face cascadeclassifier and used OpenCV’s object detection library, which encapsulates the algorithm above, and whose theorydetailed in the following sections.

Haar feature extraction

In mathematics analysis, Haar wavelets are a sequence of rescaled, square-like functions. In image processing, Haarfeatures are so named for their resemblance to Haar wavelets. Haar features are regularities identified in all human faces, bycomparing light and dark gradients across the face. These are split into edge (two-rectangle) features, line (three-rectangle)features, and diagonal (four-rectangle) features.

Each feature is obtained by comparing the pixel intensity in the white boxes against the pixel intensity in the dark boxesfor a wide sample of sub-windows across the entire image. A 24x24 pixel image window can produce over 160,000 featuresthat need to be classified, in some sense, oversampling the face.

The rectangle features can be computed by splitting the image into sub-windows called integral images. An integralimage at a point i'(x, y) is the sum of all pixels to the top and to the left of that point.

Since an integral image includes all previously-computed integral images contained in its window, in the image of Figure21, the region A can be computed as

Any such rectangular sum can be computed using four array references.

Fig. 20. example application of haar features on a face

Example application of HAAR features on a face

Fig. 21. integral image on a face

Integral image on a face

Cascade classifier training

It’s far too resource intensive to evaluate over 160,000 images for each 24x24 pixel window. However, we can takeadvantage of the fact that only a very small fraction of extracted sub-windows in an uncropped image will correspond to13 accurate facial features. To do so, we use a cascaded variationof the Adaptive Boosting (or AdaBoost) machine learning algorithm. AdaBoost aims to determine the optimal binarythreshold of HAAR features which best separate negative and positive samples.

Algorithm 4: adaboost classifier training

AdaBoost classifier training

From one pass at the AdaBoost algorithm, it is clear that running hundreds of thousands of features on millions ofsamples will be too computationally intensive. However, most features in a general, uncropped image do not correspond toa face. This allows us to set up a cascaded variant of the AdaBoost algorithm.

In cascading, all the features are grouped into several stages, where each stage checks for a certain amount of features. It’sset up such that the most common facial features are grouped into the earliest cascade stages. This allows us to discardmost non-facial regions early on and only spend successive computations on potentially positive regions. If a region failsduring a stage, it is discarded, the cascade training stops, and then resets at the next potentially positive region. This vastlyimproves resource and time efficiency of classifier training.

Get Jobilize Job Search Mobile App in your pocket Now!

Get it on Google Play Download on the App Store Now




Source:  OpenStax, Elec 301 projects fall 2015. OpenStax CNX. Jan 04, 2016 Download for free at https://legacy.cnx.org/content/col11950/1.1
Google Play and the Google Play logo are trademarks of Google Inc.

Notification Switch

Would you like to follow the 'Elec 301 projects fall 2015' conversation and receive update notifications?

Ask