顔認識技術のまとめ:従来の方法からディープラーニングまで

顔認識技術のまとめ:従来の方法からディープラーニングまで

1970 年代以来、顔認識はコンピューター ビジョンと生体認証の分野で最も研究されているトピックの 1 つとなっています。最近では、手作業で作成された機能と従来の機械学習技術に基づく従来のアプローチは、非常に大規模なデータセットを使用してトレーニングされたディープ ニューラル ネットワークに置き換えられています。本稿では、従来の方法(ジオメトリベース、全体論的、特徴ベース、ハイブリッド)とディープラーニング方法の両方を含む、一般的な顔認識方法の包括的かつ最新の文献レビューを紹介します。

導入

顔認識とは、画像やビデオ内の被写体の身元を識別または確認できる技術を指します。 ***顔認識アルゴリズムは1970年代初頭に誕生しました[1,2]。それ以来、顔認証の精度は大幅に向上し、現在では指紋認証や虹彩認証など、従来より堅牢であると考えられてきた生体認証方法よりも顔認証が好まれるようになりました[3]。顔認識が他の生体認証方法よりも普及している大きな違いの 1 つは、顔認識が本質的に非侵襲的であることです。たとえば、指紋認識ではユーザーがセンサーに指を押し付ける必要があり、虹彩認識ではユーザーがカメラに非常に近づく必要があり、音声認識ではユーザーが大声で話す必要があります。対照的に、最新の顔認識システムでは、ユーザーがカメラの視野内にいることだけが求められます(カメラから適切な距離にいることも前提としています)。これにより、顔認識は最もユーザーフレンドリーな生体認証方法となります。これは、監視システムなど、ユーザーがシステムと協力することを想定していない環境にも導入できるため、顔認識の潜在的な用途が広がることも意味します。顔認識の他の一般的な用途としては、アクセス制御、不正行為検出、身元認証、ソーシャル メディアなどがあります。

制約のない環境で展開される場合、顔認識は、現実世界の顔画像の多様性が高いため、最も困難な生体認証方法の 1 つです (このような顔画像は、多くの場合、野生の顔と呼ばれます)。顔画像のバリエーションには、頭の姿勢、年齢、遮蔽物、照明条件、顔の表情などがあります。図 1 にこれらの状況の例を示します。

図 1: 自然な顔画像に見られる典型的な変化。 (a) 頭の姿勢、(b) 年齢、(c) 照明、(d) 表情、(e) 遮蔽。

顔認識技術は長年にわたって大きな変化を遂げてきました。従来のアプローチは、手作業で作成された特徴 (エッジやテクスチャ記述子など) と機械学習技術 (主成分分析、線形判別分析、サポート ベクター マシンなど) の組み合わせに依存しています。制約のない環境におけるさまざまな変動に対して堅牢な特徴を手動で設計することは困難であるため、研究者はこれまで、さまざまな年齢に対応できる方法[4,5]、さまざまな姿勢に対応できる方法[6]、さまざまな照明条件に対応できる方法[7,8]など、変動の種類ごとに専用の方法の研究に重点を置いてきました。最近、従来の顔認識方法は、畳み込みニューラル ネットワーク (CNN) に基づくディープラーニング方法に置き換えられました。ディープラーニング手法の主な利点は、非常に大規模なデータセットでトレーニングできるため、これらのデータの特徴となる固有の機能を学習できることです。インターネット上で入手可能な大量の自然な顔画像により、研究者は現実世界のさまざまなバリエーションを含む大規模な顔データセット[9-15]を収集できるようになりました。これらのデータセットを使用してトレーニングされた CNN ベースの顔認識方法は、トレーニング中に使用される顔画像の現実世界の変動に対応できる顔画像の堅牢な特徴を学習できるため、非常に高い精度を実現しています。さらに、コンピューター ビジョンにおけるディープラーニング手法の人気の高まりも顔認識研究の発展を加速させており、CNN は物体検出と認識、セグメンテーション、光学文字認識、顔の表情分析、年齢推定など、他の多くのコンピューター ビジョン タスクの解決にも使用されています。

