Abstract
NeRF는 MLP의 weights를 사용하여 3D scene의 color와 density를 추정하는 모델입니다. NeRF가 static subjects의 이미지들(+ controlled setting)로부터만 좋은 성능을 보이는 문제를 해결하기 위해 NeRF-W를 제안하였습니다. 많은 illumination 환경과 움직이는 occluder가 존재하는 환경에서도, scene을 잘 생성해내는 것이 목표입니다.
Introduction
NeRF의 가장 큰 제한점은 scene이 전체적으로 static한 것입니다. (density와 radiance 모두 변하지 않습니다.) 따라서 NeRF는 두 사진이 같은 위치와 방향을 가져야만 합니다. 해당 조건은 대부분의 real-world dataset에서 위반됩니다. 따라서 NeRF-W는 다음의 두 문제를 해결하기 위해 제안되었습니다.
1) Appearance variations
exposure, lighting, weather, time 등 여러 요소들에 의해 같은 위치와 방향에 있더라도 다른 특징을 갖게 됩니다.
2) Transient components
scene에는 다양한 occluders가 존재합니다. 따라서 scene에 존재하는 요소들 중에 static 요소와 transient 요소를 구분해야만 합니다.
Background (NeRF)
NeRF에 대해서 짧게 살펴보고 넘어가겠습니다. NeRF는 연속적인 volumetric radiance field Fθ를 통해 scene을 표현하는 모델입니다. Fθ는 MLP로 모델링되며, input으로는 3D pos x=(x,y,z)와 단위 정규 viewing direction d=(dx,dy,dz)를, output으로는 density σ와 color c=(r,g,b)를 가집니다.
Rendering
camera ray r(t)=o+td로부터 NeRF의 color 근사 과정을 식으로 나타내면 다음과 같습니다.
C^(r)=R(r,c,σ)=k=1∑KT(tk)α(σ(tk)δk)c(tk)
- R: volumetric 렌더링 color
- T(tk)=exp(−k′=1∑k−1σ(tk′)δk′): ray에서 t까지의 축적된 투과도 표현
- ray 앞에 density가 많이 축적되어 있는 경우, T(t)값이 작아지게 됨! -> color 값도 작아짐.
- Stratified sampling으로 near, far plane 사이에서 tk 샘플링.
Model
[σ(t),z(t)]=MLPθ1(γ(r(t)))
c(t)=MLPθ2(z(t),γd(d))
NeRF의 모델입니다. 자세한 구조 설명은 생략하겠습니다!
Loss
ij∑∣∣C(rij)−C^c(rij)∣∣22+∣∣C(rij)−C^f(rij)∣∣22
NeRF의 loss식입니다. NeRF는 coarse와 fine 모델을 동시에 사용하므로, 두 모델의 L2 loss의 sum을 전체적인 loss로 사용합니다. coarse 모델이 예측한 density로부터 샘플링한 points를 fine model에 fedding하여, 더 정확한 렌더링을 fine model을 통해 이끌어내는 방식입니다.
NeRF in the Wild
NeRF와 동일하게, 이미지들로부터 카메라 파라미터들을 구한 후(using COLMAP), volumetric density를 Fθ를 통해 얻습니다. 하지만 NeRF는 다른 두 이미지에서의 3D space 한 점이, 같은 position과 viewing direction으로부터 얻어져야 하며, 같은 intensity를 가져야 합니다. 이 가정은 다음의 문제들을 발생시킵니다.
1) Photometric variation
날짜가 달라지거나, 날씨가 달라짐에 따라 이미지의 illumination(-> emitted radiance)에 영향을 줍니다. auto-exposure, white balance, tone-mapping 등의 요소들은 더욱 심한 issue를 발생시킵니다.
2) Transient objects
실제 랜드마크 이미지들은 대부분 어떠한 물체에 의해 가려집니다. (i.e. moving objects, occluders)
따라서, 두 문제를 해결하기 위해 NeRF-W에서 적용한 방법을 살펴보겠습니다.
Latent Appearance Modeling
변화하는 빛의 정도와 photometric postprocessing을 위해, appearance embedding 벡터 ℓi(a)를 도입하였습니다. NeRF의 렌더링 식에서, image의 color 값이었던 c를 appearance 임베딩으로 대체한 것입니다.
C^i(r)=R(r,ci,σ)
ci(t)=MLPθ2(z(t),γd(d),ℓi(a))
- ℓi(a): appearance embedding
- C^i(r): approximated pixel color !
latent embedding을 통하여, scene이 다양한 radiance를 표현하는 것이 가능해졌습니다.
Transient Objects
Transient head
vanila NeRF의 color MLP 부분 [c(t)=MLPθ2(z(t),γd(d))]을 static head로 사용하면서, "transient head"를 추가하여 해당 모델만의 color와 density를 구하도록 설계하였습니다. 이를 통해 NeRF-W가 occluder를 포함하는 이미지들로부터도 scene을 재구성할 수 있습니다.
또한 각 pixel의 color를 isotropic 정규 분포로 두어 해당 분포들의 likelihood를 최대화하고, 분포의 variance는 rendering합니다. -> N(r;C^(r),βi(r))
C^(r)=k=1∑KT(tk)(α(σ(tk)δk)ci(tk)+α(σi(τ)(tk)δk)ci(τ)(tk))
Ti(tk)=exp(−k′=1∑k−1(σ(tk′)+σi(τ)(tk′))δk′)
expected color는 static과 transient 요소들이 합쳐진 alpha composite로 나타납니다. 따라서 NeRF-W가 static과 transinet 요소들을 한번에 scene에 담아냅니다.
Uncertainty
Trainsient head가 color, density 뿐만 아니라 uncertainty도 output으로 출력하여 occluder가 포함된 지역 + unreliable pixel을 무시하는 recon loss를 모델링하였습니다. 등방성(isotropic) 정규 분포의 variance인 βi(r)는 transient density σi(τ)(t)에 따른 alpha-compositing으로 구할 수 있습니다.
β^i(r)=R(r,βi,σi(τ))
transient 부분이 이미지 전체적으로 학습되려면, training image Ii에 대응하는 두 번째 embedding ℓi(τ)가 필요합니다. transient MLP를 식으로 나타내면 다음과 같습니다.
[σi(τ)(t),ci(τ)(t),β~i(t)]=MLPθ3(z(t),ℓi(τ))
βi(t)=βmin+log(1+exp(β~i(t)))
- ReLU, sigmoid: σi(τ)(t), ci(τ)(t)
- softplus: βi(t)
Loss
image i 내 ray r에 대한 최종 Loss 식은 다음과 같습니다.
Li(r)=2βi(r)2∣∣Ci(r)−C^i(r)∣∣22+2logβi(r)2+Kλuk=1∑Kσi(τ)(tk)
왼쪽부터 두 term은 N(r;C^(r),βi(r)) 정규 분포를 따르는 Ci(r)의 negative log likelihood입니다. uncertainty βi가 커질수록, pixel의 중요성이 경감됩니다. 첫 번째 term이 두 번재 term에 의해 균형이 맞춰지는 것으로도 파악할 수 있습니다.
세 번째 term은 transient density σi(τ)(t)에 대한 L1 regularizer로 해석할 수 있습니다. 모델이 transient density에 영향 주는 정도를 감소시킵니다.
Optimization
NeRF와 마찬가지로, fine 모델과 coarse 모델을 동시에 최적화합니다. coarse 모델은 latent appearance만 사용하며, fine 모델은 아래 수식에 따라 update됩니다.
ij∑Li(rij)+21∣∣C(rij)−Cic(rij)^∣∣22
파라미터 θ에 따라 appearance 임베딩과 transient 임베딩도 최적화합니다.
- 기타 하이퍼파라미터
- λu: trainsient term 조절 값
- βmin: Beta(Uncertainty)의 min 값
- n(a),n(τ): embedding dimension
Experiments
Qualitative
기존 연구인 NRW, NeRF 뿐만 아니라 Appearance, trainsient만 따로 적용해보는 ablation study를 하였습니다. NRW는 3D geometry error에 대해 민감하였으며, NeRF는 일관성 있는 3D geometry를 보인 반면에 ghosting artifacts나 occlusion을 크게 보였습니다.
NeRF-A(appearance)는 더 적은 foggy 렌더링을 (NeRF에 비해) 보였으며 NeRF-U는 fine detail, 즉 high-frequency를 잘 살려내는 성능을 보였습니다. NeRF-W는 두 장점을 합쳐 이전 기술들이 갖고 있던 단점들을 보완하였습니다.
Quantitative
NeRF-W는 PSNR과 MS-SSIM에 대해서는 모든 데이터셋에서 가장 좋은 성능을 보였습니다. perceptual loss인 LPIPS에서는 NRW에 비해 더 낮은 성능을 보였지만, 저자들은 카메라 움직임에 따른 flicker, wobble 표현이 해당 metric에 반영되지 않은 것에 중점을 두었습니다.
Conclusion
Internet 사진들로도 scene reconstruction을 가능하게 한 첫 번째 논문이었습니다. 아직 NeRF가 실제로 활용되려면 많은 부분이 보완되어야 하지만, NeRF-W를 시작으로 조금씩 발전하고 있다고 생각됩니다. 후속 논문들도 조금씩 살펴보겠습니다!
Reference
[1] NeRF in the Wild: Neural Radiance Fields for Unconstrained Photo Collections, Google Research, https://arxiv.org/pdf/2008.02268