hzxie/CityDreamer
The official implementation of "CityDreamer: Compositional Generative Model of Unbounded 3D Cities". (CVPR 2024)
CityDreamer – 無限の3D都市を生成する生成モデル
何ができるか – CityDreamerは、研究用の構成的生成モデルで、無制限かつ写実的な3D都市景観を合成できます。これは、3つの学習済みモジュールを組み合わせることで実現されます:
- 無限のレイアウト生成器 – VQ-VAE + 自己回帰サンプラーを使用して、グローバルな都市レイアウト(道路網、街区配置)を生成します。
- 背景要素生成器 – 地形、植生、空、建物以外の要素をレイアウトに埋め込みます。
- 建物インスタンス生成器 – 各街区に対して詳細な建物ジオメトリとテクスチャを生成します。
このシステムはPyTorch(1.13.1 + CUDA 11.7でテスト済み)に基づいており、推論には1台の高メモリGPU(例:RTX 3090)で動作します。トレーニングはマルチGPU環境を前提としています。
クイックスタート(推論)
- インストール – 必要なPyTorchバージョンをインストールし、リポジトリをクローンして
pip install -r requirements.txtを実行します。 - CUDA拡張のコンパイル –
extensions/内の拡張をコンパイルします(各サブフォルダはpip install .でインストール)。 - デモの実行:
またはCLIを使用:python -m demo.run # http://localhost:3186 でWeb UIが開きます
GPUのVRAMが24GB未満の場合、python -m scripts.inference # output/rendering.mp4 が出力されます--patch_height/--patch_widthを調整してください。
トレーニング(研究用途)
- データセット – CityDreamerは2つの大規模データセットを同梱しています:
- OSM(OpenStreetMap)の道路網データ。
- GoogleEarthの航空画像とインスタンスセグメンテーションマスク(SEEMで生成)。 両方とも提供されたゲートウェイリンクからダウンロード可能です。
- GoogleEarthのアノテーションの準備(約1TB) – SEEMセグメンテーションスクリプトを実行し、その後
scripts/dataset_generator.pyを実行します。 - 3つのモジュールのトレーニング(各モジュールは
torchrunを使用したrun.pyエントリポイントを使用):- レイアウト用VQ-VAE → 4GPU。
- レイアウト用サンプラー → 2GPU(VQ-VAEチェックポイントを読み込み)。
- 背景要素生成器 → 8GPU(
BUILDING_MODE=Falseを設定)。 - 建物インスタンス生成器 → 8GPU(
BUILDING_MODE=Trueを設定)。 設定のカスタマイズは各セクションのREADMEに記載されています。
事前学習済みモデルとリソース
| コンポーネント | チェックポイント(ダウンロード) |
|---|---|
| レイアウト生成器(サンプラー) | LayoutGen.pth |
| 背景要素生成器 | CityDreamer-Bgnd.pth |
| 建物インスタンス生成器 | CityDreamer-Fgnd.pth |
ライブデモはHugging Face Spacesでホストされており、短いスポットライト動画はYouTubeにリンクされています。
ライセンス
コードは NTU S-Lab License 1.0(リポジトリ内の LICENSE を参照)の下でリリースされています。再配布はこのライセンスの条項に従う必要があります。
開発者
南洋理工大学のS-Labで、謝浩哲、陳兆熙、洪方舟、劉子威が開発しました。本研究はCVPR 2024で発表され、続編(CityDreamer4D)はTPAMIに採択されています。
まとめ – CityDreamerは、大規模かつプロシージャルなリアルな3D都市環境の生成に興味を持つ研究者向けに、データ準備、トレーニングスクリプト、推論デモを含む完全なパイプラインを提供します。
関連
- プロジェクト
- プロジェクト
- プロジェクト
- プロジェクト