効率的な顔編集モデル「FaceController」とは?
3つの要点
✔️ 時間と手間がかかるReverse Mappingではなく、単純なフィードフォワードの顔生成ネットワークを提案
✔️ 簡単に取得できる独立分離した属性情報を抽出することで、特定の属性情報のみを変更した忠実度の高い顔画像を生成可能
✔️ 一例としてFace Swappingを取り上げ、従来と同等以上の性能を達成
FaceController: Controllable Attribute Editing for Face in the Wild
written by Zhiliang Xu, Xiyu Yu, Zhibin Hong, Zhen Zhu, Junyu Han, Jingtuo Liu, Errui Ding, Xiang Bai
(Submitted on 23 Feb 2021)
Comments: Accepted at AAAI 2021
Subjects: Computer Vision and Pattern Recognition (cs.CV)
code:
概要
顔画像を編集することは、視覚エフェクトや電子商取引の分野で多く利用されています。
顔編集タスクは、特定の属性を正確に操作できるように、正確に独立分離された顔の属性情報が重要になります。この属性情報の精度が高ければ、特定の属性情報を編集することで、その顔の向きや表情を変えながら、IDを保持することも可能です。しかし、このような正確に独立分離された顔の属性情報を抽出することは依然として困難です。
これまでさまざまな研究が行われ、その一つとして、例えば、GAN Invresionなども提案されています。しかし、このアプローチは時間と手間がかかってしまいます。そこで、この論文では既存の簡単に取得できる事前情報が供給される単純なフィードフォワード顔生成ネットワーク「FaceController」を提案しています。
この方法は、独立分離された顔の属性情報を抽出するコストのかかる学習プロセスを回避することができます。また、この手法は従来のモデルと比較して、多くの指標で高い性能を達成しており、定性的・視覚的な比較でも優れた結果を示しています。
FaceControllerのアーキテクチャ
FaceControllerでの処理は、3つのステップで構成されています。1つ目は顔の属性情報の抽出、2つ目はソース画像とターゲット画像における顔の属性情報の交換、3つ目は顔の属性情報を交換したターゲット画像の生成です。具体的なアーキテクチャは下図のようになっています。この図はFace Swappingを例にしたものです。
まず最初に、ソース画像(Is)とターゲット画像(It)のそれぞれから顔の属性情報をはっきりと分離・抽出するために、3DMMを使用しています。3DMMは顔の属性情報を分離抽出するためによく用いられる手法です。顔の属性情報をそれぞれ形(S)とテクスチャ(T)に分解して記述します。
このSとTは、式のように、主成分分析の規定ベクトルIbase、Ebase、Tbaseとその標準偏差α、ρ、δで表現されています。Ibase、Ebase、TbaseはそれぞれID、表情、テクスチャを表しています。この他に照明状況k、ポーズθも定義されています。
ソース画像(Is)とターゲット画像(It)に対して、抽出した属性情報は、図左に記載されているように、それぞれ、 (αs, ρs, κs, δs, θs) と (αt, ρt, κt, δt, θt) と表されています。
しかし、3DMMで抽出したIDとテクスチャでは、視覚的に違和感がない精度のリアルな顔画像を生成するのに不十分だとわかったため、ここでは2つのEncoderを導入して、IDとテクスチャの特徴情報を補完しています。これは、3DMMからレンダリングされた対応する顔がぞうとの間にドメインギャップが存在するためと考えられます。たとえば、女性のメイクは、3DMMでは完全に表現できません。このため、図の中程にあるように、IDを補完するIdentity Encoderとテクスチャを補完するStyle Encoderを導入しています。
Identity Encoderでは、最先端の事前トレーニング済み顔認識モデル(Deng et al. 2019a)が利用されています。最後のFC層の直前のFeature Mapを使用して、正確で高レベルのID情報を取得しています。顔画像をID Encoderに入力する際には、Spatial Transformation Network(Jaderberg et al. 2015)を適用して正確に位置合わせした顔画像を利用しています。
Style Encoderでは、局所細部の領域の編集をサポートするために、顔画像のセマンティックセグメンテーションを利用して領域ごとのスタイルコードを取得しています。局所領域ごとに編集することで、例えば、メイクであれば、唇の色やアイシャドウのメイクなども編集できるようになります。また、特定の顔画像の照明を調整することもできるようになります。局所領域のStyle EncoderにはSEANのEncoder(Zhu et al. 2020b)を利用しています。
以上のように、正確で詳細な属性情報を分離抽出するために、3DMM、ID Encoder、Style Encoderを利用しています。
次は、ここまでに取得した特徴情報を活用して、忠実度が高い顔画像を生成する方法です。ここではセマンティックラベルで局所領域ごとに特定のスタイルで自然な顔画像を変換/生成することを目的としています。そこで、局所領域ごとの編集をサポートするのに優れているSPADEを応用した手法を構築しています。さらに、先ほど取得したIDなどの局所領域の情報とは関係のない属性情報も追加で考慮する必要があります。
これをサポートするために、下図右のように、IDと局所領域ごとのスタイル情報をDecoderに統合するIdentity-Style Normalizationを設計しています。これをIS Blockに組み込むことで忠実性の高い画像を生成しています。
次にモデルの学習です。学習中、主に2つの異なる学習プロセス、「顔の再構築」と「教師なし顔生成」を検討しています。
顔の再構成の学習中、モデルは同じ顔画像から属性情報を取得し、顔を再構成しようとします。この場合、アーキテクチャの図では、ソース画像(Is)とターゲット画像(It)は等しくなります。この学習により、Is = It の場合に生成される画像の妥当性は担保できます。しかし、Is ≠ It の場合、モデルが正常に機能する保証はありません。
そこで、教師なし顔生成の学習を含めて、ペアになっていない入力(Is ≠ It)の場合でも、モデルは取得した特徴情報からもっともらしい顔画像に生成できるようにする必要があります。画像の忠実度を高めるために、GAN Lossが「顔の再構築」と「教師なし顔生成」の両方の学習プロセスに適用されます。全体として、以下のようにLossが定義しています。
Ladvは、GAN Lossを表しています。また、LperはFace Reconstruction Lossとして適用しているPerceptual Lossを表しています。生成された顔画像(Ig)とターゲット画像(It)の中間のFeature Mapが、事前学習されたVGGから抽出され、次のようにピクセルレベルで再構築されます。
残りのLid、Lim、Lhmは教師なし学習をサポートして、属性情報の分離抽出を強化するために設計した、Identity Loss、Face landmark Loss、Histogram Mating Lossをそれぞれ表しています。このモデルの目的は、顔画像に対する自由で動的な顔属性制御をサポートすることです。つまり、一部の属性を変更すると、それに応じて属性が変更され、他の属性は変更されないように制御することです。IDを保持しながら、表情や顔の向きなどの他の属性をそのままItからIsに転送することを目的とする場合、ID Encoderを利用することで、生成された顔画像がIsと同じIDを維持するように促すことができます。Cosin類似度を使用して、生成された画像とソース画像の類似度を推定しています。
また、IDやテクスチャなどの属性をIsからItに転送し、表情と顔の向きを保持したい場合は、Landmark Lossを利用して、Isと生成された顔画像(Ig)の間の表情と顔の向きの一貫性を確保することができます。
この論文では、Landmark LossもIDの保持のために特別に設計されています。生成された画像(Ig)がターゲット画像(It)と同じ表情と向きを保持するようににしたいため、IgとItが同じランドマークを持つようにしています。顔のランドマークには、目、口、眉毛、鼻の形が含まれています。これらはID情報とも関連しています。
下図(a)と下図(b)に示すように、人によって顔の特徴やランドマークが異なります。したがって、下図(c)に示すように、Itのランドマークを使用して生成された画像を制約することは、IsのID情報を保持するための良い方法ではありません。Isと同じID情報を保持しながら、Itと同じ表情と向きを持つようにランドマークを調整する必要があります。
この問題を解決するために、最初の図に示すように編集された3DMMを利用して、3Dランドマークを抽出しています。これらのランドマークは、上図(d)に示すように、Isと同じ顔の特徴を正確に保つことができます。
次に、Igの3Dランドマークと位置合わせされたランドマークを一致させることで、ID情報をより適切に保持することができます。ID Loss(Lid)は正しいIDを保持できますが、局所領域のテクスチャと色の一貫性を保持することは依然として困難です。この問題を解決するために、さらにHistogram Mating Lossを導入して、ターゲットの顔との領域ごとのスタイルの一貫性を保持しています。Ire = HM(It、Ig)を、IgとItの間のヒストグラムマッチングによって取得された再マッピングされた画像とすると、以下のように表すことができます。
実験結果
FaceControllerは、さまざまなタスクに適用可能ですが、ここではFace Swappingの結果をご紹介します。CelebA-HQ、FFHQ、VGGFaceで学習したFaceControllerを代表的なFace SwappingのモデルであるDeepFake、FaceSwap、FSGAN、FaceShifterと比較しています。
FaceForensics++を使用して評価しています。下図が定性結果です。従来のモデルと比較しても同等以上に優れた画像が生成できていることがわかります。
DeepFakeやFSGANなど顔画像をブレンドするプロセスを含んでいるモデルでは、交換された箇所に人が目で見てわかる痕跡が残っていることがわかります。一方で、FaceControllerやFaceShifterなどブレンド処理を含まないモデルでは、交換された箇所の痕跡がわかりにくくリアルな顔画像が生成できています。
また、FaceShifterと比較すると、FaceControllerではIDと細部のテクスチャの情報が補足されているため、ID情報をよりはっきりと反映させ、合成結果も違和感のないものになっていることがわかります。下表は定量結果です。ここでも同様にFaceForensics++で評価し、DeepFake、FaceSwap、FSGAN、FaceShifterと比較しています。
ここでは、FaceShifterで使用された評価指標を用いています。1,000本の動画から各々10フレーム、合計10,000の顔画像を取得し、3つの性能を評価しています。
まずID Retrieval(Retr.)です。これは顔画像を編集した後にソース顔のID情報が保持されているかを評価しています。次にPoseです。これは顔画像を編集した後に顔の向きが保持されているかを評価しています。最後はExpression (Exp.)です。これは、編集したターゲット画像の表情を保持しているか評価しています。また、FID値も使用しています。これは、編集された顔の忠実度を評価しています。
Retr.の評価では、CosFaceを適用してID情報の抽出を行い、コサイン類似度が最も近い顔を選択しています。PoseとExp.の評価では、それぞれ顔の向きの推定、表情認識モデルによる表情情報の抽出を行い、L2距離によって類似度を評価しています。
結果は、FaceControllerは、既存のモデルと比べて、ID保持と生成画像の忠実度において、最も高い性能を示しています。これはID EncoderとStyle Encoderがよく機能しているためと考えられます。この論文では、ID EncoderとStyle Encoderの効果を検証するために、ID Encoderのみを導入した場合と、Style Encoderのみを導入した場合についても性能評価をしています。
定性結果は下図のようになり、ID Encoderのみを導入した場合(w/o style)、4列目の画像のように、生成されたスタイルは唇などの領域がターゲット画像 (Target)と一致していないことがわかります。これは、3DMMのみでは、忠実度の高い顔を生成するための詳細なテクスチャを提供していないことを示しています。また、Style Encoderのみを導入した場合、3列目の画像のように、生成された画像はソース画像(Source)とID情報に差があることがわかります。
定量結果は下表のようになり、定性結果と同じ結果になっています。
Style Encoderのみを導入した場合、ID情報の取得制度が大幅に低下しています。ID Encoderのみを導入した場合、DisentanglementによってIDはほとんど影響を受けていません。また、顔の向きと表情には影響していないことがわかります。
まとめ
この論文では、従来に比べて効率的なフィードフォワードネットワークの顔編集モデル(FaceController)を提案し、特定の属性情報を編集した非常に忠実度が高い顔画像を生成することに成功しています。また、このモデルはDisentanglementによって顔の特徴情報を分離抽出し、さまざまな顔の属性の制御を確実にするためにUnsupervised Lossを提案しています。FaceControllerはさまざまな顔に関するアプリケーションで広く適用できます。しかし、一方で、顔の向きが大きく変わると、生成画像のエッジに黒点が発生する場合や、視線がズレる場合があるため、さらなる改善も必要そうです。
この記事に関するカテゴリー