논문 · arXiv 2308.04079
3D Gaussian Splatting for Real-Time Radiance Field Rendering
세 줄 요약
- 🎯 Radiance field 방법(예: NeRF)은 뛰어난 시각적 품질을 생성하지만 느린 볼륨 레이 마칭과 긴 최적화 시간으로 어려움을 겪으며, 빠른 그리드 기반 방법은 품질이나 렌더링 속도에서 타협을 봅니다.
- 🔧 희소 SfM 포인트에서 초기화된 3D 비등방성 가우시안으로 장면을 명시적으로 표현하고, 적응형 밀도 제어(복제 및 분할)를 통해 최적화하며, 가시성 인식 타일 기반 미분 가능 GPU 래스터라이저로 렌더링합니다.
- 📈 1080p 해상도에서 130–160 FPS 이상의 실시간 렌더링 속도와 1시간 미만의 학습 시간으로 Mip-NeRF360에 필적하는 최고 수준의 시각적 품질을 달성합니다.
초록
Radiance Field 방법은 최근 다중 사진이나 비디오로 캡처한 장면의 새로운 뷰 합성(novel-view synthesis)에 혁신을 가져왔습니다. 그러나 높은 시각적 품질을 달성하려면 여전히 학습 및 렌더링 비용이 많이 드는 신경망이 필요하며, 최근의 빠른 방법들은 속도를 위해 필연적으로 품질을 타협합니다. (고립된 객체가 아닌) 경계가 없는 완전한 장면과 1080p 해상도 렌더링에 대해 현재 실시간 디스플레이 속도를 달성할 수 있는 방법은 없습니다. 본 연구는 경쟁력 있는 학습 시간을 유지하면서 최고 수준의 시각적 품질을 달성하고, 특히 1080p 해상도에서 고품질 실시간(30fps 이상) 새로운 뷰 합성을 가능하게 하는 세 가지 핵심 요소를 소개합니다. 첫째, 카메라 캘리브레이션 중에 생성된 희소 포인트에서 시작하여 빈 공간에서의 불필요한 계산을 피하면서 장면 최적화를 위한 연속 볼륨 Radiance Field의 바람직한 특성을 보존하는 3D 가우시안으로 장면을 표현합니다. 둘째, 3D 가우시안의 인터리브 최적화/밀도 제어를 수행하며, 특히 비등방성 공분산을 최적화하여 장면을 정확하게 표현합니다. 셋째, 비등방성 스플래팅을 지원하고 학습을 가속화하는 동시에 실시간 렌더링을 가능하게 하는 빠른 가시성 인식 렌더링 알고리즘을 개발합니다. 여러 기존 데이터셋에서 최고 수준의 시각적 품질과 실시간 렌더링을 입증합니다.
영어 원문 초록
Radiance Field methods have recently revolutionized novel-view synthesis of scenes captured with multiple photos or videos. However, achieving high visual quality still requires neural networks that are costly to train and render, while recent faster methods inevitably trade off speed for quality. For unbounded and complete scenes (rather than isolated objects) and 1080p resolution rendering, no current method can achieve real-time display rates. We introduce three key elements that allow us to achieve state-of-the-art visual quality while maintaining competitive training times and importantly allow high-quality real-time (>= 30 fps) novel-view synthesis at 1080p resolution. First, starting from sparse points produced during camera calibration, we represent the scene with 3D Gaussians that preserve desirable properties of continuous volumetric radiance fields for scene optimization while avoiding unnecessary computation in empty space; Second, we perform interleaved optimization/density control of the 3D Gaussians, notably optimizing anisotropic covariance to achieve an accurate representation of the scene; Third, we develop a fast visibility-aware rendering algorithm that supports anisotropic splatting and both accelerates training and allows realtime rendering. We demonstrate state-of-the-art visual quality and real-time rendering on several established datasets.
논문 해설
문제 및 동기
Neural Radiance Fields (NeRFs)는 다층 퍼셉트론(MLP)을 통해 연속적인 암시적 장면 표현을 최적화함으로써 새로운 뷰 합성에 큰 변화를 가져왔습니다. 그러나 이러한 연속 필드를 렌더링하는 것은 확률론적 볼륨 레이 마칭에 의존하므로 광선당 수십 개 또는 수백 개의 샘플을 평가해야 합니다. 이는 막대한 계산 부담, 긴 학습 시간(예: Mip-NeRF360의 경우 최대 48시간), 매우 느린 추론 속도(프레임당 수 초)로 이어져 1080p와 같은 고해상도에서 실시간 내비게이션을 불가능하게 합니다.
더 빠른 방사 휘도 필드 변형(예: Plenoxels 및 InstantNGP)은 복셀 또는 해시 그리드를 사용하여 학습 속도를 가속화하지만, 시각적 충실도를 타협하는 경우가 많고 빈 공간이나 고주파 디테일을 처리하는 데 어려움을 겪습니다. 반대로 포인트 기반 접근법은 GPU 친화적인 명시적 지오메트리를 제공하지만, 전통적인 포인트 래스터화는 구멍(hole)을 방지하기 위해 조밀한 Multi-View Stereo (MVS) 지오메트리를 필요로 하거나 시간적 깜빡임(flickering)을 유발하는 CNN 후처리에 의존합니다.
본 논문은 실시간 프레임 레이트와 경쟁력 있는 최적화 시간을 제공하면서도 최고 수준의 암시적 방사 휘도 필드가 지닌 렌더링 충실도를 달성하기 위해, 3D Gaussians을 빠른 타일 기반 래스터라이저와 결합한 비구조적 명시적 장면 표현 방식을 제안합니다.
핵심 아이디어
- 비구조적 3D 가우시안 표현 (Unstructured 3D Gaussian Representation): 연속 좌표 네트워크나 조밀한 그리드 대신, 법선 벡터나 조밀한 MVS 없이도 희소 Structure-from-Motion (SfM) 포인트 클라우드에서 초기화된 완전한 비등방성 공분산 행렬을 갖는 이산적 3D 가우시안으로 방사 휘도 필드를 매개변수화합니다.
- 스케일 및 회전을 통한 매개변수화: 경사 하강법 전반에 걸쳐 공분산 행렬이 양의 준정부호(positive semi-definite)를 유지하도록 3D 스케일링 벡터와 단위 사원수(unit quaternion)로 분해합니다.
- 적응형 밀도 제어 (Adaptive Density Control): 뷰 공간 위치 그래디언트를 추적하여 장면 밀도를 동적으로 관리합니다. 불충분하게 재구성된 가우시안은 복제(clone)하고 과도하게 재구성된 가우시안은 분할(split)하며, 투명하거나 과도하게 큰 스플랫은 가지치기(prune)합니다.
- 가시성 인식 타일 기반 래스터화 (Visibility-Aware Tile-Based Rasterization): 커스텀 GPU 래스터라이저는 화면 픽셀을 타일로 구성하고, 빠른 기수 정렬(Radix sort)을 사용하여 프레임당 스플랫을 깊이 정렬하며, 그래디언트 업데이트를 받는 스플랫 수의 제한 없이 비등방성 투영을 앞에서 뒤로 알파 블렌딩합니다.
방법
1. 3D 가우시안 장면 표현
중심이 평균 에 위치한 3D 가우시안은 월드 공간에서의 공분산 행렬 로 정의됩니다:
최적화 중에 가 양의 준정부호를 유지하도록 보장하기 위해, 회전 행렬 과 스케일링 행렬 로 인수분해합니다: 여기서 는 지수 활성화 함수로 평가되는 3D 벡터 로 저장되고, 은 정규화된 단위 사원수 로 매개변수화됩니다.
렌더링을 위해 3D 가우시안은 EWA 스플래팅 프레임워크를 따라 2D 이미지 좌표로 투영됩니다. 뷰 변환 와 투영 변환의 아핀 근사 자코비안 가 주어지면, 스크린 공간에서의 2D 공분산 행렬 는 다음과 같습니다: 세 번째 행과 열을 버려 평면 스플래팅을 위한 공분산 행렬을 얻습니다.
2. 렌더링 및 이미지 형성
각 가우시안은 불투명도 (시그모이드 활성화를 통해 로 제한됨)와 뷰 종속 색상 를 설명하는 구면 조화 함수(Spherical Harmonics, SH) 계수를 가집니다. 한 픽셀에서 겹치는 개의 정렬된 가우시안을 블렌딩하는 것은 표준 볼륨 공식에 따릅니다: 여기서 는 2D 투영된 가우시안을 평가한 값에 학습된 포인트별 불투명도를 곱하여 결정됩니다.
3. 최적화 및 적응형 제어
손실 함수는 손실과 D-SSIM 손실을 결합합니다():
적응형 밀도 제어는 평균 뷰 공간 위치 그래디언트가 를 초과하는 가우시안에 대해 매 100회 반복마다 실행됩니다:
- 복제 (Under-reconstruction): 작은 가우시안의 경우 복제본을 생성하고 위치 그래디언트 방향을 따라 이동시킵니다.
- 분할 (Over-reconstruction): 큰 가우시안의 경우 프리미티브를 스케일이 비율로 축소된 두 개의 작은 가우시안으로 교체하며, 초기 위치는 부모 가우시안에서 샘플링합니다.
- 가지치기 (Pruning): 인 가우시안이나 월드/뷰 공간에서 지나치게 큰 가우시안을 제거합니다. 매 반복마다 불투명도를 0에 가깝게 리셋하여 공중에 떠 있는 아티팩트를 걸러냅니다.
4. 빠른 미분 가능 타일 기반 래스터라이저
- 화면은 픽셀 타일로 나뉩니다.
- 99% 신뢰 구간 절두체 컬링(frustum culling)을 통과한 가우시안에는 타일 ID와 뷰 공간 깊이를 인코딩하는 64비트 키가 할당됩니다.
- 단일 GPU Radix sort를 통해 프레임 전체의 모든 인스턴스를 정렬합니다.
- 스레드 블록은 가 포화될 때까지(0.9999를 초과하기 전에 중지) 타일별로 색상을 앞에서 뒤로 누적합니다.
- 역전파 패스는 타일을 뒤에서 앞으로 순회하며, 최종 누적 불투명도를 각 프리미티브의 로 나누어 중간 불투명도를 복구하므로 값비싼 동적 픽셀별 메모리 버퍼를 피할 수 있습니다.
결과
- Mip-NeRF360 데이터셋: 30K 반복(평균 학습 시간 41분 33초) 후, 3D Gaussian Splatting은 평균 SSIM 0.815, PSNR 27.21 dB, LPIPS 0.214를 달성하여 Mip-NeRF360(SSIM 0.792, PSNR 27.69 dB, LPIPS 0.237, 학습 48시간)과 대등하거나 능가하는 성능을 보이면서, Mip-NeRF360의 0.06 FPS에 비해 134 FPS로 렌더링합니다.
- 빠른 구성 (7K 반복): 단 6분 25초 만에 160 FPS로 SSIM 0.770, PSNR 25.60 dB를 제공하여 비슷한 학습 시간 내에서 InstantNGP-Base(SSIM 0.671, 11.7 FPS) 및 Plenoxels(SSIM 0.626, 6.79 FPS)를 능가합니다.
- Tanks&Temples 및 Deep Blending: Tanks&Temples에서 30K 반복으로 154 FPS에서 SSIM 0.841, PSNR 23.14 dB를 기록합니다. Deep Blending에서는 137 FPS에서 SSIM 0.903, PSNR 29.41 dB를 달성합니다.
- Synthetic Blender: 100K 포인트의 완전 무작위 초기화 상태에서도 평균 PSNR 33.32 dB를 기록하며 180–300 FPS로 렌더링합니다.
한계 및 향후 과제
- 관찰되지 않은 뷰 및 이상치: 시야각 범위가 희소하거나 학습 궤적에서 멀리 떨어진 뷰에서는 길쭉하거나 얼룩덜룩한 가우시안 같은 눈에 띄는 아티팩트가 생성될 수 있습니다.
- 팝핑 아티팩트 (Popping Artifacts): 깊이 정렬의 급격한 전환이나 공격적인 가드 밴드 컬링으로 인해 내비게이션 중에 팝핑 현상이 발생할 수 있어 더 나은 앤티앨리어싱의 필요성이 제기됩니다.
- 메모리 소비: 기존의 조밀한 포인트 클라우드에 비해서는 작지만, 명시적 표현은 수백 메가바이트(예: 100만~500만 개 가우시안 장면에 대해 400–750 MB)를 필요로 하며, 최적화되지 않은 프로토타입 학습은 GPU 메모리를 20 GB 이상으로 급증시킬 수 있습니다.
- 정규화의 부재: 기하학적 매끄러움이나 밀도에 대한 명시적인 정규화 기법을 포함하지 않기 때문에, 카메라 광선으로 제약하기 어려운 영역에 배경 부유물(floater)이 남을 수 있습니다.
핵심 용어
- 3D Gaussians (3D 가우시안)
- 평균 위치, 비등방성 공분산 행렬, 불투명도 및 구면 조화 외관 계수로 정의되는 핵심적인 비구조적 미분 가능 3D 프리미티브입니다.
- Anisotropic Covariance (비등방성 공분산)
- 별도의 스케일링 벡터와 단위 회전 사원수로 매개변수화된 방향성 3D 확산으로, 가우시안이 물리적 표면에 맞춰 평평한 타원체 형태로 변형될 수 있도록 합니다.
- Adaptive Density Control (적응형 밀도 제어)
- 위치 그래디언트가 큰 프리미티브를 복제하거나 분할하여 가우시안을 추가하고, 투명하거나 크기가 과도한 프리미티브를 가지치기하는 인터리브 최적화 전략입니다.
- Tile-Based Rasterization (타일 기반 래스터화)
- 뷰포트를 픽셀 빈으로 분할하여 겹치는 가우시안 스플랫을 병렬로 효율적으로 정렬하고 블렌딩하는 GPU 구동 렌더링 파이프라인입니다.
- Alpha-Blending (알파 블렌딩)
- 정렬된 2D 투영 스플랫 상에서 표준 NeRF 볼륨 적분을 모사하는 색상 및 투과율의 전방-후방 누적 방식입니다.
- Radix Sort (기수 정렬)
- 타일 ID와 뷰 공간 깊이를 결합한 64비트 키를 기반으로 가우시안을 병렬로 전역 정렬하는 데 사용되는 GPU 정렬 알고리즘입니다.
- Spherical Harmonics (SH) (구면 조화 함수)
- 최대 4개 밴드에 걸쳐 각 가우시안 프리미티브의 뷰 종속 색상을 표현하는 데 사용되는 주파수 기반 방향 함수 기저입니다.
자주 묻는 질문
최적화 전에 3D 가우시안은 어떻게 초기화되나요?
Structure-from-Motion (SfM) 카메라 캘리브레이션 과정의 부산물로 생성된 희소 포인트 클라우드를 사용하여 초기화되며, 초기 등방성 스케일은 가장 가까운 세 이웃 포인트까지의 평균 거리에서 파생됩니다. 합성 장면의 경우 균등 무작위 초기화를 사용할 수도 있습니다.
가우시안 복제(cloning)와 분할(splitting)의 차이점은 무엇인가요?
복제는 작은 가우시안을 복사하여 위치 그래디언트를 따라 이동시킴으로써 누락된 기하학적 특징을 메우는(재구성 부족) 반면, 분할은 지나치게 큰 가우시안을 스케일이 1.6배 축소된 두 개의 작은 가우시안으로 나누어 분산이 큰 디테일을 더 잘 캡처하도록 합니다(과도한 재구성).
래스터라이저가 픽셀 단위가 아닌 타일 단위로 정렬하는 이유는 무엇인가요?
결합된 타일-깊이 키에 대해 단일 글로벌 GPU Radix sort를 사용하여 타일별로 정렬하면 픽셀 단위로 프리미티브를 정렬할 때 발생하는 막대한 계산 오버헤드를 방지하여 시각적 왜곡을 최소화하면서 높은 프레임 레이트를 달성할 수 있습니다.
역전파 패스는 어떻게 글로벌 메모리에 긴 픽셀별 프리미티브 목록을 저장하는 것을 피하나요?
래스터라이저는 기존에 정렬된 타일별 목록을 뒤에서 앞으로 다시 순회하면서 최종 누적 불투명도를 각 가우시안의 알파 값으로 나누어 중간 불투명도를 재구성하므로 일정한(constant) 픽셀당 메모리 오버헤드만 필요합니다.
이 페이지의 해설은 AI가 논문을 바탕으로 작성했으며 오류가 있을 수 있습니다. 자세한 내용은 원문을 확인하세요.