hzxie/CityDreamer
The official implementation of "CityDreamer: Compositional Generative Model of Unbounded 3D Cities". (CVPR 2024)
CityDreamer – 無限3D城市生成的生成模型
是什麼 – CityDreamer 是一個研究級的組合式生成模型,能夠合成無限且逼真的3D城市景觀。它透過結合三個學習元件來實現:
- 無限佈局生成器 – 使用 VQ-VAE + 自回歸取樣器生成全域城市佈局(道路網絡、區塊排列)。
- 背景元素生成器 – 以地形、植被、天空等非建築元素填滿佈局。
- 建築實例生成器 – 為每個區塊生成詳細的建築幾何與紋理。
此系統基於 PyTorch(已測試版本 1.13.1 + CUDA 11.7),推論時可在單一高記憶體 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 顯存不足 24 GB,請調整python -m scripts.inference # 輸出 output/rendering.mp4--patch_height/--patch_width。
訓練(研究用途)
- 資料集 – CityDreamer 提供兩個大型資料集:
- OSM(OpenStreetMap)道路網絡資料。
- GoogleEarth 航拍影像與實例分割遮罩(透過 SEEM 生成)。 兩者均可透過提供的網關連結下載。
- 準備 GoogleEarth 標註(約 1 TB) – 執行 SEEM 分割腳本,再執行
scripts/dataset_generator.py。 - 訓練三個模組(每個模組使用通用
run.py入口點搭配torchrun):- 佈局用 VQ-VAE → 4 GPU。
- 佈局用取樣器 → 2 GPU(載入 VQ-VAE 檢查點)。
- 背景元素生成器 → 8 GPU(設定
BUILDING_MODE=False)。 - 建築實例生成器 → 8 GPU(設定
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 城市環境感興趣的研究者提供了完整管道(資料準備、訓練腳本、推論示範)。
相關
- 專案
- 專案
- 專案
- 專案