Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Efficient Geometry-aware 3D Generative Adversarial Networks #17

Open
hypknot74 opened this issue Aug 15, 2022 · 0 comments
Open

Efficient Geometry-aware 3D Generative Adversarial Networks #17

hypknot74 opened this issue Aug 15, 2022 · 0 comments

Comments

@hypknot74
Copy link
Owner

hypknot74 commented Aug 15, 2022

リンク

arxiv: https://arxiv.org/abs/2112.07945
project page: https://nvlabs.github.io/eg3d/
github: https://github.com/NVlabs/eg3d

他参考サイト

著者/所属機関

Eric R. Chan, Connor Z. Lin, Matthew A. Chan, Koki Nagano, Boxiao Pan, Shalini De Mello, Orazio Gallo, Leonidas Guibas, Jonathan Tremblay, Sameh Khamis, Tero Karras, Gordon Wetzstein

投稿日付

Submitted on 15 Dec 2021
CVPR2022

概要

通称: EG3D

StyleGAN2とニューラルレンダリングを組み合わせた3D GANを提案。
ニューラルレンダリングの方法としてimplicitとexplicitな方法をハイブリッドすることで、高品質ながらレンダリングの計算効率とメモリ効率を向上させた。

手法

この図を見ればだいたい分かる。大枠はStyleGAN2。
途中にニューラルレンダリングを挟んでいたり、discriminatorが画像に加えてカメラポーズを条件情報として鑑別する違いがある。
image

Tri-plane hybrid 3D representation

voxelのようなexplicitな方法では計算が高速だが、メモリが大きすぎて高解像度や複雑なシーンへの拡張が困難。
imiplicitな方法では連続関数(陰関数)を使用することでメモリ効率や複雑なシーンに関して有効だが、ネットワークが巨大で計算に時間がかかりすぎる。

explicitとimplicitのハイブリッドであるtri-plane表現を使用することで、implicit単体よりもimplicitな表現にするためのデコーダが軽量になる。かつ、explicitな表現としてボクセルを使用するよりもメモリが小さい。
voxelはNxNxNxCのメモリが必要( $O(N^3)$ )。tri-planeはvoxelのように高速な計算が可能でありながら、必要なメモリはNxNx3xC( $O(N^2)$ )である。(例えばN=256, C=32ぐらい)
ここで注意したいのが、tri-planeは1面が1チャネルではなく複数チャネルである点。voxelも同様に1つのボックスは1x1x1xCチャネルである。

image

3つの表現で学習した結果。tri-planeは複雑なシーンも再現できている。また高速でメモリ使用量も小さい。

image

frameworkの要点

  • 学習画像のポーズはポーズ検出器を用いて得ている。
  • GはほぼStyleGAN2と同じ。出力は3チャネルのRGB画像ではなく、256x256x96の特徴画像。これが3つに分けられてtri-plane表現を構成する。
  • 学習速度向上のために、2段階の学習戦略を取った。64^2でニューラルレンダリングの学習をした後、128^2で少しだけfine-tuningする。
  • 3Dアーティファクトを抑えるために、密度場の平滑性を向上させるための正則化をするのが大事。

CNN generator backbone and rendering

図を見ればわかる。Raw image $I_{RGB}$ は特徴画像 $I_F$ の最初の3チャネル。

Super resolution

高速化のために、小サイズでボリュームレンダリングしてから、超解像によって最終サイズにする。
ボリュームレンダリングで粗く生成して、StyleGAN2の生成器の続きで細かい箇所を生成する。

Dual discrimination

Raw image $I_{RGB}$ と超解像した画像をあわせて鑑別器に入力することで、超解像と多視点における一貫性を保つ。
実画像の場合は適切にぼかした画像をraw imageとして使用する。

また、カメラポーズで条件づけて鑑別器に入力する。

Modeling pose-correlated attributes

FFHQのようなデータセットにはカメラポーズと表情のような他の属性を相関させるバイアスが含まれている。例えば、カメラの角度と笑顔には相関がある。
多視点で一貫性のある生成を行うと雨には、このような属性を切り離す必要がある。

生成器のマッピングネットワークにカメラポーズも入力することで向上する。

<分からなかったこと>
50%の確率でランダムなカメラポーズを入力すると書いてあるが、理由を読んでもよく分からなかった。
Gに入力するカメラポーズを固定すると他の角度からの生成の質が落ちるため、50%の確率でランダムなカメラポーズを入力するという意味?
だとしたら、カメラポーズはデフォルトの位置と角度が設定されている?
これをしないと以下のようになるらしい。
image

結果

project pageの動画を見るのが一番。
image

IDも良く保てられている。
image

Style-Mixing
image

PTIによるGAN inversion。
image

コメント

同時期に同様のコンセプトの研究としてStyleNeRFGRAMCIPS-3Dが発表されている。

Q. inversionにPTIを使用しているが、PTIはinversion時にGANのgeneratorをinversionしやすいようにfine-tuningする。 EG3Dの場合、ネットワークのどこの部分をfine-tuningしているのだろう? 論文には詳細がない。

A. このissueで議論されている。EG3Dのパラメタをfine-tuningする必要がある。ある人が親切にEG3D用のPTI projectorを公開してくださっている。
また、前処理手法が一般的なFFHQのalignではないらしい。in-the-wild 画像に対する前処理手法も他の人が実装してくれている。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

1 participant