7

私は、一貫した方法で撮影された他の人の写真のデータベースを前提として、人のそっくりさんを見つけようとする個人的なプロジェクトを行っています-カメラを直接見ている人、ニュートラルな表情、頭を傾けない人(パスポート写真を考えてください) )。

顔に2D座標のマーカーを配置するシステムがありますが、このアプローチでその顔に似たものを見つけるための既知のアプローチがあるかどうか疑問に思いました。

次の顔認識アルゴリズムを見つけました:http: //www.face-rec.org/algorithms/

しかし、そっくりさんを見つけるという特定のタスクを扱っているものはありません。

御時間ありがとうございます。

4

3 に答える 3

6

「顔認識」だけでなく「顔認証」で検索してみてもいいと思います。これにより、より関連性の高い結果が得られる場合があります。

厳密に言えば、この 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 つのヒストグラムに結合します。これが特徴ベクトルとして使用されます。したがって、ローカル バイナリ パターンは統計量であり、一緒に結合されたヒストグラムは特徴ベクトルです。彼らは一緒にあなたの顔の「質感」と顔のパターンを説明しました.

お役に立てれば。

于 2013-01-03T05:52:09.637 に答える
0

これら 2 つは同等の問題のように思えますが、私は現場で働いていません。基本的に次の 2 つの問題があります。

  1. 顔認識: 顔を撮影して、人物と照合します。

  2. 似た顔を探す: 顔を撮って似た顔を見つけようとします。

これらは同等ではありませんか?(1) では、所有者と一致させたい写真から始めて、それをあなたが知っている各人物の参照写真のデータベースと比較します。(2) では、参照データベース内の画像を選択し、データベース内の他の画像に対してその画像に対して (1) を実行します。

アルゴリズムは 2 枚の写真が同一人物のものである可能性を測定するように見えるので、(2) では、測定値を降順に並べ替えて、上位のヒットを選択するだけです。

于 2013-01-03T04:47:08.740 に答える
0

使用しているアプローチが何であれ、最初にデータベース内のすべての画像を分析する必要があると思います。次に、特定の画像を比較して統計的に最も近いものを見つけることができる、各画像の一連のメトリックを用意する必要があります。

たとえば、目の間の距離を測定できれば、同じ距離にある顔を見つけることができます。次に、全体的に最も一致する顔を見つけて、それを返すことができます。

于 2013-01-03T04:58:32.227 に答える