Conference on Neural Information Processing Systems (NeurIPS), 2020
https://arxiv.org/abs/2007.02442
1. Introduction
고해상도의 이미지들을 활용한 View Synthesis 작업을 수행할 때, Convolutional GAN이 굉장히 효과적이다. 하지만, 이러한 성공에 불구하고, SOTA 모델들은 3D shape와 viewpoint와 같은 generative factor들을 disentangle을 제대로 하지 못하고 있다. 인간은 새로운 viewpoint에서 물체를 상상하고 세상의 3D 구조를 파악하는 데 능한 것과는 반대되는 모습이다.
따라서, 최근의 연구들은 3D-aware image synthesis를 접근하고 있다. 3D-aware image synthesis는 3D scene representation을 학습하도록 설정하고, scene content와 view point의 제어를 목표로 한다. 하지만, 3D supervision이 연습과정에서 취득하기에 어렵기 대문에, 최근 연구들은 2D supervision만을 활용해서 이 문제를 접근하고 있다.
이 논문에서는 coarse input과 entangled latent가 conditional radiance field를 사용하여 해결할 수 있다고 주장한다.
크게 논문의 contribution을 정리해보면 다음과 같다.
1. GRAF가 viewpoint manipulation과 더불어, 생성된 object의 shape과 appearance를 변경시킬 수 있다.
2. Patch-based discriminator를 통해서 다양한 scale에서 이미지를 sampling한다.
3. Synthetic과 real datasets을 통해 GRAF를 체계적으로 평가한다.
2. Related Work
해당 논문에 중요한 개념이기 때문에 크게 키포인트만 정리하였다.
Image Synthesis
3D-aware Image Synthesis
Implicit Representations
3. Method
3.1 Neural Radiance Fields
NeRF 논문에서 다루었던 내용이기 때문에, 생략하였다.
3.2 Generative Radiance Field
3D-aware image synthesis의 representation의 역할로써 radiance field가 사용된다. NeRF 논문과는 다르게 pose image들을 많이 사용하는 것이 아니라, unposed image를 사용하여 novel scene을 생성하는 것을 목표로 한다.
이 논문에서 사용한 모델의 구조는 위와 같다. Generator는 camera matrix K, camera pose E, 2D sampling pattern V, shape/appearance code를 입력을 받고, image patch P'을 예측하게 된다.
Discriminator는 Generator에서 예측한 P'과 실제 patch P와 비교한다.
3.2.1 Generator
Pose distribution Pe로부터 camera pose E를 sampling한다. 좌표계의 원점을 향해 카메라가 가리키고 있을 때, 카메라의 상반구가 있는 위치에서 uniform distribution을 따라서 camera pose를 sampling하는 방식을 따르게 된다. Principle point가 이미지의 center에 있도록 Camera Matrix K를 선택하게 된다.
2D sampling pattern v는 만들고자 하는 가상의 KxK 개 patch의 center와 scale을 결정한다. 이는 image resolution에 독립적인 convolutional discriminator를 사용할 수 있도록 해준다.
Patch center와 patch scale은 uniform distribution으로부터 추출한다.
shape and appearance variable은 shape and appearance distribtuion으로부터 생성되고, 이 논문에서는 shape and appearance distribtion으로 Standard Gaussian Distribution을 사용한다.
Ray Sampling
K x K patch는 2D image coordinate로부터 결정된다.
사진으로 해당 수식을 표현하면 다음과 같다.
이미지 센터 v = (u, s)를 결정하고 나서, scale s를 토대로 K x K patch를 추출하게 된다.
3D Point Sampling
NeRF 논문의 Stratified Sampling Approach를 사용한다.
Conditional Radiance Field
먼저, shape encoding h를 positional encoding x와 shape code zs를 통해서 계산한다. Density head가 shape encoding h를 σ로 변환한다.
3D location x상의 color c를 예측하기 위해서, h를 positional encoding d와 appearance code za에 concatenate를 하고, 계산되는 벡터값을 color head에 전달한다. color head는 계산된 벡터값으로 c를 계산하게 되는 것이다.
Apperance로부터 shape를 disentangle하면서 multi-view consistency를 높이기 위해서, σ를 viewpoint d와 appearnce code za로부터 독립적으로 계산한다.
Volume Rendering
도출된 color와 volume density를 기반으로 volume rendering을 진행하고, 모든 R ray들의 결과를 합치게 되면, P' patch를 산출할 수 있게 된다.
3.2.2. Discriminator
PatchGAN에서 사용하는 discriminator와 유사하다. 다만, GRAF는 u와 s의 값을 계속해서 변경하는 반면에, PatchGAN은 s= 1로 고정하여 사용한다는 차이점이 있다. 또한, GRAF는 s를 기반으로 이미지를 downsampling을 하지 않고, high-frequency detail을 확보하기 위해서, 이미지를 sparce location에 query하게 된다.
3.2.3 Training and Inference
Discriminator에서 spectral normalization과 instance normalization을 사용한다. Generator는 real patch와 유사한 patch를 만들어서 discriminator를 속이려고 하고, discriminator는 실제 patch와 생성된 patch를 더 잘 구분할 수 있도록 학습시키는 일반적인 GAN의 loss function과 유사하다는 것을 확인할 수 있다.