顔認識システムは通常、次の構成要素で構成されます。

  • 顔検出。顔検出器は、画像内の顔の位置を見つけるために使用され、顔がある場合は、各顔を含む境界ボックスの座標を返します。図3aに示すように。
  • 顔の位置合わせ。顔の位置合わせの目的は、画像内の固定位置にある一連の参照ポイントを使用して、顔画像を拡大縮小およびトリミングすることです。このプロセスでは通常、ランドマーク検出器を使用して顔のランドマークのセットを検索する必要があります。また、単純な 2D アライメントの場合は、参照ポイントに最も適合するアフィン変換を検索する必要があります。図 3b と 3c は、同じ参照点セットを使用して位置合わせされた 2 つの顔画像を示しています。より複雑な3Dアライメントアルゴリズム([16]など)では、顔の正面化、つまり顔のポーズを正面に調整することもできます。
  • 顔の表現。顔表現段階では、顔画像のピクセル値が、テンプレートとも呼ばれるコンパクトで識別可能な特徴ベクトルに変換されます。理想的には、同じ被写体のすべての顔が類似の特徴ベクトルにマッピングされる必要があります。
  • 顔マッチング。顔照合ビルディング ブロックでは、2 つのテンプレートを比較して、同じ被写体に属する可能性を示す類似度スコアを生成します。

図 2: 顔認識の構成要素。

顔の表現は顔認識システムにおいて最も重要な要素であると多くの人が信じており、これは本論文のセクション 2 でも焦点となっています。

図3: (a) 顔検出器によって検出された境界ボックス。 (b) および (c): 位置合わせされた面と参照点。

ディープラーニング手法

畳み込みニューラル ネットワーク (CNN) は、顔認識に最も一般的に使用されるディープラーニング手法です。ディープラーニング手法の主な利点は、大量のデータを使用してトレーニングできるため、トレーニング データの変動に対して堅牢な顔の表現を学習できることです。このアプローチでは、クラス内のさまざまなタイプの違い (照明、ポーズ、表情、年齢など) に対して堅牢な特定の機能を設計する必要はなく、トレーニング データからそれらを学習できます。ディープラーニング手法の主な欠点は、トレーニングに非常に大きなデータセットが必要であり、これらのデータセットには、未知の例に一般化できるほど十分なバリエーションが含まれている必要があることです。幸いなことに、自然な顔画像を含む大規模な顔データセットがいくつか公開されており[9-15]、これを使用してCNNモデルをトレーニングすることができます。ニューラル ネットワークは、識別機能を学習するだけでなく、次元を削減し、分類器としてトレーニングしたり、メトリック学習方法を使用したりすることもできます。 CNN はエンドツーエンドのトレーニング可能なシステムと見なされており、他の特定の方法と組み合わせる必要はありません。

顔認識用の CNN モデルは、さまざまな方法を使用してトレーニングできます。その 1 つは、問題を分類問題として扱うことです。この場合、トレーニング セット内の各対象はクラスに対応します。トレーニング後、モデルは分類層を削除し、前の層の特徴を顔の表現として使用することで、トレーニングセットに存在しない被写体を認識するために使用することができます[99]。ディープラーニングの文献では、これらの特徴はボトルネック特徴と呼ばれることがよくあります。この最初のトレーニングフェーズの後、モデルは、ターゲットアプリケーションのボトルネック機能を最適化するために、他の手法(ジョイントベイズ[9]の使用や、異なる損失関数[10]を使用したCNNモデルの微調整など)を使用してさらにトレーニングすることができます。顔の表現を学習するもう一つの一般的なアプローチは、顔のペア[100,101]または顔のトリプレット[102]間の距離メトリックを最適化することによってボトルネック特徴を直接学習することです。

