본문 바로가기
논문 리뷰/View Synthesis

[SIGGRAPH 2023] 3D Gaussian Splatting for Real-Time Radiance Field Rendering

by 귤이두번 2024. 3. 7.

논문 요약

Neural Field 기법은 다양한 이미지와 비디오에서의 뷰 합성(view synthesis)에 혁신적인 발전을 가져왔다. 그러나 고품질의 결과를 얻기 위해선 상당한 훈련 및 렌더링 비용이 드는 신경망이 필요했다. 최근에는 1080p 해상도의 렌더링을 처리할 수 있게 되었지만, 여전히 실시간 디스플레이 속도를 달성하기는 어려운 상황이었다. 본 논문은 경쟁력 있는 훈련 시간을 통해 1080p 해상도에서 실시간(≥ 30 fps)으로 뷰 합성을 할 수 있게 하는 방법을 제안한다. 

 

1) 3D 가우시안으로 장면 표현: 카메라로 찍은 몇 개의 점을 이용해, 장면을 3D 가우시안(3차원 형태의 분포)으로 나타내어, 실제 장면처럼 보이게 한다.
2) 가우시안 최적화: 이 3D 가우시안들을 조정하여, 장면을 더 정밀하게 만들고, 모양이나 크기가 서로 다른 부분들을 더 잘 나타내게 한다.
3) 빠른 렌더링 기술: 새로운 방법으로 장면을 빠르게 그려내어, 학습 시간을 단축시키고 실시간으로 화면에 표시할 수 있게 한다.

 

 

 

1. Paper Bibliography

Kerbl, Bernhard, et al. "3D Gaussian Splatting for Real-Time Radiance Field Rendering." ACM Transactions on Graphics 42.4 (2023).

 

 


 

2. Problems & Motivations

 Meshes와 points는 3D 장면을 표현하는 명시적 방식으로, GPU나 CUDA 기반의 고속 래스터화(오브젝트를 픽셀로 매핑)에 적합하다. 이와 대비되어 최근의 Neural Radiance Field(NeRF) 방법들은 연속적인 장면 표현을 기반으로 하며, 다중 레이어 퍼셉트론(MLP)을 최적화하여 캡쳐된 장면의 새로운 뷰를 합성한다. 이 과정에서 voxel, hash grids, points 등이 일반적으로 활용된다. 그러나 이러한 연속적인 표현 방식은 렌더링 시 잡음을 발생시킬 수 있으며, 확률적 샘플링을 필요로 하여 비용이 많이 들 수 있다.

 

 

3. Method

'3D Gaussian Splatting'은 카메라로 찍은 여러 장의 사진을 사용하여 3차원 장면을 디지털로 재구성하는 방법이다.

 

Sec 4 (3D 가우시안 생성):
- 포인트 클라우드에서 추출된 정보를 바탕으로 각 점의 위치, 퍼짐 정도(공분산 행렬), 그리고 투명도(불투명도 α)를 가지는 3D 가우시안(3차원 정규 분포)을 만든다.
- 이 3D 가우시안들은 3D 장면을 자세하게 표현할 수 있게 해준다.

 

Sec 5 (radiance field representation과 최적화 과정):
- 3D 가우시안의 각 파라미터들을 조절하는 최적화 과정을 거쳐 실제 장면을 재현한다.

 

Sec 6 (tile-based rasterizer와 α-블렌딩):

- tile-based rasterizer는 3D 장면을 2D 이미지로 변환하는 효율적인 방법이다.

- α-블렌딩은 장면의 여러 부분이 얼마나 섞이는지를 결정하는 과정이다. 이는 이미지에서 서로 다른 물체와 재질이 자연스럽게 어우러지게 만든다

 

 

추가 설명:

  • SfM (Structure from Motion): 여러 사진을 기반으로 3D 포인트 클라우드를 만드는 기술. 포인트 클라우드는 사진들에서 추출한 3차원의 위치 정보의 집합이다.
  • directional appearance component: 장면의 색상과 빛의 방향을 처리하기 위해 spherical harmonics (SH)를 사용한다.
  • spherical harmonics (SH): 3차원 공간에서 구면 위의 함수를 표현하는 수학적 도구로, 컴퓨터 그래픽스에서는 조명과 색상 처리에 주로 활용되어 빛의 반사, 굴절, 흡수 등을 모델링하고 시뮬레이션하는 데 유용하다. SH는 각도별 빛의 강도를 다르게 표현할 수 있어, 물체의 3D 모델에 사실적인 빛과 그림자를 부여할 수 있게 한다.

 

4 Differentiable 3D Gaussian Splatting

