翻译如下:
Jonathan Stephens 制作了一个精彩的分步教程,指导您在自己的机器上设置高斯溅射(Gaussian Splatting),并提供了从视频创建可用数据集的说明。如果下面的说明对您来说过于枯燥,可以点击这里查看他的教程。
用户 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
代码库主要包含四个组件:
这些组件在硬件和软件方面有不同的要求。它们已在 Windows 10 和 Ubuntu Linux 22.04 上进行了测试。每个组件的设置和运行说明见下文。
优化器在 Python 环境中使用 PyTorch 和 CUDA 扩展来生成训练模型。
请参见常见问题解答以获取较小 VRAM 配置的信息。
我们提供的默认安装方法基于 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 合成数据集的路径>
请注意,与 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 <预训练模型的路径>
我们还提供了 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
--skip_training
跳过训练阶段的标志。
--skip_rendering
跳过渲染阶段的标志。
--skip_metrics
跳过指标计算阶段的标志。
--output_path
渲染和结果的输出目录,默认是 ./eval
,如果评估预训练模型,则设置为预训练模型位置。
--mipnerf360 / -m360
MipNeRF360 源数据集的路径,训练或渲染时必需。
--tanksandtemples / -tat
Tanks&Temples 源数据集的路径,训练或渲染时必需。
--deepblending / -db
Deep Blending 源数据集的路径,训练或渲染时必需。