プログラムはどのような流れを経ますか?
2 に答える
非常に大まかに言えば、処理段階は次のようになります。
- 顔の位置を検出する
- 顔を正規化する
- 検出された顔ごとに特徴を収集する
- 機能を機械学習アルゴリズムにフィードする
ステップ1は通常、従来のViola&Jones顔検出アルゴリズムを使用して実行されます。非常に高速で信頼性があります。
手順1で見つかった面は、明るさ、コントラスト、サイズが異なる場合があります。処理を簡素化するために、それらはすべて同じサイズにスケーリングされ、露出の違いはステップ2で補正されます(たとえば、ヒストグラム均等化を使用して)。
ステップ3には多くのアプローチがあります。初期の顔検出器は、特定の位置(目の中心、鼻の端、唇の端など)を見つけ、それらの間の幾何学的な距離と角度を認識の特徴として使用しようとしました。私が読んだところによると、これらのアプローチは非常に高速でしたが、それほど信頼できるものではありませんでした。
より最近のアプローチである「固有顔」は、顔の画像をベース画像の線形結合として近似できるという事実に基づいています(PCAを通じて大量のトレーニング画像から検出されます)。この近似の線形係数は、特徴として使用できます。このアプローチは、顔の一部(目、鼻、口)に個別に適用することもできます。すべての画像間のポーズが同じである場合に最適に機能します。一部の顔が左を向いている場合、他の顔が上を向いている場合は、うまく機能しません。アクティブな外観モデルは、フラットな2D画像ではなく、完全な3Dモデルをトレーニングすることで、その影響に対抗しようとします。
ステップ4は比較的簡単です。各顔とトレーニング中に取得した顔画像の一連の番号があり、現在のテスト顔に「最も類似している」トレーニング顔を見つけたいと考えています。それが機械学習アルゴリズムが行うことです。最も一般的なアルゴリズムはサポートベクターマシン(SVM)だと思います。他の選択肢は、例えば、人工ニューラルネットワークまたはk最近傍法です。機能が良ければ、MLアルゴリズムの選択はそれほど重要ではありません。
主題に関する文献:
- コンピュータービジョン-アルゴリズムアプリケーションは、顔検出、顔認識、機械学習(他の多くの主題の中でも)を扱います。それはかなり新しいので、最新の研究をカバーしています。また、優れた参考文献もあります。
- コンピュータビジョンのテンプレートマッチング技術は、顔認識へのテンプレートマッチングアプローチを詳細に扱います。
- そして、あなたはグーグル学者を使ってたくさんの研究記事を見つけることができます。