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. 데이터 수집
동영상을 찍은 후에
# 저장 폴더는 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. 플래닝 세팅 및 실행
?