AIモデルとプラットフォーム

DeepFaceを用いた高度な顔認識

mm
Unite.AI を Google の優先ソースに追加

顔認識は、AIとMLの分野で数年間トレンドとなっている分野であり、顔認識の文化的および社会的な影響は広範囲にわたる。ただし、人間の視覚システムと機械の間にはパフォーマンスのギャップがあり、顔認識の応用を制限している。

このパフォーマンスのギャップを克服し、人間レベルの精度を達成するために、MetaはDeepFaceという顔認識フレームワークを導入した。DeepFaceモデルは、大規模な顔データセットで訓練されており、既存のフレームワークよりも優れたパフォーマンスを実現する可能性がある。また、DeepFaceフレームワークは、他のシステムが数千の顔の外観特徴を生成するのとは対照的に、コンパクトな顔の表現を生成する。

提案されたDeepFaceフレームワークは、Deep Learningを使用して、大規模なデータセットで訓練される。データセットには、画像、ビデオ、グラフィックスなどのさまざまな形式のデータが含まれる。DeepFaceネットワークアーキテクチャは、整列が完了した後、各顔の領域の位置がピクセルレベルで固定されることを前提としている。したがって、他のフレームワークで行われるように、複数の畳み込み層を使用することなく、生のピクセルRGB値を使用することができる。

現代の顔認識フレームワークの従来のパイプラインは、4つの段階で構成される:検出、整列、表現、分類。DeepFaceフレームワークは、明示的な3D顔モデルを使用して、ピースワイズ変換を適用し、9層の深層ニューラルネットワークを使用して顔の表現を導出する。DeepFaceフレームワークは、以下の貢献を試みている

  1. 大規模なデータセットを利用して、他のデータセットに一般化できる顔の表現を生成するための効果的なDNN(Deep Neural Network)アーキテクチャを開発する。
  2. 明示的な3Dモデリングを使用して、効果的な顔の整列システムを開発する。

DeepFaceモデルの動作の理解

顔の整列

顔の整列は、画像を眼の角度に従って回転する技術である。顔の整列は、顔認識の前処理データとして使用される一般的な実践であり、顔の整列されたデータセットは、正規化された入力を提供することで、認識アルゴリズムの精度を向上させるのに役立つ。ただし、制限なしで顔の整列を行うことは、非剛性の表現、体のポーズ、など複数の要因が関与するため、困難なタスクとなる。複数の高度な整列技術、例えば顔の分析的な3Dモデルを使用したり、外部データセットから特徴点を検索したりすることが、開発者が課題を克服するのを助けるかもしれない。

整列は、制限なしの顔の検証と認識に対する最も一般的な方法であるが、現在、完璧な解決策は存在しない。3Dモデルも使用されるが、特に制限なしの環境で作業する場合、過去数年でその人気は大幅に低下している。ただし、人間の顔は3Dオブジェクトであるため、正しく使用すると、適切なアプローチとなるかもしれない。DeepFaceモデルは、特徴点を使用して顔の分析的な3Dモデリングを生成するシステムを使用する。次に、この3Dモデリングは、顔の作物を3Dの前面モードに歪めるために使用される。

さらに、ほとんどの整列実践と同様に、DeepFaceの整列も、整列プロセスを導くために特徴点検出器を使用する。DeepFaceモデルは、単純な点検出器を使用するが、出力を精査するために、複数のイテレーションで適用する。サポートベクターレグレッサー(SVR)によって、各イテレーションで画像記述子から特徴点を抽出する。DeepFaceの画像記述子は、LBPヒストグラムに基づいているが、他の特徴も考慮に入れる。

2D整列

DeepFaceモデルは、検出作物の中央に位置する6つの特徴点を検出して、整列プロセスを開始する。これらの点は、画像を回転、スケール、変換して、6つのアンカー位置に変換するために使用される。変換された画像は、可視的な変化がなくなると、イテレーションを繰り返す。集約変換は、2D整列されたコープを生成する。整列方法は、LFW-aで使用されている方法と非常に似ており、過去数年間にモデル精度を向上させるために使用されてきた。

3D整列

面外回転のある顔の整列を行うために、DeepFaceフレームワークは、汎用的な3D形状モデルを使用し、2D整列されたコープをその画像平面にラップするために使用できる3Dカメラを登録する。結果として、モデルは3D整列されたコープのバージョンを生成し、2D整列されたコープ内で2番目のSVRを使用して67つの特徴点をローカライズすることによって実現される。

モデルは、3D形状に67のアンカー点を手動で配置し、3D参照と対応する特徴点の間で完全な対応を達成する。次のステップでは、既知の共分散行列を持つ線形システムの一般化された最小二乗解を使用して、3Dから2Dへのアフィンカメラを追加する。特定の損失を最小化する。

前面化

非剛性変形と完全な視点投影がモデル化されていないため、適合された3Dから2Dのカメラは、近似としてのみ機能する。重要なアイデンティティを担う要因を最終的な歪みに汚染することを減らすために、DeepFaceモデルは、各特徴点のx-y成分に対応する残差を加算する。歪みのためにアイデンティティを歪めることを避けるために、緩和は妥当である。そうでない場合、顔は3Dの同じ形状に歪み、重要な識別要因を失うことになる。

