'NeRF: Representing Scenes as Neural Radiance Fields for View Synthesis' Paper Summary

구명규·2023년 7월 12일
0

'23 Internship Study

목록 보기
12/19
post-thumbnail

Abstract

  Sparse set of input views로부터, MLP로 구성된 underlying continuous volumetric scene function을 optimize하여 complex scene에 대한 novel view를 합성함. 모델은 spatial location (x,y,z)(x, y, z)viewing direction (θ,ϕ)(\theta, \phi)를 입력받아 volume densityview-dependent emitted radiance를 출력하며, 고전적인 volume rendering technique를 사용해 novel-view를 synthesize.


1. Introduction

  • 3D point coordinate (x,y,z)(x, y, z)ray direction (θ,ϕ)(\theta, \phi)를 입력받아 radiancedensity(해당 지점을 지나며 축적되는 radiance의 크기를 의미하는 opacity)를 출력하는 5D function.

  • 학습 이후, rendering 과정은 다음과 같음.
    1) 2D screen의 각 pixel에서 scene으로 향하는 camera ray 상의 3D point set sampling.
    2) 각 point에 대한 정보를 모델에 입력하여 color/density 값 출력.
    3) 고전적 volume rendering technique 활용하여 2D image 상의 최종 rgb 값 계산.

  • High-resolution을 얻어내기 위해, 1) positional encoding과 2) hierarchical sampling procedure 도입


(생략)


3. Neural Radiance Field Scene Representation

  • x=(x,y,z)\bold{x}=(x,y,z) + (θ,ϕ)(\theta, \phi) -<5D vector-valued function FΘF_\Theta>\rarr c=(r,g,b)\bold{c}=(r,g,b) + σ\sigma

  • Viewing direction과 관계없는 volume density σ\sigma는 location x\bold{x}로부터만 계산되도록 설계. 3D coordinate x\bold{x}가 8 FC layers에 입력되어 σ\sigma 값과 256-dim. feature vector를 출력하고, viewing direction d\bold{d}이 concatenate되어 1 FC layer에 입력, 최종 view-dependent RGB color가 출력됨.


4. Volume Rendering with Radiance Fields

  • Volume density σ(x)\sigma(\bold{x})를 해당 지점에서 ray가 멈출 differential probability로 여기는 관점. Camera ray r(t)=o+td\bold{r}(t)=\bold{o}+t\bold{d}에 해당하는 expected color C(r)C(\bold{r})은 아래와 같이 계산.
C(r)=tntfT(t)σ(r(t))c(r(t),d)dt, where T(t)=exp(tntσ(r(s))ds)C(\bold{r})=\int_{t_n}^{t_f}T(t)\sigma(r(\bold{t}))\bold{c}(\bold{r}(t), \bold{d})dt, \text{ where }T(t)=\exp(-\int_{t_n}^{t}\sigma(\bold{r}(s))ds)
  • T(t)T(t)tnt_n으로부터 tt까지 진행한 ray에 축적된 transmittance를 의미.

  • 위 계산을 deterministic quadrature로 근사하되, 아래와 같이 [tn,tf][t_n, t_f]NN개의 등간격으로 나눈 뒤 각 구간에서 uniform하게 query point를 추출하는 stratified sampling approach를 사용. 연속적인 지점 모두에 대한 학습이 이뤄지므로 continuous scene을 represent할 수 있음.

tiU[tn+i1N(tfti),tn+iN(tftn)]t_i\sim \mathcal{U}[t_n+\frac{i-1}{N}(t_f-t_i), t_n+\frac{i}{N}(t_f-t_n)]
C^(r)=i=1NTi(1exp(σiδi))ci, where Ti=exp(j=1i1σjδj)\hat{C}(\bold{r})=\sum_{i=1}^NT_i(1-\exp(-\sigma_i\delta_i))\bold{c}_i, \text{ where }T_i=\exp(-\sum_{j=1}^{i-1}\sigma_j\delta_j)
  • δi=ti+1ti\delta_i=t_{i+1}-t_i는 인접한 3D point sample 간 거리를 의미.

5. Optimizing a Neural Radiance Field

5.1 Positional Encoding

  • Deep network는 lower frequency function으로 학습되려는 경향이 있음. 이를 방지하기 위해, 입력값을 higher dimensional space로 mapping한 뒤 network에 입력하는 방식.
FΘ=FΘγF_\Theta=F_\Theta'\circ\gamma
γ(p)=(sin(20πp),cos(20πp),,sin(2L1πp),cos(2L1πp))\gamma(p)=(\sin(2^0\pi p), \cos(2^0\pi p), \cdots, \sin(2^{L-1}\pi p), \cos(2^{L-1}\pi p))
  • Transformers에서 사용되는 positional encoding은 sequence를 구성하는 token의 discrete position에 대한 정보를 부여하려는 목적이었다면, NeRF에서는 input coordinates를 higher dimensional space로 보내려는 목적.

5.2. Hierarchical Volume Sampling

  • Ray 상의 query points를 sampling하면 빈 공간이나 가려진 공간 등까지 반복적으로 선택돼 비효율적임. Rendering에 대한 기여도에 따라 sampling하기 위해 'coarse' network와 'fine' network를 동시다발적으로 학습.

  • Stratified sampling으로 NcN_c locations를 추출하여 우선 'coarse' network evaluate. 그렇게 학습된 'coarse' network의 출력값으로 계산된 normalized weights w^i=wi/j=1Ncwj\hat{w}_i=w_i/\sum_{j=1}^{N_c}w_j를 기반으로 inverse transform sampling하여 NfN_f locations 추출. 최종적으로 Nc+NfN_c+N_f samples에 대해 rendering 진행.


5.3. Implementation Details

  • 두 network에 대해, image에서 임의로 추출된 pixel의 rendered color와 true pixel color간 total squared error로 학습 진행.
    L=rR[C^c(r)C(r)22+C^f(r)C(r)22]\mathcal{L}=\sum_{\bold{r}\in\mathcal{R}}[||\hat{C}_c(\bold{r})-C(\bold{r})||_2^2+||\hat{C}_f(\bold{r})-C(\bold{r})||_2^2]

Paper Summary

  Spatial location과 viewing direction으로부터 color와 density를 출력하는 MLP에 고전적 volume rendering 방법을 결합하여 novel-view synthesis 수행. Positional encoding을 통해 resolution을 높이고 hierarchical volume sampling으로 학습의 효율을 높임.

profile
K'AI'ST 학부생까지의 기록

0개의 댓글