顔認識にニューラルネットワークを使用するという考えは新しいものではありません。 1997年には早くも研究者らが顔検出、目の位置特定、顔認識のための「確率的決定ベースニューラルネットワーク(PBDNN)」[103]と呼ばれる初期の手法を提案した。顔認識 PDBNN は、隠れユニットの数を減らして過剰適合を回避するために、トレーニング対象ごとに完全に接続されたサブネットワークに分割されます。研究者らは、密度とエッジの特徴を別々に使用して 2 つの PBDNN をトレーニングし、それらの出力を組み合わせて最終的な分類決定を得ました。もう一つの初期のアプローチ[104]は、自己組織化マップ(SOM)と畳み込みニューラルネットワークを組み合わせたものでした。自己組織化マップ[105]は、教師なしで訓練され、入力空間の位相特性を維持しながら入力データを低次元空間にマッピングするニューラルネットワークの一種です(つまり、元の空間で近い入力は出力空間でも近いです)。これら2つの初期のアプローチはどちらもエンドツーエンドでトレーニングされておらず([103]ではエッジ機能が使用され、[104]ではSOMが使用されている)、提案されているニューラルネットワークアーキテクチャも浅いことに注意してください。 [100]は顔認識のためのエンドツーエンドのCNNを提案した。このアプローチは、シャムアーキテクチャを使用し、トレーニングに対照損失関数[106]を採用しています。この対照損失は、同じ主題に対応する特徴ベクトルのペア間の距離を最小化し、異なる主題に対応する特徴ベクトルのペア間の距離を最大化することを目的としたメトリック学習プロセスを使用します。この方法で使用される CNN アーキテクチャも浅く、トレーニング データセットも小さくなります。

上記の方法は、主にトレーニングに不十分なネットワークと比較的小さなデータセットを使用したため、画期的な結果を達成できませんでした。これらのモデルがスケールアップされ、大量のデータを使用してトレーニングされて初めて[107]、顔認識のための高度なディープラーニング手法[99,9]が現在の最先端技術に到達しました。特に注目すべきは、顔認識のための最も初期のCNNアプローチの1つであるFacebookのDeepFace [99]であり、非常に強力なモデルを使用してLFWベンチマークで97.35%の精度を達成し、以前の最高性能のエラー率を27%削減しました。研究者らは、ソフトマックス損失と 440 万の顔のデータセット (4,030 人の被験者から) を使用して CNN をトレーニングしました。この論文には2つの新しい貢献がある:(1)明示的な3D顔モデリングに基づく効率的な顔位置合わせシステム、(2)従来の畳み込み層とは異なり、画像内の各領域から異なる特徴を学習できる局所的に接続された層[108,109]を含むCNNアーキテクチャ。同時に、DeepIDシステム[9]は、10の領域、3つのスケール、RGBまたはグレースケールチャネルを含むパッチで60の異なるCNNをトレーニングすることで同様の結果を達成しました。テストフェーズでは、各タイルから 160 個のボトルネック特徴が抽出され、水平反転と合わせて 19200 次元の特徴ベクトル (160×2×60) が形成されます。 [99]と同様に、提案されたCNNアーキテクチャもローカルに接続された層を使用します。検証結果は、CNNによって抽出された19200次元の特徴ベクトルに対してジョイントベイズ分類器[48]を訓練することによって得られた。システムのトレーニングに使用されたデータセットには、10,177人の著名人の顔画像202,599枚が含まれています[9]。

