Project Icon

gaussian-splatting

实时高质量3D场景渲染新方法

Gaussian-splatting是一种新型3D场景渲染技术,利用3D高斯分布表示场景并进行优化,实现了实时高质量新视角生成。该方法采用快速可见性感知算法,支持各向异性渲染,在1080p分辨率下可达30+fps。相比传统方法,Gaussian-splatting在视觉质量和渲染速度上均有显著提升,为实时高保真3D场景重建开辟了新途径。

3D高斯散射实时辐射场渲染

Bernhard Kerbl*, Georgios Kopanas*, Thomas Leimkühler, George Drettakis (*表示贡献相同)
| 网页 | 完整论文 | 视频 | 其他GRAPHDECO出版物 | FUNGRAPH项目页面 |
| T&T+DB COLMAP (650MB) | 预训练模型 (14 GB) | Windows查看器 (60MB) | 评估图像 (7 GB) |
预览图

本仓库包含与论文"3D高斯散射实时辐射场渲染"相关的官方作者实现,论文可在此处找到。我们还提供了用于创建论文中报告的误差指标的参考图像,以及最近创建的预训练模型。

摘要:辐射场方法最近彻底改变了使用多张照片或视频捕捉场景的新视角合成。然而,要实现高视觉质量仍需要昂贵的训练和渲染神经网络,而最近的更快方法则不可避免地以质量换取速度。对于无界和完整的场景(而非孤立物体)以及1080p分辨率渲染,目前没有方法能够实现实时显示速率。我们引入三个关键元素,使我们能够实现最先进的视觉质量,同时保持具有竞争力的训练时间,最重要的是允许以1080p分辨率进行高质量实时(≥30 fps)新视角合成。首先,从相机校准过程中产生的稀疏点开始,我们用3D高斯表示场景,保留了连续体积辐射场对场景优化的理想属性,同时避免了空白空间中不必要的计算;其次,我们对3D高斯进行交错优化/密度控制,特别是优化各向异性协方差以实现场景的准确表示;第三,我们开发了一种快速的可见性感知渲染算法,支持各向异性散射,既加速训练又允许实时渲染。我们在几个已建立的数据集上展示了最先进的视觉质量和实时渲染。

BibTeX

