2009-05-25 25 views
19

私はロバストな顔検出アルゴリズム/ライブラリを探しています。C言語が好きです(C++は大丈夫ですが、必要ならば移植できる他の言語もあります)。私は過去にOpenCVの実装を使用しましたが、私はそれが回転に不変ではないと思います。リアルタイムである必要はありませんが、恐ろしいほど遅くならないようにしてください(おそらく1枚あたり1〜2秒で問題ありません)。高信頼性を求め、多くの偽陽性ではありません。誰も良い実装を知っていますか?C/C++でのロバストな顔検出?

+4

@mark: "速く、安く、正確にすることができます;任意の2つを選ぶ"あなたは月を求めているように正直に見えます。 – Tarrant

+5

@ヴェルガン:私は速くて安価ではありませんでした。正確な顔検出は、50ミリ秒以下で実行できます。私はそれが約2000年かかることができると言った。それは全く質問していない。 – mpen

+1

パターン認識は、特に写真のような単一の角度から作業する場合、非常に難しい問題です。それはヒット&ミスのすべての方法:(合理的に)マグショットの大丈夫です。フルカラーの群衆撮影には(不可能なほど)難しい。 – slashmais

答えて

9

OpenCV Wikiの顔検出については、Haar-like featuresを使用してください。

@floppydisk:この男は顔検出のためにこれらのHaarのような機能を実装する別のprojectを投稿しました。

概念は理解しにくいものではなく、自分で実装することもできます。 は、おそらく最も難しい部分は、ブーストされた分類器のカスケードを構築している(ただし、OpenCVのは容易に実装され、そのすべてを持っている!)

アフィン変換に対して不変行うことができ、顔検出に使用することができますいくつかの他の方法は次のとおりです。

SVD/PCAと
1

唯一のことは、Visionics FaceItです。それはかなりうまくいったが、私が最後に知っていたのは、非常に、非常に、非常に遠い(ビールのように、またはスピーチのように)

+1

"無料"も良いと言わなければならない。 FaceItは顔認識ソフトウェアに見えます....私はオープンソースのアルゴリズムを探しています。 – mpen

5

あなたはこのライブラリを見てみ試みることができる:それが回転しているテストケースの面の一つに示し

http://vasc.ri.cmu.edu/NNFaceDetector/

。あなたが見ることができるように、それは論文として行われたので、もしあなたが好きであれば、その論文も読むことができます。

+0

Hm ...リコール回数は約80%ですが、誤検出率は低い(高精度)。それが良いかどうかわからないのですか?ああ、これをコンパイルすることができれば十分です。ありがとう:) – mpen

+0

- 高精度はとにかく私にとって重要です。残りの20%には必要に応じて手動でタグを付けることができますが、私は今までに95%以上の料金を得ることができると考えていました。おそらく私は間違っている。 – mpen

+0

これは64ビットのUbuntuでコンパイルするのが好きではありません。 – mpen

2

オーバーコードプロジェクトでは、誰かが顔認識用プロジェクトのdetailed descriptionとプロジェクトのC++ソースコードと、彼が使用したライブラリへのリンクを投稿しました。彼のアルゴリズムは、色の違いを使って肌のパッチを見つけ、19x19ピクセルの写真が顔にマッチするかどうかを調べることに焦点を当てています。私は顔認識のためのすべてのライブラリに精通していませんが、彼のコードのいくつかを読んで、多くのメソッドと関数の名前にCVを持っているので、彼はOpenCVライブラリを使用しているかもしれませんが、 100%確かではありません。しかし、彼は自分のアプリケーションとソースファイルについて多くの説明をしているので、良い出発点になるかもしれません。

+1

彼は彼自身のCVライブラリを構築しようとしているかもしれません。私は彼がopencvの一部を切り取っていたかもしれないと思っていたが、実際には何も示していない。彼は98%の精度を誇っていますが、それは主に自分の顔で訓練されテストされています。ローテーションについて何も言及していない...彼はより詳細な評価をして欲しい。精密リコールカーブは素晴らしいです。まあ、ありがとう。私も試してみることができます...私が知っているすべてのために非常に良いかもしれません。 – mpen

+1

私は98%の正確さを主張する男の方が良い統計を持っています。 99.99999999999嘘つきか、訓練されている。顔の認識はそれほど正確ではなく、たとえ最高のシステムが正確でないとしても。 – monksy

3

マーク - あなたはOpenCVのは、それぞれ比較した後、90 °を回転させ、4つの比較やってからあなたを妨げる何回転

に不変ではないかもしれないと言いますか?

+0

それを防ぐものはありません。これは有効な回答です;) – mpen

1

私は顔の検出にHaarの機能を使用していませんが、私はeigenfaces/pcaよりも顔を検出する方が効果的かもしれないことを覚えています。

顔の回転に関する問題について私は問題を抱えています。私の考えは、あなたが形状マッチングを試み、オブジェクトを修正しようとするかもしれないということです。試して、通常のヘッドアスペクト比に向けるようにしてください。私はEigenfaceとの私のプロジェクトではそれほど遠かったことはありませんでしたが、それがどのように機能するか教えてください。それはmatlabで簡単にする必要があります。 :P