3d gaussian splatting介绍整理

3D 高斯分布是用于实时辐射场渲染的 3D 高斯分布中描述的一种光栅化技术,它允许实时渲染从小图像样本中学习到的逼真场景。

paper
github

本文翻译整理自:
blog: Introduction to 3D Gaussian Splatting
DDPMs - Part 2

给出一些2D图片,用colmap得到稀疏 (SfM) 点,可重建出逼真的3D场景。
3DGS的核心是光栅化技术。
这类似于计算机图形学中的三角形光栅化,用于在屏幕上绘制许多三角形。

图片来自blog

在这里插入图片描述
但是,它不是三角形,是高斯。

在这里插入图片描述
这里补充一些高斯相关:

正态分布

在这里插入图片描述

多元正态分布

在这里插入图片描述

协方差

在这里插入图片描述

协方差矩阵

在这里插入图片描述
每个元素(i, j) 定义了向量的两个随机变量的协方差。
而且对角线上的元素
在这里插入图片描述
下面看下两个随机变量负协方差,0协方差,正协方差时的分布

在这里插入图片描述

这是负协方差 3维看上去的效果,从顶上看就是上面的左图,从侧面看是高斯分布。45度更加平坦。
在这里插入图片描述 在这里插入图片描述

各向同性高斯

在这里插入图片描述

一个例子:

在这里插入图片描述

回到3D高斯,既然是3D,那就是3个变量(x, y, z)
它由以下参数描述:

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

3个的高斯叠加在一起的效果:
在这里插入图片描述
那么700万高斯叠加的效果呢。

在这里插入图片描述

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

在这里插入图片描述

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

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

使用可微分高斯光栅化将高斯光栅化为图像(稍后详细介绍)
根据光栅化图像和groud truth图像之间的差异计算损失
根据损失调整高斯参数
应用自动致密化和修剪
步骤 1-3 从概念上讲非常简单。第 4 步涉及以下内容:

如果对于给定的高斯梯度很大(即它太错误),则分割/克隆它
如果高斯很小,则克隆它
如果高斯很大,则将其分割
如果高斯的 alpha 太低,将其删除
此过程有助于高斯更好地拟合细粒度细节,同时修剪不必要的高斯。

在这里插入图片描述

4.可微分高斯光栅化
如前所述,3D 高斯分布是一种光栅化方法,它将数据绘制到屏幕上。

一些重要的元素还包括:
快速
可微分

光栅化涉及:
从相机角度将每个高斯投影为 2D。
按深度对高斯进行排序。
对于每个像素,从前到后迭代每个高斯,将它们混合在一起。
paper中描述了其他优化。

在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

[实战]加密传输数据解密

前言 下面将分享一些实际的渗透测试经验,帮助你应对在测试中遇到的数据包内容加密的情况。我们将以实战为主,技巧为辅,进入逆向的大门。 技巧 开局先讲一下技巧,掌握好了技巧,方便逆向的时候可以更加快速的找到关键…

【iOS ARKit】人脸检测追踪基础

在计算机人工智能(Artificial Inteligence,AI)物体检测识别领域,最先研究的是人脸检测识别,目前技术发展最成熟的也是人脸检测识别。人脸检测识别已经广泛应用于安防、机场、车站、闸机、人流控制、安全支付等众多社会领域&#x…

Linux 一键部署grafana

