Andersonの視点
人間の髪の毛を合成する難しさに挑む

ローマ時代の黄金期から、人間の髪の毛を描写することは難しい課題でした。人間の頭には平均100,000本の毛が生え、色によって屈折率が異なり、ある程度の長さを超えると、複雑な物理モデルによってのみシミュレートできるような動きや変形をするからです。これまで、CGIの伝統的な方法でしか適用できませんでした。

2017年のディズニーの研究から、物理ベースのモデルがCGIワークフローでリアルな動きを流体的な髪スタイルに適用しようとしています。ソース: https://www.youtube.com/watch?v=-6iF3mufDW0
この問題は、現代のディープフェイク手法では十分に対処されていません。いくつかの年前から、人気のあるパッケージであるDeepFaceLabには、剛体的な短い(通常は男性の)髪スタイルのみを捉えることができる「フルヘッド」モデルがあります。また、最近ではDFLの姉妹プロジェクトであるFaceSwap(両方のパッケージは2017年のディープフェイクのソースコードから派生しています)が、BiseNetのセマンティックセグメンテーションモデルを実装し、ユーザーがディープフェイクの出力に耳や髪を含めることができるようになりました。
しかし、非常に短い髪スタイルを描写する場合でも、結果は質が非常に低いことが多く、完全な頭部が映像に重ねられているのではなく、映像に統合されているように見えます。
GAN Hair
人間のシミュレーションの2つの主要なアプローチは、Neural Radiance Fields(NeRF)とGenerative Adversarial Networks(GANs)です。NeRFは2020年に登場しましたが、GANは人間の画像シミュレーションにおいてはるかに進歩しています。
NeRFの3D幾何学に関する推論は、シーンを高い忠実度と一貫性で複製することを可能にしますが、物理モデルの適用や、カメラの視点変更以外のデータの変換にはほとんどの場合対応できません。現在、NeRFは人間の髪の毛の動きを再現する能力が非常に限られています。
GANベースのNeRFの代替手法は、NeRFと比較してほとんど致命的な欠点からスタートします。NeRFとは異なり、GANの潜在空間には、3D情報に関する理解が含まれていません。したがって、3Dに認識されたGANベースの顔画像シミュレーションは、最近の画像生成研究においてホットなトピックとなり、2019年のInterFaceGANが主要なブレークスルーとなりました。
しかし、InterFaceGANのデモンストレーションとチェリーピックされた結果は、潜在的なVFXワークフローにおける時間的一貫性という点で、ニューラルな髪の毛の一貫性が依然として難しい課題であることを示しています。

InterFaceGANのポーズ変換における「シザリング」髪。ソース: https://www.youtube.com/watch?v=uoftpl3Bj6w
潜在空間の操作のみによって一貫したビューの生成が、錬金術のような追求であることが明らかになるにつれ、CGIベースの3D情報をGANワークフローに組み込むことを提案する論文が増えてきています。
CGI要素は、Skinned Multi-Person Linear Model(SMPL)などの3DプリミティブまたはNeRFと同様の3D推論手法によって表現される場合があります。
この分野の新しい研究として、この週に発表された、ReLER、AAII、シドニー工科大学、阿里ババグループのDAMOアカデミー、浙江大学の共同研究によるMulti-View Consistent Generative Adversarial Networks for 3D-aware Image Synthesis(MVCGAN)があります。

MVCGANがCELEBA-HQデータセットから生成した新しい顔のポーズ。ソース: https://arxiv.org/pdf/2204.06307.pdf
MVCGANは、生成放射場ネットワーク(GRAF)を含み、GANに幾何学的制約を提供することができます。同様のGANベースのアプローチの中で最も本物的なポーズ生成能力を達成したと主張されています。
しかし、MVCGANの補足資料は、外部の3D幾何学に基づく制約のみでは、髪の毛の体積、配置、配置、動きの一貫性を得るのが容易ではないことを示しています。

