18

顔認証用の C++ アプリケーションを開発しています。まず、顔を検出し、画像を前処理する必要があります。

  1. 顔検出には、HaarCascadeClassifier を使用しました。問題は、このツールまたはこのアルゴリズムが、髪と背景の一部を包み込む少し大きな長方形によって検出された顔の領域を提供することです。この長方形の寸法を変更する解決策はありますか? 「frontalfacecascaadclassifier.xml」を使用しました。
  2. 顔の前処理については、この手法とまったく同じように顔の位置合わせを行いたいと考えています。これを達成するにはどうすればよいですか?
4

9 に答える 9

18

与えられた画像で目の正確な位置を見つけることは簡単ではありません。OpenCVで目を見つけるためのHaarカスケードは、あまりにも多くの誤検知を生成して有用ではありません。さらに、このアプローチは画像の回転に対して堅牢ではありません(ただし、わずかな回転を補正する可能性がありますが、トレーニング画像はわかりません)。もし私があなたなら、この研究分野の関連論文をhttp://scholar.google.comで幅優先探索を開始します。

顔画像を位置合わせするには、堅牢な頭のポーズ推定が必要です。私は自分でいくつかの調査を行いましたが、ここではアルゴリズムとコードを共有することが役立つと思います。私が見た中で最も興味深いアプローチは次のとおりです。

于 2012-04-15T06:05:32.313 に答える
8

次に、別の Haar 分類器を使用してそれぞれの目を見つけることはできませんか (目は非常に簡単に見つけることができます)、その人に 2 つの目があり、目が水平であることを意味する「水平な」顔を定義します。

両目の間の長さを測り、その角度だけ画像を回転させるだけです。

angle = atan ( eye1.Y - eye2.Y ) / (eye1.X - eye2.X )
于 2012-04-13T15:36:41.387 に答える
6

Labeled Faces in the Wild プロジェクト ページから次の顔の位置合わせコードを試しました。これは非常にうまく機能し、顔の特徴点を検出する必要はありません。C++ コードは、http: //vis-www.cs.umass.edu/faceAlignment/からダウンロードできます。

それでも顔のキー ポイントを見つけたい場合は、Viola-Jones 検出器が堅牢で正確ではないことがわかります。個人的には、Flandmark 顔キーポイント検出器 ( http://cmp.felk.cvut.cz/~uricamic/flandmark/ ) を使用することをお勧めします。これは、はるかに堅牢で正確です。Cコードは上記サイトからダウンロードできます。

于 2012-12-11T07:05:06.240 に答える
4

顔の位置合わせの最先端のアプローチは次のとおりです

教師付き降下法とそのフェイス アライメントへの応用 X. Xiong と F. De la Torre in CVPR 2013

それは非常に高速で効果的です。プロジェクトのウェブサイトIntraFaceを確認できます。

使いやすいソフトウェアを提供します。ただし、コア部分のコード、つまり教師付き降下法 (SDM)は公開されておらず、簡単に実装できる単純な線形回帰のみです。

傾いた顔を処理できることを示すデモはこちらです (プライバシーの問題のため、ぼかしを追加し、左上隅の軸に注意してください): https://drive.google.com/file/d/0BztytuqPViMoTG9QaEpZWi1NMGc/edit ?usp=共有

于 2014-02-19T13:13:38.420 に答える
1

ずれている顔を検出すると、顔認識が難しくなります。配置を修正したい場合もあれば、正しく配置されていないものを除外するだけで十分な場合もあります (たとえば、ビデオ ストリームで顔を検出している場合)。私は後者のアプローチを採用し、特別な Haar Cascade をトレーニングして、正しく位置合わせされた明るい顔だけを検出しました。詳細はこちら: http://rwoodley.org/?p=417 .

私のカスケードを使用している場合は、それがどのように機能するか教えてください. 他の人がどのような結果を得るか興味があります。それは私のニーズを満たしました。

于 2013-05-21T13:42:51.227 に答える
0

CSIRO 顔分析 SDK (ウェブサイトとデモソース コード) ソフトウェアを見てください。顔の位置合わせを行い、66 の基準点で追跡します。高速で非常に正確です。

于 2014-02-16T07:19:18.023 に答える
0

これを達成するためのアルゴリズムを一日中探した後、ヘムラータらによる「顔の特徴と傾いた顔の傾斜角を見つけることによる顔検出」を見つけました。Google から DuckDuckGo に切り替えた後。45 度を超える角度で傾いている顔をサポートします。

コードにどのように実装するかについては、現在取り組んでいる別の問題ですが、少なくともこれは出発点です。

于 2014-02-16T12:44:22.557 に答える