镜像社区
部署GPU实例
文档中心
常见问题(FAQ)
深度学习
其他
3dgs
3DGS镜像集成开源3D高斯点云渲染框架,通过高效可微栅格化技术实现实时的照片级场景重建与渲染,支持从稀疏图像生成高质量动态3D场景,在渲染速度与视觉保真度上超越传统神经辐射场方案,适用于虚拟现实、数字孪生及影视制作领域
0/小时
v1.0

3dgs镜像使用教程

翻译如下:

分步教程

Jonathan Stephens 制作了一个精彩的分步教程,指导您在自己的机器上设置高斯溅射(Gaussian Splatting),并提供了从视频创建可用数据集的说明。如果下面的说明对您来说过于枯燥,可以点击这里查看他的教程。

Colab

用户 camenduru 友好地提供了一个 Colab 模板,使用该仓库的源代码,以便快速轻松地访问该方法。请点击这里查看。

克隆仓库

该仓库包含子模块,因此请使用以下命令进行克隆:

# SSH
git clone git@github.com:graphdeco-inria/gaussian-splatting.git --recursive

# HTTPS
git clone https://github.com/graphdeco-inria/gaussian-splatting --recursive

概述

代码库主要包含四个组件:

  1. 基于 PyTorch 的优化器,用于从 SfM 输入生成 3D 高斯模型
  2. 一个网络查看器,允许连接并可视化优化过程
  3. 一个基于 OpenGL 的实时查看器,用于实时渲染训练模型
  4. 一个脚本,帮助您将自己的图像转换为优化准备好的 SfM 数据集

这些组件在硬件和软件方面有不同的要求。它们已在 Windows 10 和 Ubuntu Linux 22.04 上进行了测试。每个组件的设置和运行说明见下文。

优化器

优化器在 Python 环境中使用 PyTorch 和 CUDA 扩展来生成训练模型。

硬件要求

  • 支持 CUDA 的 GPU,计算能力 7.0 及以上
  • 24 GB VRAM(以训练达到论文评估质量)

请参见常见问题解答以获取较小 VRAM 配置的信息。

软件要求

  • Conda(推荐用于简便设置)
  • 用于 PyTorch 扩展的 C++ 编译器(我们在 Windows 上使用 Visual Studio 2019)
  • 用于 PyTorch 扩展的 CUDA SDK 11,安装在 Visual Studio 之后(我们使用 11.8,11.6 存在已知问题)
  • C++ 编译器和 CUDA SDK 必须兼容

设置

本地设置

我们提供的默认安装方法基于 Conda 包和环境管理:

SET DISTUTILS_USE_SDK=1 # 仅适用于 Windows
conda env create --file environment.yml
conda activate gaussian_splatting

请注意,此过程假设您已安装 CUDA SDK 11,而不是 12。有关修改,请见下文。

提示:使用 Conda 下载包和创建新环境可能需要大量磁盘空间。默认情况下,Conda 将使用主系统硬盘。您可以通过指定不同的包下载位置和不同驱动器上的环境来避免这种情况:

conda config --add pkgs_dirs <Drive>/<pkg_path>
conda env create --file environment.yml --prefix <Drive>/<env_path>/gaussian_splatting
conda activate <Drive>/<env_path>/gaussian_splatting

修改

如果您有足够的磁盘空间,我们建议使用我们的环境文件来设置与我们相同的训练环境。如果您想进行修改,请注意主要版本更改可能会影响我们方法的结果。然而,我们的(有限)实验表明,代码库在更新的环境中(Python 3.8、PyTorch 2.0.0、CUDA 12)运行良好。确保创建一个 PyTorch 和其 CUDA 运行时版本匹配的环境,并且安装的 CUDA SDK 与 PyTorch 的 CUDA 版本没有主要版本差异。

已知问题

一些用户在 Windows 上构建子模块时遇到问题(cl.exe: 文件未找到或类似错误)。请参考常见问题解答中的解决方法。

