2012-04-25 7 views
-1

私はOpenCVで初心者です。私は顔を正常に検出しました。今私がしようとしているのは、2つの異なる画像の顔を一致させ、真偽値を返すことです。どのように私はopenCVでC++を使ってこれを行うことができますか?異なる画像からの顔のマッチング

答えて

2

顔認識は高度な方法です。

このために捧げられたウェブサイトがあります:http://www.face-rec.org/

それは顔認識を行うために研究論文、アルゴリズムなどが多く含まれています。あなたはグーグルで同様のサイトを見つけることができます。

この目的のために使用される2つの一般的な方法は以下のとおりです。

1.固有の顔:

はこれを理解するために、ウィキペディアの通路が良いです下回っ:

A set of eigenfaces can be generated by performing a mathematical process called principal component analysis (PCA) on a large set of images depicting different human faces. Informally, eigenfaces can be considered a set of "standardized face ingredients", derived from statistical analysis of many pictures of faces. Any human face can be considered to be a combination of these standard faces. For example, one's face might be composed of the average face plus 10% from eigenface 1, 55% from eigenface 2, and even -3% from eigenface 3. Remarkably, it does not take many eigenfaces combined together to achieve a fair approximation of most faces. Also, because a person's face is not recorded by a digital photograph, but instead as just a list of values (one value for each eigenface in the database used), much less space is taken for each person's face.

第32固有顔の顔(http://www.shervinemami.info/faceRecognition.htmlから取得)

enter image description here

このメソッドのC++実装はhttp://www.shervinemami.info/faceRecognition.htmlにあります。

2.フィッシャーは顔:

これは、線形判別分析と呼ばれる別の方法を使用しています。

http://www.scholarpedia.org/article/Fisherfacesは、例えば:第4フィッシャーは

enter image description here

最後に画像の顔、あなたがthis pdf.からそれらに関するすべての詳細コードを見つけることができますし、そのC++の実装を見つけることができます詳細について が訪問しますthis github repo

上記の実装は、バージョン2.4-beta以降のOpenCVメインストリーム(View changelog here)に追加されました。コードもOpenCV 2.4-betaに付属のcpp samplesに含まれています。

+0

+1恐ろしい質問ですが、この回答は面白くて教育的です(私にとっても)。あなたは毎日OpenCVで働いていますか? – karlphillip

+0

ええ、私は時間を費やすことが他にありません。 –

関連する問題