【連載】

コンピュータビジョンのセカイ - 今そこにあるミライ

11 「顔検出」を高速化する技術

11/85

顔検出の高速化1:単純な特徴量「Haar-Like特徴量」による識別器の使用

顔検出はデジタルカメラなどではリアルタイムに顔の位置を検出してくる必要がある処理であります。従って、できるだけ計算量の少ない特徴量を用いていながら、かつパターン認識精度の高い識別器により各探索窓ごとの処理を行う必要があるわけです。

この目的を達成するために顔検出では「Haar-Like特徴量」というシンプルな特徴量を用いてBoostingの学習する強識別器における各弱識別器を作成します。

Haar-Like特徴量の値は、探索窓中の中で計算対象である矩形中の黒色の領域のピクセル値の和の値から白色の領域のピクセル値の和の値を引いただけの非常にシンプルな値です。この矩形の配置場所は探索窓のどこにどう配置しても良い事から、探索窓中に数万通りの配置場所の可能性があることになります。

Haar-Like特徴量

従って、探索窓が例えば20×20ピクセルだとすると、Haar-Like特徴量の計算対象の矩形の位置は数万通りの候補があるわけですが、Boostingにより探索窓内の各弱識別器の重みづけ(強識別器全体の認識率が高くなるための各弱識別器の重要度)を学習で決定しておくことが可能です。

これにより、数万通りあるHaar-Like特徴量の弱識別器の内から、重要度が低いものは強識別全体の性能に影響が出ないので使わないことにし、重要度が上位の数十個の弱識別器のみを選択して強識別器を作ることができます。学習によって決定した上位数十個のHaar-Like特徴量の弱識別器による顔検出は、以下の動画のようになります。

OpenCV Face Detection: Visualized from Adam Harvey on Vimeo.


これだと、各探索窓ごとには数十回Haar-Like特徴量を計算するだけで済み、高速な判定が実現できます。このような仕組みにより「毎回の探索窓での特徴量計算コストは少なく抑えて、かつパターン認識の性能は強力であるような強識別器」をBoostingとHaar-Like特徴量により作成することが可能になるわけです。

顔検出の高速化2:「Cascade構造の識別器」を用いた、顔でない領域の早い段階の破棄

Viola-Jones法では、この「Cascade構造の識別器」を用いて探索窓ごとでの顔画像かどうかの判定を行います。Boostingにより強識別器を学習データのバリエーションを変えて作成し、それら複数の強識別器を一列にならべて1つの識別のように用いる識別器の構造を「Cascade構造の識別器」と呼びます。

Cascade構造の識別器

Cascade構造の識別器では、各強識別器により順番に顔であるかどうかの判定が行われます。各強識別器において顔判定されれば次の識別器に処理が移り、途中で顔でないと判定されればその時点でそれ以降強識別器による処理が破棄されます。途中でのどれかの強識別器で顔でないと判定されると、現在の探索窓におけるCascade構造の識別器による処理は終了です。一方でCascade構造のすべての強識別器において顔画像であると判定された場合のみ、顔画像がその位置に存在していると判定されるわけです。

この方法の何が有利かというと、Cascade構造内の前半の各識別器により顔ではない探索窓領域をほとんど排除してくれる点です。一般的な画像には、顔以外の背景部分が多いわけで、このようにCascade構造中の前半の強識別器で早めに顔以外の探索窓の判定を終えることで、全体の処理の高速化がはかれるわけです。

まとめと最近の顔検出技術の傾向

今回は、人間の顔の位置をパターン認識により特定するという、顔検出技術の仕組みを解説しました。顔検出をはじめとした物体検出技術を支えるのは今回紹介した「パターン認識と機械学習」という先端技術でした。

今回紹介したのは正面顔のデータで学習を行った識別器による正面顔の検出でしたが、横向きのデータで学習を行えば当然その横向きの姿勢の顔が検出できる識別器が作成できます。最新のデジタルカメラの顔検出機能は、正面以外の方向を向いた顔の検出にも対応してきていますが、これは顔の向きごとに識別器を作成すれば実現できるわけです。

また、顔検出の最近の新トレンドとしては「ペット顔検出」があげられます。猫や犬などのペットの顔を検出してくるわけですが、要は学習データを猫や犬の顔にしておけば、今回紹介した機械学習ベースの手法で同じように実現できるわけです。つまり顔検出の手法としてご紹介したものの、学習データさえ猫の顔や犬の顔のように他の画像に変えてしまえば、どんな物体の検出にも使える方法なのです。

顔検出は「顔認識」と連携して活きる技術ですので、今後「顔認識」の技術を紹介する際に顔検出技術との連携の話を紹介する予定です。楽しみにお待ち頂ければ幸いです。

11/85

インデックス

