論文紹介: DreamFace: Progressive Generation of Animatable 3D Faces under Text Guidance
久々の投稿の投稿になりましたが、ここ半年はCLIPやStable Diffusion、ControlNet、ChatGPTなど話題が目白押しで、ここまで論文技術がTwitterやニュースで話題になるとは想像もしていませんでした。中でもChatGPTの登場は強烈で、人とコンピュータの対話インタフェースが機械語命令や単語検索ではなく、日常会話に置き換わった点は大きな変化です。またStable Diffusionも入力したキーワードに沿った画像を生成するというのは非常に新しい体験です。
そんな今話題の「生成AI」ですが、なんと今夏に発売予定のCV最前線「生成AI」に私が寄稿した記事が掲載されます。私の担当はジェスチャー生成で、言語や表情、動作といったマルチモーダルデータによる生成系に関する研究を紹介しています。これからより注目度が高まるテーマだと思うので是非読んでいただけたら嬉しいです。
DreamFace: Progressive Generation of Animatable 3D Faces under Text Guidance
[ Project Page ] [ Paper ] [ YouTube ] [ ChatAvatar (Service) ]
さて、今回紹介するのはテキスト情報からアバターを生成するという論文で、著者は最近気になるDeemos Technology。こちらの企業は大学発スタートアップで、数年前からSIGGRAPHで論文を見かけるようになりました。第一印象としては「かなりお金をかけている」という印象で、自作のLightStageを開発したりMRIを使って頭蓋骨データを収集したりしながらそれを論文やサービスとして着実に結び付けている企業です。Twitterはこちら。Deemos Tech (@DeemosTech) / Twitter ※以下はCGWORLDの記事を意識した言葉づかいで書いてみました。
概要
本論文はテキストから三次元アバター顔モデルを生成する手法を提案している。近年テキストに沿った三次元モデル生成手法に関する研究が盛んに提案されているが、いずれも陰関数表現による三次元表現やテクスチャではなく頂点カラーが用いられる等、低品質かつ互換性の低い三次元表現手法が多かった。そこで著者らは、既存プラットフォームと相性の良いトポロジーが一様な高品質なメッシュとUVが統一された物理ベースのマテリアルの二つをテキストから生成する手法を提案している。
提案手法のパートは大きくジオメトリ、テクスチャ、アニメーションの三つに分かれており、ジオメトリとテクスチャパートは、近年話題のCLIPやDiffusion Modelを微分可能レンダラーと組み合わせながらテキストと三次元アバター表現をどう橋渡しするかについて述べられている。またアニメーションパートでは、様々な人物の表情から学習された共通表情モデルを用いて、任意の人物顔の動画像入力に応じた顔形状生成手法が提案されている。
1. テキストからのジオメトリ生成(ジオメトリ)
疎な形状の生成
まずジオメトリパートでは、テキストからトポロジーが一様な疎形状(三次元メッシュ)と詳細形状(Normal/Displacement Mapにより表現)を生成する手法について提案されている。テキストから様々な顔形状を作成するにあたって、様々なパラメータに応じて顔形状が変化するMorphable Modelと呼ばれるモデルがよく使用される。本論文では、ICT-FaceKitと呼ばれる、南カリフォルニア大学の研究者らが提案した三次元顔表情モデルが使用されている。本モデルは200人以上のスキャンデータから主成分分析(PCA)によって生成された100次元のパラメータを持っており、著者らは正規分布によって様々な顔形状を生成し、レンダリングを行う。ここで、著者らは一つの顔形状に対し、正面や斜めに配置された3つカメラと10個の異なるライトコンディションにより顔画像を30枚程度レンダリングしている。その後、CLIPと呼ばれる自然言語から画像分類が可能なモデルを用いて、上記のレンダリング画像とテキストプロンプトの類似度を計算していく。この時、"the face"と入力されたときのジオメトリは平均顔形状が対応するようアンカーポイントを設定し、そこからの様々なテキストと形状が類似度によって紐づいていく仕組みとなっている。そして入力テキストに対して最も高いスコアの形状パラメータがその出力となる。ここまでが上記はテキストプロンプトから疎な形状を得るまでの道のりとなる。
詳細形状の生成
本手法の面白いところはここからである。著者らは、よりプロンプトに近い詳細な形状を得るために、ここから形状パラメータの更新に加え、Normal/Displacement Mapを生成することを提案している。先ほどはMorphable ModelとCLIPを用いて、テキストにマッチした顔のパラメータを選ぶ手法であったが、今回はNormal MapやDisplacement Mapといった高品質なテクスチャを生成する必要がある。ここで用いるのが今話題のDiffusion Model(DM)だ。なお、初期に提案されたDMでは計算負荷が高いため、より次元数の低い潜在空間で学習が可能なLatent Diffusion Model(LDM)を用いて上記データを生成している。まずテキストから生成された上記データ形式を統合したアバターを微分可能レンダラーでレンダリングし、これもテキストと同様にLDMによってエンコードしていく。その後、LDMによってエンコードされたテキストとレンダリング画像の潜在変数の誤差をScore Distillation Sampling(SDS)という手法で計算する。SDSはテキストから3Dモデルを生成する先行研究であるDreamFusionでも使用されている手法であり、テキストと三次元情報を橋渡しするベースラインとなり得るだろう。最後に微分可能レンダラーの大きな特徴でもある「逆誤差伝搬法」を通じて、LDMから出力される各潜在変数の差が小さくなるよう形状パラメータ、Normal Map、Displacement Mapを更新することで、より入力テキストプロンプトに近い詳細な出力データを得ることが可能となる。なお評価関数に関する補足として、論文内ではSDS以外にも学習前後での顔形状パラメータや形状とテクスチャそれぞれの滑らかさの差も考慮されているようだ。
2. テキストからのマテリアル生成(マテリアル)
続くテクスチャパートでは、テキストからUV空間が一様で高品質な物理ベースマテリアル画像(Diffuse、Specular、Normal)を生成する手法について提案されている。テクスチャは3Dモデルの見えに関して非常に多くの割合を締める要素であり、特に高品質が求められる人物顔表現にはDiffuse、Specular、Normalといった物理ベースのマテリアルが求められる。しかしこういったマテリアルはLight Stageのような高度な撮影機材を必要とし、現段階で公開されているデータセットには限りがある。またデータセット間で異なるジオメトリやUV空間を持っているため、常に一様なUVのマテリアルを生成することは容易ではない。そこで著者らは二つの異なるLDMを駆使してテキストプロンプトから一様なUVマテリアルテクスチャの生成を実現している。
テクスチャ空間でのDiffusion Modelの学習に関して
Diffusion Model(DM)はデノイジング(ノイズを減らしていく処理)を繰り返し行いながら画像生成を行う手法であり、非常に複雑な分布で構成されている何万枚ものテキストと画像のペアを容易に学習することができることで注目されている技術である。著者らはその事前学習済みのテキスト-画像モデルにテクスチャ生成機能を構築することを試みる。なお、ここでもジオメトリ生成の時と同様にLatent Diffusion Model(LDM)を用いることで全てのdiffusionプロセスを潜在空間上で進めることができる。しかしながらLDMは一般画像を生成するのに特化しており、一様のUV空間に顔のテクスチャを生成するようには学習されていない点が大きな課題となる。そこで著者らは自ら作成したデータセットを用いて既存モデルをfine-tuningすることでそれらを実現した。ここで用いられるフェイシャルデータセットは複数に跨ぐことから、アーティストがリトポロジやテクスチャ転写を行い、一様なUVテクスチャを収集している。またアノテーターを雇用し、各テクスチャに対して適切なプロンプトを正解値として与えている。アクターの数はなんと約560個近くにも及ぶ。しかし、これでもDiffusion Modelが学習された元データと比べると本当にわずかなデータともいえるかもしれない。データセットの中には頭にヘアキャップが映り込んでいる場合があるため、こういった画像は肌領域検出モデルにより、顔ではない部分をマスクとして生成する事で安定した顔領域の学習を可能にしているそうだ。
なお、顔データセットにはDiffuse画像でもSpecularが映り込んでしまっているテクスチャが存在し、これらに基づいて学習、生成すると最終的に欲しい純粋な画像を得ることはできない。そこで、欲しい画像と欲しくない画像それぞれの領域を特定し、生成時に欲しい画像のみを生成するプロンプトを指定できるtexture LDMなるものを提案した。なお、手作業で該当するプロンプトを追加していく作業(いわゆるプロンプトエンジニアリング)は非常に手間がかかる上に不安定でもあるため、幅広いテキストプロンプトを欲しい画像が得られるようなプロンプトを自動で選択してくれる手法(Prompt Tuning)を行い、任意のテキストから欲しい画像のみを生成することを可能にした。
効率的な生成モデルの実現
ここからがマテリアル生成のメインの話となる。著者らはテクスチャの品質を保持しながら効率的に学習を進めるために、SDSを用いて二つのLDM(Generic LDMとTexture LDM)をそれぞれ2つのステージ(潜在空間と画像空間)で使用するTwo-stage dual pathという手法を提案している。
まずStage 1となるLatent Space SDSでは、入力したプロンプトに合うレンダリング画像とテクスチャ画像を生成するGeneric/Texture LDMをそれぞれ学習していく。ここでは、SDSを用いて入力されたプロンプトとそれぞれの出力画像との間のSDSによるLossが小さくなるようなそれぞれレンダリング/テクスチャを出力するLDMを学習していく。
続いてStage 2では、入力されたプロンプトからTexture LDMを通して得たテクスチャをデコードして生成されたDiffuse Mapを顔モデルに貼りつけて、異なるビューとライト環境によってレンダリングする。そのレンダリング結果をエンコードした潜在変数がプロンプトからGeneric LDMを通じて生成された潜在変数がSDS Lossで小さくなるように、Generic/Texture LDMを学習していく。異なるライト環境によってレンダリングすることでDiffuseからスペキュラー成分をなるべく排除したDiffuseマテリアル生成が実現できるようになる。
高解像度なテクスチャ生成
最終的に、Texture LDMによって生成された画像に対して、image-to-image translationとTexute Augumentationによって高解像なDiffuse、Normal、Specular画像を出力する。なお、データセットによって解像度等が異なるため、まずは64x64から512x512への変換ではRestoreFormerと呼ばれる顔画像復元手法を適用し、さらに4K画像を得るためには、Real-ESRGANと呼ばれるsuper-resolutionモデルを使用している。最後の4K画像生成には彼らの独自データセットが訓練データとして与えられているようだ。
3. 動画像からの表情復元(アニメーション)
最後のアニメーションパートでは、様々な人物の表情から学習された共通表情モデルを用いて、任意の人物顔の動画像入力に応じた顔形状生成手法について提案されている。既存のパイプラインではブレンドシェイプを用いて顔のアニメーションを行う場合が多いが、本手法ではより個性化されたアニメーションを生成するために、Expression encoderによって動画像から変換された表情の潜在変数をGeometry Generatorへの入力とすることで、任意のNeutral形状に対する個性化された表情を生成することを可能にしている。ちなみに、本手法では、Expressionの潜在変数から都度ジオメトリが生成される手法であるため、Blendshapeと比較すると実時間性に劣るといった欠点もありそうだ。しかしながら、線形な表情のみを生成するブレンドシェイプモデルに対して、本手法では非線形的な顔動作を生成できることが期待できるため、高い表情表現を実現できそうである。
統一的表情モデルを実現するネットワーク(Cross-Identity Network)
この時、Expression EncoderにIdedntity要素が入らない、つまり画像からすべての人物に共通の表情に関する潜在変数を得るために、Cross-identity hypernetworkというものが提案されている。この手法はCaoらがSIGGRAPH 2022にて発表したUniversal Prior Modelから着想を得ており、入力となる表情のジオメトリと、出力となる同一人物の無表情とExpression encoderの出力から生成された表情のジオメトリの二つの誤差が小さくなるようにU-Net構造のExpression Networkが学習するような設計となっている。
ビデオ入力によるアニメーション生成
本手法は、ニューラルネットワークを用いた表情モデルでもあることから、手作業で直感的に編集することが難しいモデルでもある。そのため、ジオメトリやテクスチャをテキストから生成したように、異なるモーダル、本手法では顔の動画像からそれに応じた表情を生成する手法を提案している。その手法もCross Identity Networkと同様に、生成されたジオメトリとテクスチャからレンダリングされた画像をExpression Networkの入力とし、その潜在変数と無表情の形状をGeometry Generatorへの入力とすることで、互いの誤差を最小化するように学習を行っている。なお、本論文全体を通した顔のジオメトリ表現は、三次元頂点座標をUV空間に落とし込んだPosition Mapを用いている。
結果と今後の展望
いずれの手法もAblation Studyや他手法との比較を行い、優位性が高いことを示している。今後は目や歯といった顔のパーツの生成や動的なテクスチャ生成、そしてテキストプロンプトによるアニメーションの生成など、様々な課題に取り組んでいくことと思われる。
編集後記
今回はかなり詳細まで読み切ってまとめてみた。冒頭で紹介したような雑誌への寄稿や日常的に論文情報を得られる情勢もあり、手軽だけどディープに技術を追えるメディアがあってもいいように感じている。今回は意のままに書いてしまったため長文となったが、今後は情報の取捨選択を行いながら、すっきりと読みやすい記事にしていきたい。また雑誌のようなレイアウトだともう少しキャッチーに読めるのかなと思案中。。。