CNN ベースの顔認識方法の場合、精度に影響を与える主な要素は、トレーニング データ、CNN アーキテクチャ、損失関数の 3 つです。ほとんどのディープラーニングアプリケーションでは、過剰適合を防ぐために大規模なトレーニング セットが必要になるためです。一般に、分類タスク用にトレーニングされた CNN の精度は、クラスあたりのサンプル数が増えるにつれて向上します。これは、クラス内差異が多いほど、CNN モデルがより堅牢な特徴を学習できるためです。しかし、顔認識の場合、トレーニング セットには見られない対象に一般化できる特徴を抽出することに興味があります。したがって、モデルがより多くのクラス間の違いを学習できるように、顔認識のデータセットにも多数の被験者が含まれている必要があります。 [110]はデータセット内の被験者数が顔認識の精度に与える影響を研究した。この研究では、まず大規模なデータセットを、被験者あたりの画像数に応じて降順に並べ替えました。その後、研究者らは被験者の数を徐々に増やしながら、トレーニングデータのさまざまなサブセットを使用して CNN をトレーニングしました。最も多くの画像を持つ 10,000 人の被験者でトレーニングを行ったときに、最高の精度が達成されました。被写体を追加すると、追加する被写体ごとに利用できる画像が非常に少なくなるため、精度が低下します。別の研究[111]では、データセットの幅が広いほど良いのか、それともデータセットの深さが深いほど良いのかを調査しました(データセットに被験者が多く含まれている場合は、データセットの幅が広いとみなされ、同様に、被験者あたりの画像が多い場合は、データセットの深さが深いとみなされます)。研究では、画像の数が同じであれば、データセットの幅が広いほど精度が高くなるという結論が出ました。研究者たちは、データセットが広ければクラス間の差異も多く含まれ、未知の対象に対してより適切に一般化できるためだと考えている。表 1 は、顔認識 CNN のトレーニングに最も一般的に使用される公開データセットの一部を示しています。

表 1: 公開されている大規模な顔データセット。

顔認識用の CNN アーキテクチャは、ImageNet Large Scale Visual Recognition Challenge (ILSVRC) で優れたパフォーマンスを示したものから多くのインスピレーションを得ています。例えば、[11]では16層のVGGネットワ​​ーク[112]のバージョンが使用され、[10]では同様の小規模なネットワークが使用されました。 [102]では、VGGスタイルのネットワーク[112]とGoogleNetスタイルのネットワーク[113]という2つの異なるタイプのCNNアーキテクチャが検討されました。両方のネットワークは同等の精度を達成していますが、GoogleNet スタイルのネットワークのパラメータは 20 倍少なくなっています。最近では、残差ネットワーク(ResNet)[114]が顔認識[115–121]を含む多くの物体認識タスクで好まれる選択肢となっている。 ResNet の主な革新は、図 7 に示すように、残差マッピングを学習するためにショートカット接続を使用するビルディング ブロックを導入したことです。ショートカット接続を使用すると、レイヤー間での情報の流れが容易になるため、研究者はより深いアーキテクチャをトレーニングできます。 [121]は、さまざまなCNNアーキテクチャに関する包括的な研究を実施しました。精度、速度、モデルサイズの間の最良のトレードオフは、残差モジュール([122]で提案されたものに類似)を備えた100層のResNetを使用することで得られます。

図7: [114]で提案された元の残差モジュール。

CNN 手法のトレーニングのための損失関数の選択は、最近、顔認識における最も活発な研究分野となっています。ソフトマックス損失で訓練されたCNNは非常に成功しているにもかかわらず[99、9、10、123]、この損失関数を使用すると、訓練セットに登場していない被験者にうまく一般化できないと考える研究者もいます。これは、ソフトマックス損失がクラス間の分散を増やす特徴を学習するのに役立ちますが(トレーニング セット内で異なるクラスを区別できるようにするため)、必ずしもクラス内の分散を減らすわけではないためです。研究者たちはこの問題を軽減するためのいくつかの方法を提案しています。ボトルネック特徴を最適化する簡単な方法は、[9,124,125,126,10,127]で行われたように、ジョイントベイズ[48]などの判別部分空間法を使用することです。別のアプローチは、メトリック学習を使用することです。例えば、[100,101]では対比損失が唯一の教師信号として使用され、[124-126]では分類損失も使用されました。顔認識に最も一般的に使用されるメトリック学習法はトリプレット損失関数[128]であり、[102]で顔認識タスクに初めて使用されました。トリプレット損失の目的は、正のペア間の距離と負のペア間の距離を一定のマージンで分離することです。数学的に言えば、各トリプルiに対して、次の条件を満たす必要がある[102]。