运行

要运行优化器,只需使用以下命令:目录在home/ubuntu下

python train.py -s <COLMAP 或 NeRF 合成数据集的路径>

train.py 的命令行参数

请注意,与 MipNeRF360 类似,我们的目标是处理分辨率在 1-1.6K 像素范围内的图像。为了方便,可以传递任意大小的输入,如果其宽度超过 1600 像素,将自动调整大小。我们建议保持此行为,但您可以通过设置 -r 1 强制训练使用更高分辨率的图像。

MipNeRF360 场景由论文作者在此处托管。您可以在此处找到我们针对 Tanks&Temples 和 Deep Blending 的 SfM 数据集。如果您不提供输出模型目录(-m),训练模型将写入输出目录内具有随机唯一名称的文件夹。此时,可以使用实时查看器查看训练模型(见下文)。

评估

默认情况下,训练模型使用数据集中所有可用图像。要在保留测试集以进行评估的同时进行训练,请使用 --eval 标志。这样,您可以渲染训练/测试集并生成误差指标,如下所示:

python train.py -s <COLMAP 或 NeRF 合成数据集的路径> --eval # 使用训练/测试分割进行训练
python render.py -m <训练模型的路径> # 生成渲染
python metrics.py -m <训练模型的路径> # 计算渲染的误差指标

如果您想评估我们的预训练模型,您需要下载相应的源数据集,并通过额外的 --source_path/-s 标志指明其位置。注意:预训练模型是使用发布的代码库创建的。该代码库已进行了清理并包含了错误修复,因此您从评估中获得的指标将与论文中的不同。

python render.py -m <预训练模型的路径> -s <COLMAP 数据集的路径>
python metrics.py -m <预训练模型的路径>

render.py 的命令行参数

metrics.py 的命令行参数

我们还提供了 full_eval.py 脚本。该脚本指定了我们评估中使用的例程,并演示了一些额外参数的使用,例如 --images (-i) 用于定义 COLMAP 数据集中替代的图像目录。如果您已下载并提取了所有训练数据,可以这样运行:

python full_eval.py -m360 <mipnerf360 文件夹> -tat <tanks and temples 文件夹> -db <deep blending 文件夹>

在当前版本中,此过程在包含 A6000 的参考机器上大约需要 7 小时。如果您想对我们的预训练模型进行全面评估,可以指定其下载位置并跳过训练。

python full_eval.py -o <预训练模型目录> --skip_training -m360 <mipnerf360 文件夹> -tat <tanks and temples 文件夹> -db <deep blending 文件夹>

如果您想在我们论文的评估图像上计算指标,也可以跳过渲染。在这种情况下,不必提供源数据集。您可以一次计算多个图像集的指标。

python full_eval.py -m <评估图像目录>/garden ... --skip_training --skip_rendering

full_eval.py 的命令行参数

  • --skip_training
    跳过训练阶段的标志。

  • --skip_rendering
    跳过渲染阶段的标志。

  • --skip_metrics
    跳过指标计算阶段的标志。

  • --output_path
    渲染和结果的输出目录,默认是 ./eval,如果评估预训练模型,则设置为预训练模型位置。

  • --mipnerf360 / -m360
    MipNeRF360 源数据集的路径,训练或渲染时必需。

  • --tanksandtemples / -tat
    Tanks&Temples 源数据集的路径,训练或渲染时必需。

  • --deepblending / -db
    Deep Blending 源数据集的路径,训练或渲染时必需。

镜像信息
@敢敢のwings
已使用
15
镜像大小40GB
最近编辑2024-11-26
支持卡型
RTX40系48G RTX40系2080
+3
框架版本
PyTorch-2.2.2
CUDA版本
11.8
应用
JupyterLab: 8888
版本
v1.0
2025-07-11
PyTorch:2.2.2 | CUDA:11.8 | 大小:40.00GB