Ha-NeRF

김민솔·2024년 9월 22일
0

NeRF

목록 보기
4/10

Abstract

realistic NeRF를 얻기 위해서는 여러 문제점이 존재합니다.

  • 피사체가 갖는 time, day가 변할 수 있음.
  • 빛의 효과가 constant해야 렌더링 가능.
  • 따라서 scene이 static 성질을 갖게 됨..!

또한, vanila NeRF에서는 unseen appearance에 대한 이미지 렌더링도 불가능하다는 단점을 가집니다.
Ha-NeRF에서는 end-to-end 프레임워크를 구성하여 1️⃣ time-varing appearance 문제와, 2️⃣ occlusion 문제를 해결하고, 그것들을 3️⃣ novel views로 합성하는 hallucination 모듈을 제공합니다.

Introduction

앞에서 짧게 언급했듯이, 다른 뷰들로부터 얻은 이미지들이 날씨, 시간, occlusion(피사체, i.e. 사람들) 등의 요인들로 인해 받는 영향을 최소화하는 photo-realistic hallucination을 구현하는 것이 해당 논문의 목적입니다.

Internet photos

인터넷으로부터 얻는 사진들(i.e. 관광 landmarks)은 대부분 다른 시간대에서 찰영되었으며, 다양한 물체들에 의해 가려집니다. NeRF 모델들은 variable illumination과 moving objects에 대한 고려 없이, radiance를 constant하게 생성한다는 단점을 갖고 있습니다. 따라서, 인터넷 사진들(with different time, occlusion)로부터 3D volume을 랜더링하는 것이 어려운 task가 됩니다.

NeRF-W

NeRF-W에서는 위의 문제를 해결하기 위해 appearance embedding을 최적화하였습니다. input image의 static component와 occlusion을 구분할 수 있게 transient volume을 제공하기 위함입니다. 또한 appearance embedding을 통해 다양한 appearance도 조정 가능합니다.

NeRF-W가 기존에 비해 더 realistic 이미지를 랜더링하는 것은 맞지만, 새로운 이미지 혹은 다른 데이터셋으로부터 hallucination할 때 embedding을 추가로 최적화해야 한다는 단점을 가집니다. 또 transient embedding이 이동하는 occluder의 랜덤성에 취약하다는 단점도 가집니다.

Method

Ha-NeRF의 구조와 메커니즘은 다음과 같습니다.

  • (1) image Ii\mathcal{I}_{i}를 CNN으로 encoding하여 appearance latent vector ia\ell_i^a를 얻습니다.
  • (2) 카메라 rays로부터 sampling한 location x\mathbf{x}와 viewing direction d\mathbf{d}ia\ell_i^a를 MLP에 넣어 color c\mathbf{c}와 volume density σ\sigma를 얻습니다. (임베딩 벡터 제외 NeRF와 동일)
  • (3) reconstructed image Ii^\hat{\mathcal{I}_{i}}랜더링합니다.
  • (4) image-dependent transient embedding iτ\ell_i^\tau와 image Ii\mathcal{I}_{i}의 pixel location p\mathbf{p}를 MLP에 넣어, visible possibility Mi\mathcal{M}_i를 얻습니다.

View-consistent Hallucination

다양한 appearance로부터의 새로운 샷들로 3D scene을 생성하기 위해서는 1‍⃣ scene geometry를 다른 특징들로부터 구분하고, 2‍⃣ 새로운 appearance를 recon scene에 적용해야 합니다.

CNN encoder

Ha-NeRF에서는 CNN encoder EϕE_{\phi}를 사용하여 appearance 표현을 학습하였습니다. 파라미터 ϕ\phi가 변화하는 빛의 정도와, photometric 전처리 부분을 학습합니다. CNN을 사용하여 NeRF-W에서 가지는 추가 임베딩 최적화 문제를 해결하였습니다.

cλia=Fθ2(γd(d),z,ia)\mathbf{c}^{\lambda^{a}_{i}}=F_{{\theta}_{2}}(\gamma_{\mathbf{d}}(\mathbf{d}),\mathbf{z},\ell^a_i)
  • Fθ2F_{{\theta}_{2}}: fine-network
  • ia\ell^a_i: appearance embedding
    fine network에서 appearance-dependent radiance cia\mathbf{c}^{\ell^{a}_{i}}를 얻는 과정은 다음과 같습니다. 하지만, unpaired 이미지간의 viewing direction으로부터 얻는 appearance가 얻어지지 않는 문제가 발생합니다.

view-consistent Loss