連載目次
第85回 点群応用(建築編) - LIDARを用いた高精度/広域3Dスキャン
第84回 点群応用(建築編) - 3Dスキャンが活きる建築物の規模
第83回 点群応用(建築編) - 高精度かつ広域な建築物の3Dスキャン
第82回 まだまだ使える人が少ない3D点群処理
第81回 3Dデータで処理を行う利点とは?
第80回 点群データを取得・解析する技術「3D点群」はデプスセンサと何が違うのか?
第79回 動きに反応して映像が変わるインタラクティブなプロジェクションマッピング
第78回 プロジェクションマッピングの原理
第77回 「プロジェクションマッピング」とはどういったものか?
第76回 顔や視線でコントロール
第75回 手や指の動きだけでコントロール
第74回 3Dジェスチャー認識のおおまかな原理
第73回 全身の人物姿勢情報を活用したアプリ例 - 腕の動きからのジェスチャー認識
第72回 Kinectはどのように人物姿勢推定の性能を向上させたのか?
第71回 Kinectの人物姿勢推定手法は学習時にどのような処理を行っているのか?
第70回 どうやってKinectは人体パーツを識別しているのか?
第69回 「人体パーツ識別技術」により実現されているKinect向け人物姿勢推定技術
第68回 まだ完全には解けていない人物姿勢推定の問題
第67回 3D人物姿勢推定の仕組みとナチュラルユーザーインタフェース
第66回 3Dデプスセンサーーを用いた注目の新ベンチャー企業(後編)
第65回 3Dデプスセンサーを用いた注目の新ベンチャー企業(前編)
第64回 アクティブステレオ方式とは違う3D形状の動画計測方式 - ToF形式
第63回 Kinectで3D撮影を行うための条件
第62回 モーションセンサとして見た場合のKinect
第61回 Kinectセンサの動作原理を読み解く
第60回 kinectを用いたビジネスのアイデアを競う「Kinect for Windows Contest」
第59回 Kinectがもたらしたセンシング革命
第58回 Kinectの登場がもたらしたコンピュータビジョン革命
第57回 Kinectなどで使われるデプスセンサを用いた3Dコンピュータビジョン技術
第56回 組込分野でのコンピュータビジョンは使いやすくなったのか(後編)
第55回 組込分野でのコンピュータビジョンは使いやすくなったのか(前編)
第54回 デジタルビデオの安定化処理の注意点
第53回 デジタルビデオの安定化処理の手順
第52回 デジタルビデオの安定化技術の概要
第51回 2種類のオプティカルフローの計算手法
第50回 画素ごと独立した移動量パラメータを割り当てる「オプティカルフロー」
第49回 パラメトリックモーション - 特定の1つの動き表現モデル
第48回 デジタルビデオ安定化技術
第47回 動画に対するシーム・カービング
第46回 メッシュ変形ベースのリターゲティング手法
第45回 重要度マップへの「主観」の追加
第44回 自動作成を行うために用いられることの多い3つの重要度マップ手法
第43回 元画像を「縮小」する時に自然にリサイズする技術 - リターゲティング
第42回 漫画カメラで使われる漫画風画像生成とトゥーンシェーディングの違い
第41回 iPhoneアプリ「漫画カメラ」で使われている画像処理手法その2
第40回 iPhoneアプリ「漫画カメラ」で使われている画像処理手法その1
第39回 iPhoneアプリ「漫画カメラ」に見るコンピュータビジョンの実応用例
第38回 パッチマッチによる画像編集の1つ - リシャッフリング
第37回 パッチ探索をランダムに実行することで高速化を目指す「パッチマッチ」
第36回 インペインティングの手法の1つ - パッチベースの手法
第35回 2つの目的で使われるコンピュータビジョンのインペインティング
第34回 人工知能/ロボット応用で使われるコンピュータビジョン技術(後編)
第33回 人工知能/ロボット応用で使われるコンピュータビジョン技術(前編)
第32回 ホモグラフィ変換における画像間のレジストレーション処理
第31回 張り合わせ先の座標系モデルと移動量の算出
第30回 各画像の「移動量」と「変形量」の算出による特徴点の対応づけ
第29回 キーポイントの検出とSIFT記述子の計算
第28回 パノラマ画像の生成手順
第27回 "画像の張り合わせ"で手軽に作れるようになったパノラマ画像
第26回 身近になったコンピュータビジョン技術を用いた写真・映像の編集技術
第25回 進むステレオカメラのDepth Mapを用いた3D道路表面モデリングの研究
第24回 車線逸脱警告システムにおけるレーン検出の仕組み
第23回 パーティクルフィルタによる観測技術
第22回 前方衝突防止システム - 人物をトラッキングする手法
第21回 前方衝突防止システム - 「平行等位ステレオ」による3次元形状復元
第20回 ビジョンべースの自動車運転手支援システム - 前方衝突防止システム
第19回 MAP推定はどのように行われるのか
第18回 超解像の計算アルゴリズム「MAP推定」
第17回 超解像で高画質化処理を担当する「ボケ補正」
第16回 入力画像が2枚以上(動画)の場合における画像レジストレーション
第15回 1枚画の静止画における画像レジストレーション
第14回 画像の劣化に対する「高解像度化」と「高画質化」のための3つの技術
第13回 超解像における劣化関数で改善すべき2種類の劣化
第12回 高解像かつ高画質の映像を作り出す技術 - 超解像
第11回 「顔検出」を高速化する技術
第10回 顔検出の主流アルゴリズム「Viola-Jones法」
第9回 人間の顔があるかを判断する「顔検出」技術(2) - テンプレートマッチング
第8回 人間の顔があるかを判断する「顔検出」技術(1) - 「顔検出」と「顔認識」
第7回 拡張現実感「AR」(3) - 「ARToolkit」の登場によりARが一気に普及期へ
第6回 拡張現実感「AR」(2) - マーカ有りARとマーカレスARの仕組み
第5回 拡張現実感「AR」(1)
第4回 動画編集技術「マッチムーブ」(3)
第3回 動画編集技術「マッチムーブ」(2)
第2回 動画編集技術「マッチムーブ」(1)
第1回 身近なものとなってきたコンピュータビジョンの世界

もっと見る



人気記事

一覧

イチオシ記事

新着記事