主分支已改为基于 Gaussian Lightning v0.10.1,原 V1 代码需切到 V1-Original 分支;训练前需按 doc/data_preparation.md 准备数据,V2 权重需从百度网盘或 Hugging Face 单独下载;多数 block 未被训练通常是数据分配过少(<50),需调整 aabb 设置
CityGaussian
Linketic活跃维护用高斯泼溅做城市级大场景三维重建,通过细节层次(LOD)策略兼顾高质量渲染与训练效率,支持新视角合成。
[ECCV`24&ICLR`25] CityGaussian Series for High-quality Large-Scale Scene Reconstruction with Gaussians
安装步骤见 doc/installation.md,README 未给出可直接复制的命令README 未说明具体显存与 GPU 型号要求;FAQ 提到显存不足时可对图像降采样、调小 train_large.py 中的 max_cache_num(默认用了较大的 1024)或提高 prune_ratio 来降低显存占用。
用高斯泼溅做城市级大场景重建与实时渲染,支持多卡并行且显存可控
用高斯泼溅做城市级大场景三维重建,通过细节层次(LOD)策略兼顾高质量渲染与训练效率,支持新视角合成。
核心能力
- 多卡并行重建,显存开销可控且不限制 GPU 数量
- 支持 2DGS 风格网格提取与大场景几何精度评估
- 轨迹对齐渲染并生成网格视频,可去除漂浮物
- 联合优化位姿与 3DGS,容忍不完美的 COLMAP 结果
- 继承 Gaussian Lightning 的网页查看器与 MipSplatting 等特性
容易踩的坑
- CityGaussian_V2.0Official release of our CityGaussianV2最新正式版2025-01-22 · 2025-01-22 07:30 UTC
- Rebase the code to Gaussian Lightning v0.10.1
- Open-source the code of CityGS V2's run and evaluation, as well as geometric GT
- Supports partition and data assignment analysis
- Supports trajectory aligned video rendering for GS and mesh
- CityGaussian_V1.5Announcement of the CityGaussian V22024-11-04 · 2024-11-04 02:48 UTC
查看更新说明
Welcome to visit our project page.
- CityGaussian_V1.2Release of CityGS V1.22024-10-12 · 2024-10-12 12:35 UTC
查看更新说明
- Adds FAQ and releases checkpoints
- Fixed known bugs
- CityGaussian_V1.1Release of CityGS V1.12024-09-10 · 2024-09-10 13:33 UTC
查看更新说明
- Fixed known bugs
- Adds custom dataset instruction
- Delete redundant functions
- CityGaussian_V1.0Official release of our CityGaussian2024-08-04 · 2024-08-04 15:58 UTC
这个版本没有写更新说明。
用户点评
登录用户的真实使用记录,可按版本和硬件筛选还没有人点评。第一个说出真实体验的人最有价值。
This repo contains official implementations of our series of work in large-scale scene reconstruction with Gaussian Splatting, Star ⭐ us if you like it!
- CityGaussianV2: Efficient and Geometrically Accurate Reconstruction for Large-Scale Scenes (ICLR 2025)
- CityGaussian: Real-time High-quality Large-Scale Scene Rendering with Gaussians (ECCV 2024)
The links above point to the papers. The main branch now has been rebased to Gaussian Lightning v0.10.1. If you need to visit the original V1 code, please turn to the V1-Original branch. If you need support for VGGT-X, please visit guidance here. Feel free to explore the repository!
👏 Features
- CityGaussian-style multi-gpu reconstruction with controllable memory cost and no limit on GPU amount
- Analysis of model partition and data assignment
- 2DGS-style mesh extraction & Large-scale scene geometric performance evaluation
- Trajectory aligned rendering & mesh video generation with floater removement
- Joint pose and 3DGS optimization for imperfect COLMAP results like from 3D foundation models.
- Features of Gaussian Lightning, including web viewer, MipSplatting, AbsGS, StopThePop, etc.
| Scene | SSIM↑ | PSNR↑ | LPIPS↓ | Precision↑ | Recall↑ | F1-Score↑ | #GS(M) |
|---|---|---|---|---|---|---|---|
| LFLS | 0.744 | 23.44 | 0.246 | 0.556 | 0.400 | 0.466 | 8.19 |
| SMBU | 0.794 | 24.00 | 0.185 | 0.559 | 0.523 | 0.541 | 5.33 |
| Upper Campus | 0.779 | 25.78 | 0.186 | 0.654 | 0.394 | 0.491 | 7.87 |
| MatrixCity Aerial | 0.859 | 27.26 | 0.175 | 0.432 | 0.790 | 0.559 | 8.57 |
| MatrixCity Street | 0.791 | 22.32 | 0.344 | 0.325 | 0.797 | 0.461 | 7.40 |
Note for street view, the F1-Score is lower than that reported in paper, since we sacrifice precision for a better recall and more complete road surface. If unbroken road is prefered, you can adjust depth_ratio to 0.0, but surface reconstruction performance will be worse. The checkpoints of CityGSV2 can be found here:
- Baidu Netdisk: https://pan.baidu.com/s/1tRKiJzMLk2-zoyvoa9bkqA?pwd=1b4r
- Hugging Face: https://huggingface.co/TeslaYang123/CityGaussianV2
📰 News
[2025.10.18] Adds support and guidance for joint pose and 3DGS optimization of VGGT-X!
[2025.04.04] A Discord is now available. Come for a deeper and more instant communication about city reconstruction!
[2025.03.26] The repo now belongs to the research organization Linketic.
[2025.01.31] Checkpoints of CityGaussian V2 has been released!
[2025.01.22] CityGaussian V2 has been accepted by ICLR 2025!
[2025.01.22] Code of CityGaussian V2 is now released. Welcome to try it out!
[2024.11.04] Announcement of our CityGaussianV2!
[2024.10.12] Checkpoints of V1 on main datasets have been released!
[2024.08.05] Code of CityGaussian V1 is available!
🛠 Getting Started
📝 TODO List
- [ ] Official Implementation of Appearance Embedding.
- [ ] Support of V1 style LoD.
- [x] Support of VGGT-X.
- [x] Release the checkpoint of CityGaussian V2.
- [x] Release the V2 of CityGaussian.
- [x] Release code and checkpoints of CityGaussian.
- [x] Release ColMap results of main datasets.
Star History
📄 License
This work is under the Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License.
🤗 Citation
If you find this repository useful, please use the following BibTeX entry for citation.
@inproceedings{
liu2024citygaussianv2,
title={CityGaussianV2: Efficient and Geometrically Accurate Reconstruction for Large-Scale Scenes},
author={Yang Liu and Chuanchen Luo and Zhongkai Mao and Junran Peng and Zhaoxiang Zhang},
booktitle={The Thirteenth International Conference on Learning Representations},
year={2025},
url={https://openreview.net/forum?id=a3ptUbuzbW}
}
@inproceedings{liu2025citygaussian,
title={Citygaussian: Real-time high-quality large-scale scene rendering with gaussians},
author={Liu, Yang and Luo, Chuanchen and Fan, Lue and Wang, Naiyan and Peng, Junran and Zhang, Zhaoxiang},
booktitle={European Conference on Computer Vision},
pages={265--282},
year={2025},
organization={Springer}
}
👏 Acknowledgements
This repo benefits from 3DGS, 2DGS, TrimGS, LightGaussian, Gaussian Lightning. Thanks for their great work!
❓ FAQ
-
Out of memory occurs in training. To finish training with limited VRAM, downsampling images or adjusting max_cache_num (we used a rather large 1024) in train_large.py can be a useful practice. Besides, you can increase
prune_ratioin parallel tuning to further reduce memory cost. -
Generation of COLMAP results. We use the ground-truth poses offered by datasets and separately match the train and test sets. And this will be faster and more robust than match from scratch. But indeed it still costs a lot of time.
-
Most blocks are not trained. The main reason here is the data assigned to most blocks are too few (<50), and to prevent overfitting these blocks won't get trained. This can be attributed to unreasonable aabb setting, please try to adjust it and see if things work.