打败一切NeRF! 3D Gaussian Splatting 的 简单入门知识

这篇具有很好参考价值的文章主要介绍了打败一切NeRF! 3D Gaussian Splatting 的 简单入门知识。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

3D Gaussian Splatting的笔记

每次都是在csdn上找救命稻草,这是第一次在csdn上发东西。确实是个不错的笔记网站,还能同步,保存哈哈哈。印象笔记,Onenote逊爆了。研一刚开学两个月,导师放养,给的方向还贼大,发点东西还是想找到相似方向的可以一起交流交流。
关于NeRF和3D GS的关系,这放个意の茗做的梗图:
打败一切NeRF! 3D Gaussian Splatting 的 简单入门知识,3d,python

言归正传,一开始选题是nerf,但是最近3D GS 好像要把NeRF干飞了,就赶快来凑凑热闹。
如果想详细的精读论文可以去看我转载的视频
复现3DGS的时候拓展包报错记得看Github的Issue,需要单独下载一个工具。

本文参考以下论文笔记:

https://zhuanlan.zhihu.com/p/654627437

introduction

3D GS 解决方案 基于个主要组件。

首先,引入了3D高斯函数作为一种灵活且表达力强的场景表示方法。我们从与之前类似NeRF方法相同的输入开始(应该是PointNeRF),即使用结构光测量(SfM)[Snavely et al. 2006]校准的摄像机,并使用在SfM过程中生成的稀疏点云初始化3D高斯函数集合。与大多数基于点的解决方案不同,它们需要多视图立体匹配(MVS)数据[Aliev et al. 2020; Kopanas et al. 2021; Rückert et al. 2022]相比,我们只需将SfM点作为输入就能获得高质量结果。请注意,在NeRF合成数据集上,即使随机初始化,我们的方法也能实现高质量效果。我们展示了选择3D高斯函数是一个很好的选择,因为它们是可微分体积表示法,但也可以通过将其投影到二维并应用标准 混合来进行非常有效地光栅化处理,并使用与NeRF相同等效图像形成模型。

第二个组件是优化3D高斯函数属性-三维位置、不透明度 、各向异性协方差和球谐(SH)系数-与自适应密度控制步骤交替进行,其中我们在优化过程中添加并偶尔删除3D高斯函数。优化过程产生了一个相对紧凑、非结构化且精确的场景表示(所有测试场景中的1-5百万万个高斯函数)。

第三个部分是实时渲染解决方案,它使用快速GPU排序算法,并受到基于瓦片光栅化的最新工作[Lassner and Zollhofer 2021]的启发。然而,由于我们采用了3D高斯函数表示法,因此我们可以执行符合可见性顺序的各向异性喷洒 - 通过排序和 混合 - 并通过跟踪所需数量已排序喷洒物体遍历来实现快速而准确地反向传播

引言了解个大概就行。

Related work

原文写的不错,建议好好看看。
主要的先前工作是PointNeRF和Plenoxel

简单总结一下
Point-NeRF
1.为每个点赋予特征向量;
2.体渲染时取采样点周边一定领域内的点的特
征做线性插值,解码得颜色和体密度
3.自适应点云生长和剔除

打败一切NeRF! 3D Gaussian Splatting 的 简单入门知识,3d,python
Plenoxels
打败一切NeRF! 3D Gaussian Splatting 的 简单入门知识,3d,python

预备知识

这里是Gaussian的基础知识
链接: 意の茗.的讲解真的很不错
一维和三维的Gasussian
打败一切NeRF! 3D Gaussian Splatting 的 简单入门知识,3d,python

v的概率密度函数
打败一切NeRF! 3D Gaussian Splatting 的 简单入门知识,3d,python
x的概率密度函数

打败一切NeRF! 3D Gaussian Splatting 的 简单入门知识,3d,python
打败一切NeRF! 3D Gaussian Splatting 的 简单入门知识,3d,python

