일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- YAI
- CNN
- GaN
- 자연어처리
- YAI 11기
- RCNN
- NLP #자연어 처리 #CS224N #연세대학교 인공지능학회
- NLP
- 3D
- transformer
- rl
- Googlenet
- CS224N
- 강화학습
- Faster RCNN
- 연세대학교 인공지능학회
- GAN #StyleCLIP #YAI 11기 #연세대학교 인공지능학회
- Fast RCNN
- VIT
- cv
- nerf
- 컴퓨터 비전
- YAI 10기
- YAI 9기
- cl
- Perception 강의
- PytorchZeroToAll
- CS231n
- YAI 8기
- 컴퓨터비전
- Today
- Total
연세대 인공지능학회 YAI
[논문 리뷰] NeRF: Representing Scenes as Neural Radiance Fields for View Synthesis 본문
[논문 리뷰] NeRF: Representing Scenes as Neural Radiance Fields for View Synthesis
_YAI_ 2022. 5. 17. 01:20NeRF: Representing Scenes as Neural Radiance Fields for View Synthesis
**YAI 8기 김현진님이 비전 논문 심화팀에서 작성한 글입니다.
European Conference on Computer Vision (ECCV), 2020 (Best Paper Honorable Mention)
https://arxiv.org/pdf/2003.08934.pdf
3. Neural Radiance Field Scene Representation
이 논문에서는 연속적인 장면들을 5D 벡터 함수의 형태 (Radiance Field)로 나타낸다. Input은 위치 (x, y, z), 방향 (θ, ϕ)
이고, Radiance와 Radiance의 양을 조절하는 volume density가 output이다.
1. Camera Ray를 따라, point를 sampling해서 5D 좌표를 얻는다.
2. 해당 좌표들을 MLP에 통과시켜, Color와 Volume Density를 output받는다.
3. Volume Rendering을 사용해서 해당 output 값들을 2D 이미지로 바꾼다.
4. Rendering 함수는 미분 가능하기 때문에, 새롭게 만들어진 2D 이미지와 Ground Truth 이미지 사이의 잔차를 최소화시킨다. Stochastic Gradient Descent 방식으로 잔차가 최소화된다.
Multiview Consistent한 이미지를 생성하기 위해, location 의 (x, y ,z )만을 활용하여 density σ 를 예측한다. 여기에서, RGB color c는 location (x, y, z)과 viewing direction (θ, ϕ) 을 모두 활용하여 예측을 하게 된다.
MLP $F_{\theta}$에 3D 좌표인 x 를 input하고, 8개의 fully-connected layer를 통해 output인 σ 와 256차원 feature vector를 생성해낸다. 이렇게 생성한 feature vector는 camera ray의 viewing direction (θ, ϕ) 과 합해지게 된다. 마지막으로, 합쳐진 feature vector는 ReLU 활성함수와 128 채널로 구성된 FC layer를 통과하게 되고, RGB color c (r, g, b)를 구하게 된다.
위와 같이 viewing direction을 합치는 이유는, non-Lambertian Effect를 구현하기 위함이다. (Lambertian Effect -> 모든 closed polygon이 렌더링되었을 때, 같은 겉보기 밝기를 갖는 현상)
4. Volume Rendering with Radiance Fields
이 논문에서는 5D Neural Radiance Field를 사용해서 scene을 공간상의 한 포인트에 대한 volume density와 directional emitted radiance로 표현한다. Scene을 통과하는 ray의 color를 렌더링하기 위해서 classical volume rendering (고전적 렌더링)을 사용하게 된다.
Camera Ray: rt=o+td
특정 시점 o에서 d의 방향으로 t만큼 이동하는 Camera Ray가 있을 때, Color C(r)는 해당 Camera Ray의 각 포인트에 대한 기댓값이다.
위에서 T(t)는 $t_n$ 에서 t까지 Camera Ray의 누적된 투과율을 의미한다. 즉, 다른 입자와 충돌을 하지 않고, $t_n$
에서 t까지 이동할 수 있는 확률을 의미한다.
정리하자면, Color를 렌더링하기 위해서, C(r)을 예측해야 한다. 이 C(r)을 예측하기 위해서, [$t_n$, t_f$] 의 구간을 N으로 등분하여 uniform하게 sampling을 하는 구분구적법을 활용하게 된다.
(C(r)을 예측하기 위해 discrete sample을 사용하지만, MLP가 연속적인 position에 대해서 evaluation을 하기 때문에, 구분구적법을 통한 continuous scene representation이 가능한 것이다. )
구분구적법을 통하여 C(r)을 예측하면 다음과 같다.
여기에서 δi=ti+1-ti
는 인접한 샘플 간의 거리를 의미한다.
5. Optimizing a Neural Radiance Field
하지만, 저자들은 앞서 설명한 color rendering은 State of the Art 퀄리티를 달성하기 위해서 충분하지 않다고 지적한다. 따라서, 이 논문은 복잡하고 고해상도의 scene을 표현해내기 위해서 두 가지 방법을 제시하는데, Positional Encoding과 Hierarchical Volume Sampling이다.
Positional Encoding -> MLP가 High-frequency 함수를 표현하는 데 도와주는 과정
Hierarchical Sampling -> sampling을 효율적으로 할 수 있도록 도와주는 과정
5.1 Positional Encoding
저자들은 네트워크 $F_{\theta}$에 (x, y, z, θ, ϕ) 을 직접 input하면, color에서 나타나는 high-frequency variation을 제대로 표현하지 못한다는 단점이 있다는 것을 발견했다. 이는 Deep Network들이 lower-frequency function에 편향되게 학습이 된다는 최근의 연구 (Rahaman et.al) 에서도 밝혀진 사실이다.
이를 해결하기 위해, $F_{\theta}$ 를 $F_{\theta} \circ \gamma $ 로 재구성해야 한다.
여기에서 γ 는 R 에서 고차원 공간 R2L 로 매핑하는 함수이고, FΘ' 는 일반적인 MLP이다.
이 논문은 γ(x) 는 L= 10으로 지정하였고, γ(d) 는 L=4로 지정해서 실험을 진행하였다.
5.2 Hierarchical Volume Sampling
4절에서는 Camera Ray를 따라 N query point에서 Neural radiance field network를 evaluate했는데, 이 방식은 렌더링에서 불필요한 free space (빈공간)과 occluded regions (가려진 공간)을 반복적으로 sampling하기 때문에 상당히 비효율적이다.
이러한 문제점을 해결하기 위해서, 저자들은 Hierarchical Sampling을 제안한다.
Hierarchical Sampling은 하나의 장면의 표현을 위해서 하나의 네트워크를 사용하는 것이 아닌, 두 개의 네트워크 (“coarse”, “fine”)을 동시에 학습시키는 방식이다.
먼저, Stratified Sampling을 통해 $N_C$ 개의 location을 sampling하고, 해당 location에서 “coarse” 네트워크를 평가한다. 그 다음으로, coarse 네트워크의 output을 받아서, volume과 관계 있는 부분을 향해 편향된 파트에서 informed sampling을 진행한다. -> 이를 위해, Coarse Network의 alpha composited color Cc(r) 를 sampled color ci
들의 weighted sum으로 표현한다. 수식은 다음과 같다.
Inversed Transform Sampling을 활용하여 $N_f$개의 location을 sampling하고, 총 Nc+ Nf 개의 sample로 fine 네트워크를 평가하게 된다. (이 과정은 Visible content가 있는 영역에 sampling이 더 많이 할당되도록 돕기 위함이다.)
** Inverse Transform Sampling?
역변환 샘플링!!!
특정 확률분포를 따르는 확률변수 X에 대해서 난수를 추출하고 싶을 때, F(x)의 역함수 F-1
에 기본 난수를 대입해서 구하는 방법이다.
5.3 Implementation Details
1. 각 optimize iteration마다 camera ray batch를 랜덤으로 sampling한다.
2. Hierarchical Sampling과정을 수행한다. Coarse Network에서 $N_C$ 개의 sample을 뽑고, Fine Network에서 $C_N + C_f$ 개의 sample을 뽑게 된다.
3. Color를 렌더링하기 위해, 4절에서 설명한 Volume Rendering 단계를 수행한다.
4. True Pixel Color와 Rendered Color사이의 Total Squared Error를 계산한다. 최종 Loss는 Coarse Rendering의 total squared error와 Fine Rendering의 total squared error의 합이다.
참고로, 최종 rendering은 $\hat C_f(r)$ (Fine Network Rendering)에서 나오지만, fine network의 sample을 할당하기 위해 coarse network로부터의 weight distribution을 활용해야 한다. 따라서, Cc(r) (coarse network rendering)의 loss도 최소화시켜야 한다.
이 논문에서는 $N_C=64$,$N_f=128$ 의 좌표에서 sampling된 4096개의 ray batch size를 사용하였다. 추가적으로 Adam Optimizer로 weight decay과정을 진행했고, 100-300k iteration을 걸쳐서 한 scene을 optimize 했다고 밝혔다.
6. Results
Synthetic Rendering of Objects
이 논문 이전에 나왔던 SRN, NV, LLFF보다 성능이 좋은 것을 확인할 수 있다. 또한, 위의 사진에서 확인할 수 있듯이, 더욱 고화질이며 선명하게 렌더링된 것을 확인할 수 있다.
Real Images of Complex Scenes
forward-facing image를 비교했을 때에도, NeRF의 성능이 다른 것에 비해 좋은 것을 확인할 수 있다. 비록, LLFF의 LPIPS의 성능이 좀 더 좋지만, 저자들은 NeRF가 Multiview consistency면에서 훨씬 우수하다고 강조한다.
Ablation Studies
Ablation Study -> 특정 component들을 없애면서 AI 시스템의 성능을 체크하는 연구방법
(**7-8열에서는 x의 positional encoding 에 활용된 frequency L에 대한 조정이다. )
참고로, 25개의 image를 NeRF에 input한 결과가 NV, SRN, LLFF에 100개의 image를 input했을 때의 결과보다 더 좋다.
7. Conclusion
장면을 5D Neural Radiance Field의 형태로 나타내는 것이 기존의 연구에서 사용되어 왔던 deep convolutional network를 학습시켜 discretized voxel representation의 형태로 나타내는 것보다 좋은 rendering을 산출해낸다.
추후 연구해야 하는 부분
-> Neural Radiance Field를 효과적으로 optimize와 render하는 방법
-> Interpretability 에 대한 방향이 남아있다. Deep Neural Network의 weight들에서 scene을 encoding할 때의 맞고 틀리고의 reasoning을 어떻게 해야할지가 불분명하다.
'컴퓨터비전 : CV > 3D' 카테고리의 다른 글
[논문 리뷰] NeRF : Representing scenes as Neural Radiance Fields for view synthesis (0) | 2023.03.04 |
---|---|
Instant Neural Graphics Primitives with Multiresolution Hash Encoding (1) | 2022.09.26 |