Skip to content

Do 2D GANs Know 3D Shape? Unsupervised 3D Shape Reconstruction from 2D Image GANs #15

@sgnoya

Description

@sgnoya

1. 概要(基本アイデア)

  • GANが3D形状を把握できているのかを調査
  • GAN, Photo-geometric autoencoding design(テクスチャ,デプス,照明,視点をそれぞれDNNで表現+微分可能レンダリングを使って学習する感じ)をうまく組み合わせて,初期3D形状(楕円)から本来の3D形状を復元できるかを実験し,検証する(できてた)

2. 新規性

Do 2D GANs Know 3D Shape? の質問に答えた最初の論文

3. 手法詳細

  • 複数のネットワーク(対象のGAN含む)を使って,入力画像Iのみからその3D形状の復元を試みる.
  • 復元出来たらGANは3D形状を表現できている!

復元時に出てくるネットワークは対象GANの生成器のほかに5個ある

  • 画像をGANの潜在空間へ変換するエンコーダE
  • photo-geometric autoencoding designに出てくる4つのネットワーク(V, L, D, A)
  • (V, L, D, A)はそれぞれ入力が与えられたら下記を出力する
    V: 視点情報, L: 照明条件, D: デプス, A: テクスチャ
    (4つのネットワークは,微分可能レンダリングと組み合わせ学習するので,本当にこれらの情報を表現している)

Figure3にある3つのステップを繰り返して形状復元する
以下各ステップ詳細

Step1:(D,) Aの学習

  1. Dが初期形状(楕円)を出力するよう,Dだけ学習
  2. V,L,D,Aを通してレンダリングし,レンダリング画像と入力画像との再構成誤差を使ってAを学習

(1.だけは本当に最初だけ.一度Step3まで学習したら,1.はそれ以降実施しない)

Step2:Eの学習

  1. D,Aの出力と,ランダム生成した照明,視点情報からレンダリングをし疑似サンプルを複数生成
  2. GANの生成器Gの前にエンコーダEを引っ付けて,疑似サンプルをE->Gで再構成(再構成画像: Projected samples)
  3. 疑似サンプルの再構成誤差を使ってEを学習(疑似サンプルをしっかりとGANに射影)

Step3:V,L,D,Aの学習

  1. Step2で生成したProjected samplesをV, Lに入力し,視点,照明情報を抽出
  2. 入力画像(元画像)IをD, Aに入力し,デプスとテクスチャ情報を抽出
  3. 上記で抽出した情報からレンダリングし,Projected samplesとの再構成誤差で**(V,L,D,A)を学習**

4. 結果

顔,動物,車,建物など様々な画像を再構成できている
-> GANが3次元情報を表現できている

5. 論文,コード等へのリンク

論文:https://openreview.net/forum?id=FGqiDsBUKL0
コード:https://github.com/XingangPan/GAN2Shape

6. 感想,コメント

しっかりと3次元再構成できていてすごい

GANの検証に関しては,これでいいのか若干疑問に思った
(photo-geometric autoencoding designがすごいのでは?

7. bibtex

@inproceedings{
pan2021do,
title={Do 2D {{}GAN{}}s Know 3D Shape? Unsupervised 3D Shape Reconstruction from 2D Image {{}GAN{}}s},
author={Xingang Pan and Bo Dai and Ziwei Liu and Chen Change Loy and Ping Luo},
booktitle={International Conference on Learning Representations},
year={2021},
url={https://openreview.net/forum?id=FGqiDsBUKL0}
}

8. 関連論文

Metadata

Metadata

Assignees

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions