[논문 Review] 3D Gaussian Splatting for Real-Time Radiance Field Rendering

Roh Tae Gyu·2026년 3월 31일

논문 리뷰

목록 보기
20/24
post-thumbnail

[Paper] [Page] [Github]
Bernhard Kerbl, Georgios Kopanas, Thomas Leimkühler, George Drettakis
Inria | Max-Planck-Institut für Informatik
SIGGRAPH 2023

3DGS(3D Gaussian Splatting)는 NeRF가 실시간 렌더링이 가능하지 않다는 점을 보완하기 위해 등장했다고 생각한다. 그래서 논문에서도 실험 부분에서 NeRF와 비교를 많이 했다.

Fig 1. NeRF와 3DGS의 차이점Fig 1. NeRF와 3DGS의 차이점

  • NeRF는 Ray Marching 기법을 사용해서 Ray를 따라 점들을 sampling한다. 이 점(x, y, z, θ, ϕ)들을 MLP에 넣어서 해당 위치의 색상(R, G, B)과 밀도(σ)를 출력한다. 다만 NeRF는 Implicit Representation이기 때문에 편집이 어렵다는 단점이 있다.
  • 3DGS는 공간을 타원체 형태의 3D 가우시안들로 채운다. 각 가우시안은 mean(위치), covariance(크기), α(투명도), SH(색깔)의 속성을 가지고 있다. Ray를 쏘아 픽셀을 연산하는 대신 3D 공간에 있는 가우시안들을 2D 이미지로 Projection하여 납작하게 누르고 깊이에 따라 순서대로 정렬하여 최종 이미지를 만든다.

Fig 2. SHFig 2. SH

내가 생각했을 때 SH(Spherical Harmonics, 구면 조화 함수)가 큰 특징인것 같다. RGB는 픽셀 값의 색상이라면 SH는 바라보는 각도에 따라 달라지는 빛과 색상을 3D 공간 상에 둥글게 매핑하여 계산해 내는 수학적 표현 방식이다. 이 수식에 대해서는 추후 공부가 필요할 것 같다.

Fig 3. GaussianFig 3. Gaussian

3D Gaussian은 3차원 공간에서의 정규 분포를 뜻한다. 통계에서 자주 사용하는 1차원 Gaussian은 종모양이다. 각 가우시안들은 평균, 분산값을 가지고 있다. 또한 3DGS에서 사용하는 Gaussian은 anisotropic(비등방성)으로 복잡한 표현을 위해 anisotropic(비등방성)를 사용해야 한다.

Fig 4. Optimization starts with the sparse SfMFig 4. Optimization starts with the sparse SfM

3DGS의 전체적인 파이프라인은 다음과 같다. 크게 4단계로 살펴 보겠다.

1) Initialization

2D 이미지를 넣어 Structure-from-Motion(SfM)을 통해 sparse한 point cloud를 초기값으로 사용한다. SfM을 통해 얻을 수 있는 파라미터들은 다음과 같다.

  • Position (μ\mu): 가우시안의 3D 중심 좌표 (x,y,z)(x, y, z)
  • 색상 정보 (r,g,b)(r, g, b): 원본 2D 이미지 픽셀에서 추출한 해당 점의 기본 색상

이 정보를 바탕으로 다음의 파라미터들을 부여 받는다. 이 파라미터는 랜덤하게 생성되는것이 아닌 SfM을 기반으로 생성하게 된다.

  • Position (μ\mu): 가우시안의 3D 중심 좌표
  • (x,y,z)(x, y, z)Covariance (Σ\Sigma): 가우시안의 3D 형태(크기와 회전). 3D 타원체의 형태
  • Opacity (α\alpha): 불투명도. 값이 낮을수록 투명
  • Color (SH): 앞서 다룬 Spherical Harmonics(구면 조화 함수) 계수

2) Projection

3D 공간에 있는 가우시안들을 2D 화면으로 보이게하는 과정이다.

Σ=JWΣWTJT\Sigma' = J W \Sigma W^T J^T

위 수식은 3D 가우시안을 2D 이미지 평면으로 투영하는 수식이다. 여기서 WW는 카메라의 시점을 변환하는 뷰 변환 행렬 JJ는 Jacobian 행렬이다.

Σ=RSSTRT\Sigma = RSS^T R^T

