私はOpenCVで初心者です。私は顔を正常に検出しました。今私がしようとしているのは、2つの異なる画像の顔を一致させ、真偽値を返すことです。どのように私はopenCVでC++を使ってこれを行うことができますか?異なる画像からの顔のマッチング
答えて
顔認識は高度な方法です。
このために捧げられたウェブサイトがあります: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から取得)
このメソッドのC++実装はhttp://www.shervinemami.info/faceRecognition.htmlにあります。
2.フィッシャーは顔:
これは、線形判別分析と呼ばれる別の方法を使用しています。
http://www.scholarpedia.org/article/Fisherfacesは、例えば:第4フィッシャーは
最後に画像の顔、あなたがthis pdf.からそれらに関するすべての詳細コードを見つけることができますし、そのC++の実装を見つけることができます詳細について が訪問しますthis github repo。
上記の実装は、バージョン2.4-beta以降のOpenCVメインストリーム(View changelog here)に追加されました。コードもOpenCV 2.4-betaに付属のcpp samplesに含まれています。
+1恐ろしい質問ですが、この回答は面白くて教育的です(私にとっても)。あなたは毎日OpenCVで働いていますか? – karlphillip
ええ、私は時間を費やすことが他にありません。 –