GRAF : Generative Radiance Fields for 3D-Aware Image Synthesis

<aside> 💡

NeRF가 novel view synthesis 잘하던데,,, NeRF랑 GAN으로 3D-Aware generation 해보자

Generation Pipeline : GAN

Representation : NeRF

</aside>

✍️ Abstract

기본적으로 Generator와 Discriminator가 존재하는 GAN 아키텍처를 사용하는데, generator에서 2D 이미지를 생성하기 위해서 Radiance Fields를 사용한다. 이때 다음과 같은 점에서 NeRF setting과 조금 다르다.

  1. 그냥 vanila NeRF는 한 scene (Lego, fern etc)을 MLP 에 fitting하는 용도이지만, GRAF는 MLP에서 다양한 scene이 나오길 원하기 때문에 input으로 random성을 줄 noise가 필요하다. 이게 Shape code와 Apperance code이고, 이런 code들에 condition되어 있기 때문에 GRAF에서 사용하는 Radiance fields를 Conditional Radiance Field하고 부른다.
  2. Patch 도입. training시 전체 이미지를 만들어 내면서 하면 computation이 너무 비싸다. 그래서 이미지의 한 부분인 patch를 생성하고 이를 discriminate함. 어떤 patch를 쓸지는 random 으로 결정함. inference할 땐 whole image가 patch라고 생각하고 생성하면 됨.

📌 Main Method

Untitled

Generator

The Generator $G_{\theta}$ takes

as input, and outputs an image patch $\bold{P}^{\prime}$ which is discriminated by $D_{\phi}$

Generator에서 2D patch(image)를 생성해내는 과정은 다음과 같다.

1. Ray sampling

카메라 matrix, 카메라 pose, sampling pattern을 사용하여 $R$개의 RAY를 sampling한다

2. Point Sampling

Untitled

$R$개의 ray에서 각각 $N$개의 point를 sampling한다!