最後に、モデルは、67つの特徴点から導出されるデラーニュトリアンギュレーションによって指示される、ピースワイズアフィン変換を使用して、前面化を達成する。

  1. 6つの特徴点を検出した顔。
  2. 2D整列されたコープ。
  3. 2D整列されたコープの67つの特徴点。
  4. 3D形状を2D整列されたコープ画像に変換したもの。
  5. 3Dから2Dのカメラに関する三角形の可視性。
  6. 3Dモデルによって導かれた67つの特徴点。
  7. 3D整列されたコープの最終バージョン。
  8. 3Dモデルによって生成された新しいビュー。

表現

訓練データの量が増加するにつれて、学習ベースの方法は、エンジニアリングされた特徴と比較して、特定のタスクに特徴を発見して最適化できるため、効率的で正確であることが証明されている。

DNNアーキテクチャと訓練

DeepFace DNNは、顔画像のアイデンティティを分類する多クラス顔認識タスクで訓練される。

上の図は、DeepFaceモデルの全体的なアーキテクチャを表している。モデルには、32個のフィルタ(11x11x3)を持つ畳み込み層(C1)があり、152×152ピクセルの3チャンネルRGB画像を入力として受け取り、32個の特徴マップを生成する。これらの特徴マップは、最大プーリング層(M2)にフィードされる。最大プーリング層は、各チャンネルごとに3×3の空間近傍の最大値を取り、ストライドは2である。次に、16個のフィルタ(9x9x16)を持つ別の畳み込み層(C3)が続く。这些層の主な目的は、低レベルの特徴 such as テクスチャやシンプルなエッジを抽出することである。最大プーリング層を使用する利点は、出力が小さなスケールのローカル変換に対してより頑健になることである。整列された顔画像に適用すると、ネットワークは小さなスケールの登録エラーに対してより頑健になる。

複数のプーリング層を使用すると、ネットワークは特定の状況に対してより頑健になるが、ネットワークは微細なテクスチャや詳細な顔の構造に関する情報を失うこともある。情報を失わないようにするために、DeepFaceモデルは、最初の畳み込み層でのみ最大プーリング層を使用する。これらの層は、モデルによって、前処理ステップとして解釈される。計算の大部分を実行するが、自身のパラメータは限られている。入力をローカル特徴のセットに拡張するだけである。

後の層(L4、L5、L6)は、ローカルに接続されており、畳み込み層と同様に、フィルターバンクを適用する。各特徴マップの位置は、ユニークなフィルタのセットを学習する。整列された画像の異なる領域には、異なるローカル統計がある。空間的定常性の仮定を保持できない。例えば、眉間と目の領域は、口と鼻の領域よりも高い識別能力を持つ。ローカル層の使用は、訓練されるパラメータの数に影響を与えるが、特徴抽出時の計算負荷には影響を与えない。

DeepFaceモデルは、最初の段階で3つの層しか使用するのは、大量のラベル付き訓練データがあるためである。ローカル層の使用は、各出力ユニットが入力データの大きなパッチに影響を受けることができるため、さらに正当化される。

最後に、上位の層は完全に接続されており、各出力ユニットはすべての入力に接続される。2つの層は、顔画像の異なる部分で捉えられた特徴間の相関を捉えることができる。例えば、口と目の位置と形状。最初の完全接続層(F7)の出力は、ネットワークによって、生の顔の表現特徴ベクトルとして使用される。モデルは、最後の完全接続層(F8)の出力を、クラスラベルに対する分布を生成するK通りのソフトマックスにフィードする。

データセット

DeepFaceモデルは、Social Face Classification(SFC)データセットを主なデータセットとして使用する。また、DeepFaceモデルは、LFWデータセットとYTFデータセットも使用する。

SFCデータセット

SFCデータセットは、Facebookの写真コレクションから学習されたもので、4030人の個人の800〜1200の顔画像が含まれる。各アイデンティティのSFCデータセットの最新の5%の顔画像は、テストのために残される。

LFWデータセット

LFWデータセットには、5000人以上の有名人の13323枚の写真が含まれており、10分割にわたる6000組の顔のペアに分割される。

YTFデータセット

YTFデータセットには、1595人の有名人の3425本のビデオが含まれており、LFWデータセットの有名人のサブセットである。

結果

前面化を使用せずに、2D整列のみを使用した場合、モデルは約94.3%の精度スコアしか達成できない。モデルが顔検出の中心コープを使用して、整列を使用しない場合、モデルは87.9%の精度スコアしか返さない。顔の領域の一部が中心コープの外に出る可能性があるためである。顔の表現の識別能力を分離して評価するために、モデルは、正規化された特徴の内積を比較するための無教師学習設定に従う。平均精度は95.92%まで向上する。

上のモデルは、DeepFaceモデルのパフォーマンスを、他の最先端の顔認識モデルと比較したものである。

上の図は、データセットのROC曲線を示している。

結論

理想的な顔認識器は、人間と同等の精度で顔認識を行うことができ、画像の品質、ポーズ、表情、照明に関係なく、高い精度を返すことができる。さらに、理想的な顔認識フレームワークは、ほとんどの変更なしにさまざまなアプリケーションに適用できる。DeepFaceは現在利用可能な最も高度で効率的な顔認識フレームワークの1つであるが、完璧ではなく、特定の状況では正確な結果を返さない可能性がある。ただし、DeepFaceフレームワークは、強力なメトリック学習技術を使用してパフォーマンスのギャップを埋め、顔認識業界における重要な里程標であり、将来的にはさらに効率化される。

職業はエンジニア、心は作家。クナルは、AIとMLを深く愛し理解しているテクニカルライターで、これらの分野の複雑な概念を魅力的で情報の多いドキュメンテーションを通じて簡素化することに尽力しています。