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 에 웹 UI가 열립니다
GPU의 VRAM이 24GB 미만이라면python -m scripts.inference # output/rendering.mp4 출력--patch_height/--patch_width를 조정하세요.
훈련 (연구용)
- 데이터셋 – CityDreamer은 두 가지 대규모 데이터셋을 제공합니다:
- OSM (OpenStreetMap) 도로망 데이터.
- GoogleEarth 항공 영상과 인스턴스 세그멘테이션 마스크(SEEM으로 생성). 둘 다 제공된 게이트웨이 링크를 통해 다운로드 가능합니다.
- GoogleEarth 애노테이션 준비 (약 1TB) – SEEM 세그멘테이션 스크립트를 실행한 후
scripts/dataset_generator.py를 실행합니다. - 세 가지 모듈 훈련 (각각
torchrun을 사용한run.py엔트리 포인트 사용):- 레이아웃용 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 도시 환경을 연구하는 데 관심 있는 연구자들을 위한 완전한 파이프라인(데이터 준비, 훈련 스크립트, 추론 데모)을 제공합니다.
관련
- 프로젝트
- 프로젝트
- 프로젝트
- 프로젝트