1저자 : Ben Mildenhall, Pratul P. Srinivasan, Matthew Tancik - UC Berkeley (현 Google Research)
Jonathan T. Barron - Google Research
Ravi Ramamoorthi - UC San Diego
Ren Ng - UC Berkeley
Official ECCV
https://www.ecva.net/papers/eccv_2020/papers_ECCV/papers/123460392.pdf
Arxiv
https://arxiv.org/abs/2003.08934
본 연구를 통해 기본 연속 체적 장면 함수(underlying continuous columetric scene function)를 최적화하여 복잡한 장면의 새로운 관점을 합성하기 위한 최신 방법을 제안한다.
spatial location $x,y,z$와 viewing direction $\theta , \phi$로 구성된 5차원 좌표를 입력으로 가지고 해당 위치에 대한 방출 radiance와 volume density(체적 밀도)를 출력하는 fully-connected deep network를 활용한다.
camera ray를 따라 5차원 좌표를 질문하여 장면들을 합성하고 고전적인 volume rendering 기술을 사용하여 출력 색상과 밀도를 이미지에 project시킨다.
volume rendering을 위해 필요한 유일한 입력은 camera pose가 있는 이미지 세트이다.
본 논문을 통해 복잡한 기하학 및 외관을 포함하는 장면들의 사실적인 장면을 render할 수 있도록 Neural Radiance Fields를 어떻게 최적화하는지 설명한다.
(더 많은 자료는 최하단 공식 홈페이지 링크를 참조하세요.)
본 연구를 통해 저자들은 5차원 scene representation(장면 표현)의 파라미터를 최적화하는 방식으로 view synthesis(장면 합성)의 오랜 문제를 해결하고자 한다.
입력 : 3D/spatial location $x,y,z$와 2D viewing direction $\theta , \phi$
출력 : emitted/view-dependent color $r,g,b$와 volume density $\sigma$
각 위치의 density는 그 위치를 통과하는 불투명도에 따라 축적된 radiance의 값에 따라 정해진다.
이때의 함수는 convolutional layer가 없이 오직 fully-connected neural network(MLP)로 구성되어 최적화를 진행한다.
특정 시점의 Neural Radiance Field (NeRF)를 rendering 순서(section 3, Figure 2 참조)
1) 샘플 3D 위치를 생성하기 위한 camera ray를 march함. (여기서의 march는 위치로부터의 ray(선)을 생성한다고 봄.)
2) 신경망의 결과물의 색과, 밀도를 얻기 위해 입력으로 $x,y,z, \theta , \phi$를 사용.
3) 고전적인 volume rendering 기술을 사용하여 생성물의 색상과 밀도를 기반으로 2D 이미지로 축적
특정 시점에 대한 결과 이미지와 원본 관찰 이미지 간 오류를 최소화하는 방향으로 최적화가 가능.
그러나 복잡한 장면에서의 최적화 결과는 고해상도 표현하기에 수렴하지 못하고 카메라 광선당 요구되는 샘플의 수가 비효율적이다.
이를 해결하기 위해 positional encoding(section 5.1)과 hierarchical sampling procedure(section 5.2)를 사용한다.
positional encoding : 고주파 기능을 표현할 수 있게 함.
hierarchical sampling procedure : 고주파 장면 표현에 대한 적절한 샘플링이 요구되는 query의 수를 감소하게 함.
Contributions
1) 복잡한 기하학이 접목되는 연속적인 장면을 표현하기 위해 기본적인 MLP 네트워크로 매개변수화된 5D neural radiance fields으로 표현하기 위한 접근법
2) hierarchical sampling strategy을 포함하는 고전적인 volume rendering 기술 기반의 미분가능한 rendering 절차
3) 5차원 좌표를 고차원의 공간에 매핑하기 위한 positional encoding를 통해 고주파수를 표현하게 함.
3D spatial location으로 implicit representation을 매핑하는 MLP 속 물체나 장면 encoding하는 것이 유망하나 복잡한 기하학을 표현하는 사실적인 표현이 불가능하다. 반면 triangle meshes나 voxel grid와 같은 discrete representation은 가능.
Neural 3D shape representations
3D spatial location으로 implicit representation을 매핑하는 여러 방법들
But 간단한 기하학적 복잡도가 있는 간단한 모형으로 국한되며 과도하게 부드러운 rendering을 하게함.
저자들은 5D radiance field이 더 좋음을 본 논문에서 보였다고 설명.
View synthesis and image-based rendering
mesh-based representation, volumetric representation(voxel grid)
입력 : 3D/spatial location $\mathbf{x}=(x,y,z)$와 2D viewing direction $\mathbf{d}=(\theta , \phi)$
출력 : emitted/view-dependent color $\mathbf{c}=(r,g,b)$와 volume density $\sigma$
$$F_\Theta : (\mathbf{x},\mathbf{d}) \rightarrow (\mathbf{c},\sigma)$$
MLP 구조 : 8개의 fully-connected layer가 존재하고 각 layer는 256의 channel을 가짐.
이때의 activation function은 ReLU.
9번째 fully-connected layer에 밀도를 출력할 수 있게함.
이후 128의 channel을 가지는 fully-connected layer로 RGB 값을 도출.
Figure 7에 존재하는 중간에 존재하는 녹색 사각형은 positional encoding으로 section 5.1 내용 참조.
Fig. 3을 통해 non-Lambertian effect를 표현하기 위한 viewing direction 사용의 예를 보여줌.
램버시안 반사율(Lambertian reflectance)을 갖는 표면은, 관찰자가 바라보는 각도와 관계없이 같은 겉보기 밝기를 갖는다. 더 기술적인 용어로는, 물체 표면의 휘도가 등방성(等方性)을 가질 때 그 표면이 램버시안 반사율을 갖는다고 한다. - Wiki : 람베르트 반사
고전적인 volume rendering을 사용하여 ray가 지나가는 color $C(r)$를 render할 수 있도록 함.
Kajiya, J.T., Herzen, B.P.V.: Ray tracing volume densities. Computer Graphics (SIGGRAPH) (1984)
https://dl.acm.org/doi/10.1145/964965.808594
camera ray $r(t) = o + td$
volume density $\sigma(x)$는 위치 $x$에 대한 극소 입자에서 종결되는 ray의 미분 확률.
$T(t)$는 $t_n$부터 $t$까지의 밀도에 대한 ray 적분의 마이너스를 지수로 가지는 값.
$T(t)$는 $t_n$부터 $t$까지 ray를 따라 누적되는 transmittance(투과율). 즉, 어떤 입자도 충돌없이 ray를 따라 진행할 수 있는지에 대한 확률.
이 부분에 대한 해석 : 카메라로부터 가까운 $t_n$부터 특정 위치 $t$까지의 밀도가 높다면 무엇인가 그것을 가로막고 있다는 뜻이고 이에 따라 $T(t)$는 작아짐. 반대로 $t_n$부터 $t$까지의 밀도가 낮다면 $t$ 위치까지 가로막는 물체가 없기 때문이라고 생각할 수 있고 이에 따라 $T(t)$는 높아짐.
이산화를 위해서 uniform distribution에서 동일 간격에서 N개의 값을 랜덤하게 뽑는 stratified sampling approach를 사용.
이산화된 sampling 값으로부터 ray에 대한 color 추정 방식을 위와 같이 나타날 수 있음. 이는 식 (1)에서 다룬 것과 동일한 결과를 가짐.
제안한 네트워크만으로는 색상과 기하학적 고주파수 변수의 표현에 있어 rendering이 잘 작동하지 않는다고 본다. 이는 deep network가 낮은 주파수 (저주파) 기능을 학습하는데 편향되어있다는 것을 의미한다.. 때문에 이에 대한 성능 향상을 위해 고주파 함수를 사용하여 더 높은 차원의 공간에 매핑하도록 한다.
$\gamma$는 $\mathbb{R}$로부터 더 높은 차원의 공간 $\mathbb{R}^{2L}$로의 mapping이 가능하게 한다.
본 실험에서는 3 좌표계를 의미하는 $\gamma (x)$에 대하여 $L=10$을 사용하고 Cartesian viewing direction unit vector를 의미하는 $\gamma (d)$에 대하여 $L=4$를 설정한다.
NLP Transformer에서 사용하는 positional encoding과는 다른 목적성을 가지고 사용함.
본 논문에서는 고차원 공간에서 연속적인 입력 coordinate를 mapping함으로써 MLP가 더 쉽게 고주파 함수에 근사할 수 있게 한다.
NeRF는 효율적인 rendering을 위해 2개의 네트워크를 동시에 최적화하는 hierarchical 구조를 가진다. (물체가 존재하는 곳에 대한 샘플링해서 rendering하고 싶은 것)
=> Coarse network, Fine network
1) Coarse network에서 stratified sampling을 사용하여 $N_c$만큼의 샘플 포인트를 뽑고, 식 (2), (3)를 기반으로 해당 위치에 대한 coarse network를 평가한다.
2) 가중치 분포에서 inverse transform sampling을 통해 $N_f$만큼의 sampling을 진행하고 fine network를 평가한다. 이때, $N_c + N_f$ 모든 샘플을 사용해서 ray의 render된 최종 색상을 계산한다. $\hat{C_f} (r)$
https://en.wikipedia.org/wiki/Inverse_transform_sampling
정리 : 전체적인 샘플링을 통한 Coarse network를 구해 색을 구한 다음, 가중치가 높은 곳, 즉, 물체가 존재하는 곳에 대한 분포가 존재하는 곳에 대하여 sampling을 다시 진행하여 fine network에 대한 평가를 진행. 결과적으로 최종 기대 색을 추정할 수 있음
본 연구에서 사용하는 Loss를 구해진 색상들에 대한 L2 Loss이다.
Batch size : 4096 rays
$N_c=64, N_f=128$
Adam optimizer
learning rate : $5 \times 10^{-4}$에서 시작해서 $5 \times 10^{-5}$까지 지수적으로 감소
단일 장면에 대한 최적화는 단일 NVIDIA V100 GPU로 1~2일동안 훈련을 진행을 통해 100~300k iteration 반복하여 수렴함.
다른 방법들 대비 제안한 모델이 좋은 정량적 지표를 보여줌.
NeRF가 다른 모델들 대비 높은 신뢰도의 영상을 보여줌.
제안한 것들을 모두 사용했을 때 가장 좋은 성과를 나타냄.
https://www.matthewtancik.com/nerf
https://hsejun07.tistory.com/78