MVCGANの顔のポーズ生成は現在の最先端技術を大幅に上回っていますが、時間的一貫性のある髪の毛のシミュレーションは依然として課題です。
「直感的」なCGIワークフローでも時間的一貫性のある髪の毛の再構築が課題である場合、従来の幾何学ベースのアプローチが髪の毛のシミュレーションを潜在空間にもたらす可能性は低いと考えられます。
Convolutional Neural Networksを用いた髪の毛の安定化
スウェーデンのチャルマース工科大学の3人の研究者による近刊の論文が、ニューラルな髪の毛のシミュレーションにさらに進歩をもたらす可能性があります。

左側がCNNを用いた髪の毛の表現、右側が実際の画像。ソース: https://www.youtube.com/watch?v=AvnJkwCmsT4
この論文は、Convolutional Neural Networksを用いたリアルタイムの髪の毛フィルタリングというタイトルで、5月初旬のi3Dシンポジウムで発表される予定です。
このシステムは、OpenGLの幾何学に基づく制限された数のランダムなサンプルから、実時間で髪の毛の解像度を評価することができるオートエンコーダベースのネットワークで構成されています。
アプローチでは、確率的な透明度でサンプルをレンダリングし、次にU-netを訓練して元の画像を再構築します。

MVCGANにおけるCNNのフィルタリング。
ネットワークはPyTorchで訓練され、ネットワークの容量や入力特徴の数によって、6〜12時間で収束します。訓練されたパラメータ(重み)は、システムのリアルタイム実装で使用されます。
訓練データは、直毛やウェーブの髪スタイルを使用して、ランダムな距離やポーズ、さまざまな照明条件で数百枚の画像をレンダリングすることで生成されます。

訓練入力の例。
サンプル全体での髪の毛の半透明性は、超サンプリング解像度でレンダリングされた画像からの確率的な透明度の平均値から計算されます。元の高解像度データは、ネットワークとハードウェアの制限に合わせてダウンサンプリングされ、後でアップサンプリングされるため、典型的なオートエンコーダのワークフローとなります。
リアルタイム推論アプリケーション(訓練されたモデルから導かれたアルゴリズムを活用する「ライブ」ソフトウェア)は、NVIDIA CUDAとcuDNN、およびOpenGLの組み合わせを使用します。初期の入力特徴は、OpenGLのマルチサンプル化されたカラーバッファにダンプされ、結果はcuDNNテンソルに転送され、CNNで処理され、最終的に「ライブ」OpenGLテクスチャにコピーされて最終画像に統合されます。
リアルタイムシステムは、NVIDIA RTX 2080で動作し、1024×1024ピクセルの解像度を生成します。
髪の毛の色の値は、ネットワークによって得られる最終的な値で完全に分離されているため、髪の毛の色を変更することは簡単なタスクです。ただし、グラデーションやストライプなどの効果は、将来の課題となります。

著者は、論文の評価で使用されたコードをGitLabで公開しています。以下のMVCGANの補足ビデオを参照してください。
結論
オートエンコーダまたはGANの潜在空間をナビゲートすることは、まだ航海に近いもので、精密な運転にはほど遠いものです。最近になって、NeRF、GAN、非ディープフェイク(2017年以前)のオートエンコーダフレームワークなどのアプローチで、より「シンプル」な幾何学的な顔のポーズ生成の信頼性の高い結果が見られるようになってきました。
人間の髪の毛の複雑な構造と、物理モデルの組み込みや現在の画像シミュレーションアプローチでは提供されていない他の特性の必要性は、髪の毛のシミュレーションが一般的な顔のシミュレーションの一部として残る可能性は低く、より複雑で専用のネットワークが必要であることを示唆しています。ただし、将来的には、これらのネットワークはより広範で複雑な顔のシミュレーションフレームワークに組み込まれる可能性があります。
初めて公開されたのは2022年4月15日です。