따라서 다음과 같은 과정으로 view-consistent Loss를 적용합니다.

  • (1) 이미지 Ii\mathcal{I}_i에 대해서 CNN을 적용하여 latent vector ia\ell^a_i를 구합니다.
  • (2) 다른 view에서, 카메라 rays를 샘플하여 새로운 이미지 Iri\mathcal{I}^i_r을 랜더링합니다. (랜더링 시 latent vector ia\ell^a_i 사용.)
  • (3) CNN으로 ra\ell^a_r을 얻습니다.
  • (4) 두 벡터 사이의 L1 loss를 구합니다.
    Lv=Eϕ(Iir)ia1\mathcal{L}_{\mathbb{v}}= ||{E}_{\phi}(\mathcal{I}^r_i)-\ell^a_i||_1

Occlusion Handling

image-dependent 2D visible possibility Mi\mathcal{M}_i를 활용하여 static scene과 transient 피사체를 구분하는 문제를 해결하였습니다.
2D pixel location p(u,v)\mathbf{p}(u, v)과 transient embedding iτ\ell^\tau_i에 MLP(implicit continuout function FψF_\psi)를 적용하여 visible possibility Mi\mathcal{M}_i을 얻을 수 있습니다.

occlusion loss

Lo=MiC(rij)C^(rij)22+λo(1Mij)2\mathcal{L}_{o}= \mathcal{M}_i||\mathbf{C}(\mathbf{r}_{ij}) - \hat{\mathbf{C}}(\mathbf{r}_{ij})||^{2}_{2} + \lambda_{o}(1 - \mathcal{M}_{ij})^2
  • 첫 번째 term: reconstruction error
    - 렌더링된 이미지와 GT 이미지 간의 pixel visibility 구하기!
    - Mi\mathcal{M}_i의 값이 커질수록 pixel의 중요도가 올라감 (static phenomena)
  • 두 번째 term: regularizer
    - λo\lambda_oinvisible 확률을 조정. -> static phenomena를 덜 파악하게 됨.

Optimization

최종적인 Loss 식은 다음과 같습니다.

L=λiLv+ijLo\mathcal{L} = \lambda\sum\limits_{i}\mathcal{L}_{{v}} + \sum\limits_{ij}\mathcal{L}_{o}

이때 학습되는 파라미터들은 (θ,ϕ,ψ)(\theta, \phi, \psi)와 transient embedding {iτ}i=1N\{\ell^{\tau}_{i}\}^{N}_{i=1}입니다.




Experiments

Qualitative

  • NeRF: ghosting effect + global color shifts 발생
  • NeRF-W:
    - fog effect (blur) in "Brandenburg Gate"
    - 3D transient field를 추정하다가 발생함.
    - different appearances:
    - sunshine, blue sky in "Sacre Coeur"
    - light reflection in "Trevi Fountain"
  • Ha-NeRF(A):
    - (+): 더 일관성 있는 appearnce 보여줌 [i.e. blue sky in "Sacre Coeur"]
    - (-): occlusion에 의해, high-frequency 디테일 살려내지 못함
  • Ha-NeRF(T):
    - (+): occlusion이 있어도, 잘 reconstruction해냄 [i.e. the square in "Brandenburg Gate"]
    - (-): varing photometric effects를 모델링하지 못함
  • Ha-NeRF: 두 ablation의 이점 모두 가짐..!

Quantitative

  • PSNR과 SSIM은 NeRF-W와 비슷한 반면에, LPIPS에서는 outperform
  • NeRF-W는 test images 절반을 이미 학습한 후 inference하므로, 불공평하다고 저자들은 밝히고 있음.

Ha-NeRF vs NeRF-W

Appearance Hallucination

  • appearance vector에 color로 conditioning

  • 3D geometry 변화 없이도, lightning 및 appearance 조정 가능

  • appearance vector에 대한 interpolation 실험

  • NeRF-W의 경우, interpolation 시 sunset glow 부분이 무시되었음

  • transient field를 렌더링 도중에 추가한 결과, sunset glow 구현됨
    -> NeRF-W가 transient 현상으로부터 변화하는 appearance를 구분하지 못함

Occlusion Handling

  • NeRF-W의 3D transient field와 Ha-NeRF의 visibility map 비교
  • NeRF-W의 segmentation이 부정확한 반면, Ha-NeRF는 static scene과 transient objects를 더 잘 구분함

Limitations

  • Ha-NeRF는 noisy camera extrinsic parameters로부터 안좋은 성능을 보임
  • input images가 motion-blurred or defocused인 경우, 성능이 감소


Reference

[1] Hallucinated Neural Radiance Fields in the Wild, Xi’an Jiaotong University, https://openaccess.thecvf.com/content/CVPR2022/papers/Chen_Hallucinated_Neural_Radiance_Fields_in_the_Wild_CVPR_2022_paper.pdf

profile
Interested in Vision, Generative, NeRFs

0개의 댓글