3D Gaussian Splatting的全面理解

1.概述

高斯展开是一种表示 3D 场景和渲染新视图的方法,在“用于实时辐射场渲染的 3D 高斯展开”¹ 中介绍。它可以被认为是类似 NeRF² 的模型的替代品,就像过去的 NeRF 一样,高斯飞溅导致了许多新的研究工作,他们选择将其用作各种用例的 3D 世界的底层表示。那么它有什么特别之处,为什么它比 NeRF 更好呢?或者,甚至是这样吗?让我们来了解一下!

2.TL;博士

首先,这项工作的主要成名之处在于从标题中可以理解的高渲染速度。这是由于下面将介绍的表示本身,以及使用自定义 CUDA 内核的渲染算法的定制实现。

 图 1:在渲染速度 (fps)、训练时间 (min) 和视觉质量(峰值信噪比,越高越好)方面先前的高质量表示和高斯展开(标记为“Ours”)的并排比较 [来源:取自 [1]]

此外,高斯展开根本不涉及任何神经网络。甚至没有一个小的 MLP,没有什么“神经”的,一个场景本质上只是空间中的一组点。这本身就已经是一个吸引注意力的人。看到这种方法在我们痴迷于 AI 的世界中越来越受欢迎,研究公司追逐由越来越多的数十亿个参数组成的模型,这令人耳目一新。它的想法源于“表面泼溅”³ (2001),因此它树立了一个很酷的例子,即经典的计算机视觉方法仍然可以激发相关的解决方案。其简单而明确的表示使高斯飞溅特别易于解释,这是在某些应用中选择它而不是 NeRF 的一个很好的理由。

表示 3D 世界

如前所述,在高斯展开中,一个 3D 世界由一组 3D 点表示,实际上是数百万个 3D 点,大约为 0.5-500 万个。每个点都是一个 3D 高斯分布,具有自己独特的参数,这些参数是针对每个场景拟合的,因此该场景的渲染与已知的数据集图像非常匹配。稍后将讨论优化和渲染过程,因此让我们暂时关注必要的参数。

图 2:高斯中心(均值)[来源:取自动态 3D 高斯⁴]

每个 3D Gaussian 参数化为:

  • 均值 μ 可解释为位置 x、y、z;
  • 协方差 Σ;
  • Opacity σ(α) 中,应用 sigmoid 函数将参数映射到 [0, 1] 区间;
  • 颜色参数,可以是 (R, G, B) 的 3 个值,也可以是球谐 (SH) 系数。

这里有两组参数需要进一步讨论,一个协方差矩阵和 SH。有一个单独的部分专门介绍后者。至于协方差,它被设计为各向异性,即非各向同性。实际上,这意味着 3D 点可以是沿空间中任何方向旋转和拉伸的椭球体。它可能需要 9 个参数,但是,它们不能直接优化,因为协方差矩阵只有在正半定矩阵时才具有物理意义。使用梯度下降进行优化使得很难直接对矩阵施加此类约束,这就是为什么它被分解如下:

这种因式分解称为协方差矩阵的特征分解,可以理解为椭球体的配置,其中:

  • S 是一个对角线缩放矩阵,具有 3 个缩放参数;
  • R 是一个 3x3 旋转矩阵,用 4 个四元数解析表示。

使用高斯分布的美妙之处在于每个点的双重影响。一方面,根据其协方差,每个点实际上表示空间中接近其平均值的有限区域。另一方面,它在理论上具有无限范围,这意味着每个高斯分布都在整个 3D 空间上定义,并且可以针对任何点进行评估。这很棒,因为在优化过程中,它允许梯度从长距离流动。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.xdnf.cn/news/17562.html

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

Arcgis地图实战三:自定义导航功能的实现

文章目录 1.最终效果预览2.计算两点之间的距离3.将点线画到地图上4.动态展示点线的变化5.动态画线6.动态画点 1.最终效果预览 2.计算两点之间的距离 let dis this.utilsTools.returnDisByCoorTrans(qdXYData, zdXYData, "4549")当距离小于我们在配置文件中预设置的…

【Mysql】Mysql的多表查询---多表联合查询(中)

1、外连接查询 外连接 查询分为左外连接(left outer join), 右外连接查询(right outer join) ,满外连接查询(full outer join). 注意:oracle 里面有full join &#xf…

Linux:进程状态

文章目录 前言一、初识fork1.1 fork函数的介绍1.2 fork出的子进程存在形式1.3 写时拷贝 二、进程的状态2.1 Linux内核源代码2.2 理解内核链表(重要)2.3 运行状态2.4 阻塞状态2.5 挂起状态 三、Z(zombie)状态 ,僵尸进程四、 孤儿进程总结 前言…

qml显示加载嵌入QWidget窗口

本篇博客介绍如何在qml界面里显示QWidget窗口,开发环境Qt6.5.3 qml. 视频讲解:https://edu.csdn.net/learn/40003/654001?spm=3001.4143 qml和QWidget是两套独立的开发方式,二者的窗口可以相互嵌套显示,本篇博客介绍把QWidget窗口封装为动态库,然后在QML的窗口里显示出来…

【MySQL】多表查询

5. 多表查询 5.1 多表关系 项目开发中,在进行数据库表结构设计时,会根据业务需求及业务模块之间的关系,分析并设计表结构,由于业务之间相互关联,所以各个表结构之间也存在着各种联系,基本上分为三种&#…

