pixelSplat: 3D Gaussian Splats from Image Pairs for Scalable Generalizable 3D Reconstruction


Paper: 链接
Code: https://github.com/dcharatan/pixelsplat
Author: MIT, SFU


前置知识

1)几种常见的伪影

\quad ghosting artifacts:当摄像机运动,或者物体运动时,画面会在物体旧位置留下重影,其实就是残影。
在这里插入图片描述
\quad Blurring:和ghosting类似,都是把画面变糊,但是有区别。blurring指的是空域高频图像的细节损失,通常在锐利的边缘,如下图中,边缘模糊。导致这种伪影的原因,其实就是高频细节的丢失。
在这里插入图片描述

\quad Ringing artifacts / Gibbs artifacts / Spectral leakage artifacts / truncation artifacts(振铃伪影):图像的灰度剧烈变化处产生的震荡,就好像钟被敲击后产生的空气震荡。
在这里插入图片描述

\quad Aliasing Artifacts(混叠伪影):当对连续信号进行离散化(采样)时,如果采样频率过低,可能导致高频信号被误解为低频信号,产生混叠。该伪影往往由于采样频率不足而产生的"走样"效应,通常表现为图像中的锯齿状边缘(jaggies,左图)或周期性波纹(摩尔纹,moire pattern,右图)。
在这里插入图片描述
为了解决jagged sharp edges,一种方法叫做anti-aliasing(反走样),让边缘更光滑。如下图所示:
在这里插入图片描述
\quad Floating artifacts(漂浮伪影):漂浮是指某些区域的虚幻运动,而周围区域保持静止。从视觉上看,这些区域似乎漂浮在周围的背景之上。有两种类型的浮动:纹理浮动和边缘浮动。如下图出现了漂浮效应,从视觉上看,这些区域产生了一种强烈的错觉,就好像它们漂浮在叶子上。
在这里插入图片描述

\quad Block Boundary Artifact(块效应):不同的图像块进行了不同的处理,有时是量化步长不同,有时是舍去的高频分量不同,这将导致图像块之间的相关性被破坏。有点像马赛克。
在这里插入图片描述
\quad Flickering Artifacts:场景中的高频着色区域,会有闪烁的现象。这是最需要重点解决的artifact,因为最难看,而且是在静态的时候都会出现。闪烁一般是指亮度或色度随时间的频繁变化(类似于蜡烛的火焰),通常分为细粒忽明忽暗和粗粒忽明忽暗,如下图。
在这里插入图片描述
\quad speckling artifacts:在医学图像学、雷达图像、激光雷达图像等领域中经常出现的一种现象,主要是由于波的干涉或光学干涉引起的,通常表现为图像中的随机亮暗斑点。这种伪影可以使用滤波技术、图像平滑算法以及在采集图像时使用多视角或多个传感器等来解决。
在这里插入图片描述
\quad Jerkiness:抖动是一种类似闪烁的伪像,描述了对视频中的单个静止图像的感知。

2)small-baseline 与 large-baseline

\quad 这两个术语通常与立体视觉(stereo vision)或者三维重建有关。

  • Small Baseline(小基线):在立体视觉中,小基线通常用于处理近距离的场景,例如室内摄影或者近距离的物体。
  • Large Baseline(大基线):在立体视觉中,大基线通常用于处理遥远或广阔的场景,例如户外景观或者远距离的物体。
  • <
