zju3dv/street_gaussians
[ECCV 2024] Street Gaussians: Modeling Dynamic Urban Scenes with Gaussian Splatting
Street Gaussians – Gaussian Splatting을 이용한 동적 도시 장면 모델링
소개
- ECCV 2024 논문 Street Gaussians: Modeling Dynamic Urban Scenes with Gaussian Splatting 의 오픈 소스 구현입니다.
- 이 코드는 3-D Gaussian Splatting 패러다임을 기반으로 구축되었으며, 대규모 거리 수준 데이터셋(예: Waymo Open Dataset)의 움직이는 객체를 처리할 수 있도록 확장되었습니다.
주요 기능
- 동적 장면 재구성: 단안 비디오 또는 다중 카메라 거리 데이터로부터 재구성.
- Gaussian 기반 표현: 래스터화를 통해 실시간 렌더링 가능.
- LiDAR 깊이 및 스카이 마스크 생성 지원: 사실감 향상.
- 구성 가능한 파이프라인: 학습, 평가, 궤적 렌더링 및 SIBR 뷰어 형식으로의 내보내기 지원.
시작하기
- 저장소 복제
git clone https://github.com/zju3dv/street_gaussians.git - conda 환경 생성 (Python 3.8) 및 CUDA 버전에 맞는 PyTorch 설치.
conda create -n street-gaussian python=3.8 conda activate street-gaussian pip install torch==1.13.1+cu116 torchvision==0.14.1+cu116 torchaudio==0.13.1 \ --extra-index-url https://download.pytorch.org/whl/cu116 - 나머지 Python 의존성 설치
pip install -r requirements.txt - 필수 하위 모듈 빌드 (diff-gaussian rasterizer, simple-knn, Waymo reader)
pip install ./submodules/diff-gaussian-rasterization pip install ./submodules/simple-knn pip install ./submodules/simple-waymo-open-dataset-reader python script/test_gaussian_rasterization.py # 정상 작동 확인
데이터 준비
- 저자는 Waymo 장면 예제를 제공합니다(README의 다운로드 링크 참조). 전체 실험을 수행하려면 Waymo Open Dataset의 학습/검증 분할 데이터와 함께 제공되는 추적 예측 데이터를 다운로드해야 합니다.
- 변환 스크립트 (
script/waymo/waymo_converter.py)는 원시 Waymo 파일을 코드가 예상하는 형식으로 변환합니다. 두 가지 예제 명령이 제공됩니다(소규모 데모 세트용 하나와 전체 검증 세트용 하나, 후자는 추적기 파일도 필요). - 선택적 전처리 단계:
generate_lidar_depth.py는 합성 LiDAR 깊이 맵을 생성합니다.generate_sky_mask.py는 GroundingDINO와 Segment-Anything (SAM)을 사용하여 스카이 마스크를 구축합니다. 지침에 따라 GroundingDINO를 별도로 설치하고 SAM 체크포인트를 다운로드하십시오.
파이프라인 실행
- 구성 – 모든 하이퍼파라미터는
config.py에 있습니다. 바로 사용할 수 있는 YAML 파일은configs/experiments_waymo(논문의 단안 비디오 설정용) 및configs/default.yaml(일반 시퀀스용)에 있습니다. - 학습
python train.py --config configs/xxxx.yaml # 헬퍼 스크립트 bash script/waymo/train_waymo_expample.sh # 데모 장면 bash script/waymo/train_waymo_exp.sh # 전체 실험 - 렌더링
python render.py --config configs/xxxx.yaml mode {evaluate,trajectory} # 헬퍼 스크립트 bash script/waymo/render_waymo_expample.sh bash script/waymo/render_waymo_exp.sh - 시각화 – SIBR 뷰어와 호환되는 PLY 파일로 단일 프레임 내보내기:
python make_ply.py --config configs/xxxx.yaml viewer.frame_id {frame_idx} mode evaluate
프로젝트 구조 하이라이트
lib/– 핵심 구현(Gaussian splatting, 옵티마이저, 데이터 로더).submodules/– Python 패키지로 컴파일된 타사 구성 요소.script/waymo/– 데이터 변환 및 전처리 유틸리티.configs/– 학습/평가를 구동하는 YAML 파일.images/pipeline.jpg– 엔드투엔드 워크플로우의 시각적 개요.
인용 이 코드를 연구에 사용하는 경우 ECCV 2024 논문을 인용하십시오:
@inproceedings{yan2024street,
title={Street Gaussians: Modeling Dynamic Urban Scenes with Gaussian Splatting},
author={Yunzhi Yan and Haotong Lin and Chenxu Zhou and Weijie Wang and Haiyang Sun and Kun Zhan and Xianpeng Lang and Xiaowei Zhou and Sida Peng},
booktitle={ECCV},
year={2024}
}
관련
- 프로젝트
- 프로젝트
- 프로젝트
- 프로젝트