Skip to content

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

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. 関連論文

Activity

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

Metadata

Metadata

Assignees

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions