3DGS食用指南
Eric Lee Lv999

3DGS食用指南

目录

  1. 简介
  2. 什么是3D Gaussian Splatting (3DGS)?
  3. 参考实现
  4. 非官方实现
  5. 框架
  6. 总结
  7. 参考资料

简介

Bakedanglo 中,我曾尝试在 nerfstudio 中嵌入 Nvidia LAB 的 Neuralangelo 而未能成功。然而,在我一筹莫展之际,更强大的 3D Gaussian Splatting (3DGS) 出现了,成为了新的希望。

为了方便大家快速上手,我构建了一些 Dockerfile,使得在搭载 NVIDIA 显卡的 Linux 系统上可以方便地运行 3DGS。

使用要求:

什么是3D Gaussian Splatting (3DGS)?

基本概念
工作原理
3DGS的优势

3D Gaussian Splatting (3DGS) 是一种用于表示和渲染三维场景的新兴技术。与传统的多边形网格不同,3DGS 使用大量的"高斯斑点"来表示三维空间中的点。

  • 高斯斑点 : 类似于一个三维的"模糊点",每个高斯斑点都有位置、大小、颜色和透明度等属性。
  • 高斯分布 : 每个斑点的形状和分布由高斯函数定义,使得它们在空间中逐渐变淡。
  1. 数据采集 : 从多个视角拍摄一组照片。
  2. 点云生成 : 使用结构从运动(SfM)方法生成一个稀疏点云。
  3. 高斯转换 : 将点云中的每个点转换为一个高斯斑点。
  4. 训练优化 : 使用梯度下降法优化高斯斑点的参数,使得渲染结果与输入图像更匹配。
  5. 渲染 : 使用可微分高斯光栅化技术将高斯斑点渲染为图像。
  • 高质量 : 能够生成照片级真实感的渲染效果。
  • 快速渲染 : 基于光栅化技术,渲染速度比传统的光线追踪快。
  • 灵活性 : 可以处理复杂的场景和细节。

参考实现

Gaussian Splatting

非官方实现

Taichi 3D Gaussian Splatting
Gaussian Splatting Cuda
nerfstudio
OpenSplat

心得分享:

  • 安装和配置的难易程度: 一般
  • 注: 数据集配置复杂一丢丢
  • 仓库链接 : fast
  • 语言 : C++/CUDA
  • 许可证 : Inria/MPII

心得分享:

  • 安装和配置的难易程度: 一般
  • 注: 跟 OpenSplat 差不多,但 Vram 使用率更高
  • Dockerfile
  • 仓库链接 : nerfstudio
  • 语言 : Python/CUDA
  • 许可证 : Apache-2.0

心得分享:

  • 安装和配置的难易程度: 简单
  • 注: 文档较完善,社区支持好
  • 仓库链接 : OpenSplat
  • 语言 : C++
  • 许可证 : AGPL-3.0

心得分享:

  • 安装和配置的难易程度: 简单
  • 注: 配置简单易上手,Vram 占用很少
  • Dockerfile

框架

GauStudio
gaussian-splatting-lightning
  • 仓库链接 : GauStudio
  • 简介 : 一款统一框架,包含不同论文的实现。

心得分享:

  • 安装和配置的难易程度: 简单
  • 注: 未完成,正在开发中,期待更新!
  • 仓库链接 : gaussian-splatting-lightning
  • 简介 : 一个包含各种衍生算法的 3D Gaussian Splatting 框架,并带有交互式网页查看器。

心得分享:

  • 安装和配置的难易程度: 一般
  • 注: 比较全面,适合进阶,对硬件要求很高

总结

通过本文的测试和心得分享,希望读者能够对各类 3D Gaussian Splatting 实现有全面的了解,并能够根据自己的需求选择合适的实现框架。

参考资料

Powered by Hexo & Theme Keep
This site is deployed on