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}
}
相關
- 專案
- 專案
- 專案
- 專案