把变换矩阵A转换为协方差矩阵
打败一切NeRF! 3D Gaussian Splatting 的 简单入门知识,3d,python
Gaussian 知道了那什么是Gaussian Splatting呢

Gaussian splatting

部分引用于知乎的汇智网

3D 高斯泼溅的核心是一种光栅化技术。 这意味着:

有描述场景的数据。在屏幕上绘制数据。
类似于计算机图形学中的三角形光栅化,用于在屏幕上绘制许多三角形:

打败一切NeRF! 3D Gaussian Splatting 的 简单入门知识,3d,python
然而,这里的Gaussian不是三角形,而是高斯分布。 这是一个栅格化的高斯函数,为了清晰起见,绘制了边框:
打败一切NeRF! 3D Gaussian Splatting 的 简单入门知识,3d,python
高斯泼溅由以下参数描述:

  • 位置:它所在的位置 (XYZ)
  • 协方差:如何拉伸/缩放(3x3 矩阵)
  • 颜色:它是什么颜色(RGB)
  • Alpha:透明度如何 (α)
    打败一切NeRF! 3D Gaussian Splatting 的 简单入门知识,3d,python

在实践中,会同时绘制多个高斯曲线:
这是700w高斯渲染之后的图片
打败一切NeRF! 3D Gaussian Splatting 的 简单入门知识,3d,python
这是每个高斯光栅化完全不透明的样子,可以看到很多类似椭球的东西:
打败一切NeRF! 3D Gaussian Splatting 的 简单入门知识,3d,python
这是对 3D 高斯分布的非常简短的概述。 接下来,让我们逐步完成本文中描述的完整过程。

3D高斯泼溅原理

运动结构恢复 (SfM: Structure from Motion) 方法从一组图像中估计点云。 这是一种从一组 2D 图像估计 3D 点云的方法。 这可以通过 COLMAP 库来完成。
打败一切NeRF! 3D Gaussian Splatting 的 简单入门知识,3d,python
这个是获得稀疏点云,作为初始Gaussian的中心点
训练过程使用随机梯度下降,类似于神经网络,但没有层。

Overview

打败一切NeRF! 3D Gaussian Splatting 的 简单入门知识,3d,python
流程:

  1. 输入一组静态场景的图像,由SfM校准的相应摄像机稀疏点云

  2. 从稀疏点云中,创建了一组三维高斯函数,通过位置(均值)、协方差矩阵和不透明度 来定义。这使得对3D场景的表示相对紧凑,一定程度上是因为可以使用高度各向异性的体积斑点(anisotropic volumetric splats)来紧凑地表示细微结构。辐射场的方向外观成分通过球谐函数(SH)进行表示,遵循标准做法。

  3. 通过一系列优化步骤来创建辐射场表示(第5节),这些步骤涉及3D高斯参数的位置、协方差、和SH系数,并与自适应控制高斯密度的操作交替进行。

后面就是论文的东西了太麻烦,csdn已经有很完善的讲解
传送门:论文的翻译----------论文的总结,看着很高效文章来源地址https://www.toymoban.com/news/detail-751761.html

