2022. 12. 8. 17:13ㆍView Synthesis
Depth-supervised NeRF: Fewer Views and Faster Training for Free
Kangle Deng, Andrew Liu, Jun-Yan Zhu, Deva Ramanan
Abstract
일반적으로 관찰되는 Neural Radiance Field (NeRF)의 실패 모드는 입력 뷰의 수가 충분하지 않을 때 잘못된 기하학적 구조를 맞추는 것이다.
한 가지 잠재적인 이유는 표준 볼륨 렌더링이 장면 기하학의 대부분이 빈 공간과 불투명한 표면으로 구성된다는 제약을 적용하지 않기 때문이다.
우리는 쉽게 이용할 수 있는 depth supervision을 활용하는 radiance field 분야의 loss인 DS-NeRF(Depth-Supervised Neural Radiance Fields)를 통해 위의 가정을 공식화한다.
우리는 현재의 NeRF 파이프라인이 일반적으로 structure-from-motion (SFM)을 실행하여 추정되는 알려진 카메라 포즈로 이미지를 필요로 한다는 사실을 활용한다.
결정적으로, SFM은 학습 중에 "free" depth supervision으로 사용할 수 있는 희소 3D 포인트를 생성한다: 우리는 depth 불확실성을 통합하여 주어진 3D 키포인트와 일치하는 레이의 종단의 depth 분포를 장려하기 위해 loss를 추가한다.
DS-NeRF는 2-3배 더 빠르게 학습하면서 더 적은 학습 뷰를 제공하면 더 나은 이미지를 렌더링할 수 있다.
또한, 우리는 우리의 loss가 최근에 제안된 다른 NeRF 방법과 호환된다는 것을 보여주며, depth가 저렴하고 쉽게 소화할 수 있는 supervisory 신호임을 보여준다.
1. Introduction
implicit 표현을 사용한 neural rendering은 뷰 합성[28, 18]에서 re-lighting[16, 14], 포즈 및 형상 추정[19, 24, 36], 3D 인식 이미지 합성 및 편집[26, 1, 11], 동적 장면[20, 22, 9]에 이르기까지 많은 종류의 비전 및 그래픽 작업을 해결하는 데 널리 사용되는 기술이 되었다.
Neural Radiance Fields (NeRF)[15]의 주요 연구는 볼륨 밀도와 색상 관측치를 인코딩하기 위해 implicit 함수를 사용하여 인상적인 뷰 합성 결과를 보여주었다.
그럼에도 불구하고, NeRF에는 몇 가지 한계가 있습니다.
장면 외관과 지오메트리를 모두 재구성할 때 입력 뷰 수가 적으면 잘못될 수 있습니다.
그림 2는 NeRF가 여전히 학습 뷰를 정확하게 렌더링하는 매우 부정확한 장면 지오메트리를 학습할 수 있음을 보여준다.
그러나 이러한 모델은 새로운 테스트 뷰의 형편없는 렌더링을 생성하며, 기본적으로 학습 세트에 지나치게 과적합하다.
게다가, 많은 입력 뷰를 감안하더라도, NeRF는 여전히 학습하는 데 시간이 많이 걸릴 수 있다; 단일 GPU에서 적절한 해상도로 단일 장면을 모델링하는 데 종종 10시간에서 수일이 걸린다.
학습은 비용이 많이 들고 최적화 과정이 길기 때문에 느리다.
이 연구에서, 우리는 NeRF가 학습한 기하학을 안내하기 위한 추가적이고 저렴한 supervision 소스로서 depth를 탐구한다.
일반적인 NeRF 파이프라인에는 이미지와 카메라 포즈가 필요하며, 후자는 COLMAP와 같은 structure-from-motion (SFM) 솔버에서 추정된다[22].
반환 카메라 외에도 COLMAP는 희소 3D 포인트 클라우드와 재투영 오류를 출력한다.
우리는 불확실성 측정으로 재투영 오류를 통합하여 3D 키포인트와 일치하도록 레이 종단의 분포를 장려하기 위해 loss를 부과한다.
이는 RGB만 재구성하는 것보다 훨씬 강력한 신호입니다.
depth supervision 없이 NeRF는 여러 뷰 간의 3D 대응 문제를 implicitly 해결하고 있다.
그러나 이 정확한 문제의 희소 버전은 희소 3D 키포인트에 의해 해결된 SFM에 의해 이미 해결되었다.
따라서 depth supervision은 희박한 explicit 대응과 함께 implicit 대응에 대한 검색을 (부드럽게) 고정함으로써 NeRF를 개선한다.
우리의 실험은 이 간단한 아이디어가 학습 속도와 필요한 학습 데이터의 양 모두에 관한 학습 NeRF와 그 변형에서 엄청난 개선을 의미한다는 것을 보여준다.
우리는 depth-supervised NeRF가 동일한 품질로 결과를 생성하면서 모델 학습을 2-3배 가속화할 수 있다는 것을 관찰한다.
희소 뷰 설정의 경우, 실험은 우리의 방법이 NeRF Real-world [18] 및 Redwood-3dscan [3] 모두에서 원래 NeRF 및 최근 희소 뷰 NeRF 모델[37, 30]과 비교하여 더 나은 결과를 합성한다는 것을 보여준다.
우리는 depth supervision loss가 depth 카메라와 같은 다른 소스에서 파생된 depth에서 잘 작동한다는 것을 보여준다.
2. Related Work
NeRF from few views.
NeRF[15]는 원래 장면당 거의 50개의 이미지로 구성된 LLFF NeRF Real 데이터 세트[14]로 많은 이미지에서 작업하는 것으로 나타났다.
이것은 NeRF 볼륨을 맞추는 것이 저하 표현에 도달하는 것을 피하기 위해 종종 많은 뷰를 필요로 하기 때문이다.
최근 연구는 다양한 방식으로 NeRF의 데이터 부족을 줄이려고 노력했다.
PixelNeRF [33] 및 metaNeRF[26]는 학습 장면의 영역에서 복구된 데이터 기반 priors를 사용하여 테스트 장면에서 누락된 정보를 채운다.
이러한 접근법은 충분한 학습 장면과 학습과 테스트 분포 사이의 제한된 간격이 주어졌을 때 잘 작동하지만, 그러한 가정은 특별히 유연하지 않다.
또 다른 접근법은 의미론적 일관성[7] 또는 depth 예측[30]과 같은 다른 작업에서 복구된 priors를 활용하는 것이다.
few 뷰 NeRF를 맞추는 데 있어 주요한 어려움이 3D 기하학을 올바르게 모델링하는 것이라는 우리의 통찰력과 유사하게, MVSNeRF[4]는 장면을 렌더링하기 위해 일반화 가능한 네트워크를 사용하기 전에 평면 스위프 볼륨을 구성하여 3D 지식과 장면 priors 지식을 모두 결합한다.
3D 정보를 활용하는 접근법의 한 가지 매력은 문제 진술에 대한 가정이 부족하다는 것이다.
학습 데이터의 가용성 또는 prior 가정의 적용 가능성에 따라 달라지는 앞서 언급한 접근 방식과 달리, 우리의 접근 방식은 3D 키포인트의 존재만 요구한다.
이를 통해 depth supervision은 독립 실행형 방법으로 사용될 뿐만 아니라 기존 NeRF 방법에 쉽게 자유롭게 통합될 수 있는 유연성을 제공한다.
Faster NeRF.
NeRF의 또 다른 단점은 부피 표현에 맞추기 위해 필요한 긴 최적화 시간이다.
실제로 Mildenhall et al. [15]은 12시간의 GPU 컴퓨팅에 대해 단일 장면의 NeRF 모델을 학습시켰다.
많은 연구[20,32]에서 제한 요인은 radiance 자체를 학습하는 것이 아니라 학습 중 빈 공간을 과도하게 샘플링하는 것이라는 것을 발견했다.
실제로 이것은 볼륨의 대부분이 실제로 비어 있다는 사실과 유사한 직관이지만 NeRF의 초기화는 중간 균일 밀도입니다.
우리의 통찰력은 NeRF 밀도에 supervisory 신호를 직접 적용하여 기하학의 수렴을 증가시키고 NeRF의 밀도 함수가 실제 표면 기하학의 동작을 모방하도록 장려하는 것이다.
Depth and NeRF.
여러 prior 연구에서는 뷰 합성[24,27] 및 NeRF 학습[9,10,16,18,30]을 위해 depth 정보를 활용하는 방법을 탐구했다.
예를 들어, 3D 키포인트는 변형 가능한 표면 또는 동적 장면 흐름[9]과 같은 완화된 가정으로 NeRF를 확장할 때 유용한 것으로 입증되었다.
DONeRF[16]와 같은 다른 작업은 NeRF 밀도 함수의 표면을 직접 스마트하게 샘플링하여 렌더링 속도를 향상시키기 위한 깊이 오라클 학습을 제안했다.
DONeRF와 유사하게, NerfingMVS[30]는 학습 및 추론 중에 더 스마트한 샘플링을 수행하기 전에 depth를 유도하기 위해 단안 depth 네트워크를 사용할 수 있는 방법을 보여준다.
우리의 연구는 NeRF 밀도 함수를 직접 supervising하여 NeRF 기반 방법을 개선하려고 시도한다.
depth가 더 접근하기 쉬운 데이터 소스가 됨에 따라 depth supervision을 적용할 수 있는 기능이 점점 더 강력해지고 있습니다.
예를 들어, 최근 연구는 비행 시간 카메라[1] 또는 RGB-D 키넥트 센서[2]와 같은 센서에서 추출한 depth를 implicit 함수에 맞게 적용할 수 있는 방법을 보여주었다.
그들의 통찰력을 바탕으로 depth supervision의 확률론적 공식을 제공하고, NeRF와 그 변형에 대한 의미 있는 개선 결과를 보여준다.
3. Depth-Supervised Ray Termination
이제 NeRF 학습을 위해 제안된 depth-supervised loss를 제시한다.
먼저 볼륨 렌더링을 재검토한 다음 레이에 대한 종단 분포를 분석한다.
우리는 depth-supervised 분포 loss로 결론을 내린다.
3.1. Volumetric rendering revisited
Neural Radiance Field는 포즈된 이미지 세트를 가져와서 장면을 볼륨 밀도 및 방출된 radiance로 인코딩합니다.
보다 구체적으로, 주어진 3D 포인트 x ∈ R^3와 특정 뷰 방향 d ∈ R^3에 대해, NeRF는 미분 밀도 σ와 RGB 색상 c를 추정하는 implicit 함수 f를 학습한다: f(x, d) = (σ, c).
포즈 P가 주어진 2D 이미지를 렌더링하기 위해, 우리는 P의 투영 o 중심에서 유래한 rays r을 그것의 본질에서 파생된 방향 d로 캐스팅한다.
우리는 이 레이를 따라 implicit radiance field를 통합하여 d를 따라 있는 모든 물체로부터 들어오는 radiance를 계산한다:
, 여기서 t는 앞서 언급한 레이를 r(t) = o + td로 매개변수화하고 T(t) = exp(-∫σ(s)ds)는 0에서 t 사이의 차동 밀도를 적분하여 폐색 여부를 확인한다.
밀도와 radiance는 신경망의 출력이기 때문에 NeRF 방법은 대신 샘플링 기반 리만 합을 사용하여 이 적분에 근사한다.
최종 NeRF 렌더링 loss는 특정 카메라 매개 변수 P에 의해 생성된 레이 R(P) 세트를 렌더링하여 반환된 색상에 대한 재구성 loss에 의해 주어진다.
Ray distribution.
h(t) = T(t)σ(t)라고 하자.
부록에서, 우리는 그것이 레이가 t에서 끝날 가능성을 설명하는 레이 거리 t에 대한 연속적인 확률 분포라는 것을 보여준다.
실제 제약으로 인해 NeRF는 장면이 가까운 경계와 먼 경계(t_n, t_f) 사이에 있다고 가정한다.
h(t)의 합이 1이 되도록 하기 위해 NeRF 구현은 종종 t_f를 불투명한 벽으로 취급한다.
이 정의를 통해 렌더링된 색상은 기대
로 작성될 수 있습니다.
Idealized distribution.
분포 h(t)는 최종 렌더링 값에 대한 레이를 따라 샘플링된 radiance의 가중치 기여를 설명합니다.
대부분의 장면은 가장 가까운 표면에서 스템으로 가중 기여를 제한하는 빈 공간과 불투명 표면으로 구성됩니다.
이는 가장 가까운 표면 depth가 D인 이미지 포인트의 이상적인 레이 분포가 δ(t - D)여야 함을 의미한다.
그림 3(c)는 NeRF 종단 분포의 경험적 분산이 학습 뷰가 많을수록 감소한다는 것을 보여주며, 이는 고품질 NeRF(많은 뷰로 학습된)가 δ-함수에 접근하는 레이 분포를 갖는 경향이 있음을 시사한다.
이 통찰력은 depth-supervised 레이 종단 loss에 동기를 부여한다.
3.2. Deriving depth-supervision
대부분의 NeRF 파이프라인은 종종 COLMAP와 같은 SFM 패키지로 추정되는 관련 카메라 행렬(P_1, P_2, ...)이 있는 이미지를 필요로 한다는 것을 기억하십시오[22].
중요한 것은 SFM이 번들 조정을 사용한다는 것이다, 이는 카메라 j: X_j ⊂ X에서 키포인트가 보이는 3D 키포인트 {X: x_1,x_2,... ∈ R^3}과 가시성 플래그도 반환한다.
이미지 I_j와 카메라 P_j가 주어지면, 우리는 재투영된 z 값을 키포인트의 depth D_ij로 잡고 단순히 P_j로 x_i를 투영함으로써 가시적인 키포인트 x_i ∈ X_j의 depth를 추정한다.
Depth uncertainty.
당연히 D_ij는 가짜 대응, 노이즈가 많은 카메라 매개 변수 또는 열악한 COLMAP 최적화로 인해 본질적으로 노이즈가 많은 추정치이다.
특정 키포인트 x_i의 신뢰성은 키포인트가 검출된 뷰에 대한 평균 재프로젝션 오류 ^σ_i를 사용하여 측정할 수 있다.
구체적으로, 우리는 분산 ^σ_i: D_ij ~ N(D_ij, ^σ_i)를 가진 COLMAP 추정 depth D_ij 주변에 일반적으로 분포하는 랜덤 변수 D_ij로 레이가 마주치는 첫 번째 표면의 위치를 모델링한다.
이상적인 종단 분포의 행동에 대한 직관을 결합하여, 우리의 목표는 x_i의 이미지 좌표의 렌더링된 레이 분포 h_ij(t)와 노이즈가 많은 depth 분포 사이의 KL 차이를 최소화하는 것이다:
Ray distribution loss.
위의 동등성(증명을 위해 부록을 참조)은 확률론적 COLMAP depth supervision으로 종단 분포 h(t)를 학습할 수 있게 한다:
NeRF에 대한 전반적인 훈련 손실은 L = L_Color + λ_D L_Depth이며, 여기서 λ_D는 색상과 depth의 균형을 맞추는 하이퍼 파라미터이다.
4. Experiments
먼저 섹션 4.3의 여러 데이터 세트에 대한 뷰 합성에 대한 입력 데이터 효율성을 평가한다.
관련 NeRF 관련 방법에 대해서는 섹션 4.4에서 렌더링된 depth 맵의 오류도 평가한다.
마지막으로 섹션 4.5에서 학습 속도 개선을 분석한다.
4.1 Datasets
DTU MVS Dataset (DTU) [8]은 다양한 관점에서 다양한 객체를 캡처합니다.
PixelNeRF [33]에서의 Yu et al.의 설정에 따라 동일한 테스트 장면과 뷰에 대해 평가했다.
각 장면에 대해 3, 6, 9 크기의 학습 뷰의 하위 세트를 사용했다.
우리는 키포인트를 얻기 위해 ground-truth 보정 카메라 포즈로 COLMAP을 실행한다.
이미지는 학습 및 평가를 위해 400 × 300 해상도로 다운샘플링된다.
NeRF Real-world Data (NeRF Real) [14, 15]에는 많은 전방 시야에서 캡처한 8개의 실제 장면이 포함되어 있습니다.
크기가 2, 5, 10인 각 장면에 대해 학습 이미지의 하위 세트를 만든다.
모든 하위 집합에 대해, 우리는 카메라를 추정하고 depth supervision을 위한 희소 키포인트를 수집하기 위해 학습 이미지에 대해 COLMAP[22]를 실행한다.
Redwood-3dscan (Redwood) [6]에는 다양한 객체의 RGB-D 비디오가 포함되어 있다.
우리는 5개의 RGB-D 시퀀스를 선택하고 각 개체에 대해 2, 5, 10개의 학습 프레임의 하위 세트를 만든다.
우리는 COLMAP을 실행하여 그들의 카메라 포즈와 희소 포인트 클라우드를 얻는다.
COLMAP 포즈의 스케일을 스캔된 depth와 연결하기 위해, 우리는 스캔된 depth 값에 탐지된 키포인트에 가장 잘 맞는 최소 제곱을 해결한다.
4.2. Comparisons
먼저 여러 관점에서 학습하는 MPI 기반 표현인 Local Lightfield Fusion (LLFF)[14]를 고려한다.
다음으로 NeRF 베이스라인 집합을 고려한다.
PixelNeRF [33]는 인코더를 사용하여 여러 장면에서 일반 모델을 학습함으로써 NeRF에서 확장된다.
pixelNeRF-DTU는 공개된 DTU 체크포인트를 사용하여 평가된다.
학습와 테스트 도메인이 다른 경우, 우리는 pixelNeRF를 미세 조정하기 위해 각 테스트 장면에서 추가 반복에 대한 RGB supervision을 사용하여 미세 조정한다.
MetaNeRF [26]는 새로운 장면에서 테스트 시간 최적화를 실행하기 전에 학습 장면의 도메인에서 더 나은 NeRF 초기화를 찾는다.
DTU는 메타 학습에 충분히 큰 유일한 데이터 세트이기 때문에, 우리는 40K 메타 반복에 대한 DTU를 통해 초기화를 학습한 다음 새로운 장면에서 1000단계에 대한 미세 조정을 학습하는 metaNeRF-DTU 베이스라인만 고려한다.
우리는 metaNeRF의 ShapeNet 실험을 따라 학습과 테스트 도메인 간의 차이에 대한 민감성을 입증한다.
IBRNet [28]은 MLP 및 ray 트랜스포머를 사용하여 방사선과 부피 밀도를 추정하여 NeRF를 확장합니다.
MVSNeRF [4]는 사전 학습된 네트워크에서 NeRF로 변환하기 전에 3개의 뷰에서 평면 스위프 볼륨을 초기화합니다.
MVSNeRF는 RGB supervision을 사용하여 추가로 최적화될 수 있습니다.
DS-NeRF (Ours).
KL 발산 효과를 설명하기 위해 SFM 추정치와 렌더링된 depth 사이에 MSE loss가 있는 DS-NeRF의 변형을 포함한다.
그림 6은 KL 발산 패널티가 NeRF Real 시퀀스에서 아티팩트가 적은 뷰를 생성하는 것을 정성적으로 보여준다.
DS with existing methods.
우리의 DS loss는 추가적인 주석이나 가정을 필요로 하지 않기 때문에, 우리의 loss는 많은 NeRF 기반 방법에 삽입될 수 있다.
여기서는 pixelNeRF 및 IBRNet을 미세 조정할 때의 loss도 통합한다.
4.3 Few-input view synthesis
우리는 적은 입력에서 테스트 뷰를 렌더링하는 각 방법을 비교하는 것으로 시작한다.
뷰 합성을 위해 렌더링된 뷰의 품질을 ground-truth와 비교하여 평가하는 세 가지 메트릭(PSNR, SSIM [29], LPIPS [35])을 보고한다.
DTU.
우리는 표 2의 DTU에 대한 평가와 그림 4의 정성적 결과를 보여준다.
DS-NeRF는 pixelNeRF-DTU와 경쟁하는 6 및 9 입력 뷰의 이미지를 렌더링하지만, metaNeRF-DTU와 pixelNeRF-DTU는 3-뷰에서 DS-NeRF를 능가할 수 있다.
두 방법 모두 DTU 장면에서 학습되어 데이터 세트 이전을 완전히 활용할 수 있기 때문에 이는 특별히 놀라운 일이 아니다.
NeRF Real.
표 1에서 보듯이, 우리의 접근 방식은 특히 2개 또는 5개의 입력 뷰만 사용할 수 있는 경우 NeRF 및 LLFF보다 더 나은 점수를 가진 이미지를 렌더링한다.
우리는 또한 metaNeRF-DTU와 pixelNeRF가 그들의 명백한 약점을 강조하는 투쟁을 발견한다.
이러한 DTU 사전 학습된 모델은 DTU 외부에서 잘 수행되기 위해 노력한다.
테스트 장면의 구조에 대한 가정을 활용하지 않기 때문에 우리의 전체 접근 방식은 좋은 렌더링 결과를 달성할 수 있다.
우리는 또한 pixelNeRF 및 IBRNet과 같은 다른 방법에 depth supervision loss를 추가하고 성능이 향상된다는 것을 발견하여 많은 방법이 depth supervision을 추가함으로써 이익을 얻을 수 있음을 보여준다.
MVSNeRF는 PSV 초기화에 의해 이전에 처리되었던 기존 지오메트리를 가지고 있으므로 depth supervision을 추가하는 것으로부터의 개선을 보지 못했다.
Redwood.
NeRF Real과 마찬가지로 표 3의 Redwood 데이터 세트에서 유사한 성능 향상을 발견했다.
Redwood는 센서와 함께 수집된 depth 측정을 포함하기 때문에, 우리는 또한 depth 관리의 대체 소스가 어떻게 결과를 개선할 수 있는지 고려한다.
COLMAP supervision을 스케일링된 Redwood depth 측정으로 대체하여 DS-NeRF를 학습하고 밀도가 높은 depth가 훨씬 더 도움이 되어 2-view에서 20.3의 PSNR을 달성한다.
4.4 Depth error
우리는 NeRF의 렌더링된 depth를 "ground truth" depth 측정치와 비교하여 평가한다.
NeRF Real의 경우, 올뷰 고밀도 스테레오 재구성을 실행한 후 복구된 테스트 키포인트의 참조 depth를 사용한다.
Redwood[6]의 경우 3dMatch[34]를 실행하여 출시된 3D 모델을 카메라와 정렬하고 각 테스트 뷰에 대한 참조 depth를 생성한다.
depth 오류 평가에 대한 자세한 내용은 arXiv 버전을 참조하십시오.
표 4에 나타난 바와 같이, 학습 시점의 depth에서만 얻은 supervision 하에 학습된 DS-NeRF는 다른 모든 NeRF 모델보다 더 정확하게 depth를 추정할 수 있다.
이것은 특별히 놀랍지는 않지만, RGB supervision만을 사용하여 NeRF를 학습하는 것의 약점을 강조한다.
예를 들어, 그림 5에서 NeRF는 기하학을 무시하는 경향이 있으며 일관성 있는 depth 맵을 생성하지 못한다.
RGB-D inputs.
우리는 Redwood의 RGB-D 입력을 사용한 depth supervision의 변형을 고려한다.
우리는 RGBD 입력이 있는 3D Match[34]를 사용하여 각 학습 뷰에 대한 밀도 depth 맵을 도출한다.
고밀도 depth supervision을 통해 유효 영역의 모든 픽셀에 대해 ray를 렌더링할 수 있으며 KL depth supervision loss를 적용할 수 있다.
표 3과 표 4에서 볼 수 있듯이, 밀도 높은 depth supervision은 훨씬 더 나은 품질의 이미지를 생성하고 depth 오류를 상당히 낮춥니다.
4.5 Analysis
Overfitting.
그림 2는 NeRF가 축퇴 3D 형상을 학습함으로써 소수의 입력 뷰에 과적합할 수 있음을 보여준다.
depth supervision을 추가하면 NeRF가 지오메트리를 명확히 하고 더 나은 새로운 뷰를 렌더링하는 데 도움이 될 수 있다.
Faster Training.
NeRF 학습의 속도 향상을 정량화하기 위해 동일한 설정에서 학습 DS-NeRF와 NeRF를 비교한다.
섹션 4.3과 마찬가지로 PSNR을 사용하여 NeRF Real의 다양한 입력 뷰 수에서 테스트 뷰에 대한 뷰 합성 품질을 평가한다.
우리는 테스트 뷰에 PSNR을 그림 7의 학습 반복과 비교하여 학습 속도 성능을 비교할 수 있다.
DS-NeRF는 NeRF보다 2-3배 적은 학습 반복을 사용하여 특정 테스트 PSNR 임계값을 달성한다.
이러한 이점은 뷰 수가 적을 때 크게 확대됩니다.
2-view의 극단적인 경우, NeRF는 DS-NeRF의 성능을 완전히 따라잡을 수 없습니다.
이러한 결과는 학습 반복 측면에서 제공되지만, 우리는 그것들을 벽 시간 개선으로 변환할 수 있다.
단일 RTX A5000에서 DS-NeRF의 학습 루프는 최대 362.4ms/iter가 걸리는 반면 NeRF는 최대 359.8ms/iter가 필요합니다.
따라서 5-view 사례에서 DS-NeRF는 NeRF의 피크 테스트 PSNR을 약 13시간 더 빠르게 달성하는데, 이는 무시할 수 있는 비용을 고려할 때 엄청난 개선이다.
Discussion
우리는 depth supervision을 활용하는 neural radiance field를 학습하기 위한 모델인 Depth-supervised NeRF를 소개한다.
우리 모델은 표준 SFM 전처리 단계에서 계산된 희소 3D 포인트 클라우드가 제공하는 "free" supervision을 사용한다.
이러한 추가적인 supervision은 상당한 영향을 미친다; DS-NeRF는 2-3배 더 빠르게 학습하고 적은 학습 뷰에서 더 나은 결과를 생성한다(PSNR을 13.5에서 20.2로 개선).
최근의 연구는 범주별 학습 데이터에서 학습된 priors을 활용하여 NeRF를 개선하려고 했지만, 우리의 접근 방식은 학습을 필요로 하지 않으므로 (원칙적으로) SFM이 성공하는 모든 장면에 일반화된다.
이를 통해 많은 NeRF 기반 방법에 depth supervision을 통합하고 상당한 이점을 관찰할 수 있다.
마지막으로, 우리는 활성 depth 센서와 같은 다른 형태의 depth supervision을 탐구하는 대략적인 실험을 제공한다.
본 논문의 한계와 사회적 영향에 대한 논의는 arXiv 버전을 참조하십시오.
A. Discussion
Limitations.
depth supervision은 depth의 추정치만큼만 우수한데, 그러한 열악한 SfM 또는 잘못된 depth 측정은 최적화 프로세스의 실패를 초래할 수 있다.
다음으로 우리는 가우시안 분포가 키포인트 위치의 불확실성을 모델링한다고 가정하지만, 이러한 단순화 가정은 특히 다른 소스에서 파생된 depth에 대해 반드시 사실인 것은 아니다.
Social Impact.
depth supervision은 NeRF가 광범위한 실험 설정에서 작동할 수 있도록 하는 기술이다.
새로운 뷰 합성은 합성 매체가 아니지만 장면을 통해 궤적을 생성할 때 악용될 수 있다.
또한 장면의 더 선명한 세부 정보를 더 잘 렌더링하기 위해 유비쿼터스 센서 기술을 사용하면 개인 식별 가능 정보를 캡처할 수 있기 때문에 개인 정보 보호 문제가 있을 수 있다.
B. Derivation Details
B.1. Derivation of h(t) as a probability distribution
섹션 3.1에서는 특정 거리 t에서 기여 가중치를 설명하는 함수인 h(t)가 레이 종단에 대한 연속 확률 분포라고 주장한다.
우리는 h(t)가 음이 아니며 t의 도메인에 대한 h(t)의 적분이 1과 같다는 것을 증명함으로써 이것을 검증할 수 있다.
우리는 먼저 σ(s)가 카메라 원점에서 떨어진 차동 밀도 단위를 설명하는 실제 값의 음이 아닌 함수(일반적으로 ReLU 또는 softplus 활성화)라고 가정한다.
σ(·)는 실수 값이므로 σ(s)에 대한 내부 값 적분도 실수여야 하므로 T(t)는 음수가 아니어야 합니다.
결과적으로, h(t)는 음이 아닌 두 함수의 곱이므로 t의 모든 값에 대해 음이 아니며, 확률 분포의 첫 번째 속성을 만족합니다.
다음 단계는 t의 도메인에 대한 h(t)의 적분이 1이라는 것을 보여주는 것이다.
이를 위해 우리는 장면의 모든 레이가 결국 불투명한 물체와 교차할 것이라는 추가적인 가정을 할 필요가 있다: All a ≥ 0,
∫σ(s)ds = ∞. 이
것은 표면에서 방출되는 radiance 때문에 우리가 모델링에 관심을 갖는 대부분의 장면에서 사실이다.
u(t) = -∫σ(s) ds라 하자.
우리는 도함수 d u(t) / dt = -σ(t)를 계산하고 위의 식을 u(t)와 d u(t) / dt로 다시 쓸 수 있다.
이는 위의 가정 하에서 h(t)가 확률 분포임을 보장한다는 것을 보여준다.
실질적인 제약으로 인해 NeRF는 무한대로 볼륨을 샘플링할 수 없으며 대신 장면이 가까운 경계와 먼 경계 사이에 있다고 가정한다.
위의 가정이 여전히 사실인지 확인하기 위해 NeRF 구현은 종종 가장 먼 radiance를 불투명한 벽으로 취급한다.
B.2. Depth-supervision implementation
depth-supervision은 검출된 키포인트의 이미지 좌표와 카메라 축의 -1에 의해 주어진 방향(로컬 카메라 좌표)으로 레이를 투사함으로써 구현된다.
우리는 이 레이를 장면으로 쏘고 NeRF에 설명된 것과 동일한 샘플링 절차를 사용하여 depth를 렌더링한다.
학습 데이터가 GPU 메모리에 들어갈 수 있는 설정의 경우 학습 중 가장 시간이 많이 걸리는 부분은 단일 레이 marching 렌더링 단계에 필요한 많은 전진 패스에서 비롯된다.
더 빠른 학습의 이점을 얻기 위해서는 단일 레이 marching 절차로 색 supervision과 depth supervision으로 동시에 학습해야 한다.
이를 위해 이미지 좌표는 실제로 연속적이고 픽셀은 이산 간격의 색상 함수의 샘플일 뿐이라는 사실을 활용한다.
따라서 탐지된 키포인트에 해당하는 레이에 대한 RGB supervision을 보간하여 RGB와 depth를 동시에 supervised할 수 있다.
우리는 여기에 학습 레이의 일부를 할당합니다.
B.3. COLMAP details
제한된 뷰(NeRF 학습 입력과 동일)(예: 2개 뷰)에 대해 기본 구성으로 COLMAP를 실행한다.
SfM 출력은 학습 중에만 사용되며 새로운 뷰를 합성하는 데 필요하지 않다.
B.4. metaNeRF and pixelNeRF baselines
B.5. Dataset Splits
NeRF Real-world.
NeRF Real의 각 장면을 학습 뷰와 테스트 뷰로 나눕니다. 각 장면의 뷰 수가 다르기 때문에 8번째 이미지 ID마다 테스트 세트(0, 8, 16, 24, ...)로 나누고 나머지 관점 ID 번호에 고르게 분포된 학습 뷰를 구성한다. 이 설정은 다양한 NeRF 실험을 학습할 수 있는 충분한 커버리지를 제공한다. 우리는 소수 입력 뷰 합성에 대한 성능을 평가하기 위해 특정 크기의 이러한 학습 뷰에서 하위 세트를 생성한다.
Redwood 3d-scan.
B.6. Depth Error Evaluation
이러한 서로 다른 베이스라인의 depth 오류를 평가하려면 먼저 테스트 카메라 포즈에서 입력 장면의 베이스라인 depth를 계산해야 한다.
Depth evaluation on NeRF Real.
장면에서 주어진 학습 뷰 세트에 대해, 우리는 희소 키포인트와 카메라 포즈를 얻기 위해 COLMAP의 SfM 알고리즘을 사용한다.
또한 모든 학습 및 테스트 뷰에서 고밀도 MVS를 실행하여 모든 뷰 및 테스트 포즈에서 베이스라인 depth 맵을 얻습니다.
조밀한 MVS depth를 학습 뷰에서 얻은 SfM 키포인트 depth에 맞추기 위해, 우리는 학습 뷰에서 볼 수 있는 키포인트 depth를 MVS depth에 맞추는 척도 a와 시프트 b 스칼라를 계산한다.
보다 구체적으로, 우리는 다음과 같은 탐지된 키포인트에 대한 최소 제곱 최적화를 해결한다:
, 여기서 P는 장면에 대한 탐지되고 가시적인 키포인트 p의 집합이고, D_SfM은 학습에 사용하는 희소 depth이며, D_MVS는 평가에 사용하는 밀도 높은 depth 맵이다.
depth 오차는 테스트 카메라 c에서 렌더링된 depth ^D를 변환하여 계산할 수 있습니다.
조밀한 MVS depth는 depth 평가에만 사용됩니다.
어떤 방법으로든 학습 및 테스트 중에는 사용되지 않습니다.
C. Additional Experiments
C.1. NeRF Real with pixelNeRF and metaNeRF
C.2. MPI-based Experiments
C.3. Sparseness of keypoints
'View Synthesis' 카테고리의 다른 글
GAUDI: A Neural Architect for Immersive 3D Scene Generation (0) | 2023.02.22 |
---|---|
Decomposing NeRF for Editing via Feature Field Distillation (0) | 2023.01.22 |
Reinforcement Learning with Neural Radiance Fields (0) | 2022.12.06 |
Mip-NeRF 360: Unbounded Anti-Aliased Neural Radiance Fields (0) | 2022.11.03 |
InfoNeRF: Ray Entropy Minimization for Few-Shot Neural Volume Rendering (0) | 2022.08.15 |