[DL輪読会]EG3D: Efficient Geometry-aware 3D Generative Adversarial Networks

2.6K Views

December 24, 21

スライド概要

2021/12/24
Deep Learning JP:
http://deeplearning.jp/seminar-2/

シェア

またはPlayer版

埋め込む »CMSなどでJSが使えない場合

関連スライド

各ページのテキスト
1.

EG3D: Efficient Geometry-aware 3D Generative Adversarial Networks Naruya Kondo (Digital Nature Group M1) 1

2.

書誌情報 ● EG3D: Efficient Geometry-aware 3D Generative Adversarial Networks ○ Arxiv (Submitted on 15 Dec 2021), CVPR 2022? ○ 著者:NVIDIA (StyleGAN一派), Stanford Univ. の方々 ● ひとことで言うと ○ 3D形状も学習・生成できる3DGANのSoTA (一気にすごくなった) ○ (NeRF Likeな) Volume RendererとStyleGANを組み合わせている ○ リアルタイムにレンダリングできる (30fps, single RTX 3090) 2

3.

書誌情報 ● 同時期の似た論文 ○ CIPS-3D: A 3D-Aware Generator of GANs Based on Conditionally-Independent Pixel Synthesis ○ GRAM: Generative Radiance Manifolds for 3D-Aware Image Generation ○ StyleNeRF: A Style-based 3D-Aware Generator for High-resolution Image Synthesis ○ EG3Dはその中でも結果が良さそう&洗練されてそう(主観)だった ■ FIDスコアはEG3Dが一番良かった 3

5.

3D-GAN (not 3D voxelを生成する系) ● viewを入力すると角度を変えて生成できるGAN ○ viewの一貫性を保ったまま生成できることが難しい&価値がある ● 今回は、3Dモデルmulti-viewを使わない設定 ○ 3D awareなデータセットは手に入りにくい。一方顔のFFHQは7万枚 3D transform Projection 3D CNN 2D CNN [DL輪読会]HoloGAN: Unsupervised learning of 3D representations from natural images (土井さん) 5

6.

全体像 6

7.

全体像 ● 基本はStyleGAN2 (後述) ○ 固定テンソルにnoise/styleを加えながら2D deconvしていく ● そのまま画像を出力ではなく、viewを変えるモジュールを追加 ● 様々なviewを指定しながら画像を生成して、{view, 画像} で識別 7

8.

StyleGAN ● zを正規分布からサンプル ● Mapping Netでz->中間特徴量w ● wとnoiseを適用しながら2D deconv ○ noiseは足す ○ wはAdaINを使う ● Adaptive Instance Normalization ● ● ● Style変換の知見を取り入れた GAN。 多様な生成が得意。 disentangleもよくでき、潜在変数をいじりやすい。 土井さんのStyleGANの資料 8

9.

Tri-Plane (びっしり) (3枚だけ) NeRF 3C C C 例: L*L*L*Cのボクセルから C次元のベクトルを取り出して FC層 (L=256, C=32 など) ● Volume renderingでは、光線上の 64~196点をサンプリング、c, σを求める ● Tri-Planeのおかげでリアルタイムにview/scene を変えながらレンダリング可能 ● view dependentな質感が少なければ 十分な精度 例: L*L*3*Cのボクセルから C次元のベクトルを 3つ取り出して足し合わせて FC層 9

10.

工夫1: CNN generator backbone and rendering mod.: modulation (styleの適用) ● StyleGANでTriPlaneを作る (256*256*32*3枚) ● Tri-planesの3D feature空間で (NeRF等のように) viewに従って光線を飛ばしVolume rendering 10

11.

工夫2: Super-resolution ● Volume Renderingは荒いレンダリングまでを担当。 細かいレンダリングはStyleGANブロックの続きでSuper Resolution ○ (Volume renderingよりも、CNNの方が圧倒的に軽い) ● Volume RenderingはRGB + 追加で29チャンネルのfeature mapを出力 11

12.

工夫3: 4.3. Dual discrimination ● 荒い(Volume renderingの)生成画像と、Superres.の生成画像の組み合わせを Discriminateする 1. 荒い画像も正しくなるように 2. 荒い画像から高解像度画像への変換で一貫性を持つように 12

13.

工夫4: 4.4. Modeling pose-correlated attributes ● Discriminatorにはviewも入れて識別してもらう ● Generatorには、mapping net, volume renderer両方にcamera paramを入れる ○ ただしいろんな角度にずらして生成できるようにするため、volume rendererには 50%の確率で他のcamera param Pをswapする 13

14.

実験 ● 3D Face Detectionを使って、カメラのposeを推定した ○ (顔の正面を固定?) ○ ネコ用の3D Face Detection もあるらしい 14

15.

実験 15

16.

Limitation ● ● ● ● 細部にまだ欠陥がある (歯1本1本とか) 画像からカメラのposeを推定することがどこまで有効か 外観とposeが完全にはdisentangleされていない 幾何学形状が間違っている部分がある (黒目が凹んでいる) 16

17.

まとめと感想 • 高解像度・フォトリアルでリアルタイムに動く3D-GANを実現 • 3Dモデリングや画像合成に使えるだろう • 感想 – Tri-plane神 • NeRFみたいに毎回8層のMLPに入れるのは、多くの場合オーバーキル • いろいろ組み込めそう (潜在変数系とも相性が良さそう?) 17