到了这里,关于打败一切NeRF! 3D Gaussian Splatting 的 简单入门知识的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 3D Gaussian Splatting

    本文转载于大佬~~ 这是3D Gaussian Splatting综述, 先回顾3D Gaussian的原理和应用,借着全面比较了3D GS在静态场景、动态场景和驾驶场景中的性能,最后为未来指明了研究方向! 三维 Gaussian splatting(3DGS)是近年来在显式辐射场和计算机图形学领域出现的一种变革性技术。这种创新

    2024年04月08日
    浏览(59)
  • 【辐射场】3D Gaussian Splatting

      , 3D Gaussian Splatting,下文简称3DGS,是好一段时间以来在三维内容创作和三维重建领域比较有热度的一项技术。 它属于 基于图像的三维重建方法 ,意思就是你对现实物体或者场景拍照片,就能给你训练成一个场景模型,能够被渲染出来给你看。 它产生的模型可以作为三维

    2024年02月03日
    浏览(45)
  • 3D Gaussian Splatting 渲染过程

    给定一组三维高斯点,渲染步骤大致为:1.camera space转成ray space 2.对像平面进行分块,然后对高斯排序 3.正投影发出射线进行α-blending 这个步骤将NeRF中的投影过程变为了正投影,引入了ray space的概念,让3D Gaussian 变为2D Gaussian. 透视投影和正投影                    一般的渲

    2024年01月20日
    浏览(68)
  • 3D Gaussian Splatting的使用

    今年SIGGRAPH最佳论文,学习了一下,果然厉害,具体论文原理就不说了,一搜都有,主要是看看怎么用,自己能不能把身边的场景快速建个模。 赶紧记录下,好像这几天在这个基础上又有很多花样出来了… 我的系统是Ubuntu22.04。 开源作者已经都弄的很详细了,也有教程。 首

    2024年02月04日
    浏览(48)
  • 3D Gaussian Splatting:论文原理分析

    标题:3D Gaussian Splatting for Real-Time Radiance Field Rendering 作者:Bernhard Kerbl、Georgios Kopanas、Thomas Leimkühler和George Drettakis,来自法国Inria、Université Côte d\\\'Azur和德国Max-Planck-Institut für Informatik。 发表时间:2023年8月,ACM Transactions on Graphics上,卷号42,编号4 提出了一种名为3D Gaussia

    2024年01月23日
    浏览(50)
  • 3D Gaussian Splatting学习记录11.2

    cmd输入以下命令,开始训练 整个训练(30,000步)大约需要20分钟,但7000步后会保存一个中间模型,效果已经很不错了。训练结束后得到output文件 在Ubuntu 22.04上,运行以下命令来构建可视化工具: 安装后,找到SIBR_gaussianViewer_app二进制文件,并以模型的路径作为参数运行它: 参

    2024年02月04日
    浏览(66)
  • Awesome 3D Gaussian Splatting Resources

    GitHub - MrNeRF/awesome-3D-gaussian-splatting: Curated list of papers and resources focused on 3D Gaussian Splatting, intended to keep pace with the anticipated surge of research in the coming months. 3D Gaussian Splatting简明教程 - 知乎 

    2024年01月20日
    浏览(56)
  • 3D Gaussian Splatting文件的压缩【3D高斯泼溅】

    在上一篇文章中,我开始研究高斯泼溅(3DGS:3D Gaussian Splatting)。 它的问题之一是数据集并不小。 渲染图看起来不错。 但“自行车”、“卡车”、“花园”数据集分别是一个 1.42GB、0.59GB、1.35GB 的 PLY 文件。 它们几乎按原样加载到 GPU 内存中作为巨大的结构化缓冲区,因此

    2024年02月03日
    浏览(39)
  • 学习笔记之——3D Gaussian Splatting源码解读

    之前博客对3DGS进行了学习与调研 学习笔记之——3D Gaussian Splatting及其在SLAM与自动驾驶上的应用调研-CSDN博客 文章浏览阅读450次。论文主页3D Gaussian Splatting是最近NeRF方面的突破性工作,它的特点在于重建质量高的情况下还能接入传统光栅化,优化速度也快(能够在较少的训练

    2024年01月20日
    浏览(61)
  • 3D高斯泼溅(Gaussian Splatting)通俗解释

    项目:3D Gaussian Splatting for Real-Time Radiance Field Rendering 代码:GitHub - graphdeco-inria/gaussian-splatting: Original reference implementation of \\\"3D Gaussian Splatting for Real-Time Radiance Field Rendering\\\" 功能:拍摄一段视频或多张图片,可以重建3维场景并能实时渲染。 优点:质量高、速度快。 缺点:占用

    2024年02月22日
    浏览(60)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包