'3D Gaussian Splatting'의 목적은 'normal'이 없는 sparse한 3D 데이터 (SFM)포인트들을 기반으로 view synthesis를 하는 것이다. 그러나 SfM으로 생성된 점들은 normal을 정확히 추정하기 어렵고, 노이즈가 많은 normals는 최적화하기가 어렵다. 이러한 이유로 저자들은 normals가 필요 없는 3D Gaussian을 사용하여 장면을 모델링하는 새로운 방법을 제안한다.

 

이 때 사용되는 3D Gaussian은 다음과 같다:

 

  • $G(x)$: 가우시안 함수 값으로, 3차원 공간 내의 어떤 점 x에 대한 분포의 '밀도'를 나타낸다. 이 밀도는 점 x가 분포의 중심에서 얼마나 떨어져 있는지에 따라 달라진다.
  • $-½(x)^TΣ^{-1}(x)$: 점 x가 가우시안 분포의 중심에서 얼마나 멀리 있는지를 나타내는 '거리'의 측정 값. $(x)^T$는 점 x의 좌표를 가로로 된 벡터로 바꾸고, $Σ^{-1}$은 공분산 행렬의 역행렬로, 가우시안의 '형태'와 '방향성'을 정의한다.
  • 이 수식은 3D 모델의 한 점에서 그 점이 얼마나 '집중적으로' 존재하는지를 계산한다. 이 함수가 '미분 가능하다'는 것은 우리가 이 밀도를 조정하여 표면을 더 부드럽게 하거나, 혹은 더 뾰족하게 만들 수 있다는 것을 의미한다. 

3D 모델의 가우시안을 2D 이미지 투영하는데 다음 수식을 사용한다:

  • 변환 행렬 $W$: 3D 공간의 점을 2D 이미지 상의 점으로 변환하는 데 사용되는 행렬 
  • 공분산 행렬 $Σ$: 원래 3D 가우시안의 공분산 행렬로, 3D 객체의 형태와 방향성을 결정짓는다
  • $J$: 투영 변환의 야코비안(Jacobian)이며, 이는 선형 변환의 근사를 나타낸다
  • 이러한 변환을 통해, 3D 공간의 점들과 그 분포는 2D 이미지에 적절하게 매핑되며, 실제 카메라가 캡처할 수 있는 이미지에 가깝게 재현된다

가우시안 분포를 최적화하는 과정에서 발생하는 어려움 중 하나는 공분산 행렬이 반드시 'positive semi-definite'라는 수학적 조건을 유지해야 한다는 것이다. 이를 해결하기 위해, 저자는 3D Gaussian의 형태를 3차원 타원체(ellipsoid)로 모델링하는 접근 방식을 채택했다. 

 

이 타원체는 크기와 방향을 결정하는 스케일링 행렬 $S$와 회전 행렬 $R$에 의해 정의된다:

 

타원체 모델링은 가우시안 분포의 이방성(anisotropic) 특성을 자연스럽게 포착한다. 이방성이란 분포가 모든 방향으로 동일하게 퍼져 있지 않다는 의미로, 실제 세계의 객체들이 다양한 방향으로 다른 특성을 보이는 것을 반영한다. 예를 들어, 어떤 방향은 더 길쭉할 수 있으며 다른 방향은 더 평평할 수 있다. 

 

최적화 과정을 더욱 쉽게 만들기 위해서, 스케일링 벡터 $s$와 회전을 위한 쿼터니언 $q$를 분리하여 처리한다. 이들은 스케일링 행렬과 회전 행렬로 변환되기 쉽고, 쿼터니언은 단위 쿼터니언으로 정규화되어 안정적인 회전 표현을 보장한다.

더불어 모든 매개변수의 기울기를 명시적으로 계산함으로써, 복잡한 자동 미분 과정을 배제하여 계산 비용을 대폭 절감할 수 있다. 이러한 접근 방식은 연산 부담을 줄이고, 최적화 과정의 효율성을 크게 향상시킨다.

 

이방성 공분산을 활용한 이 기법은 장면을 최적화하는 데 매우 적합하며, 공간적으로 효율적인(compact) 데이터 표현을 가능하게 합니다.

 

추가 설명:

  • Normal은 3D뷰를 재현할 때 각 점의 위치와 함께 그 점이 어떤 방향을 향하고 있는지를 나타내는 '정규벡터'
  • 쿼터니언은 회전을 표현하기 위한 수학적 도구로, 3D 회전을 효과적으로 처리할 수 있다
  • "Anisotropic" 공분산: 3차원 공간에서 가우시안 분포가 모든 방향에 대해 동일한 정도로 퍼져 있지 않을 때 사용하는 용어. 공간의 한방향으로 분포의 퍼짐이 다른 방향보다 더 크거나 작을 수 있음을 나타낸다. 방향으로 분포의 퍼짐이 다른 방향보다 더 크거나 작을 수있음을 나타낸다. 
    이방성 공분산 행렬의 예
  • $σ_x^2$, $σ_y^2$, $σ_z^2$는 각 축에 따른 분포의 '폭'을 나타내지만, 이 값들이 서로 다를 수 있다.

 

 

