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}
}
相关
- 项目
- 项目
- 项目
- 项目