새소식

Navigation

SplatNav 코드 돌려보기 (2) 내 데이터로 돌려보기

  • -

https://zzziito.tistory.com/174

 

SplatNav 코드 돌려보기 (1) 제공해준 데이터로 돌려보기

1. 환경 설정A. NerfStudio 설치SplatNav는 NerfStudio를 기반으로 작성되었다. https://github.com/nerfstudio-project/nerfstudio/tree/main GitHub - nerfstudio-project/nerfstudio: A collaboration friendly studio for NeRFsA collaboration friendly

zzziito.tistory.com

여기서 제공해 준 데이터로 돌려봤으니까 이제 내가 딴 데이터로 돌려볼 차례이다. 

친절하게도 이렇게 설명해주고 있다. 대략 이런 내용. 

다음과 같은 순서로 수행한다. 

  1. 데이터 수집
  2. 전처리
  3. 학습 (맵 생성)
  4. 플래닝 
  5. 시각화

1. 데이터 수집

동영상을 찍은 후에 

# 저장 폴더는 splatnav 쪽에 만들자 (씬 이름: exp_room)
mkdir -p ~/ziwon/class/CS580/splatnav/data/exp_room/images

ffmpeg -i ~/ziwon/class/CS580/splatnav/dataset/exp_room.mp4 \
  -vf "fps=2" -q:v 2 \
  ~/ziwon/class/CS580/splatnav/data/exp_room/images/%06d.jpg

이렇게 이미지만 추출한다. 

2. Nerstudio 포맷으로 전처리

이미지를 추출한 후에 Nerfstudio에서 COLMAP을 돌려서 포즈를 만든다.

colmap feature_extractor \
  --database_path data/exp_room/colmap/database.db \
  --image_path data/exp_room/images \
  --ImageReader.single_camera 1 \
  --ImageReader.camera_model OPENCV \
  --SiftExtraction.use_gpu 0 \
  --SiftExtraction.num_threads 4
colmap sequential_matcher \
  --database_path data/exp_room/colmap/database.db \
  --SiftMatching.use_gpu 0
# sparse 폴더 생성
mkdir -p data/exp_room/sparse

colmap mapper \
  --database_path data/exp_room/colmap/database.db \
  --image_path data/exp_room/images \
  --output_path data/exp_room/sparse
  
# 컴퓨터 죽을 경우
colmap mapper \
  --database_path data/exp_room/colmap/database.db \
  --image_path data/exp_room/images_2 \
  --output_path data/exp_room/sparse \
  --Mapper.num_threads 4 \
  --Mapper.ba_global_max_num_iterations 15 \
  --Mapper.ba_local_max_num_iterations 10 \
  --Mapper.ba_global_max_refinements 2
colmap model_converter \
  --input_path data/exp_room/sparse/0 \
  --output_path data/exp_room/sparse/0 \
  --output_type TXT

혹은 ns_process_data 사용

QT_QPA_PLATFORM=offscreen ns-process-data images \
  --data data/exp_room/images \
  --output-dir data/exp_room \
  --matching-method sequential \
  --gpu False \
  --num-downscales 0

3. 맵 생성

ns-train splatfacto \
  --data data/exp_room \
  --output-dir outputs/exp_room

https://www.youtube.com/watch?v=aXw2N0lbobg

이와 같이 맵이 만들어졌다. 

추가로 이걸 Ply로 Export 하려면 

ns-export gaussian-splat \
  --load-config outputs/exp_room/exp_room/splatfacto/2025-10-22_174808/config.yml \
  --output-dir exports/exp_room

supersplat을 사용하면 지저분한 애들을 지울 수 있다. 

 

4. 플래닝 세팅 및 실행

?

Contents

포스팅 주소를 복사했습니다

이 글이 도움이 되었다면 공감 부탁드립니다.