5 Optimization with adaptive density control of 3D Gaussians

 

5.1 Optimization  

3D Gaussian Splatting의 최적화 과정은 렌더링된 이미지를 실제 캡처된 데이터셋의 훈련 뷰와 반복적으로 비교함으로써 이루어진다. 그러나 3D 오브젝트를 2D 이미지로 투영하는 과정은 본질적으로 모호함을 내포하고 있어 가끔 geomety가 잘못 배치될 수 있다. 이러한 문제를 해결하기 위해, 최적화 과정은 geomety를 새로 생성하고, 수정하거나 제거하는 능력이 필요하다. 이 때 중요한 것은 공분산 파라미터 퀄리티이다. 이는 3D 가우시안 분포의 형태와 크기를 정의하는 값들이 얼마나 잘 조정되어 있는지를 나타내며 비교적 단순한 구조를 가진 '큰 균일한 영역(large homogeneous areas)'은 적은 수의 '큰 이방성 가우시안(large anisotropic Gaussians)'만 사용해서도 효과적으로 표현할 수 있다.

 

최적화 과정에서 불투명도 매개변수 α를 각 물체가 얼마나 투명하게 보일지를 결정한다. 이를 위해, 우리는 시그모이드 활성화 함수를 사용하는데, 이는 α 값을 0에서 1 사이로 부드럽게 제한한다. 비슷한 이유로 물체의 형태를 정의하는 공분산의 스케일을 조절하기 위해 exponential 활성화 함수를 사용한다. 공분산 매개변수는 물체의 형태와 크기를 결정하며 초기 공분산 매개변수는 3차원 공간에서 세 개의 가장 가까운 점들 사이의 평균 거리를 기반으로 설정한다. 추가로 Plenoxels 방법을 따라, 위치 매개변수에 대해서 standard exponential decay scheduling technique을 사용한다.

 

최종적으로, 우리는 손실 함수를 통해 렌더링된 장면의 품질을 평가합니다. 이 함수는 $L_1$ 손실, 즉 예측된 픽셀 값과 실제 픽셀 값 사이의 차이를 측정하는 항과 D-SSIM 항, 즉 구조적 유사성을 측정하여 이미지의 품질을 평가하는 항을 결합한다.

λ=0.2

 

5.2 Adaptive Control of Gaussians  

SfM(Structure from Motion)에서 얻은 희소한 점들로부터 시작하여 Gaussians의 수를 적응형으로 조절하여 unit volume에 대한 밀도(density)를 제어한다.

 

1. under-reconstruction):

  • 이 경우는 3D 장면의 특정 부분에 세부 정보가 충분하지 않을 때 발생하는데, 최적화시 이러한 지역에 새로운 기하학적 형태를 추가해야 한다.
  • 해결책은 새로운 형태를 만들기 위해 기존의 가우시안을 복제하고, 이를 positional gradient의 방향으로 이동시키는 것이다.
  • total volume과 Gaussians의 수 모두 증가한다
  • 새로운 형태를 생성함으로써 장면을 보다 정확하게 재구성하도록 도와준다.

 

2. over-reconstruction:

  • 장면의 특정 부분이 필요 이상으로 많은 가우시안으로 인해 지나치게 표현되었을 때 나타난다.
  • 해결책은 큰 가우시안을 더 작은 가우시안들로 분할하여 장면의 세부를 더 섬세하게 조정하는 것이다.
  • total volume은 유지되며 Gaussians의 수만 증가한다
  • 이 접근법은 불필요한 기하학적 복잡성을 감소시키고, 장면을 더 자연스럽게 표현하는 데 기여한다.

 

최적화 과정은 때때로 입력 카메라 근처의 공중에 떠 있는 데이터 포인트(floaters)에 의해 방해를 받을 수 있다. 이는 Gaussian density가 필요 이상으로 높아질 수 있으며, 이를 방지하기 위해 매 3000번의 iteration마다 가우시안의 불투명도 매개변수인 α를 거의 0으로 설정하여 밀도를 조절해 과도하게 많은 가우시안이 축적되는 것을 방지한다.  

 

가우시안은 시간이 지남에 따라 크기가 줄어들거나 커지며, 다른 가우시안과 중첩될 수도 있다. 우리는 정기적으로 공간에서 지나치게 큰 가우시안을 제거하고, 시각적으로 너무 많은 공간을 차지하는 가우시안을 관리함으로써 가우시안의 전체 수를 효과적으로 제어한다.

이 접근 방식의 장점은 가우시안이 항상 유클리드 공간 내에서의 기본적인 형태로 유지된다는 것이다. 이는 복잡한 공간 압축, 변형, 또는 먼 거리의 가우시안에 대한 투영 전략과 같은 추가적인 조치를 요구하지 않아 최적화 과정을 단순화한다.

 

