Viola Jones 顔検出器#

CMUcam3 に付属する Viola-Jones サンプルプロジェクトは、軽量な顔検出器の例です。このアルゴリズムは、2004 年の P. Viola と M. Jones による有名な論文「Robust Real-Time Face Detection」(viola-ijcv04.pdf)に基づいています。CMUcam3 上の実装は、画像内で顔を検出した箇所のボックスの座標を返します。比較的均一な背景(白い壁など)でこのコードをテストすると、かなりうまく動作します。画像は CMU 顔データベースから学習されており、あらゆる顔に一般化されるようになっています。データベースにない特徴を持つ特定の顔は、検出器を混乱させることがあります。

Sample Face 1 Sample Face 2

The paper (viola-ijcv04.pdf) 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 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; Schneiderman and Kanade, 2000 nips00.pdf; Roth at al., 2000 rowley-ieee.pdf) but with orders of magnitudes faster than any of these systems. On a conventional desktop, it can detect faces at 15 frames per second.

Viola-Jones顔検出器とそのCMUcam3実装に関する詳細は、私たちの CC3 Face Detector ドキュメントで見つけることができます。

追加のユーティリティと画像

  • generate_feat_in_struct_for_C.m

    • この Matlab ファイルは、学習した adaboost モデルをテキストファイルに出力し、vj.h に簡単にインポートできるようにします

  • get_scaled_feature.m

    • generate_feat_in_struct_for_C.m で使用されるファイル

  • viola-jones 顔検出器に使用したテスト画像