3D Gaussian Splatting Github 셋팅 방법과 실행 결과에 대해 다룹니다.
대상 논문 : 3D Gaussian Splatting for Real-Time Radiance Field Rendering, Bernhard Kerbl, SIGGRAPH 2023
설치 유튜브 영상 과 영상에 언급된 설치 가이드 Github 을 기본적으로 참조하였습니다.
Windows10과 Ubuntu 22.04를 권장하고 있었고, 이 글에서도 윈도우10 설치 가이드를 적었습니다.
H/W Spec
Github엔 GPU 램 24GB을 이상을 요구하고 있습니다. Scene의 크기가 클 경우에 24GB을 요구하는 것으로 보이며, 구글링해보니 적은 RAM에서도 실행된다고 해서, RTX3060 (램 12GB)에서 작은 Scene에 대해 랜더링 해보았습니다.
기본 S/W설치
1. CUDA 11.8 설치 : link ( 2023-09-16기준, 다른 CUDA 버전 안됩니다!! )
2. git 설치 : downloads
3. conda 설치 : download link
- 회사에서는 라이센스 이슈로 anaconda 사용 못합니다. conda-forge 사용하시길 바랍니다.
전 집에서 셋팅한지라 anaconda사용했습니다. (관련 내용 link)
4. visual studio build tool 설치 (2024-06-03 업데이트)
- MS c++컴파일러 2019버전으로 설치해야하는데, MS공홈에서는 이제 2022 밖에 다운로드 안되네요. 때문에 몇개 링크 찾아뒀습니다. 해당 링크도 끊길 수 있습니다. link1 , link2
- 시스템 환경 변수 추가 (하단 윈도우아이콘 우클릭->시스템->고급시스템설정->고급->환경변수->시스템변수->path)
- link1인 경우 visual studio build tools가 설치 됩니다. (테스트 해봤습니다.)
C:\Program Files (x86)\Microsoft Visual Studio\2019\BuildTools\VC\Tools\MSVC\14.29.30133\bin\Hostx64\x64
C:\Program Files (x86)\Microsoft Visual Studio\2019\BuildTools\VC\Tools\MSVC\14.29.30133\include
- link2인 경우 visual studio community가 설치됩니다. (테스트 안해봤습니다.)
C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30133\bin\Hostx64\x64
C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30133\include
5. COLMAP설치 : download link, 셋팅 영상
6. ImageMagik 설치 : download link, 셋팅 영상
7. FFMPEG 설치 : download link, 셋팅 영상
Git Clone
--recursive를 꼭 넣으시길 바랍니다. 하위 서브모듈까지 모두 clone하는 옵션
$ git clone https://github.com/graphdeco-inria/gaussian-splatting --recursive
Conda 환경셋팅
conda prompt에서 아래 명령어 입력
$ SET DISTUTILS_USE_SDK=1
$ cd (root폴더)
$ conda env create --file environment.yml
$ conda activate gaussian_splatting
Custom 영상 랜더링
1. 개인 영상 파일을 준비합니다.
- 제가 사용한 영상은 720x1280, 30FPS, 영상길이 11초 입니다. (입력영상은 nerfstudio 이전글에서 확인 바랍니다.)
- (root폴더)/data/tube에 tube_input.mp4를 넣었습니다.
- (root폴더)/data/tube/input에 폴더를 만들어줍니다.
2. ffmpeg(S/W설치 4번)을 사용해서, 영상을 이미지로 만듭니다. fps는 보유 영상 길이에 따라 적당히 바꾸시면 됩니다.
$ cd (root폴더)\data\tube\input
$ ffmpeg -i (root폴더)\data\tube\tube_input.mp4 -qscale:v 1 -qmin 1 -vf fps=10 %04d.jpg
3. COLMAP (S/W설치 5,6번)을 실행합니다. 저는 2분 정도 소요됬습니다.
$ cd (root폴더)
$ python convert.py -s data/tube
여기까지하면, 아래 그림처럼 됩니다.
4. 학습을 진행합니다.
$ python train.py -s data/tube
저는 RTX3060를 사용해서, 7000 iteration에 첫번째 weight가 학습 시작 약 6분 후에 만들어졌습니다.
최종 weight는 30,000 iteration 후에 나오며, 약29분 소요됬습니다.
(root폴더)\output폴더에 결과물이 만들어지며, 저는 37c24bcc-d라는 이름으로 되어있길레, tube로 이름을 변경했습니다.
결과 Log입니다.
(gaussian_splatting) C:\XXXXXX\gaussian-splatting>python train.py -s data/tube
Optimizing
Output folder: ./output/37c24bcc-d [16/09 14:47:17]
Tensorboard not available: not logging progress [16/09 14:47:17]
Reading camera 113/113 [16/09 14:47:17]
Converting point3d.bin to .ply, will happen only the first time you open the scene. [16/09 14:47:17]
Loading Training Cameras [16/09 14:47:17]
Loading Test Cameras [16/09 14:47:22]
Number of points at initialisation : 14715 [16/09 14:47:22]
Training progress: 23%|█████████▊ | 7000/30000 [06:17<22:45, 16.85it/s, Loss=0.0175813]
[ITER 7000] Evaluating train: L1 0.014411517791450024 PSNR 34.41718215942383 [16/09 14:53:39]
[ITER 7000] Saving Gaussians [16/09 14:53:39]
Training progress: 100%|█████████████████████████████████████████| 30000/30000 [29:08<00:00, 17.15it/s, Loss=0.0139922]
[ITER 30000] Evaluating train: L1 0.01044864095747471 PSNR 37.330615234375 [16/09 15:16:31]
[ITER 30000] Saving Gaussians [16/09 15:16:31]
Training complete. [16/09 15:16:32]
5. viewr를 다운로드 받고 실행합니다.
- link 에 들어가서, Pre-built Windows Binaries 탭의 here를 눌러 다운 받습니다.
- zip 해제한 후, (root폴더)/viewer폴더로 이동합니다.
- conda prompty에서 exe파일을 실행합니다.
$ cd (root폴더)\viewers\bin
$ SIBR_gaussianViewer_app.exe -m (root폴더)\output\tube
6. viewer로 결과를 확인합니다.
- 기본모드 : w,a,s,d(카메라 위치 상하좌우 이동), j,l,i,k (카메라 위치 고정 후 로테이션)
- trackball모드(FPS라고 적혀 있는 콤보박스를 클릭) : 마우스 오른쪽 버튼은 회전, 마우스 왼쪽 버튼은 이동, 스크롤은 zoom in/out
- 상단 Menu->display->V-sync를 클릭해서 v-sync를 끄면, 랜더링 속도가 60FPS 에서 200FPS로 향상되는 것을 볼 수 있습니다.
- Gaussian 모델 타입을 변경해서 확인하는 건 영상을 녹화해봤습니다. (아래 영상이 안보이고 크롬 사용하는 경우, 상단에 ABP라는 빨간 아이콘을 선택해서 이 웹사이트 광고 차단을 해제바랍니다. 참고로 제 블로그는 광고가 없습니다...)
최종 결과 영상 (mp4파일 압축은 : link 사용 )
참고로 nerfstudio viewer에서도 실행된다고 합니다. nerfstudio에서 model학습은 지원하지 않습니다. (관련 글 : link )
추가 Tensorboard 설정 (2024-06-13 업데이트)
코드 상에 tensorboard가 설치되어 있으면, 학습 로그를 확인 할 수 있게 코드가 되어 있습니다.
$ conda install tensorboard
$ conda install urllib3==1.25.8
$ tensorboard --logdir=output\tube
웹브라우저 열어서 http://localhost:6006/ 로 접속
Closing..
최근 NeRF연구 분야에서 뜨거운 이슈가 되는 논문입니다. 해당 논문을 읽고 있으며, 논문 이해를 위해서 코드 빌드를 먼저 해보았습니다. 논문 리뷰는 곧 포스팅 하겠습니다.
'3D-GS' 카테고리의 다른 글
[논문 리뷰] SuGaR (CVPR 2024) : 3D Gaussian Splatting to Mesh (1) | 2024.01.11 |
---|---|
[코드 빌드] Dream Gaussian : Image to 3D, Text to 3D (11) | 2023.11.15 |
[논문 리뷰] Dream Gaussian (ICLR 2024) : Image to 3D, Text to 3D (6) | 2023.11.08 |
[논문 리뷰] 4D Gaussian Splatting (CVPR 2024) : Dynamic Scene 랜더링 (3) | 2023.10.23 |
[논문 리뷰] 3D Gaussian Splatting (SIGGRAPH 2023) : 랜더링 속도/퀄리티 개선 (27) | 2023.09.25 |
댓글