6 Fast Differentiable Rasterizer for Gaussians

Section 6은 가우시안 분포를 이용한 래스터라이제이션(rasterization) 과정에 대해 설명한다. 

 

먼저 화면을 16x16 타일로 분할하여 시작하고 view frustum과 각 타일에 대해 3D 가우시안을 정리(cull)한다. 구체적으로, view frustum과 교차하는 99% 신뢰구간을 가진 가우시안만을 유지하며 극단적인 위치에 있는 가우시안들을 쉽게 제외하기 위해 guard band

를 사용한다. 그 다음 각 가우시안을 타일이 겹치는 수에 따라 인스턴스화하고, 뷰 공간 깊이와 타일 ID를 결합한 키를 각 인스턴스에 할당합니다. 이 키를 기반으로 single fast GPU Radix sort를 사용하여 이 가우시안들을 정렬하고 가장 앞면과 가장 뒷면에 해당하는 가우시안을 찾아내어 목록을 만든다. 

 

래스터라이제이션 단계에서는 각 타일에 할당된 스레드 블록이 가우시안 데이터를 처리하며 픽셀에 색상과 투명도를 더해간다. 이 작업은 순차적으로 이루어져 결과가 누적되며 픽셀의 투명도(α값)이 포화상태, 즉 1이 되면 그 타일의 작업이 완료된다. 

 

역전파 과정에서는 이미 계산된 정보를 활용하여 그라디언트를 계산한다. 이 때 이미 정렬된 가우시안 배열과 타일 범위를 전달 과정에서 다시 사용해 뒤에서 앞으로 리스트를 순회하며 계산한다. 각 타일의 처리가 독립적으로 이루어지므로 전체 이미지의 렌더링 속도를 상당히 개선할 수 있다.

 

화면에 그려질 각 픽셀은 마지막으로 그 픽셀에 영향을 미친 3D 점, 즉 가우시안에서 시작하여 처리된다. 이 가우시안들은 메모리 내에서 협력적으로 관리된다. 픽셀 처리는 깊이에 따라 결정되는데, 각 픽셀의 깊이가 그 픽셀의 색상에 기여한 마지막 가우시안의 깊이보다 낮거나 같은 경우에만 처리를 시작한다. 이는 불필요한 처리를 줄이고, 화면에 그려질 이미지의 정확도를 높이기 위한 것이다.

 

그라디언트 계산에 있어서, 각 단계별로 증가하거나 감소하는 불투명도의 값이 필요하다. 하지만 전체 리스트를 관리하는 대신, 전달 과정의 끝에서 얻은 총 누적된 불투명도만을 저장함으로써, 중간 불투명도들을 회복할 수 있다. 구체적으로, 각 점은 전달 과정에서 최종 누적된 불투명도 α를 저장하고, 이를 뒤에서 앞으로 순회하며 각 점의 α 값을 사용해 나누어 그라디언트 계산에 필요한 계수를 얻을 수 있다.

 

 

추가 설명:

  • View frustum: 카메라 렌즈를 통해 볼 수 있는 시야(view). View frustum 안의 모든 객체들은 렌더링될 수 있고, 그 바깥에 있는 객체들은 렌더링되지 않는다. 이것은 "frustum culling"이라고 하는 프로세스의 핵심 개념으로, 렌더링할 필요가 없는 객체들을 식별하고 배제함으로써 렌더링 효율성을 크게 향상시킨다.
  • Guard band:  래스터라이제이션 과정 중에 특정한 여유 영역을 설정해두어 안전하게 계산을 수행할 수 있도록 하는 기술적인 장치.

 

 

4. Experiments

Results


Paper Link

https://arxiv.org/abs/2308.04079

 

3D Gaussian Splatting for Real-Time Radiance Field Rendering

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 metho

arxiv.org

 

Google Scholar Link

https://scholar.google.co.kr/scholar?hl=ko&as_sdt=0%2C5&q=3D+Gaussian+Splatting+for+Real-Time+Radiance+Field+Rendering&btnG=#d=gs_cit&t=1709187202610&u=%2Fscholar%3Fq%3Dinfo%3AGgcFX3MwBqsJ%3Ascholar.google.com%2F%26output%3Dcite%26scirp%3D0%26hl%3Dko

 

Google 학술 검색

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 metho

scholar.google.co.kr

 

GitHub

https://github.com/graphdeco-inria/gaussian-splatting

 

GitHub - graphdeco-inria/gaussian-splatting: Original reference implementation of "3D Gaussian Splatting for Real-Time Radiance

Original reference implementation of "3D Gaussian Splatting for Real-Time Radiance Field Rendering" - graphdeco-inria/gaussian-splatting

github.com

 

YouTube

https://www.youtube.com/watch?v=T_kXY43VZnk

 

댓글