2024-11-16 串的存储结构

一、顺序存储。 1.首先定一个静态数组,然后定义i记录串的实际长度。(缺点:长度不可变) 2.使用malloc申请动态空间,定义指针指向串的地址。(需手动ferr) 方案一: 数组末尾记录长度 …

nodejs21: 快速构建自定义设计样式Tailwind CSS

Tailwind CSS 是一个功能强大的低级 CSS 框架,只需书写 HTML 代码,无需书写 CSS,即可快速构建美观的网站。 1. 安装 Tailwind CSS React 项目中安装 Tailwind CSS: 1.1 安装 Tailwind CSS 和相关依赖 安装 Tailwind CSS: npm…

Windows 安装Docker For Desktop概要

Windows 安装docker 下载部分的工作需要使用科学技术。如果没有可以联系博主发送已下载好的文件。 本文档不涉及技术的讲解,仅有安装的步骤。 准备工作 包含下载与环境准备,下载的文件仅下载,在后续步骤进行安装。 微软关于wsl的文档&…

对称加密算法DES的实现

一、实验目的 1、了解对称密码体制基本原理 2、掌握编程语言实现对称加密、解密 二、实验原理 DES 使用一个 56 位的密钥以及附加的 8 位奇偶校验位,产生最大 64 位的分组大小。这是一个迭代的分组密码,使用称为 Feistel 的技术,其中将加密…

三十八、Python(pytest框架-上)

一、介绍 框架(framework):框架是为解决一类事情的功能集合。 pytest框架:pytest框架是单元测试框架,这是第三方框架想要使用必须要安装,可以使用pytest来作为自动化测试执行框架,用来管理测试…

《Django 5 By Example》阅读笔记:p165-p210

《Django 5 By Example》学习第6天,p165-p210总结,总计46页。 一、技术总结 1.bookmarks项目 (1)登录认证 作者这里使用的是Django自带的auth。 (2)上传头像 图片处理,使用Pillow。 (3)扩展user 扩展user模型与自带的user使用外键进行…

shell基础(3)

声明! 学习视频来自B站up主 **泷羽sec** 有兴趣的师傅可以关注一下,如涉及侵权马上删除文章,笔记只是方便各位师傅的学习和探讨,文章所提到的网站以及内容,只做学习交流,其他均与本人以及泷羽sec团…

JVM面试题总结

1.介绍一下JVM的内存结构 JDK1.8及以后,JVM主要分为元空间、堆、虚拟机栈、本地方法栈、程序计数器五个部分,另外还有一个直接内存部分,是直接属于操作系统的。 其中元空间、堆是线程共享的,虚拟机栈、本地方法栈、程序计数器是线…

小新Pro 14 AHP9 2024款(83D3)原装oem预装系统Win11恢复安装包下载

适用品牌机型 :LENOVO联想【83D3】 链接:https://pan.baidu.com/s/10RAxNdvYPWJ21b_4--Y7Xw?pwdo5ju 提取码:o5ju 联想原装出厂Windows11系统自带所有驱动、出厂主题壁纸、系统属性联机支持标志、系统属性专属LOGO标志、Office365办公软…

【论文笔记】Towards Privacy-Aware Sign Language Translation at Scale

🍎个人主页:小嗷犬的个人主页 🍊个人网站:小嗷犬的技术小站 🥭个人信条:为天地立心,为生民立命,为往圣继绝学,为万世开太平。 基本信息 标题: Towards Privacy-Aware Si…

Spring:bean的配置

对于bean的配置中,主要会讲解bean基础配置,bean的别名配置,bean的作用范围配置(重点),这三部分内容: bean基础配置 id与class配置 bean的name属性 bean的别名配置 bean作用范围scope配置 scope使用后续思考 介绍完scope属性以后,我们…

贴代码框架PasteForm特性介绍之markdown和richtext

简介 PasteForm是贴代码推出的 “新一代CRUD” ,基于ABPvNext,目的是通过对Dto的特性的标注,从而实现管理端的统一UI,借助于配套的PasteBuilder代码生成器,你可以快速的为自己的项目构建后台管理端!目前管…

【RK3588 Linux 5.x 内核编程】-内核中的链表(Linked List)及使用

内核中的链表(Linked List)及使用 文章目录 内核中的链表(Linked List)及使用1、Linked List介绍2、Linux内核中的链表3、链表的操作3.1链表初始化3.2 创建节点3.3 添加节点3.4 删除节点3.5 替换节点3.6 移动节点3.7 链表旋转3.8 链表检测3.9 链表分割与合并3.10 链表遍历4、驱…

永夜星河主题特效2(星河背景 + 闪烁文字+点击星星 + 文字弹出特效)

目录 图片展示 星河背景 闪烁文字点击星星 文字弹出特效 特效介绍&#xff1a; 使用方式&#xff1a; 图片展示 星河背景 闪烁文字点击星星 文字弹出特效 <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8">&l…

通过JS实现下载图片到本地教程分享

今天分享的这个方法我之前自己试了一下&#xff0c;感觉还行&#xff0c;原理就是通过<a>标签的新增属性实现的&#xff0c;然后可以强制触发下载功能&#xff0c;废话不多说&#xff0c;直接上教程。 首先在HTML写下面的代码: <a href"img.jpg" download…