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ファイルをコードが期待する形式に変換します。2つのサンプルコマンドが提供されています(小規模なデモセット用と、完全な検証セット用。後者はトラッカーファイルも必要です)。 - オプションの前処理ステップ:
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}
}
関連
- プロジェクト
- プロジェクト
- プロジェクト
- プロジェクト