合成した顔画像による顔認識用の新たな大規模データセット「DigiFace-1M」
3つの要点
✔️ 従来の顔認識用データセットで指摘されているプライバシーの侵害や同意の未取得の問題を解消
✔️ 合成した顔画像の顔認識用のデータセットとして最大規模、11万人122万枚
✔️ 合成した顔画像による最新の顔認識モデルSynFaceよりも高い精度を達成
DigiFace-1M: 1 Million Digital Face Images for Face Recognition
written by Gwangbin Bae, Martin de La Gorce, Tadas Baltrusaitis, Charlie Hewitt, Dong Chen, Julien Valentin, Roberto Cipolla, Jingjing Shen
(Submitted on 5 Oct 2022)
Comments: WACV 2023
Subjects: Computer Vision and Pattern Recognition (cs.CV)
code:
本記事で使用している画像は論文中のもの、紹介スライドのもの、またはそれを参考に作成したものを使用しております。
概要
ここ2〜3年、大規模データセットが整備されたことによって、顔認識関連タスクの精度が著しく向上しました。顔認識モデルがより多くの人を認識するためには、より多くの人物の顔画像(人数)を学習する必要があります。また、より高い汎用性を得るためには、各人物に対して多くの種類の顔画像(画像数/人)を学習する必要があります。例えば「MS1MV2」は、8.5万人による580万枚の顔画像(約68枚/人)で構成されています。また「Face260M」は、400万人による2億6000万枚の顔画像(約65枚/人)で構成されています。
しかし、一方で、大規模データセットに対して多くの問題が指摘されています。1つはプライバシーの問題です。従来の大規模データセットの多くは、データセットに含まれる人数を増やすために、インターネット上で有名人の顔画像を収集しています。また、Flickrなどで公開されている顔画像も利用しています。しかし、本来、これらの画像は顔認識モデルの学習データとして提供されているものではなく、同意を得ていません。そのため、プライバシーの侵害などの批判を受けています。いくつかのデータセットは利用者が制限されています。今後もこのような動きが広がる可能性があります。
もう1つは、ラベルノイズの問題です。インターネット上で有名人の名前で検索し、検索結果に表示される顔画像を収集するなどしているため、間違った顔画像が含まれていることが多々あります。これらは、顔認識モデルの学習にはノイズとなり、性能の低下を招きます。最後は、データバイアスの問題です。こちらもインターネット上で有名人の顔画像を収集することに起因しますが、一般の人の顔画像と比べると化粧や照明などが特殊な条件です。また、白人が多い傾向にあります。例えば、大規模データセット「CASIA-WebFace」では、85%が白人です。
以上のように、従来の大規模データセットには多くの問題があります。そこで、注目されているのが、合成した顔画像によるデータセットです。
DigiFace-1Mとは
この論文では、Woodらによって発表された手法を利用して顔画像を合成しています(詳しくはこちらの記事で紹介しています)。同意を得て取得した511人の顔の3Dスキャンデータをグラフィクスパイプラインで処理、顔のジオメトリとテクスチャのパラメトリックなモデルを構築し、顔の形状・顔の向き・表情・テクスチャ・髪・アクセサリー (服、メイクアップ、メガネ、頭と顔の着用)などをランダムに変更して精巧かつ多様な顔画像を合成しています。下図が、データセットに含まれている合成した顔画像のサンプルです。
この論文では、11万人からなる122万枚の顔画像(約11枚/人)を生成していますが、画像の生成と保存のコスト次第でさらに大規模なデータセットを構築することが可能です。
データセットの構成
11万人からなる122万枚の顔画像(約11枚/人)で構成されるデータセットですが、2つのデータセットで構成されています。
1つは、1万人からなる72万枚の顔画像で構成されています。各人物に対して、4セットのアクセサリーの組み合わせを用意し、各セットに対して、カメラ条件や顔の向き、表情、撮影環境が異なる画像を18枚合成しています。つまり、各人物に対して72枚(=4×18)を合成しています。こちらは、一人の人物に対して、さまざまな条件の顔画像が用意されているため、学習させることで汎用性の向上が見込めます。
もう1つは、10万人からなる50万枚の顔画像で構成されています。各人物に対して、1セットのアクセサリーの組み合わせを用意して、各セットに対して、カメラ条件や顔の向き、表情、撮影環境が異なる画像を5枚合成しています。つまり、各人物に対して5枚(=1×5)を合成しています。こちらは、一人の人物に対する画像枚数は少ないですが、対象人物の多いため、より多くの人物を見分ける精度の向上が見込めます。各人物に対するアクセサリーの組み合わせ(サンプル)は下図のようになります。服・メガネ・化粧・フェイスウェア(マスクなど)・ヘッドウェア(帽子など)がランダムに適用されています。また、髪の毛や髭なども色・濃さなどがランダムに適用されています。下図は、各行が同じ人物になっており、それぞれの人物に対して、4パターンのアクセサリーの組み合わせています。
そして、これらの各アクセサリーの組み合わせに対して、下図のようにカメラ条件や顔の向き、表情、撮影環境が異なる画像が合成されています。1つ目のデータセットでは18枚、2つ目のデータセットでは5まい合成されています。
本物の顔画像を代替するために、合成した顔画像を作成しているため、できるだけ本物の顔画像を同じ条件の画像を用意することが求められます。本物の顔画像は、顔の一部が隠れていたり、使用するカメラに固有の歪みやノイズがありますが、合成した顔画像には、これらが存在しません。そこで、このようなドメインギャップを軽減するためにデータ拡張も行っています。下図のように、Raw Imageに対して、Flip&Crop(反転&切り取り)、Appearance(ノイズやぼやけ)、Wraping(ズラし&歪みなど)を加えています。
データ拡張の影響
下表はデータ拡張の影響を検証した結果です。データ拡張をしたデータセット(赤枠)において、精度(Accuracy)が向上していることがわかります。また、特に、顔の向きのバリエーションが多いデータセット (CFP-FPとCPLFW)で向上していることがわかります。
データセットの構成(人数 vs. 画像数/人)
下表は、データセットに含まれる2つのユニットの割合を変化させながら、精度を比較しています。画像数/人(images/ID)の比重が多いデータセットから、人数(IDs)の比重が多いデータセットに徐々に変化させています。下図の結果から、2つのユニットを混合すると、一方のユニットのみを使用するよりも精度が向上することがわかります。
顔認識モデルがより多くの人を認識するためには、より多くの人物の顔画像(人数)を学習する必要があります。また、より高い汎用性を得るためには、各人物に対して多くの種類の顔画像(画像数/人)を学習する必要があります。画像/IDの数が異なる2つのユニットを混合することは両方の効果を最大限に活かす効率的な方法と考えられます。
SOTA(SynFace)との比較
合成した顔画像で学習した最新の顔認識モデル「SynFace」と性能を比較しています。SynFaceでは、DiscoFaceGANを使用して、1万人からなる50万枚の顔画像を合成しています(詳しくはこちらの記事で紹介しています)。
下表(1行目〜3行目)が結果です。SynFaceと、この論文で合成した顔画像で学習した顔認識モデル(Ours)を比較すると、全てのデータセットに対してSynFaceを大幅に上回っていることがわかります。なお、Avg†は、LFW、CFP-FP、CPLFWの平均です。
さらに、4万枚の本物の顔画像(Real images)を加えて性能を評価しています。これは、本人の同意を得て、ラベルノイズやデータバイアスを除外できる現実的な枚数を想定しています。上表(4行目〜6行目)が結果です。こちらも全てのデータセットに対してSynFaceを大幅に上回っていることがわかります。さらに、上表(1行目〜3行目)と比較して分かるように、本物の顔画像を含めることで精度が向上しています。ここでは、合成した顔画像で事前学習した後に、本物の顔画像でFinetuneしています。
特に、AgeDBとCALFWで大きな精度の向上が見られ、この論文では、この2つのデータセットは、他のデータセットよりも特に大きなドメインギャップがあると考えられるとしています。この論文で合成された顔画像では、経年変化がうまく反映されていないため、今後、加味してデータセットをアップデートする必要があるとしています。ちなみに、上記で触れている少数の本物の顔画像を加えた場合の性能について、加える本物の顔画像の枚数と精度の関係を検証した結果は下図のようになります。合成した顔画像のみで学習した場合の精度推移(黒破線、Train on SX)、少量の本物の顔画像のみで学習した場合の推移(赤線、Train on Real)、合成した顔画像と本物の顔画像を混ぜたデータで学習した場合の推移(青線、Dataset Mixing)、合成した顔画像で事前学習した後、本物の顔画像でFine-tuneした場合の推移(黒線、Train on SX & Finetune on Real)を表しています。
本物の顔画像に含まれる人数を200人から2,000人まで変化し、各人物ごとに20枚の画像をサンプリングしています。この図から、全てのデータセットにおいて、合成した顔画像で事前学習したネットワークを本物の顔画像でFinetuneする方法が最も精度が高いことがわかります。プライバシーの問題などで少数の本物の顔画像しか用意できない場合、この論文で紹介している合成顔画像のデータセットを利用することで、精度(Accuracy)を大幅に向上させることができます。
まとめ
この論文では、グラフィックスパイプラインを使用して、合成した顔画像による大規模なデータセットを構築しています。そして、SOTAであり、同じく合成した顔画像で学習した顔認識モデル「SynFace」よりも、はるかに優れた精度(Accuracy)を達成しています。また、SynFaceは、DiscoFaceGANを利用しており、このGANの学習の際に、たくさんの「本物の顔画像」を利用しています。つまり、従来の大規模データセットで指摘されているプライバシー侵害や同意の未取得、ラベルノイズ、データバイアスに大きく依存しています。
一方で、この論文で提案する大規模データセットは、本人の同意を得た511人の3Dスキャンデータを利用しています。そのため、従来の大規模データセットで指摘されている問題に依存しません。また、今回は詳しく触れられていませんが、合成する顔画像の表情などの属性情報も制御できるため、従来よりも高品質なデータセットの構築が可能になります。今後も、このような合成データによるデータセットの整備が進むことで、プライバシーに配慮し、より安心・安全に高性能な顔認識モデルの開発を進めることができると期待されます。なお、この論文で公開している大規模データセットはこちらで確認できます。
この記事に関するカテゴリー