AI/컴퓨터비전(CV)

Street-gaussian 학습환경 세팅 & 학습시켜보기

CSE 2026. 4. 9. 12:09

<관련 논문 리뷰>

 

[CV 논문] Street Gaussians: Modeling Dynamic Urban Scenes with Gaussian Splatting

아래 글에서 이 블로그에서 리뷰한 논문들의 흐름과 분야별 분류를 한 눈에 볼 수 있다. 읽은 논문들 정리[목차]지속적으로 업데이트 중, 번호는 모델발전 순서가 아닌 읽은 순서에 따라 정렬.1.

april2901.tistory.com


3DGS환경세팅처럼 이 street-gaussian의 학습환경을 세팅할 때 고통받고 있는 사람이 많을 것이다.

나도 역시나 한번에 세팅이 되지 않았다.

 

성공한 세팅방법을 공유하려한다.

추가로, 성공한 세팅에서 학습까지 시키는 과정이 글에 나와있다.

 

<기본 환경>

OS : Ubuntu 22.04 LTS

가상환경 툴 : anaconda

 

다른 툴들은 모두 다시 깔 것이기 때문에 환경은 저렇게 간단히만 적었다.


1. 세팅

1-1. 환경 설정 & 필수 라이브러리 설치

먼저 conda 환경을 만들어준다.

conda create -n street-gaussian python=3.10 -y
conda activate street-gaussian

 

필수 라이브러리를 설치한다.

CUDA 버전은 11.8이다.

conda install cuda -c nvidia/label/cuda-11.8.0 -y
pip install torch==2.1.2 torchvision==0.16.2 torchaudio==2.1.2 --index-url https://download.pytorch.org/whl/cu118
pip install plyfile tqdm
conda install -c conda-forge ninja -y

 


1-2. requirements.txt 설치

설치 전에 파일을 열어서 가장 마지막 줄을 주석처리해야한다.

이 부분은 requirements파일을 통해 설치하지 않고 후에 따로 설치할 것이다.

#git+https://github.com/NVlabs/nvdiffrast.git

 

이때 clone한 srteet_gaussians폴더의 위치에서 아래 명령어를 통해 설치를 진행하자.

pip install -r requirements.txt

 


1-3. nvdiffrast설치

방금 주석처리한 패키지를 따로 다운받는 과정이다.

git clone https://github.com/NVlabs/nvdiffrast.git

cd nvdiffrast

CPATH=$CONDA_PREFIX/include:$CPATH

LD_LIBRARY_PATH=$CONDA_PREFIX/lib:$LD_LIBRARY_PATH

pip install setuptools==69.5.1 packaging

python setup.py install

 


1-4. 서브모듈 설치

위에서 cd를 통해 nvdiffrast로 들어갔었는데 다시 'cd ..'을 통해프로젝트 폴더로 나온다.

그 이후 서브모듈을 설치한다.

가우시안 관련 파일들에서 서브모듈 설치가 가장 골때리는 부분인데 위에서 각종 버전들을 명시해서 호환이 되는 버전을 다운받았기 때문에 아래 과정이 정상적으로 수행된다.

pip install submodules/diff-gaussian-rasterization --no-build-isolation

pip install ./submodules/simple-knn --no-build-isolation

pip install ./submodules/simple-waymo-open-dataset-reader --no-build-isolation

 

그리고 코드를 돌릴 때 필요한 colmap도 설치한다.

conda install -c conda-forge colmap -y

 


2. 학습시켜보기

2-1. 데이터셋 준비

일단 학습이 잘 돌아가는지, 내 그래픽카드의 범위에서 학습이 가능한지 등을 확인하기 위해 전처리까지 된 상태로 제공되는 데이터를 다운받자.

아래 링크를 들어가면 된다.

street gaussian공식 깃헙에서 제공되는 링크이다.

https://drive.google.com/drive/folders/1ghpE_kBwqXiWgiSWAajByjPsmj1y0l1H

들어가면 두 개의 zip이 있는데 나는 002.zip만 다운받았다.

다운 받은 폴더를 프로젝트 폴더 밑에 넣어놓자.

로컬환경이 아닌 서버를 사용하는 사람은 아래 부분을 참고하면 좋을 것 같다.

 


+서버를 사용할 때 (해당하는 경우만 참고)

나는 현재 로컬 데스크탑이 아닌 서버를 사용하고 있다.

따라서 이 파일을 서버로 옮겨줬는데, SSD를 여러 개 사용하고 있으므로 저장공간을 나눠놨다.

용량이 큰 SSD는 데이터셋 저장용, 상대적으로 조금 작은 SSD는 코드 등 파일 저장용으로 사용한다.

 

이럴 경우 데이터셋의 위치와 코드의 위치가 달라지기 때문에 코드가 들어있는 프로젝트 폴더에서 

심볼릭 링크를 만들어 데이터셋이 해당 폴더에 있는 것처럼 해줘야 한다.

이 street-gaussian학습에 맞는 심볼릭 링크는 아래처럼 생성할 수 있다.

명령어의 실행 위치는 프로젝트 폴더(street_gaussian폴더)이다.

training폴더까지는 mkdir로 생성하고 실행했다.

ln -s /실제데이터경로 data/waymo/training/002

 


2-2. 파일 수정

아래 그림의 경로의 train_waymo_example.sh파일을 보면 아래와 같은 줄이 있다.

scenes=("031" "002")

이는 아까 데이터셋에서 봤던 숫자들인데 이 두 데이터셋을 순차적으로 학습을 시킨다는 의미이다.

하지만 우리는 하나의 데이터셋만을 다운 받았기 때문에 아래처럼 코드를 바꿔준다.

scenes=("002")

 


2-3. 훈련

이제 모든 준비가 끝났다.

최종적으로 훈련은 아래 명령어로 실행시킬 수 있다.

 

python train.py --config configs/example/waymo_train_002.yaml

 

저 yaml파일에는 학습에 필요한 여러 값들이 들어있다.

여기서 source_path와 데이터가 저장된 경로가 일치해야한다.


3. 결과

 

아래 명령어를 통해 볼 수 있는 ply파일을 만들 수 있다.

frame_id 뒤에는 보고싶은 프레임의 번호를 넣으면 된다.

python make_ply.py     --config configs/example/waymo_train_002.yaml     viewer.frame_id 0     mode evaluate

 

output폴더 안에 viewer라는 폴더가 새로 생기고, 그 안에 변환 결과가 저장된다.

 

SIBR뷰어로 본 모습이다.