1️⃣ 단일 5D 좌표를 입력값으로 하는 심층 신경망 최적화
2️⃣ 카메라 레이를 따라 샘플링하여 색상과 밀도를 출력
3️⃣ 전통적인 볼륨 렌더링 기법 사용하여 이미지로 조합
요약
특정 몇 개의 시점에서 촬영한 이미지들로부터 주어지지 않은 위치와 방향에서 바라본 대상의 모습을 Continuous 하게 합성해내는 기술
NeRF는 Novel View Synthesis 분야에서, Point Cloud나 Mesh, Voxel 등으로 표현되는 3D Object 자체를 렌더링하는것이 아닌, 3D Object를 바라본 모습(이미지)들을 예측할 수 있는 모델을 만드는 것이 목표
abstract
인풋은 spatial location(x, y, z)에 viewing direction(θ, φ)이고,
아웃풋은 해당 spatial location에서 volume density와 시점에 따라 달라지는 emitted radiance
인풋이 카메라 포즈가 알려진 이미지 세트(50~100쌍)가 표현을 최적화하는데 필요함
algorithm
2D 이미지의 좌표랑 카메라 시점 정보를 통해서 좌표에 해당하는 3d voxel의 좌표를 계산할 수 있고,
그 값을 반대로 color값과 density 값의 sum으로 2d pixel의 RGBA를 계산할 수 있음
실제 2D 이미지의 RGBA 값의 차이를 loss로 잡아서 학습시킴
각 2D pixel 좌표마다 카메라 시점으로 3d 공간에 Ray를 그린 후 Ray 위의 Voxel의 좌표를 샘플링함
FCN을 통해 모든 3D Voxel에 대해 radiance, density를 계산함
radiance, density로 2D의 RGBA값을 계산함.
실제 색상 값이랑 예측 색상 값으로 L2 Loss값 계산 가능
FCN
1. Color rendering
2d pixel 좌표마다 카메라 시점 방향으로 ray를 쏘고, ray 위의 N개의 3D voxel 좌표를 샘플링함
N개 중 i번째 3D voxel좌표와 카메라시점을 MLP 입력으로 넣어서 volume density와 radiance를 계산함
Volume Rendering 자체가 미분 과정이기 때문에
예측된 volume density랑 radiance를 사용해서 각 ray를 따라 색상값으로 적분함
적분된 값이 투영된 2D 픽셀의 예측 색상값이 됨
예측 색상값과 실제 색상값의 loss 학습