본문 바로가기

카테고리 없음

3DGS 실행해보기 in windows

3DGS라는 재밌는 기술을 윈도우에서 실행해본다.

 

기본적으로는

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

에 있는 내용을 따라서 하면 된다.

 

설치과정에서 꽤나 애를 먹었는데, 요지는 다음과 같다.

 

ninja 를 미리 환경변수에 등록해둔다.

 

cuda와 cl의 버전을 맞춰둔다. 두가지만 명심하면 쉽게 설치가 된다.

 

또 

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

 

이 명령어들로 한번에 환경이 세팅되면 좋지만, 중간에 에러가 발생하면 yml 파일 구축 과정에서 오류를 자세히 들여다보기 어려우니,  혹시 에러가 발생했다면 폴더 내 위치를 잘 찾아들어가서 

pip install submodules\simple-knn

 

이런식으로 하나하나 세팅해보는 것을 추천드린다. 

 

 

일단 서브모듈까지 설치를 완료하고, 3dgs를 돌려볼 차례다

 

convert.py 파일을 이용하면되는데, 이러려면 colmap 실행파일이 필요하다. 잘 다운받고 실행파일의 위치를 환경변수에 등록해주자.

 

그리고 convert.py -s <폴더>

 

를 넣어줘야 하는데

 

이 <폴더>의 구조가

 

<폴더명>/input   

 

이 input 폴더 내에 이미지가 들어가는 형태야야 한다. 

 

예를들어 archer 의 3D 모델을 구하고 싶으면

 

archer/input/images 파일들

 

이렇게 배치해두고

 

python convert.py -s archer

 

이렇게 명령을 내리면 된다. 

 

이미지는 72장, 각 이미지는 3000x4000 해상도였고, 2분 정도 시간이 걸렸다. 

 

 

 

 

 

 

다 자음으로 이제 colmap을 구했으니, training을 해본다.

 

위에서 쓴 images 폴더 내에 다양한 데이터가 생성된 것을 확인한 후 train.py를 돌려보았다.

4090으로 돌리는데도, 시간이 꽤나 소요된다. 

 

이것도 1.6K로 리 스케일링 한 결과구나.....

 

 

결국 17분 정도가 걸려서 끝났다.

 

결과를 확인해보자

train을 하면 output이 output 폴더에 생성되더라. 그래서 렌더할때는 저렇게 돌려줘야 한다.

 

 

저걸 돌려주고 나면 colmap에서 추정한 카메라 위치에서 렌더한 샷을 renders 폴더에 뽑아준다. 이걸 애초에 입력으로 넣어준 gt 폴더 내의 값과 비교하면 최종 에러가 확인되는 원리인 것으로 보인다.

 

자 그럼 잘 작동하는건 봤고, 그렇다면 interactive viewer도 돌려보자.

 

 

나는 프리빌트 버전의 프로그램을 설치해두었다.

 

압축을 풀고 이녀석을 실행시키면

 

 

이런 에러가 난다.

 

빌드하기는 귀찮으니 그냥 cuda 12도 설치해준다. 기존 cuda 11.8 패스를 유지하되, dll 파일만 복사해서 써야지..

 

일단 바뀐 환경변수 원복하고, 위 파일들을 복사해서 뷰어 폴더에 복붙해준다. 

 

그냥 실행하면 불편하니, viewer 의 bin 폴더도 그냥 환경변수 등록!!!

이렇게 실행했고,

 

 

촬영이 잘 된 씬은 이렇게 나오는데,

촬영에 사용되지 않은 씬은 이렇게 나오는걸 확인

 

3D scan에 활용하긴 어려워 보인다. 

 

이상으로 3DGS 실행 in windows 포스팅을 마친다.