grafana 前言 Grafana 是一款开源的数据可视化和监控仪表盘工具。它提供了丰富的数据查询、可视化和报警功能,可用于实时监控、数据分析和故障排除等领域。 通过 Grafana,您可以连接到各种不同的数据源,包括时序数据库(如 Prometheus、InfluxDB)和关系型数据库(如 MySQ…

UE创建数据资产 UDataAsset

UE创建数据资产 需要一个继承自UDataAsset的子类 在编辑器里创建后的效果 如果在子类中写多个集合 和 其它数据 所以数据资产在我觉得只是该子类的一个实例对象

C#用DateAndTime.DateDiff方法和TimeSpan分别计算时间间隔

目录 一、计算时间间隔的方法 1.用DateAndTime.DateDiff方法计算时间间隔 2.使用TimeSpan获取日期时间间隔 二、实例 1.示例一:用DateAndTime.DateDiff方法计算时间间隔 2.示例二:使用TimeSpan获取日期时间间隔 一、计算时间间隔的方法 1.用Date…

jar手动上传到Nexus私服

jar手动上传到Nexus私服 一简介二上传方法1.登录nexus,打开nexus控制台。upload---maven-release2.上传jar3.验证jar包是否上传成功4、注意事项 一简介 在maven项目中我们可以通过相关配置可以将项目打包成jar,然后deploy上传到私服中。要是别人提供的第三方jar&am…

图像处理------调整色调

什么是色调? 色调,在画面上表现思想、感情所使用的色彩和色彩的浓淡。分为暖色调和冷色调。 from cv2 import destroyAllWindows, imread, imshow, waitKey#创建棕褐色色调 def make_sepia(img, factor: int):pixel_h, pixel_v img.shape[0], img.shap…

【GitHub项目推荐--DiligentEngine: 一个开源跨平台的底层图形库和渲染框架】【转载】

Diligent Engine 一个现代的Cross-PlatformLow-Level三维图形库 Diligent引擎是一个轻量级的cross-platform图形API抽象库和呈现框架。它的设计充分利用了Direct3D12、Vulkan和Metal,同时通过Direct3D11、OpenGL和OpenGLES支持较旧的平台。Diligent引擎公开公共的f…

EtherNet/IP开发:C++开发CIP源代码

① 介绍一下CIP CIP是一种考虑到自动化行业而设计的通用协议。然而,由于其开放性,它可以并且已经应用于更多的领域。CIP网络库包含若干卷: 第1卷介绍了适用于所有网络自适应的CIP的常见方面。本卷包含通用对象库和设备配置文件库&#xff0…

数据采集与预处理01: 项目1 数据采集与预处理准备

数据采集与预处理01: 项目1 数据采集与预处理准备 任务1 认识数据采集技术,熟悉数据采集平台 数据采集:足够的数据量是企业大数据战略建设的基础,因此数据采集成为大数据分析的前站。数据采集是大数据价值挖掘中重要的一环&#…

OpenCV书签 #互信息的原理与相似图片搜索实验

1. 介绍 互信息(Mutual Information) 是信息论中的一个概念,用于衡量两个随机变量之间的关联程度。在图像处理和计算机视觉中,互信息常被用来度量两幅图像之间的相似性。 互信息可以看成是一个随机变量中包含的关于另一个随机变…

FastDeploy项目简介,使用其进行(图像分类、目标检测、语义分割、文本检测|orc部署)

FastDeploy是一款全场景、易用灵活、极致高效的AI推理部署工具, 支持云边端部署。提供超过 🔥160 Text,Vision, Speech和跨模态模型📦开箱即用的部署体验,并实现🔚端到端的推理性能优化。包括 物…

win10+elasticsearch8.12 安装教程

Elasticsearch是一种搜索引擎,本地安装完成之后,可使用其他编程语言(例如python)与elasticsearch建立连接,然后使用python脚本搜索elasticsearch中的数据 1下载 elasticsearch elasticsearch最新版官网下载链接 点击…

如何降低微服务复杂度丨云栖大会微服务主题分享实录

作者:谢吉宝 本文整理自阿里云资深技术专家、中间件负责人谢吉宝在2023云栖大会《极简微服务模式,降低微服务复杂度的最佳实践》的分享 2023 云栖大会现场 当面临复杂的挑战时,"分而治之"的方法往往能取得显著的效果。微服务架构…

HCIA——25FTP 的工作原理、功能、TFTP、控制连接、数据连接的选择、解答

学习目标: 计算机网络 1.掌握计算机网络的基本概念、基本原理和基本方法。 2.掌握计算机网络的体系结构和典型网络协议,了解典型网络设备的组成和特点,理解典型网络设备的工作原理。 3.能够运用计算机网络的基本概念、基本原理和基本方法进行…

使用 Redis 的 List 数据结构实现分页查询的思路

假设有一个存储数据的 List,每个元素代表一个记录,例如 recordsList。 按页存储数据: 每页存储一定数量的记录。例如,第一页存储索引 0 到 N-1 的记录,第二页存储索引 N 到 2N-1 的记录,以此类推。 分页查…

Java入门——基本语法(注释、字面量、变量、使用变量的注意事项、关键字、标识符)

目录 注释 字面量 变量 使用变量的注意事项 关键字 标识符 注释 什么是注释 注释是写在程序中对代码进行解释说明的文字,方便自己和其他人查看,以便理解程序的。 注释有哪些 单行注释 // 注释内容,只能写一行 多行注释 /* 注释内…

Java中的HTTPS通信

在Java中实现HTTPS通信,主要涉及到SSL/TLS协议的使用,用于提供数据传输的安全性。下面我们将深入探讨如何使用Java进行HTTPS通信。 一、基本概念 HTTPS,全称为Hypertext Transfer Protocol Secure,是HTTP的安全版本。它使用SSL/…

Matlab|含风电-光伏-光热电站电力系统N-k安全优化调度模型

目录 1 主要内容 程序算例 程序模型 程序亮点 2 部分程序 3 部分结果 4 下载链接 1 主要内容 该程序参考《光热电站促进风电消纳的电力系统优化调度》光热电站模型,主要做的是考虑N-k安全约束的含义风电-光伏-光热电站的电力系统优化调度模型,从而…

uniapp page宽度设置为750rpx,子元素宽度100%,大小不一致

uniapp page宽度设置为750rpx,子元素宽度100%,大小不一致。 原因是我在page加了margin: 0 auto;去掉就正常了(但是如果在超大屏幕还是会出现,我猜是使用rpx导致的,rpx渲染成页面时会转成精确到一个小数点几位数的rem&a…