最新AI論文をキャッチアップ

生成した顔画像で顔認識モデルを構築する「SynFace」

生成した顔画像で顔認識モデルを構築する「SynFace」

Face Recognition

3つの要点
✔️ 生成した顔画像で顔認識モデルを構築することで、従来の大規模データセットのラベルノイズやプライバシーなどの問題を克服
✔️ 顔認識モデルを本物の顔画像と生成した顔画像で学習した時のドメインギャップを埋めるためにIdentity MixupとDomain Mixupを導入
✔️ 生成したの顔画像のデータセットにおいて、サンプル数/IDとID数の影響を分析するとID数がより重要

SynFace: Face Recognition with Synthetic Data
written by Haibo QiuBaosheng YuDihong GongZhifeng LiWei LiuDacheng Tao
(Submitted on 18 Aug 2021 (v1), last revised 3 Dec 2021 (this version, v2))
Comments:
Accepted by ICCV 2021
Subjects: Computer Vision and Pattern Recognition (cs.CV)

code:  

本記事で使用している画像は論文中のもの、紹介スライドのもの、またはそれを参考に作成したものを使用しております。

概要

近年、顔認識の大規模データセットが公開され、顔認識や顔認証の精度向上に大きく貢献しています。しかし、従来のデータセットは、顔画像を集めることが難しく、「ラベルノイズ」と「プライバシー」などの問題が指摘されています。

ラベルノイズは、顔画像に誤ったラベリングがされたデータです。従来のデータセットは、インターネット上にアップされている有名人の顔画像を中心に収集しています。ある有名人の名前の検索結果に表示される顔画像を自動で収集しています。そのため、別人の顔画像が含まれているなど、間違えたデータが紛れてしまうことがあり、これが顔認識モデルの精度に悪影響を及ぼします。また、Web上の顔画像は、決して、顔認識モデルの学習データとして公開されているわけではありません。顔画像の本人が、一切同意せず、知らぬ間に収集された顔画像が想定していた用途とは違う目的で利用されることになります。自分の顔画像が、世の中のどこかの顔認識システムの学習データをなっていると思うと、あまり気持ちのいいものではありません。当然、勝手に顔画像を利用された人たちから強い批判を受けています。

今回紹介する論文では、インターネット上で収集した顔画像ではなく、生成した顔画像を利用することで、これらの問題を解決する「SynFace」という手法を提案しています。

また、このSynFaceでは、本物の顔画像で学習した顔認識モデルと、生成した顔画像で学習した顔認識モデルのドメインギャップについても調べています。また、学習データにおける「IDごとのサンプル数」と「ID数」が顔認識モデルの精度に与えるについても調べています生成した顔画像で学習した顔認識モデルについて、包括的な評価がなされている論文です。

SynFaceとは?

SynFaceでは、主に2つの技術を利用しています。1つは、DiscoFaceGANです。これは、下図のようにランダムノイズを独立した5つの潜在要素(ID、表情、照明、顔の向き、背景)にマッピングすることで、これらの要素を制御しながら顔画像を生成できる手法です。


Disentangled and Controllable Face Image Generation via 3D Imitative-Contrastive Learningより

もう1つは、Mixupです。Mixupとは、2つのサンプルを混合して新しいサンプルを生成するデータ拡張の手法です。xixjのデータからxを生成し、それに対応するyiとyjのラベルからyのラベルを生成します。

SynFaceの全体像は下図の通りです。最初に「Mixup Face Generator」と呼ばれる部分で顔画像が生成されます。ここで「Identity Mixup」が導入されており、Mixupによって、2つのIDから新しいIDの顔画像を生成しています。後述しますが、これは同一IDの多様性を取得するために導入されています。次に「Domain Mixup」が導入されています。ここでは、生成した顔画像を本物の顔画像を混合しており、本物の顔画像と生成した顔画像のデータ分布の差を軽減しています。以上の処理によって、生成した顔画像と本物の顔画像のドメインギャップを埋め、生成した顔画像で学習した場合でも、本物の顔画像に対して高い認識精度が得られるように工夫しています。

本物の顔画像と生成した顔画像のドメインギャップ

