首页 > 其他分享 >论文(2)3D高斯

论文(2)3D高斯

时间:2023-10-16 10:22:10浏览次数:34  
标签:高斯 光栅 论文 图像 绘制 高斯分布 3D

https://huggingface.co/blog/gaussian-splatting

 

什么是 3D 高斯泼溅?

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

  1. 有描述场景的数据。
  2. 在屏幕上绘制数据。

这类似于计算机图形学中的三角形光栅化,用于在屏幕上绘制许多三角形。

 然而,它不是三角形,而是高斯。这是一个栅格化的高斯函数,为了清晰起见,绘制了边框。

 

它由以下参数描述:

  • 位置:它所在的位置 (XYZ)
  • 协方差:如何拉伸/缩放(3x3 矩阵)
  • 颜色:它是什么颜色(RGB)
  • Alpha : 透明度 (α)

在实践中,会同时绘制多个高斯曲线。

 

这是三个高斯。那么 700 万高斯呢?

 

 

 

这是每个高斯光栅化完全不透明的样子:

 

 

 

怎么运行的

1. 运动结构

第一步是使用运动结构 (SfM) 方法从一组图像中估计点云。这是一种从一组 2D 图像估计 3D 点云的方法。这可以通过COLMAP库来完成。

 

2. 转换为高斯分布

接下来,每个点都转换为高斯分布。这对于光栅化来说已经足够了。然而,只能从 SfM 数据推断位置和颜色。为了学习产生高质量结果的表示,我们需要对其进行训练。

3. 培训

训练过程使用随机梯度下降,类似于神经网络,但没有层。训练步骤为:

  1. 使用可微分高斯光栅化将高斯光栅化为图像(稍后详细介绍)
  2. 根据光栅化图像和地面真实图像之间的差异计算损失
  3. 根据损失调整高斯参数
  4. 应用自动致密化和修剪

步骤 1-3 从概念上讲非常简单。第 4 步涉及以下内容:

  • 如果对于给定的高斯梯度很大(即它太错误),则分割/克隆它
    • 如果高斯很小,则克隆它
    • 如果高斯很大,则将其分割
  • 如果高斯的 alpha 太低,请将其删除

此过程有助于高斯更好地拟合细粒度细节,同时修剪不必要的高斯。

4.可微分高斯光栅化

如前所述,3D 高斯分布是一种光栅化方法,它将数据绘制到屏幕上。然而,一些重要的元素还包括:

  1. 快速地
  2. 可微分

可以在此处找到光栅化器的原始实现。光栅化涉及:

  1. 从相机角度将每个高斯投影为 2D。
  2. 按深度对高斯进行排序。
  3. 对于每个像素,从前到后迭代每个高斯,将它们混合在一起。

论文中描述了其他优化。

光栅化器是可微分的也很重要,这样就可以用随机梯度下降来训练它。然而,这仅与训练相关 - 训练有素的高斯也可以用不可微的方法呈现。

标签:高斯,光栅,论文,图像,绘制,高斯分布,3D
From: https://www.cnblogs.com/gooutlook/p/17766788.html

相关文章

  • WPF3D关于HelixToolkit-3D呈现的交互处理
    关于HelixToolkit-这个3D呈现的交互处理推荐使用,因为功能比较强大一个开源3D库,根据MIT许可证获得许可。MIT许可证非常宽松,允许在专有软件中使用。该库基于.NET,目前专注于WPF平台。HelixToolkit是.NETFramework的一个开源3D图形库,它主要用于创建和操作3D图形1。HelixToolkit......
  • 数字人论文:Audio-Driven Facial Animation by Joint End-to-End Learning of Pose an
    老规矩.直接第三章3.端到端网络结构给一个audio短窗口,也就是片段.我们预测窗口中间时刻的面部表情.我们把表情看做一个全端点的向量(后面我们会看这是什么的一种刻画面部)一旦我们网络训完,我们回各个时间点同时生成,并行.即使不需要过去的帧画面,依然生成很稳定的......
  • 毕业论文笔记
    毕业论文是必修课,多年后想起,觉得应该整理下。大体过程需求分析架构图技术选型数据库设计效果图性能结果要不要拼凑知识点毫无疑问,罗列知识点是必须的。为了消除拼凑的痕迹,可以先列个用到的技术栈,然后逐个讲解技术栈,这样就比较自然了。当然纯靠拼凑肯定不行,还要引入些设计方面......
  • 【Unity3D】花瓣特效
    1花瓣绘制原理​如下图是实现的花瓣特效效果,为方便描述,我们将每个红色的扁状长条称为花瓣,每个花瓣中心的绿点称为花蕊,花朵的正中心称为花心。​我们在xOz平面上绘制花朵,假设花心为O点,其世界坐标为_Center,花瓣个数为_PetalNum,花瓣半长度和半宽度分别为_PetalLe......
  • 【Unity3D】消融特效
    1前言​选中物体消融特效中基于Shader实现了消融特效,本文将基于ShaderGraph实现消融特效,两者原理一样,只是表达方式不同,另外,选中物体消融特效中通过discard丢弃片元,本文通过alpha测试丢弃片元。​ShaderGraph环境搭建、简单应用详见→ShaderGraph简介。​......
  • 【CSS3】CSS3 3D 转换 ③ ( 3D 透视视图 | translateZ 转换分析 | 网页调试工具调试 t
    文章目录一、translateZ转换分析1、translateZ转换对应的空间分析2、网页调试工具调试translateZ属性值二、代码示例-translateZ转换分析1、代码示例-translateZ为0的参照示例2、代码示例-translateZ为200示例一、translateZ转换分析1、translateZ转换对应的......
  • 9月大型语言模型研究论文总结
    大型语言模型(llm)在今年发展迅速,随着新一代模型不断地被开发,研究人员和工程师了解最新进展变得非常重要。本文总结9-10月期间发布了一些重要的LLM论文。这些论文涵盖了一系列语言模型的主题,从模型优化和缩放到推理、基准测试和增强性能。最后部分讨论了有关安全训练并确保其行为......
  • 【Unity3D】Shader Graph简介
    1ShaderGraph简介​ShaderGraph是Unity官方在2018年推出的Shader制作插件,是图形化的Shader制作工具,类似于Blender中的ShaderEditor和UE中的MaterialEditor,它使用流程图的形式表达顶点变换和片元着色的流程,通过节点(Node)的连接实现各种复杂的特效,关于节......
  • 无涯教程-Matplotlib - 3D线框图(Wireframe)
    线框图采用值的网格并将其投影到指定的三维表面上,并使生成的三维形式非常容易可视化。plot_wireframe()函数用于此目的-frommpl_toolkitsimportmplot3dimportnumpyasnpimportmatplotlib.pyplotaspltdeff(x,y):returnnp.sin(np.sqrt(x**2+y**2)) x=......
  • 论文精读:用于少样本图像识别的语义提示(Semantic Prompt for Few-Shot Image Recogniti
    原文连接:SemanticPromptforFew-ShotImageRecognitionAbstract在小样本学习中(Few-shotLearning,FSL)中,有通过利用额外的语义信息,如类名的文本Embedding,通过将语义原型与视觉原型相结合来解决样本稀少的问题。但这种方法可能会遇到稀有样本中学到噪声特征导致收益有限。在这......