ここで、x_a はアンカー イメージ、x_p は同じ被写体のイメージ、x_n は異なる被写体のイメージ、f はモデルによって学習されたマッピング、α は正のペアと負のペア間の距離に課されるマージンです。実際には、トリプレット損失でトレーニングされた CNN は、トレーニング セット全体をカバーするために多数のトリプレット (または対照損失のペア) が必要になるため、ソフトマックスでトレーニングされた CNN よりも収束が遅くなります。この問題は、トレーニングフェーズ中にハードトリプレット(つまり、マージン条件に違反するトリプレット)を選択することで軽減できますが[102]、一般的な方法は、最初のトレーニングフェーズでソフトマックス損失を使用してトレーニングし、2番目のトレーニングフェーズでトリプレット損失を使用してボトルネック機能を調整することです[11、129、130]。研究者らは、トリプレット損失のいくつかの変種を提案している。例えば、[129]はユークリッド距離の代わりにドット積を類似度メトリックとして使用しました。[130]は確率的トリプレット損失を提案しました。[131,132]は、正例と負例のスコアの分布の標準偏差も最小化するトリプレット損失の修正版を提案しました。識別特徴を学習するためのもう一つの損失関数は[133]で提案された中心損失である。中心損失の目的は、ボトルネック特徴とそれに対応するクラスの中心との間の距離を最小化することです。ソフトマックス損失とセンター損失を共同トレーニングに使用することで、CNN によって学習された特徴はクラス間の差異 (ソフトマックス損失) を効果的に増加させ、クラス内の個々の差異 (センター損失) を減らすことができることが結果からわかります。対照損失やトリプレット損失と比較すると、中心損失の利点は、トレーニング中にペアやトリプレットを構築する必要がないため、より効率的で実装が簡単なことです。関連するもう一つのメトリック学習法は[134]で提案された範囲損失であり、これは不均衡なデータセットでのトレーニングを改善するために提案された。範囲損失には 2 つの要素があります。クラス内損失コンポーネントは、同じクラスのサンプル間の k 平均距離を最小化し、クラス間損失コンポーネントは、各トレーニング バッチ内の 2 つの最も近いクラス センター間の距離を最小化します。これらの極端なケースを使用すると、各クラスで使用可能なサンプルの数に関係なく、範囲損失では各クラスに同じ情報が使用されます。中心損失と同様に、範囲損失は損失がゼロになるのを避けるためにソフトマックス損失と組み合わせる必要がある[133]。

異なる損失関数を組み合わせるときに生じる困難の 1 つは、それぞれの関数間の適切なバランスを見つけることです。最近、研究者らは、ソフトマックス損失を他の損失と組み合わせることなく識別機能を学習できるように修正するいくつかの方法を提案しました。ボトルネック特徴の識別力を高めることが示されているアプローチの1つは、特徴正規化です[115,118]。例えば、[115]では特徴量をL2ノルムが1になるように正規化することを提案し、[118]では特徴量を平均0、分散が1になるように正規化することを提案した。成功したアプローチは、ソフトマックス損失の各クラス間の決定境界にマージンを導入することであった[135]。簡単にするために、ソフトマックス損失を使用したバイナリ分類のケースを紹介します。この場合、各クラス間の決定境界(バイアスがゼロの場合)は次のように表されます。

ここで、x は特徴ベクトル、W_1 と W_2 は各クラスに対応する重み、θ_1 と θ_2 はそれぞれ x と W_1 および W_2 の間の角度です。上記の式に乗法マージンを導入することで、これら 2 つの決定境界をより厳密にすることができます。