この論文では、正解ラベルのノイズや、プライバシーの問題を解消するために、本物の顔画像ではなく、生成した顔画像を利用する方法を提案しています。有用性を確かめるためには、本物の顔画像を利用する場合と性能に違いはないのかを確認する必要があります。上記でも少し触れていますが、結果として、生成した顔画像で学習した場合と、本物の顔画像で学習した場合では、やはりドメインギャップが生じることが示されています。

ここでは、本物の顔画像で学習した顔認識モデル「RealFace」と生成した顔画像で学習した顔認識モデル「SynFace」を構築して性能を比較しています。RealFaceは、大規模データセット「CASIA-WebFace」で学習し、「LFW(Labelled Faces in the Wild)」でテストしています。SynFaceでは、生成した顔画像「Syn_10k_50」で学習し、
生成した顔画像で構成され、LFWと同じ統計を持つ「Syn_LFW」でテストしています。この2つのモデルに対して、2枚の顔画像を比較して同一人物か否かを判定するVerificationの精度(Accuracy)を比較しています。

結果は、下表の通りです。SynFaceは、生成した顔画像のデータセット「Syn-LFW」に対しては、99.85%と高い精度を示していますが、本物の顔画像のデータセット「LFW」に対しては、88.98%と精度が低くなっています。つまり、SynFaceをそのまま本物の顔画像に適用すると精度が低下しまうことがわかります。逆にRealFaceもLWFに対しては99.18%と高い精度を示す一方で、Syn-LFWには低い精度を示しています。つまり、ドメインギャップ(学習データとテストデータのデータ分布の違いによる性能差)が生じています。

 

ちなみに、Syn_LFWは、3Dの顔を再構築するモデルを使用して、LFWの画像から表情、照明、顔の向きを表す潜在要素を取得し、DiscoFaceGANに適用することで、LFWと同じデータ構成を持ったデータセットを生成しています。また、Syn_10k_50は、ここから比較に用いるCASIA-WebFaceに合わせて10,000人(=10K)、50枚/人(=50)の顔画像をサンプリングしたものです。つまり、Syn_N_Sは、NがID数、SがIDごとのサンプル数を表しています。

ドメインギャップの原因は何か

上述のRealFaceとSynFaceのドメインギャップの原因として、生成した顔画像では、同一人物に対する顔画像の多様性(Intra-class variation)が少なかったことを挙げています。下図は、CASIA-WebFace(左)、Syn_10K_50(右)のデータで、各行はすべて同一人物の顔画像です。一目では分かりにくいですが、よくみると、CASIA-WebFaceの方が、顔のブレや照明、顔の向きの種類が多いことがわかります。実際に、Syn_10K_50に対して、ブレや照明の多様性を増やすデータ拡張を行い、再度性能を評価した結果、SynFaceは、LFWに対して、88.98から91.23%に精度が向上したとしています。

また、顔の特徴ベクトルの分散をMDSを使って可視化しています(下図)。Real(緑, 実際の顔画像)とSyn(生成した顔画像)を比較すると、Synの方が分散が大きく、同一人物に対する顔画像の多様性(クラス内の距離)が低いことがわかります。

DiscoFaceGANにMixupを導入

SynFaceでは、実際の顔画像と比べると、同一人物に対する顔画像の多様性(クラス内の距離)が低く、認識精度が低下してしまうことがわかりました。この論文では、同一人物に対する顔画像の多様性(クラス内の距離)を改善するために、前述したように2つのMixupを導入しています。1つは「Identity Mixup」(下図の赤枠)です。

「Identity Mixup」では、2つの異なるIdentityを補間して新しいIdentityを持つ顔画像を生成することで、同一人物に対する顔画像の多様性を拡大しています。DisocoFaceGANにおいて、Identityに対応する潜在要素αを以下のように補間し、同時にラベルも同様の処理をしています。φを0.0から1.0の範囲から0.05区切りでランダムに適用しています。

もう1つは「Domain Mixup」(下図の赤枠)です。ここでは、生成した顔画像に本物の顔画像と混合することで、本物の顔画像との性能差を軽減しています。

合成した顔画像Xsと本物の顔画像XRとそのラベルが次のように補間されています。こちらもψを0.0から1.0の範囲から0.05区切りでランダムに適用しています。

