3D 高斯点喷射

3D 高斯点喷 是一种革命性的实时 3D 场景重建技术,拥有超过 15,000 个 GitHub 点赞。与基于 NeRF 的方法不同,高斯点喷将场景表示为数百万个微小的 3D 高斯体,可以以 实时帧率渲染 (100+ FPS)同时达到照片级真实感质量。将其部署到 Clore.ai 的 GPU 云上,从您自己的照片重建并探索 3D 场景。


什么是 3D 高斯点喷?

传统的 NeRF 方法将场景隐式编码在神经网络中,渲染时需要逐像素的射线遍历。高斯点喷采取了根本不同的方法:

  1. 初始化: 从稀疏点云开始(来自 COLMAP)

  2. 表示: 将每个点展开为具有位置、尺度、旋转、不透明度和球面谐波颜色的 3D 高斯体

  3. 优化: 可微渲染高斯体并针对训练图像进行优化

  4. 渲染: 通过 alpha 合成将高斯体投影到图像平面(极其快速)

相比 NeRF 的关键优势:

  • 实时渲染(1080p 下 100+ FPS)

  • 更好的细节重建

  • 显式 3D 表示(可编辑、可导出)

  • 更快的训练(30–60 分钟对比数小时)

  • 能在消费级 GPU 上运行


先决条件

要求
最低要求
推荐配置

GPU 显存

12 GB

24 GB

GPU

RTX 3080 12GB

RTX 4090 / A100

内存(RAM)

16 GB

32 GB

存储

30 GB

60 GB

CUDA

11.7+

12.1+

circle-exclamation

步骤 1 — 在 Clore.ai 上租用 GPU

  1. 点击 市场 并筛选 VRAM ≥ 16 GB。

  2. 选择一台服务器 — RTX 4090 提供最佳的性价比。

  3. 将 Docker 镜像设置为您自定义的镜像(见步骤 2)。

  4. 设置开放端口: 22 (SSH)和 8080 (网页查看器)。

  5. 点击 租用.


第 2 步 — Dockerfile

构建包含所有依赖项的自定义 Docker 镜像:

构建并推送

构建镜像并将其推送到你自己的 Docker Hub 帐户(替换 YOUR_DOCKERHUB_USERNAME 为你的实际用户名):

circle-info

在 Docker Hub 上没有官方预构建的 3D Gaussian Splatting 镜像。官方仓库 graphdeco-inria/gaussian-splattingarrow-up-right 不提供镜像——请从上面的 Dockerfile 构建。镜像必须使用与目标 GPU 匹配的正确 CUDA 架构标志进行构建。

使用 YOUR_DOCKERHUB_USERNAME/gaussian-splatting:latest 在您的 Clore.ai 配置中。


步骤 3 — 通过 SSH 连接

验证构建:


步骤 4 — 准备您的数据集

选项 A:使用 Tandt(Tanks and Temples)数据集

用于快速测试的经典基准数据集:

选项 B:处理您自己的照片

circle-info

参数 convert.py 该脚本运行完整的 COLMAP 管道:特征提取、匹配、稀疏重建和去畸变。根据图像数量,这需要 5–30 分钟。

选项 C:从视频处理


步骤 5 — 训练高斯点喷模型

标准训练

在 Tandt 数据集上训练

快速训练(快速预览)

circle-info

在 RTX 4090 上训练到 7,000 次迭代大约需要 ~10 分钟,可得到良好的质量预览。完整的 30,000 次迭代大约需要 ~30–40 分钟,生成最终质量结果。

训练进度

监控训练输出——您会看到诸如以下的指标:

PSNR 超过 30 dB 表示高质量重建。


步骤 6 — 渲染与可视化

从训练模型渲染

渲染结果保存到 /workspace/output/my_scene/test/ours_30000/renders/.

创建飞行穿越视频

评估指标

预期输出:


步骤 7 — 交互式网页查看器

要交互式地探索训练好的场景:

使用 nerfview/viser

然后打开: http://<clore-host>:<public-port-8080>

替代方案:使用 SuperSplat(基于浏览器的查看器)

下载 .ply 文件并在 SuperSplatarrow-up-right:

然后将 .ply 拖放到 SuperSplat 浏览器中,位置: https://playcanvas.com/super-splat


高级选项

控制高斯体数量

白色背景(用于物体)

大规模场景


替代:使用 gsplat 的高斯点喷

gsplat 是一个更快、内存高效的实现:


故障排除

CUDA 扩展构建失败

解决方案: 为您的特定 GPU 架构重新构建:

COLMAP 无法重建

将批量大小减小到 1

  • 确保图像重叠 ≥ 50%

  • 使用更多照片(建议 100+)

  • 对于视频帧尝试顺序匹配:添加 --match sequential 到 convert.py

训练期间内存不足

场景中出现漂浮物

来自高斯初始化的漂浮伪影:

  • 增加 --densify_grad_threshold 以更有选择性地处理

  • 使用 --prune_opacity_threshold 0.005 以便更早移除低不透明度的高斯体


Clore.ai 的 GPU 建议

高斯点喷训练对 GPU 计算要求高,频繁调用 CUDA 内核。显存决定了场景复杂度上限(高斯体数量);计算能力决定训练速度。

GPU
显存(VRAM)
Clore.ai 价格
30K 次迭代训练
最大高斯体数

RTX 3090

24 GB

~$0.12/小时

~45–55 分钟

~6M

RTX 4090

24 GB

~$0.70/小时

~30–35 分钟

~6M

A100 40GB

40 GB

~$1.20/小时

~12–18 分钟

~10M+

RTX 3080 12GB

12 GB

~$0.08/小时

~70 分钟

~3M(受限制)

circle-info

RTX 3090,费用约 $0.12/小时,是高斯点喷的最佳选择 用于高斯点喷。完整的 30K 次迭代训练运行的 GPU 时间费用约为 $0.09–0.11。对于同一会话中的多个场景,成本可忽略不计。

用于快速实验:先训练到 7,000 次迭代(在 RTX 3090 上约 ~15 分钟,约 $0.03)。在网页查看器中检查质量。只有在生成最终输出时再运行完整的 30K 次迭代。

COLMAP 预处理说明: COLMAP(基于运动的结构)可在 CPU/GPU 上运行,但大部分计算负载在 CPU 上。对于少于 200 张图像的场景,大多数 Clore.ai 服务器的 CPU 足够。对于 500+ 图像的数据集,请选择具有 16+ CPU 内核的服务器。


有用的资源

最后更新于

这有帮助吗?