「顔認識」だけでなく「顔認証」で検索してみてもいいと思います。これにより、より関連性の高い結果が得られる場合があります。
厳密に言えば、この 2 つは科学文献では実際には異なるものですが、顔認識ではひとくくりにされることもあります。それらの違いといくつかのサンプル コードの詳細については、こちらをご覧ください: http://www.idiap.ch/~marcel/labs/faceverif.php
ただし、目的のためには、Edvard や Ari などの他の人が親切に提案したものも有効です。基本的に、彼らは K 最近傍スタイルの顔認識分類器を提案しています。まず、おそらくそれを試すことができます。まず、データベース内の各顔画像の特徴ベクトルを計算します。使用できる機能の 1 つは、Local Binary Pattern (LBP) です。グーグルでコードを見つけることができます。クエリ画像についても同じことを行います。次に、すべての特徴ベクトルをループし、ユークリッド距離を使用してそれらをクエリ イメージのベクトルと比較し、K 個の最も近いものを返します。
上記の方法は簡単にコーディングできますが、面が整列していない場合 (拘束されていないポーズとして知られている) は一般に失敗するため、より洗練された方法ほど堅牢ではありません。「ラベル付きの顔」を検索して確認してください。この問題に対する最新技術の結果)、または異なる環境条件下で撮影されたもの。ただし、データベース内の顔が整列され、言及したのと同様の条件下で撮影された場合、それはうまくいくかもしれません. それらが整列していない場合は、計算できると述べた顔のキーポイントを使用して、顔を整列させることができます。一般に、位置合わせされていない顔を比較することは、コンピューター ビジョンでは非常に難しい問題であり、現在でも非常に活発な研究分野です。しかし、似ている顔と同じポーズの顔だけを類似していると見なすと (つまり、
あなたが提供した Web サイトには、Eigenfaces と Fisherfaces のコードへのリンクがあります。これらは基本的に、顔画像の特徴ベクトルを計算するための 2 つの方法です。顔は、クエリ画像の特徴ベクトルに最も近い特徴ベクトル (それぞれ PCA と LDA を使用して計算) を使用して、データベース内の顔の K 最近傍検索を実行することによって識別されます。
また、Fisherfaces メソッドでは、顔を識別するためにデータベース内の顔の「ラベル」が必要になることにも言及する必要があります。これは、Fisherfaces で使用される分類方法である線形判別分析 (LDA) が、類似した顔と遠く離れた類似した顔の特徴ベクトルを射影する射影行列を計算するために、この情報を必要とするためです。次に、これらの射影されたベクトルに対して比較が実行されます。顔認識と顔検証の違いは次のとおりです。認識のためには、データベース内のトレーニング画像に「ラベル」を付ける必要があります。つまり、それらを識別する必要があります。検証のために、指定された 2 つの顔が同一人物のものであるかどうかを確認しようとしているだけです。多くの場合、「ラベル付き」は必要ありません
Eigenfaces と Fisherfaces を計算するためのコードは、使用する場合に備えて OpenCV で利用できます。
補足として: 特徴ベクトルは、実際には線形代数の意味での単なるベクトルです。それは単純に n 個の数字を詰め込んだものです。「特徴」という言葉は、「統計」のようなものを指します。つまり、特徴ベクトルは、それが表すオブジェクトを特徴付ける統計を含むベクトルです。たとえば、顔認識のタスクの場合、最も単純な特徴ベクトルは、顔のグレースケール画像の強度値になります。その場合、数値の 2D 配列を 1 列ベクトルの行に再形成し、各エントリには 1 ピクセルの値が含まれます。ここでのピクセル値は「特徴」であり、ピクセル値の nx 1 ベクトルが特徴ベクトルです。LBP の場合、大まかに言えば、画像内のピクセルの小さなパッチでヒストグラムを計算し、これらのヒストグラムを 1 つのヒストグラムに結合します。これが特徴ベクトルとして使用されます。したがって、ローカル バイナリ パターンは統計量であり、一緒に結合されたヒストグラムは特徴ベクトルです。彼らは一緒にあなたの顔の「質感」と顔のパターンを説明しました.
お役に立てれば。