본문 바로가기
AI/NeRF l 3DGS

[3DGS] 오픈소스로 구현해보기

by 여기는 정글 2025. 4. 24.

안녕하세요.

정글러입니다.

 

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

3DGS를 어플리케이션을 거치지 않고 해당 오픈소스로 만들어보았습니다.

어플리케이션은 주로 COLMAP에서 진행하는 camera tracking을 ai로 진행하기 때문에 좀더 빠르지만, 부정확한 결과가 나오기도 하는 것 같습니다.

 

오픈소스는 더 정확한 결과가 나올지 궁금해서 시도해봤습니다.

 

[컴퓨터 환경]

  • PyTorch 버전: 1.13.1+cu117
  • CUDA 버전: 11.7
  • GPU 이름: NVIDIA GeForce RTX 3090

* 가우시안 스플래팅 순서

1️⃣ colmap automatic_reconstructor COLMAP 3D 포인트 추출 
2️⃣ python convert.py Gaussian Splatting 학습용 구조 변환
3️⃣ python train.py 본 학습 진행
4️⃣ python render.py 렌더링 이미지 확인

 

1. 컴퓨터 환경과 가우시안 스플래팅 다운받기

SET DISTUTILS_USE_SDK=1 # Windows only
conda env create --file environment.yml
conda activate gaussian_splatting

 

2. COLMAP 추출

colmap automatic_reconstructor ^
 --workspace_path C:\Users\@@@\gaussian-splatting\data\set ^
 --image_path C:\Users\@@@\gaussian-splatting\data\radio\images ^
 --data_type individual ^

 

3. Gaussian Splatting 학습용 구조 변환

python convert.py -s C:\Users\@@@\gaussian-splatting\data\set

 

dataset 파일구조

 

4. 본 학습 진행

python train.py -s data/set

 

5. 렌더링 이미지 확인

cd viewer/bin
SIBR_gaussianViewer_app -m <path to trained model>

 

고해상도 이미지를 돌렸는데, 어플리케이션보다 더 깔끔하게 나왔네요.