<think>我们正在讨论PLY文件中3DGaussianSplats数据的定义和用途。根据引用[2]和引用[3],我们知道3DGaussianSplatting是一种用于3D场景表示和渲染的技术,其中场景由一组点(每个点代表一个3D高斯函数)来表示。在PLY文件中,这些高斯函数的参数被存储起来。首先,我们需要了解PLY文件格式。PLY(PolygonFileFormat)是一种用于存储3D模型的文件格式,它可以包含点、线、面等元素。对于3DGaussianSplats,PLY文件通常存储每个高斯点的属性。根据引用[3],每个高斯点包含以下属性:-位置(3D坐标)-颜色(通常为RGB)-不透明度(用于控制渲染时的透明度)-协方差矩阵(用于描述高斯函数的形状,即各向异性)但是,协方差矩阵通常不会直接存储,而是存储一个缩放向量(scale)和旋转四元数(rotation),因为这样更紧凑且易于优化。在渲染时,缩放和旋转用于构建协方差矩阵。因此,在PLY文件中,每个高斯点可能包含以下数据:1.x,y,z:位置坐标2.red,green,blue:颜色(可能还有alpha,但通常不透明度单独存储)3.opacity:不透明度(通常经过sigmoid变换,所以存储的值是变换前的)4.scale_0,scale_1,scale_2:缩放系数(三个分量)5.rot_0,rot_1,rot_2,rot_3:旋转四元数(四个分量)注意:具体的字段名称可能因不同的实现而略有不同。引用[2]提到了一种更紧凑的格式SPZ(约为PLY的1/10大小),但用户询问的是PLY格式。应用场景:根据引用[4]和引用[5],3DGaussianSplats主要用于实时渲染高质量的3D场景,特别适合AR/VR应用,因为其渲染效率高且质量好。它通过重叠各向异性的高斯函数来形成图像,避免了传统三角网格的顶点和面片处理,因此在复杂场景中具有优势。引用[3]详细说明了3DGaussianSplatting的优化过程,即通过优化这些高斯参数使得渲染的图像接近原始输入图像。总结:PLY文件中的3DGaussianSplats数据结构包括位置、颜色、不透明度、缩放和旋转。这些数据用于参数化3D高斯函数,以便在渲染时快速生成高质量的图像。下面我们按照用户要求,使用$$...$$格式表示独立公式,行内公式用$...$。在3D高斯函数中,一个点$x$处的强度可以表示为:$$G(x)=\exp\left(-\frac{1}{2}(x-\mu)^T\Sigma^{-1}(x-\mu)\right)$$其中,$\mu$是位置(均值),$\Sigma$是协方差矩阵。协方差矩阵由缩放和旋转构建:$$\Sigma=RSS^TR^T$$其中,$R$是旋转矩阵(由四元数转换而来),$S$是对角缩放矩阵。这样,在渲染时,每个高斯点根据其位置、颜色、不透明度和协方差(形状)进行投影和叠加。应用场景包括:-3D重建:从多张图像重建3D场景,并以高斯点云表示。-实时渲染:在Web端(如Three.js)或移动端高效渲染动态3D场景。-AR/VR:轻量级的数据格式便于传输和渲染。注意:引用[5]提到可以使用@mkkellogg/gaussian-splats-3d库在ReactThreeFiber中加载PLY文件(或.splat,.ksplat文件)进行渲染。最后,按照要求生成相关问题。</think>### PLY文件中3D Gaussian Splats数据的定义与用途 #### 数据结构定义 在PLY文件格式中,3D Gaussian Splats数据通过特定属性参数化各向异性高斯分布,主要包含以下核心字段[^3]: 1. **位置坐标**:$x, y, z$ (3D空间坐标) 2. **颜色信息**:$r, g, b$ (RGB色彩值) + $\alpha$ (透明度) 3. **协方差参数**: - 缩放向量:$scale_x, scale_y, scale_z$ (控制高斯椭球形状) - 旋转四元数:$rot_w, rot_x, rot_y, rot_z$ (控制空间朝向) 4. **不透明度**:$\sigma$ (经过sigmoid变换的透明度值) 数学表示为: $$ \mathcal{G}(\mathbf{x}) = \exp\left(-\frac{1}{2}(\mathbf{x}-\mu)^T \Sigma^{-1}(\mathbf{x}-\mu)\right) $$ 其中$\mu=(x,y,z)$是中心位置,$\Sigma=RSR^T$是由旋转矩阵$R$(四元数生成)和缩放矩阵$S$构成的协方差矩阵。 #### 文件格式示例 典型PLY文件头部声明: ```plaintext ply format binary_little_endian 1.0 element vertex 250000 property float x property float y property float z property float scale_0 property float scale_1 property float scale_2 property float rot_0 property float rot_1 property float rot_2 property float rot_3 property uchar red property uchar green property uchar blue property float opacity end_header ``` #### 应用场景 1. **实时3D渲染** 各向异性高斯核允许高效光栅化,在Web端实现60fps+的复杂场景渲染(Three.js集成方案[^5]),适用于AR/VR应用[^4]。 2. **3D重建压缩** 相比传统点云,高斯参数化可将数据压缩10倍(参考SPZ格式[^2]),在移动端扫描应用中显著降低存储需求。 3. **动态场景表示** 通过优化高斯参数实现场景重建: $$ \min_{\theta} \sum_i \mathcal{L}(I_i, \mathcal{R}(\mathcal{G}_\theta, v_i)) $$ 其中$\mathcal{R}$为可微渲染器,$I_i$为输入图像[^3]。 4. **点云处理流水线** 与PCL等库结合,实现从扫描数据到可渲染高斯表示的端到端转换[^3]。 #### 性能优势 | 特性 | 传统网格 | 高斯Splats | |------|----------|------------| | 渲染速度 | 依赖三角面片数量 | 固定像素着色成本 | | 数据量 | 高(顶点+拓扑) | 低(仅参数化点) | | 动态更新 | 困难 | 实时优化可行 | ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值