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中描述了其他优化。

相关推荐
andwhataboutit?2 分钟前
pytorch-CycleGAN-and-pix2pix学习
人工智能·pytorch·学习
渡我白衣6 分钟前
计算机组成原理(7):定点数的编码表示
汇编·人工智能·嵌入式硬件·网络协议·机器学习·硬件工程
vv_5017 分钟前
大模型 langchain-组件学习(中)
人工智能·学习·langchain·大模型
╭⌒若隐_RowYet——大数据8 分钟前
AI Agent(智能体)简介
人工智能·ai·agent
Evand J13 分钟前
【课题推荐】基于视觉(像素坐标)与 IMU 的目标/自身运动估计(Visual-Inertial Odometry, VIO),课题介绍与算法示例
人工智能·算法·计算机视觉
麦麦大数据15 分钟前
F051-vue+flask企业债务舆情风险预测分析系统
前端·vue.js·人工智能·flask·知识图谱·企业信息·债务分析
haiyu_y17 分钟前
Day 45 预训练模型
人工智能·python·深度学习
【建模先锋】20 分钟前
基于CNN-SENet+SHAP分析的回归预测模型!
人工智能·python·回归·cnn·回归预测·特征可视化·shap 可视化分析
Robot侠22 分钟前
视觉语言导航从入门到精通(四)
人工智能·深度学习·transformer·rag·视觉语言导航·vln
思迈特Smartbi25 分钟前
思迈特软件斩获鲲鹏应用创新大赛(华南赛区) “最佳原生创新奖”
人工智能·ai·数据分析·bi·商业智能