[3DGS] 3D Gaussian Splatting

2024. 12. 24. 14:29컴퓨터비전&AI

반응형

 

3DGS 사용 이유

1. 효율적인 장면 표현

: MLP(다층 퍼셉트론) 네트워크를 필요로 하지 않음.

: 스파스 포인트 클라우드를 기반으로 초기화되며, SfM(Structure-from-Motion) 데이터를 통해 쉽게 시작

# SfM은 여러 사진에서 장면의 3D 윤곽(스파스 포인트 클라우드)과 카메라의 위치/방향을 추출해 3D Gaussian을 설정하는 초기 데이터를 제공 -> 시간, 비용 절약

 

2. 최적화 속도와 품질의 균형

: 학습 중 3D Gaussian의 밀도를 동적으로 조절하여 중요하지 않은 영역을 제거하고 필요한 영역을 세밀히 표현.

 

3. 실시간 렌더링 지원

: 3D Gaussian은 2D 화면으로 쉽게 투영할 수 있어 GPU 기반의 빠른 래스터화(rasterization) 적합.

: Anisotropic Splatting - Gaussian의 방향성을 고려하여 각 픽셀에서 더 세밀한 가시성 정렬과 렌더링 품질 향상

: 타일 기반 알고리즘을 통해 고해상도(1080p)에서도 ≥30fps의 실시간 렌더링이 가능

# 타일기반 알고리즘: 이미지를 작은 타일(tile) 단위로 나누어 처리하는 방식

 

 

 

1. SfM PointsSfM을 사용하여 생성된 스파스 포인트 클라우드.

 

  • SfM은 여러 2D 이미지에서 3D 구조를 추출하는 기술로, 초기 입력 데이터로 사용됨.

2. Initialization (초기화)

  • SfM Points를 기반으로 3D Gaussian을 초기화
  • 이 단계에서는 포인트의 위치, 크기, 불투명도, 방향 등 초기 속성을 설정.

3. 3D Gaussians

초기화된 Gaussian 분포로 장면을 표현.

Gaussian은 각 포인트를 중심으로 부드러운 3차원 분포를 생성하며, 이는 효율적이고 연속적인 장면 표현을 제공.

 

4. Projection (투영)

3D Gaussian을 카메라 시점에 맞게 2D로 투영.

카메라의 위치와 방향에 따라 Gaussian 분포를 2D 평면으로 변환.

 

5. Adaptive Density Control (적응적 밀도 제어)

학습 과정 중 Gaussian의 밀도를 조절:

필요한 곳에서는 Gaussian을 추가, 불필요한 곳에서는 제거.

이를 통해 효율적으로 장면을 압축하며 계산 비용을 줄이고, 품질은 유지.

 

6. Differentiable Tile Rasterizer (미분 가능한 타일 기반 래스터화)

투영된 2D Gaussian을 타일 단위로 처리:

각 타일에서 Gaussian 분포를 기반으로 픽셀 색상, 깊이, 불투명도 등을 계산.

미분 가능하기 때문에 학습 과정에서 역전파(gradient flow)가 가능.

 

7. Image

최종적으로 타일 기반 렌더링 결과를 합쳐 이미지를 생성.

고품질의 2D 렌더링 결과를 얻을 수 있음.

 

결론

이 파이프라인은 다음과 같은 특징을 가집니다:

SfM 데이터로 간단히 초기화 후, 효율적인 Gaussian 기반 표현 생성.

가시성 정렬과 밀도 제어를 통해 불필요한 계산을 줄이고 고품질 장면을 표현.

타일 기반 GPU 처리로 실시간 렌더링을 지원.

학습 과정에서 미분 가능한 구조로 최적화 가능.

반응형