図 8 に示すように、このマージンにより、カテゴリ間の区別度と各カテゴリ内のコンパクトさが効果的に高まります。このマージンを損失にどのように統合するかに応じて、研究者はさまざまな方法を提案してきました[116,119-121]。例えば[116]では重みベクトルが単位ノルムを持つように正規化されており、決定境界は角度θ_1とθ_2のみに依存します。加法コサイン残差は[119,120]で提案された。乗法マージン[135,116]と比較すると、加法マージンは実装と最適化が容易です。この研究では、重みベクトルの正規化に加えて、特徴ベクトルも[115]と同様に正規化およびスケーリングされます。 [121]では別の加法残差が提案されており、[119,120]と同じ利点があるが、残差が余弦ではなく角度に追加されるため、より優れた幾何学的解釈が得られる。表 2 は、マージン付きソフトマックス損失のさまざまなバリエーションの決定境界をまとめたものです。これらの方法は、顔認識における現在の最先端技術です。

図 8: 2 つのクラス間の決定境界にマージン m を導入した場合の効果。 (a) ソフトマックス損失、(b) マージン付きソフトマックス損失。

表 2: マージン付きソフトマックス損失のさまざまなバリエーションの決定境界。これらの決定境界は、バイナリ分類の場合のクラス 1 用であることに注意してください。

[この記事は51CTOコラム「Machine Heart」、WeChatパブリックアカウント「Machine Heart(id:almosthuman2014)」によるオリジナル翻訳です]

この著者の他の記事を読むにはここをクリックしてください

<<:  2019 年に学ぶべき 10 個の機械学習 API

>>:  ディープラーニングの背後にあるさまざまなアイデアや考え方を徹底的に理解する

ブログ    
ブログ    
ブログ    

推薦する

...

...

量子コンピューティング + 人工知能 - これが未来のテクノロジーの最大のホットスポットです!

[[219586]] 1990年代初頭、ウィチタ州立大学の物理学教授エリザベス・バーマンが量子物理...

ワンクリックでコード化からコード化なしに変更できますか? AIブラックテクノロジーは本当にモザイクを除去できるのか?

モザイクは人々に嫌われており、「モザイクは人類の文明の進歩を妨げる」という諺が生まれたほどです。映画...

マイクロソフトの人工知能音声技術は「複数の感情レベル」の調整をサポートし、「人間の声」の繊細な解釈を可能にする

IT Homeは4月12日、マイクロソフトが最近、最新の音声技術を発表したと報じた。この技術は「感情...

...

2021年5月のAI資金調達活動の概要

科学技術の継続的な進歩により、インテリジェント製品は徐々に日常生活に統合され、人工知能は現代の発展の...

人工知能は企業の持続可能な発展をどのようにサポートできるのでしょうか?

人工知能の普及は社会に大きな影響を与え、私たちの仕事、生活、コミュニケーションの方法を変えました。現...

MetaはQualcommチップの使用を拒否し、そのサポートソフトウェアの成熟度に疑問を呈している

クアルコムは、計算能力とエネルギー効率の点で優れたチップを備えた、世界最大のスマートフォンプロセッサ...

...

ニューラルスタイル転送アルゴリズムで絵を描くことを学習する人間は、芸術分野で人工知能に負けるのでしょうか?

人工知能はますます多用途になり、すでに私たちの仕事のすべてを人工知能が引き継ぐことができるようです。...

ミッドジャーニー創設者:著作権の問題に対する解決策は今のところなく、AI生成画像はアーティストに取って代わることを意図したものではない

ミッドジャーニー火災以降、アーティストの道はますます狭くなっていった。最近、Midjourney や...

ビッグデータ処理における人工知能の活用方法

人工知能はビッグデータを処理するための最も理想的かつ効果的な方法です。私たちの世界はビッグデータに浸...