@Article{kerbl3Dgaussians,
      author       = {Kerbl, Bernhard and Kopanas, Georgios and Leimk{\"u}hler, Thomas and Drettakis, George},
      title        = {3D Gaussian Splatting for Real-Time Radiance Field Rendering},
      journal      = {ACM Transactions on Graphics},
      number       = {4},
      volume       = {42},
      month        = {July},
      year         = {2023},
      url          = {https://repo-sam.inria.fr/fungraph/3d-gaussian-splatting/}
}

资金和致谢

本研究由ERC高级资助FUNGRAPH No 788065资助。作者感谢Adobe的慷慨捐赠,法国蔚蓝海岸大学的OPAL基础设施以及GENCI–IDRIS提供的HPC资源(Grant 2022-AD011013409)。作者感谢匿名审稿人的宝贵反馈,P. Hedman和A. Tewari校对早期草稿,以及T. Müller、A. Yu和S. Fridovich-Keil在比较方面的帮助。

分步教程

Jonathan Stephens制作了一个出色的分步教程,介绍如何在您的机器上设置高斯散射,以及如何从视频创建可用的数据集。如果下面的说明对您来说太枯燥,请查看这里

Colab

用户camenduru很友好地提供了一个使用本仓库源代码(截至2023年8月!)的Colab模板,以便快速轻松地访问该方法。请在这里查看。

克隆仓库

该仓库包含子模块,因此请使用以下命令检出:

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

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

概述

代码库有4个主要组成部分:

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

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

新功能 [请定期查看!]

我们将很快添加几个新功能。与此同时,Orange已经友好地添加了OpenXR支持用于VR查看。请稍后再来,我们将添加其他功能,其中包括基于最近3DGS后续论文的功能。

优化器

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

硬件要求

  • 支持CUDA的GPU,计算能力7.0+
  • 24 GB显存(用于训练达到论文评估质量)
  • 请参阅常见问题解答了解较小显存配置

软件要求

  • 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 <驱动器>/<包路径>
conda env create --file environment.yml --prefix <驱动器>/<环境路径>/gaussian_splatting
conda activate <驱动器>/<环境路径>/gaussian_splatting

修改

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

已知问题

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

运行

要运行优化器,只需使用

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

--source_path / -s

包含COLMAP或合成NeRF数据集的源目录路径。

--model_path / -m

训练模型应存储的路径(默认为output/<随机>)。

--images / -i

COLMAP图像的替代子目录(默认为images)。

--eval

添加此标志以使用MipNeRF360风格的训练/测试分割进行评估。

--resolution / -r

指定训练前加载图像的分辨率。如果提供1, 2, 48,分别使用原始、1/2、1/4或1/8分辨率。对于所有其他值,将宽度缩放到给定数字,同时保持图像纵横比。如果未设置且输入图像宽度超过1.6K像素,输入将自动缩放到此目标。

--data_device

指定放置源图像数据的位置,默认为cuda,如果在大型/高分辨率数据集上训练,建议使用cpu,将减少显存消耗,但略微减慢训练速度。感谢HrsPythonix

--white_background / -w

添加此标志以使用白色背景而不是黑色(默认),例如,用于评估NeRF合成数据集。

--sh_degree

要使用的球谐函数阶数(不大于3)。默认为3

--convert_SHs_python

标志,使管道使用PyTorch而不是我们的方法计算SHs的前向和后向。

--convert_cov3D_python

标志,使管道使用PyTorch而不是我们的方法计算3D协方差的前向和后向。

--debug

如果遇到错误,启用调试模式。如果光栅化器失败,将创建一个dump文件,您可以在问题中转发给我们,以便我们查看。

--debug_from

调试很慢。您可以指定一个迭代(从0开始)后,上述调试变为活动状态。

--iterations

要训练的总迭代次数,默认为30_000

--ip

启动GUI服务器的IP,默认为127.0.0.1

--port

用于GUI服务器的端口,默认为6009

--test_iterations

训练脚本计算测试集上L1和PSNR的空格分隔迭代,默认为7000 30000

--save_iterations

训练脚本保存高斯模型的空格分隔迭代,默认为7000 30000 <iterations>

--checkpoint_iterations

存储检查点以便稍后继续的空格分隔迭代,保存在模型目录中。

--start_checkpoint

继续训练的已保存检查点路径。

--quiet

标志,省略写入标准输出管道的任何文本。

--feature_lr

球谐函数特征学习率,默认为0.0025

--opacity_lr

不透明度学习率,默认为0.05

--scaling_lr

缩放学习率,默认为0.005

--rotation_lr

旋转学习率,默认为0.001

--position_lr_max_steps

位置学习率从初始最终的步数(从0开始)。默认为30_000

--position_lr_init

初始3D位置学习率,默认为0.00016

--position_lr_final

最终3D位置学习率,默认为0.0000016

--position_lr_delay_mult

位置学习率乘数(参见Plenoxels),默认为0.01

--densify_from_iter

开始密集化的迭代,默认为500

--densify_until_iter

停止密集化的迭代,默认为15_000

--densify_grad_threshold

基于2D位置梯度决定是否应密集化点的限制,默认为0.0002

--densification_interval

密集化频率,默认为100(每100次迭代)。

--opacity_reset_interval

重置不透明度的频率,默认为3_000

--lambda_dssim

SSIM对总损失的影响,从0到1,默认为0.2

--percent_dense

点必须超过的场景范围百分比(0-1)才能被强制密集化,默认为0.01


请注意,与MipNeRF360类似,我们针对1-1.6K像素范围内的图像分辨率。为方便起见,可以传入任意大小的输入,如果宽度超过1600像素,将自动调整大小。我们建议保持此行为,但您可以通过设置-r 1来强制训练使用您的高分辨率图像。 MipNeRF360场景由论文作者在此处托管。您可以在这里找到我们用于Tanks&Temples和Deep Blending的SfM数据集。如果您没有提供输出模型目录(-m),训练好的模型将被写入output目录下随机命名的唯一文件夹中。此时,可以使用实时查看器查看训练好的模型(详见下文)。

评估

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

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

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

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

--model_path / -m

要为其创建渲染的已训练模型目录的路径。

--skip_train

跳过渲染训练集的标志。

--skip_test

跳过渲染测试集的标志。

--quiet

省略写入标准输出管道的任何文本的标志。

以下参数将根据训练时使用的内容自动从模型路径中读取。但是,您可以通过在命令行上显式提供它们来覆盖它们。

--source_path / -s

包含COLMAP或Synthetic NeRF数据集的源目录路径。

--images / -i

COLMAP图像的替代子目录(默认为images)。

--eval

添加此标志以使用MipNeRF360风格的训练/测试集分割进行评估。

--resolution / -r

在训练前更改加载图像的分辨率。如果提供1、2、4或8,分别使用原始、1/2、1/4或1/8分辨率。对于所有其他值,将宽度重新缩放为给定的数字,同时保持图像纵横比。默认为1。

--white_background / -w

添加此标志以使用白色背景而不是黑色(默认),例如,用于评估NeRF Synthetic数据集。

--convert_SHs_python

使管道使用从PyTorch计算的SHs而不是我们的SHs进行渲染的标志。

--convert_cov3D_python

使管道使用从PyTorch计算的3D协方差而不是我们的3D协方差进行渲染的标志。

metrics.py的命令行参数

--model_paths / -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
full_eval.py的命令行参数

--skip_training

跳过训练阶段的标志。

--skip_rendering

跳过渲染阶段的标志。

--skip_metrics

跳过指标计算阶段的标志。

--output_path

放置渲染图和结果的目录,默认为./eval,如果评估预训练模型则设置为预训练模型位置。

--mipnerf360 / -m360

MipNeRF360源数据集的路径,如果训练或渲染则需要。

--tanksandtemples / -tat

Tanks&Temples源数据集的路径,如果训练或渲染则需要。

--deepblending / -db

Deep Blending源数据集的路径,如果训练或渲染则需要。


交互式查看器

我们为我们的方法提供了两个交互式查看器:远程和实时。我们的查看解决方案基于SIBR框架,该框架由GRAPHDECO小组为多个新视角合成项目开发。

硬件要求

  • 支持OpenGL 4.5的GPU和驱动程序(或最新的MESA软件)
  • 建议4 GB显存
  • 支持CUDA的GPU,计算能力7.0+(仅用于实时查看器)

软件要求

  • Visual Studio或g++,不是Clang(我们在Windows上使用Visual Studio 2019)
  • CUDA SDK 11,在Visual Studio之后安装(我们使用11.8)
  • CMake(最新版本,我们使用3.24)
  • 7zip(仅在Windows上)

预构建的Windows二进制文件

我们在这里提供了Windows预构建二进制文件。我们建议在Windows上使用它们以实现高效设置,因为SIBR的构建涉及几个必须即时下载和编译的外部依赖项。

从源代码安装

如果您使用子模块克隆(例如,使用--recursive),查看器的源代码位于SIBR_viewers中。网络查看器在SIBR框架内运行,用于基于图像的渲染应用程序。

Windows

CMake应该能够处理您的依赖项。

cd SIBR_viewers
cmake -Bbuild .
cmake --build build --target install --config RelWithDebInfo

您可以指定不同的配置,例如Debug,如果您在开发过程中需要更多控制。

Ubuntu 22.04

在运行项目设置之前,你需要安装一些依赖项。

# 依赖项
sudo apt install -y libglew-dev libassimp-dev libboost-all-dev libgtk-3-dev libopencv-dev libglfw3-dev libavdevice-dev libavcodec-dev libeigen3-dev libxxf86vm-dev libembree-dev
# 项目设置
cd SIBR_viewers
cmake -Bbuild . -DCMAKE_BUILD_TYPE=Release # 添加 -G Ninja 以加快构建速度
cmake --build build -j24 --target install

Ubuntu 20.04

虽然与Focal Fossa的向后兼容性尚未完全测试,但在执行以下命令后,仍应能够使用CMake构建SIBR:

git checkout fossa_compatibility

SIBR查看器中的导航

SIBR界面提供了多种场景导航方法。默认情况下,你将以FPS导航器开始,可以使用W, A, S, D, Q, E控制相机平移,使用I, K, J, L, U, O控制旋转。或者,你可能想使用轨迹球式导航器(从浮动菜单中选择)。你还可以使用Snap to按钮捕捉到数据集中的相机,或使用Snap to closest找到最近的相机。浮动菜单还允许你更改导航速度。你可以使用Scaling Modifier控制显示的高斯体大小,或显示初始点云。

运行网络查看器

提取或安装查看器后,你可以运行<SIBR安装目录>/bin中编译的SIBR_remoteGaussian_app[_config]应用程序,例如:

./<SIBR安装目录>/bin/SIBR_remoteGaussian_app

网络查看器允许你连接到同一台或不同机器上运行的训练进程。如果你在同一台机器和操作系统上进行训练,则不需要任何命令行参数:优化器会将训练数据的位置传递给网络查看器。默认情况下,优化器和网络查看器将尝试在localhost6009端口上建立连接。你可以通过为优化器和网络查看器提供匹配的--ip--port参数来更改此行为。如果由于某种原因,优化器用于查找训练数据的路径无法被网络查看器访问(例如,由于它们在不同的(虚拟)机器上运行),你可以使用-s <源路径>为查看器指定覆盖位置。

网络查看器的主要命令行参数

--path / -s

覆盖模型的源数据集路径的参数。

--ip

用于连接正在运行的训练脚本的IP。

--port

用于连接正在运行的训练脚本的端口。

--rendering-size

接受两个空格分隔的数字,用于定义网络渲染的分辨率,默认宽度为1200。 注意,要强制使用与输入图像不同的宽高比,你还需要使用--force-aspect-ratio

--load_images

加载源数据集图像以在每个相机的顶视图中显示的标志。


运行实时查看器

提取或安装查看器后,你可以运行<SIBR安装目录>/bin中编译的SIBR_gaussianViewer_app[_config]应用程序,例如:

./<SIBR安装目录>/bin/SIBR_gaussianViewer_app -m <训练模型的路径>

只需提供指向训练模型目录的-m参数即可。或者,你可以使用-s指定训练输入数据的覆盖位置。要使用特定的分辨率而不是自动选择的分辨率,请指定--rendering-size <宽度> <高度>。如果你希望使用精确的分辨率且不介意图像失真,请将其与--force-aspect-ratio结合使用。

要解锁全帧率,请在你的机器上和应用程序中禁用垂直同步(菜单 → 显示)。在多GPU系统(例如笔记本电脑)中,你的OpenGL/显示GPU应与CUDA GPU相同(例如,在Windows上设置应用程序的GPU首选项),以获得最佳性能。

除了初始点云和splats外,你还可以选择通过将高斯体渲染为椭球体来从浮动菜单中可视化它们。 SIBR还有许多其他功能,请参阅文档以了解有关查看器、导航选项等的更多详细信息。还有一个顶视图(可从菜单中获得),显示输入相机的位置和原始SfM点云;请注意,启用顶视图时会减慢渲染速度。实时查看器还使用稍微更激进的快速剔除,可以在浮动菜单中切换。如果你遇到任何可以通过关闭快速剔除来解决的问题,请告诉我们。

实时查看器的主要命令行参数

--model-path / -m

训练模型的路径。

--iteration

如果有多个可用状态,指定要加载的状态。默认为最新可用迭代。

--path / -s

覆盖模型的源数据集路径的参数。

--rendering-size

接受两个空格分隔的数字,用于定义实时渲染的分辨率,默认宽度为1200。注意,要强制使用与输入图像不同的宽高比,你还需要使用--force-aspect-ratio

--load_images

加载源数据集图像以在每个相机的顶视图中显示的标志。

--device

如果有多个可用的CUDA设备,用于光栅化的设备索引,默认为0

--no_interop

强制禁用CUDA/GL互操作。在可能不按规范行为的系统上使用(例如,使用MESA GL 4.5软件渲染的WSL2)。


处理你自己的场景

我们的COLMAP加载器期望在源路径位置有以下数据集结构:

<位置>
|---images
|   |---<图像 0>
|   |---<图像 1>
|   |---...
|---sparse
    |---0
        |---cameras.bin
        |---images.bin
        |---points3D.bin

对于光栅化,相机模型必须是 SIMPLE_PINHOLE 或 PINHOLE 相机。我们提供了一个转换脚本 convert.py,用于从输入图像中提取无失真图像和 SfM 信息。您也可以选择使用 ImageMagick 来调整无失真图像的大小。这种缩放类似于 MipNeRF360,即在相应文件夹中创建原始分辨率的 1/2、1/4 和 1/8 的图像。要使用它们,请首先安装最新版本的 COLMAP(最好是支持 CUDA 的版本)和 ImageMagick。将您想要使用的图像放在 <location>/input 目录中。

<location>
|---input
    |---<图像 0>
    |---<图像 1>
    |---...

如果您的系统路径中已经包含 COLMAP 和 ImageMagick,您可以直接运行:

python convert.py -s <location> [--resize] #如果不调整大小,则不需要 ImageMagick

或者,您可以使用可选参数 --colmap_executable--magick_executable 来指定相应的路径。请注意,在 Windows 上,可执行文件应指向 COLMAP 的 .bat 文件,该文件负责设置执行环境。完成后,<location> 将包含预期的 COLMAP 数据集结构,其中包括无失真、调整大小的输入图像,以及您的原始图像和 distorted 目录中的一些临时(有失真)数据。

如果您有自己的 COLMAP 数据集但没有进行失真校正(例如使用 OPENCV 相机),您可以尝试只运行脚本的最后一部分:将图像放在 input 中,将 COLMAP 信息放在 distorted 子目录中:

<location>
|---input
|   |---<图像 0>
|   |---<图像 1>
|   |---...
|---distorted
    |---database.db
    |---sparse
        |---0
            |---...

然后运行:

python convert.py -s <location> --skip_matching [--resize] #如果不调整大小,则不需要 ImageMagick
convert.py 的命令行参数

--no_gpu

避免在 COLMAP 中使用 GPU 的标志。

--skip_matching

表示图像已有 COLMAP 信息的标志。

--source_path / -s

输入的位置。

--camera

用于早期匹配步骤的相机模型,默认为 OPENCV

--resize

创建输入图像调整大小版本的标志。

--colmap_executable

COLMAP 可执行文件的路径(Windows 上为 .bat)。

--magick_executable

ImageMagick 可执行文件的路径。


OpenXR 支持

OpenXR 在 gaussian_code_release_openxr 分支中受支持。 在该分支中,您可以在此处找到 VR 支持的文档。

常见问题

  • 在哪里可以获取数据集,例如 full_eval.py 中引用的那些? MipNeRF360 数据集由原论文作者在项目网站上提供。请注意,其中两个数据集无法公开共享,需要直接咨询作者。对于 Tanks&Temples 和 Deep Blending,请使用页面顶部提供的下载链接。或者,您可以从 HuggingFace 访问克隆的数据(状态:2023 年 8 月!)

  • 如何将此方法用于更大的数据集,比如一个城市区域? 当前方法并非为此设计,但如果有足够的内存,它应该可以工作。然而,该方法在多尺度细节场景(极近特写镜头与远景镜头混合)中可能会遇到困难。这通常出现在驾驶数据集中(近处的汽车,远处的建筑)。对于这类场景,您可以降低 --position_lr_init--position_lr_final--scaling_lr(x0.3、x0.1 等)。场景越大,这些值应该越低。下面我们使用默认学习率(左)和 --position_lr_init 0.000016 --scaling_lr 0.001(右)。

默认学习率结果 降低学习率结果
  • 我使用 Windows,无法成功构建子模块,该怎么办? 考虑参考这里优秀的视频教程中的步骤,希望能够帮到您。步骤的顺序很重要!或者,考虑使用链接的 Colab 模板。

  • 仍然无法工作。它提示有关 cl.exe 的问题。我该怎么办? 用户 Henry Pearce 找到了一个解决方法。您可以尝试将 Visual Studio 路径添加到环境变量中(您的版本号可能不同): C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30133\bin\Hostx64\x64 然后确保启动一个新的 conda 提示符,并 cd 到您的仓库位置,然后尝试以下操作:

conda activate gaussian_splatting
cd <dir_to_repo>/gaussian-splatting
pip install submodules\diff-gaussian-rasterization
pip install submodules\simple-knn
  • 我使用 macOS/Puppy Linux/Greenhat,无法成功构建,该怎么办? 抱歉,我们无法为此 README 中列出的平台之外的平台提供支持。考虑使用链接的 Colab 模板。

  • 我没有 24 GB 的显存用于训练,该怎么办? 显存消耗由正在优化的点数决定,这个数量会随时间增加。如果您只想训练到 7000 次迭代,所需显存会显著减少。要完成完整的训练流程并避免内存不足,您可以增加 --densify_grad_threshold--densification_interval 或降低 --densify_until_iter 的值。但请注意,这会影响结果质量。另外,尝试将 --test_iterations 设置为 -1 以避免测试期间的内存峰值。如果 --densify_grad_threshold 非常高,则不会发生密集化,如果场景本身成功加载,训练应该能够完成。

  • 参考质量训练需要 24 GB 显存仍然很多!我们能用更少的显存吗? 是的,很可能可以。根据我们的计算,应该可以使用少得多的内存(约 8GB)。如果我们有时间,我们会尝试实现这一点。如果有 PyTorch 高手想要解决这个问题,我们期待您的拉取请求!

  • 如何将可微分高斯光栅化器用于我自己的项目? 很简单,它作为子模块 diff-gaussian-rasterization 包含在此仓库中。请随意查看并安装该包。虽然没有详细的文档,但从 Python 端使用它非常简单(参考 gaussian_renderer/__init__.py)。

  • 等等,但是"<插入功能>"还没有优化,可以做得更好吗? 有很多部分我们甚至还没有时间考虑改进(目前)。你用这个原型获得的性能可能只是在物理可能范围内相当慢的基准线。

  • 有些东西坏了,这是怎么回事? 我们努力提供了一个可靠和易懂的基础来利用论文中的方法。我们对代码进行了相当多的重构,但我们测试所有可能使用场景的能力有限。因此,如果网站、代码或性能的某些部分有所欠缺,请创建一个问题报告。如果我们有时间,我们会尽最大努力解决它。

项目侧边栏1项目侧边栏2
推荐项目
Project Cover

豆包MarsCode

豆包 MarsCode 是一款革命性的编程助手,通过AI技术提供代码补全、单测生成、代码解释和智能问答等功能,支持100+编程语言,与主流编辑器无缝集成,显著提升开发效率和代码质量。

Project Cover

AI写歌

Suno AI是一个革命性的AI音乐创作平台,能在短短30秒内帮助用户创作出一首完整的歌曲。无论是寻找创作灵感还是需要快速制作音乐,Suno AI都是音乐爱好者和专业人士的理想选择。

Project Cover

白日梦AI

白日梦AI提供专注于AI视频生成的多样化功能,包括文生视频、动态画面和形象生成等,帮助用户快速上手,创造专业级内容。

Project Cover

有言AI

有言平台提供一站式AIGC视频创作解决方案,通过智能技术简化视频制作流程。无论是企业宣传还是个人分享,有言都能帮助用户快速、轻松地制作出专业级别的视频内容。

Project Cover

Kimi

Kimi AI助手提供多语言对话支持,能够阅读和理解用户上传的文件内容,解析网页信息,并结合搜索结果为用户提供详尽的答案。无论是日常咨询还是专业问题,Kimi都能以友好、专业的方式提供帮助。

Project Cover

讯飞绘镜

讯飞绘镜是一个支持从创意到完整视频创作的智能平台,用户可以快速生成视频素材并创作独特的音乐视频和故事。平台提供多样化的主题和精选作品,帮助用户探索创意灵感。

Project Cover

讯飞文书

讯飞文书依托讯飞星火大模型,为文书写作者提供从素材筹备到稿件撰写及审稿的全程支持。通过录音智记和以稿写稿等功能,满足事务性工作的高频需求,帮助撰稿人节省精力,提高效率,优化工作与生活。

Project Cover

阿里绘蛙

绘蛙是阿里巴巴集团推出的革命性AI电商营销平台。利用尖端人工智能技术,为商家提供一键生成商品图和营销文案的服务,显著提升内容创作效率和营销效果。适用于淘宝、天猫等电商平台,让商品第一时间被种草。

Project Cover

AIWritePaper论文写作

AIWritePaper论文写作是一站式AI论文写作辅助工具,简化了选题、文献检索至论文撰写的整个过程。通过简单设定,平台可快速生成高质量论文大纲和全文,配合图表、参考文献等一应俱全,同时提供开题报告和答辩PPT等增值服务,保障数据安全,有效提升写作效率和论文质量。

投诉举报邮箱: service@vectorlightyear.com
@2024 懂AI·鲁ICP备2024100362号-6·鲁公网安备37021002001498号