위 공식은 3D 가우시안의 크기를 결정하는 3D 공분산 행렬 Σ\Sigma이며 수식을 분해한 이유는 가우시안의 크기가 항상 양수가 나오게 만들기 위함이다

3) Adaptive Density Control

Fig 5. Gaussian densification schemeFig 5. Gaussian densification scheme

이 단계는 이미지의 복잡도에 맞춰 가우시안의 분포와 밀도를 조절하는 과정이다.

  • Under-reconstruction : 복제(clone)
    Fig 5와 같이 가우시안이 부족한 경우에는 기존 가우시안과 동일한 크기의 가우시안을 복제한 뒤 오차가 발생하는 방향으로 이동시켜 밀도를 높인다.
  • Over-reconstruction : 분할(split)
    가우시안 하나가 너무 넓은 영역을 덮고 있어 이상할 경우 해당 가우시안은 작은 가우시안으 2개로 분할(split)한다. 이때 새로운 가우시안들의 크기는 1.6으로 나누어 크기를 줄인다.

위 두 가지 방법 모두 가우시안의 개수를 증사킨다. 가우시안들이 계속 증가하게 되면 floaters에 갇힐 수 있기 때문에 위 논문에서는 3000번의 iteration마다 모든 가우시안의 투명도(α\alpha) 값을 0에 가깝게 초기화 한다. 투명도가 초기된 후 다시 학습을 하게 되면 유의미한 가우시안들만 다시 α\alpha값이 커지며 살아남고 필요없는 floaters들은 삭제된다.

4) Differentiable Tile Rasterizer

Fig 6. Differentiable Tile RasterizerFig 6. Differentiable Tile Rasterizer

3DGS가 실시간 렌더링(Real-time Rendering)을 달성하게 해준 단계다.
1) 화면 분할 : 전체 2D 화면을 16x16 픽셀 크기의 타일(Tile) 단위로 쪼갠다. GPU의 최적화를 위해 16X16으로 나눈것 같다.
2) 컬링(Culling) : 카메라 시야 밖에 있거나 겹치는 타일이 없는 가우시안들은 렌더링 연산에서 제외하여 메모리와 연산량을 아낀다.
3) 정렬(Sorting) : 각 타일별로 가우시안들을 카메라 깊이 순서대로 정렬한다. (GPU의 Radix Sort 활용)
4) 알파 블렌딩 : 정렬된 순서대로 가우시안들의 색상과 불투명도를 누전 연산하여 최종 픽셀의 색상을 결정한다.

결국 이 타일 기반 레스터라이저는 미분 가능(differntiable)하기 때문에 렌더링된 결과물과 실제 원본 이미지의 오차(loss)를 계산한 뒤 역전파(backpropagation)을 통해 파라미터(μ,Σ,α,SH\mu, \Sigma, \alpha, SH)들을 업데이트 해가며 정답에 가까워진다.

Fig 7. ResultsFig 7. Results

시각적으로 GT와 Mip-NeRF360과 비교했을 때 3DGS가 GT에 가깝다는 것을 볼 수 있다.

Table 1. Quanitiative evaluationTable 1. Quanitiative evaluation

정량적으로 비교했을 때 Mip-NeRF360 보다 우수하다는 것을 볼 수 있다.

Table 2. Ablation studyTable 2. Ablation study

Fig 8. Ablation studyFig 8. Ablation study

논문에서 제시한 방법론에서 진행한 Ablation study다. Isotropic보다는 anisotropic이 성능이 더 뛰어남을 볼 수 있다.

Algorithm 1. Optimization and DensificationAlgorithm 1. Optimization and Densification

3DGS의 전체적인 알고리즘이다. 전체 파이프라인을 따라가다보면 이 알고리즘을 이해할 수 있을거다.

3DGS의 한계점도 존재한다. 여러 한계점이 있겠지만 그 중에서도 내가 생각했을 때 중요한 한계점은 2개가 있다.

  • polygon mesh가 없기 때문에 collisioin이 발생하기 어렵다
  • 빛 표현에 대해서 완벽하기 어렵다

위 한계점을 극복하기 위해 여러 방법론들이 나오고 있는데 빠르게 읽고 정리해봐야 겠다.

출처

  1. Fig 1. NeRF와 3DGS의 차이점
profile
돌아보니 꽃길이다

0개의 댓글