GauStudio是一个模块化框架,支持并加速在快速发展的3D高斯散射(3DGS)及其多样化应用领域的研究和开发。
论文 | 文档(即将推出)
以下是经过改进的文本,结构和流程更佳:
数据集
百度网盘下载 | Hugging Face下载(即将推出)
为全面评估3DGS方法在不同光照条件、材质和几何结构下的鲁棒性,我们精心策划了以下数据集:
1. COLMAP格式的5个合成数据集集合
我们整合了5个合成数据集:nerf_synthetic、refnerf_synthetic、nero_synthetic、nsvf_synthetic和BlendedMVS,共143个复杂的真实场景。为确保兼容性,我们利用COLMAP基于原始姿态进行特征匹配和三角测量,统一将所有数据转换为COLMAP格式。
2. 具有高质量法线标注和LoFTR初始化的真实场景
-
COLMAP格式的MuSHRoom:为解决获取室内场景数据(如ScanNet++)的困难,我们基于公开可用的MuSHRoom数据集处理并生成了兼容COLMAP的数据。请记得在原许可证下使用此数据。
-
更完整的Tanks and Temples:为解决Tanks and Temples测试集缺乏真实姿态的问题,我们将MVSNet提供的姿态信息转换生成了COLMAP格式数据。这支持在更广泛的室内外场景上评估算法。排行榜提交脚本将在后续版本中发布。
-
法线标注和LoFTR初始化:为应对稀疏视点和镜面高光区域等建模挑战,我们基于私有模型标注了高质量、时间一致的法线数据,为室内和无界场景3DGS重建提供了新途径。标注代码将soon发布。此外,我们提供基于LoFTR的初始点云,以支持更好的初始化。
安装
安装软件前,请注意以下步骤已在Ubuntu 20.04上测试。如果在Windows上安装遇到任何问题,我们愿意解决这些问题。
先决条件
- NVIDIA显卡,至少6GB显存
- 已安装CUDA
- Python >= 3.8
可选步骤:创建Conda环境
建议在安装前创建conda环境。你可以使用以下命令创建conda环境:
# 创建新的conda环境
conda create -n gaustudio python=3.8
# 激活conda环境
conda activate gaustudio
步骤1:安装PyTorch
你需要安装PyTorch。本软件已在torch1.12.1+cu113和torch2.0.1+cu118版本上测试,但其他版本应该也能正常工作。你可以使用conda安装PyTorch,如下所示:
# 安装PyTorch 1.12.1+cu113版本的示例命令
conda install pytorch=1.12.1 torchvision=0.13.1 cudatoolkit=11.3 -c pytorch
# 安装PyTorch 2.0.1+cu118版本的示例命令
pip install torch torchvision --index-url https://download.pytorch.org/whl/cu118
步骤2:安装依赖
运行以下命令安装必要的依赖:
pip install -r requirements.txt
步骤3:安装自定义光栅化器和Gaustudio
cd submodules/gaustudio-diff-gaussian-rasterization
python setup.py install
cd ../../
python setup.py develop
可选步骤:安装PyTorch3D
如果你需要网格渲染和进一步的网格优化,可以按照链接安装PyTorch3D:
快速开始
3DGS的网格提取
准备输入数据
我们目前支持大多数高斯散射方法生成的输出目录,如3DGS、mip-splatting、GaussianPro,具有以下最小结构:
- output_dir
- cameras.json (必需)
- point_cloud
- iteration_xxxx
- point_cloud.ply (必需)
我们正在准备一些演示数据(即将推出)用于快速开始测试。
运行网格提取
要从输入数据提取网格,运行以下命令:
gs-extract-mesh -m ./data/1750250955326095360_data/result -o ./output/1750250955326095360_data
将./data/1750250955326095360_data/result
替换为你的输入output_dir路径。
将./output/1750250955326095360_data
替换为所需的输出网格路径。
为网格绑定纹理
输出数据的组织方式与mvs-texturing相同。按照以下步骤为网格添加纹理:
- 在你的系统上编译mvs-texturing仓库。
- 将build/bin目录添加到你的PATH环境变量中。
- 导航到包含网格的输出目录。
- 运行以下命令:
texrecon ./images ./fused_mesh.ply ./textured_mesh --outlier_removal=gauss_clamping --data_term=area --no_intermediate_results
发布计划
GauStudio将在不久的将来支持更多基于3DGS的方法,如果你也对GauStudio感兴趣并想改进它,欢迎提交PR!
- 发布网格提取和渲染工具包
- 发布常见nerf和neus数据集加载器和预处理代码
- 发布半密集、基于MVSplat和基于DepthAnything的高斯初始化
- 发布完整的训练流程
- 发布高斯天空建模和天空掩码生成脚本
- 发布VastGaussian重新实现
- 发布Mip-Splatting、Scaffold-GS和Triplane-GS训练
- 发布'gs-viewer'用于在线可视化和'gs-compress'用于3DGS后处理
- 发布SparseGS和FSGS训练
- 发布Sugar和GaussianPro训练
BibTeX
如果你发现这个库对你的研究有用,请考虑引用:
@article{ye2024gaustudio,
title={GauStudio: A Modular Framework for 3D Gaussian Splatting and Beyond},
author={Ye, Chongjie and Nie, Yinyu and Chang, Jiahao and Chen, Yuantao and Zhi, Yihao and Han, Xiaoguang},
journal={arXiv preprint arXiv:2403.19632},
year={2024}
}
许可证
除光栅化器外,代码均以MIT许可证发布。我们也欢迎商业合作,以推进3DGS的应用并解决尚未解决的问题。如果你有兴趣,欢迎联系Chongjie,邮箱:chongjieye@link.cuhk.edu.cn