Mixupの導入でドメインギャップを改善

下表は、Identity Mixup(IM)を導入した場合の効果を示しています。「Method」は学習データ、「LFW」はLFWでテストした時の精度、「LFW(w/IM)」はIdentity Mixupを導入した場合にLFWでテストした時の精度を表しています。なお、Methodの名称は、「(ID数)_(画像数/ID)」の形式になっています。この結果を見ると、Identity Mixupを導入することで、全ての条件において、精度が向上していることがわかります。

また、この表は、ID数(Width)と画像数/ID(Depth)の構成を変えた場合、どのような影響があるのかを調べた結果を示しています。表の(a)(b)(c)(i)を比較して、ID数(Width)の影響を見てみると、(a)から(c)では、精度が 83.85% から 88.75% に向上しています。しかし、(c)から(i)では、改善がわずかになっています。これは上述の通り、同一人物に対する顔画像の多様性(Intra-class variation)の欠如が原因だと考察されています。次に(d)〜(i)を比較して、画像数/ID(Depth)の影響を見てみると、こちらも画像数/ID(Depth)が増すにつれて、精度が大幅に向上しています。 最後に、合計の画像数が同じ(a)と(e)を比較すると、(e)の方が高い精度を示しており、データセットの画像数/ID(Depth)が画像数/ID(Depth)よりも重要な役割を果たしているといえます。(b)と(f)の比較についても同様の結果が得られています。

下表は、Domain Mixupを導入した場合の効果を示しています。Syn_10K_50がベースラインになっています。他のMethodについては、Real_(
ID数)_(画像数/ID)は、本物の顔画像を(ID数)、画像数/ID)の条件で構築したデータセット、Mix_(ID数)_(画像数/ID)は、Syn_10K_50に対して、本物の顔画像をID数)、(画像数/ID)の条件でMixupしたデータセットを表しています。

表からわかる通り、Domain Mixupが全ての場合において効果があることがわかります。Syn_10K_50よりも精度が向上していることはもちろんですが、本物の顔画像のみで学習した場合よりも精度が高くなっています。

まとめ

この論文では、生成した顔画像を使って、顔認識向けに新たな大規模データセットを構築し、その有用性を検証しています。

最初に本物の顔画像で学習した顔認識モデルと、生成した顔画像で学習した顔認識モデルの性能を比較することで、大きなドメインギャップが生じることを示しています。そして、生成した顔画像のデータセットにおいて、顔画像の多様性が少なくなっていることを示しています。

この論文では、上記の問題を解決するために、Identity MixupとDomain Mixupという2つのMixupを導入しています。これによって、顔画像の多様性が増え、ドメインギャップが軽減されています。また、データセットにおけるID数(Width)と画像数/IDDepth)が性能に与える影響も調べています。その結果、ID数(Width) を増やすことがより重要であると示しています。さらに、Domain Mixupに関する実験結果が示す通り、本物の顔画像をわずかでも、生成した顔画像とMixupすることで顔認識の精度が向上することが示されています。

顔認識の精度向上のトレンドを見ると、ここ数年、大規模な顔画像のデータセットが相次いで公開され、それに伴って、NISTなどの国際機関における検証試験でも著しい精度の向上が見られています。しかし、一方で、データノイズやプライバシーの問題が浮上しており、大規模データセットの構築と利用が難しくなっています。

この論文の成果は、大規模データセットの限界を超えるヒントになりうるものだと思います。今後、生成した顔画像による顔認識モデルの構築技術が向上していくと、更なる精度の向上はもちろん、バイアスなどにも配慮した顔認識モデルも期待できます。今後注目の分野だと思います。

Takumu avatar
インターネット広告企業(DSP、DMP etc)や機械学習スタートアップで、プロジェクトマネージャー/プロダクトマネージャー、リサーチャーとして働き、現在はIT企業で新規事業のプロダクトマネージャーをしています。データや機械学習を活用したサービス企画や、機械学習・数学関連のセミナー講師なども行っています。

記事の内容等について改善箇所などございましたら、
お問い合わせフォームよりAI-SCHOLAR編集部の方にご連絡を頂けますと幸いです。
どうぞよろしくお願いします。

お問い合わせする