【论文笔记】SmileSplat:稀疏视角+pose-free+泛化

        还是一篇基于dust3r的稀疏视角重建工作,作者联合优化了相机内外参与GS模型,实验结果表明优于noposplat。

abstract

         在本文中,提出了一种新颖的可泛化高斯方法 SmileSplat,可以对无约束(未标定相机的)稀疏多视图图像的不同场景,进行像素对齐级别的高斯面元重建首先,基于 多头 高斯 回归 解码器 预测高斯面元,它可以用较小的自由度表示,但具有更好的多视图一致性。 此外,我们基于高质量的法向先验,增强了高斯面元的法向向量。 其次,基于所提出的Bundle-Adjusting高斯泼溅模块,对高斯和相机参数(外参和内参)进行优化,以获得用于新颖视图合成任务的高质量高斯辐射场。 在公共数据集上对新颖的视图渲染和深度图预测任务进行了广泛的实验,证明所提出的方法在各种 3D 视觉任务中实现了最先进的性能。

1.Introduction

        当使用稀疏视角图像(例如仅两三张图像)进行三维重建时,SFM在准确估计3D点元和相机参数方面变得非常困难。这个问题在低纹理场景或快速相机运动中尤为明显,有限的图像数量无法为常规优化技术提供足够的约束条件。

        为了提高稀疏视图任务中新视角渲染的性能,这一领域中探索了通用(可泛化)的高斯方法。这些方法可以根据是否需要相机参数作为输入分为两类:需要相机参数的方法(CamPara-Required)和不需要相机参数的方法(CamPara-Free)。

        对于CamPara-Required方法,给定相机的真实pose和内参,网络预测的3D高斯点[4, 6]被渲染到新视角。为了生成准确的高斯基元,神经多头解码器首先预测深度(点云)、协方差和不透明度值。然后,使用一个forwardmap渲染模块来优化初始的高斯参数为了进一步减少对相机参数的依赖, Dust3R[38]和Mast3R[21]等网络在标准系统中预测点云而不是深度图。这些点云被用来初始化3D高斯点[instantsplat],之后再获得相机姿态。然后,通过高斯点绘制模块[20]优化高斯参数。由于这两个模块是分开的,因此需要额外的迭代来训练适用于这些场景的3D高斯点

        CamPara-Free方法在应用时更为便捷,因为它们不需要初始化步骤。然而,这些开创性的CamPara-Free方法倾向于直接将基于预测点云的相机标定与高斯点绘制模块集成在一起,这限制了通用可泛化高斯辐射场进一步实现高质量的效果

        我们提出了一种新的通用GS架构,如图2所示,旨在实现不受约束的稀疏视图图像的高保真新视角渲染性能。首先,通过forward神经网络预测高斯表面元(Gaussian surfels)(因为这里是高斯面元,所以只需要坐标点控制高斯中心,尺度控制大小,法线控制朝向,与3D的高斯基于需要协方差控制方向不一样),该网络利用标准的transformer encoder(Siamese ViT en-
coders [8] and cross-attention embedding blocks)从图像中检测几何先验信息
这些深度先验信息以及图像随后被输入到我们提出的多头高斯回归解码器中,以预测在标准坐标系中像素对齐的、通用的3D高斯表面元参数

        此外,我们基于初始的3D高斯表面,考虑几何和光度约束来估计相机的内参矩阵据我们所知,我们的方法是第一个不需要预定义内参就能渲染图像的方法。接下来,根据估计的高斯表面元预测图像之间的相对外参矩阵为了提高预测高斯表面元的一致性,我们提出了一种GS Bundle Adjustment方法,进一步优化高斯参数、内参和外参。这种优化基于光度和几何约束,使我们能够为不受约束的稀疏图像建立缩放的高斯辐射场。

        作者的贡献如下:

        1. 我们提出了一种用于相机未标定和无pose的稀疏视图图像的通用通用高斯泼溅架构

         2.分析了基于Gaussian Splatting的相机参数优化模块,实现稀疏图像的精确运动估计

         3. 提出了一种GS Bundle Adjustment方法来产生高质量和尺度的高斯辐射场。

2. Related Work

        这个Related Work写的不错,这里纯翻译过来了,应该多看看

        辐射场在3D视觉领域中因其能够从任意视角生成物体或场景的新视角图像而受到广泛关注。神经辐射场(NeRF)[26]是其中开创性和最著名的方法之一,通过使用多层感知器(MLPs)隐式表示3D场景,能够高效地渲染高质量的新视角图像。然而,NeRF的训练和推理速度较慢。后续的研究[2, 3]主要集中在提高渲染质量或提升计算效率上。最近的进展引入了显式的体积结构,例如多分辨率体素网格[12, 37]或哈希函数[27],以改善性能。尽管有所改进,但逐像素光线行进仍然是渲染速度的瓶颈,这在需要实时地图交互的SLAM应用中是一个关键问题。

        相比之下,3D高斯点绘制(3DGS)[20]使用各向异性的3D高斯点来表示辐射场,并结合可微分点绘制进行渲染。这种方法在快速重建复杂的真实场景并捕捉高频细节方面表现出色。通过遍历光栅化的基元而不是沿着光线进行行进,3DGS利用了3D场景的自然稀疏性,提供了高保真表示和高效渲染之间的平衡。各种研究已将3D高斯点和可微分渲染应用于静态场景捕捉[7, 43],最近的研究则在动态场景捕捉中展示了更优异的结果。

        通用/可泛化GS。类似于多视角立体任务,当仅有有限重叠的两张图像输入3D高斯点绘制系统时,会出现几个新的挑战,因为传统的高斯点绘制系统[20]需要大量图像作为输入。SparseGS[42]通过使用扩散网络来去除离群点和不同类型的渲染深度图来检测漂浮物,解决了这些挑战。与依赖从COLMAP[13]或SLAM系统[22]生成的初始点云不同,MVSplat[6]和COLMAP-free GS[13]估计目标和源RGB图像的深度图,然后将这些深度值转换为点云,并基于这些点云初始化高斯椭球的均值向量。得益于Dust3R[38]的点云,InstantSplat[11]的高斯点绘制过程相比MonoGS[25]中随机生成的点云更为高效。基于Dust3R中估计的相机参数,InstantSplat在渲染过程中优化3D高斯点和相机姿态。然而,模块的分离意味着错过了进一步加速高斯点绘制收敛的机会。

        与InstantSplat通过Dust3R预测的点云估计相机参数不同,pixelSplat[4]直接预测3D高斯点,这些高斯点在使用真实相机参数的高斯点绘制光栅化中定义。最近,一些无需姿势的新型视图渲染方法[45]使用PnP算法[15]和高斯点绘制SLAM方法[25]估计和优化相机姿态,同时将内参参数嵌入到深特征标记中,以合理比例预测场景。

        与这些方法不同,我们的方法为未标定和无姿态的图像预测3D高斯点,并基于预测的高斯点估计未知的相机参数。所有这些估计的参数和表示然后通过束调整高斯点绘制模块进行优化,以建立高保真的辐射场

3. Methodology

3.1. Gaussian Surfel Prediction

       作者主要使用高斯表面来表达场景,主要原因有两个:一是,高斯模型的多视角一致性很难保证,所以在这个意义上来说,原始的3D的高斯模型并不适合稀疏重建;二是在旋转矩阵方面,高斯曲面涉及的参数更少,更重要的是,与协方差矩阵相比,它们更容易训练,因为可以利用几个健壮的大型语言模型[1]来训练这个头部

1.问题设定

        先介绍概念,细节问题后续解释,3D高斯表面通过12个值进行参数化,包括颜色,位置,尺度,法向量,不透明度

        高斯表面基元的协方差矩阵定义为:

的大圆上,=表示对角矩阵。

        细节1的大圆上,何为大圆?其实就是xyz坐标系中,垂直于的一圈向量围成的圆面

        细节2.关于公式2的一些理解

2.神经网络架构

        我们使用了基于Dust3R百万级图像的预训练模型,其中多视角立体图像I1和I2送入两个共享权重的VIT[8]编码器。然后,使用self-attention and cross-attention来处理图片token。最后分别用4个head来得到高斯面元的各个属性

        多头高斯回归decoder我们通过估计4个独立的head包括位置,尺度向量s,表面法向量n,不透明度o,在的坐标系下预测3D高斯(这里注意盯住前面的公式1,少了高斯面元的颜色)为了减少参数规模,高斯面元的颜色直接使用投影到的像素上面对应的颜色来表示。接下来,我们看每一个block的具体计算:

        输出位置P的head主要靠一个偏移量来表示,就是说,当前预测的P等于前面一步预测的P加上一个偏移量是通过Dust3R网络的pointmap和encoder embeddings输入3层的MLP得到的

        输出法线n的head我们采用了一种U-Net结构,根据输入图像和深度embeddings来预测每个像素的表面法线,首先,我们把这篇工作作为teacher model【Rethinking inductive
biases for surface normal estimation】,首先使用它的预训练权重得到一个法向量,然后来使用它作为监督:

        输出不透明度的head偏移量低的点更有可能位于精确的表面上,因此应该具有更高的不透明度。因此,我们通过来自backbone的深度feature(注意Dust3R的pointmap本来就是和深度强绑定的),和来自位置偏移量head的feature,来共同预测出每一个3D高斯的不透明度

        输出尺度的head对于尺度,根据前面的定义,在2层的mlp中输入pointmap和深度embeddings得到

        现在我们得到了尺度矩阵,然后我们根据上面得到的表面法线得到旋转矩阵R,由公式2,我们可以计算出高斯基元的协方差矩阵,也就是形状

3.2 Camera Parameter Optimization Based on a Single View

1.相机内参估计

        由于预测的高斯点与输入图像的像素对齐,并且位于第一幅图像的坐标系中,因此可以将它们视为处于相机坐标系中。因此,未知参数是内参矩阵,可以通过该公式进行优化

        表示图片坐标(u,v)上的像素GT像素值,表示初始化的3D高斯表面通过相机内参K渲染的图片。W,H分别是图片的宽高。

        因为现在是在图像I1的相机坐标系下,所以,在渲染的时候,我们无需考虑world2camera变换,直接使用相机内参即可,这就是第一段提到的,直接在相机坐标系下使用3D高斯渲染来优化相机内参。也就是说,我们在第一个图片的坐标系下,估计相机内参

       论文中这里还列出了cuda里面求导的公式,非常详细,里面包含了高斯表面到2D图像的各种变换,当然了,反向传播其实就是链式偏导的公式,大家可以详细看看

2.外参(pose)估计

        在传统的相机位姿估计方法中 [28, 33],常见的方法是将 3D 点云从世界坐标重新投影回图像平面以进行相机跟踪。 然而,在本节中,我们介绍基于预测的高斯面元的相机姿态估计策略。

        我们先根据上面的公式优化了内参,然后顺便通过下面的公式,在第一个图片的坐标系下,迭代优化与第二张图片的相对位姿变换

        其中,是GT,其实就是通过第一张图到第二张图的相对pose来渲染3D高斯表面,然后这个渲染图和GT之间的loss反向传播来优化pose,也就是公式中的T

3.3. Bundle-Adjusting Gaussian Splatting

        获得初始相机内参和相对相机位姿(第 3.2 节)后,使用 alpha blending算法将高斯面元光栅化为相应的深度图 D1 和 D2。 使用以下变形操作将第二视点的深度图 D2 变换到第一视点

        其中,Π(·)表示使用估计的内参矩阵K和相对相机pose T 将深度贴图D2从第二相机视图投影到第一相机视图的变换。

        然后,建立基于深度的几何约束以强制高斯辐射场在几何方面更好的多视图一致性

        渲染图像和GT之间的loss:

        为了联合优化输入稀疏视图的缩放辐射场,包括高斯面元以及相机内在和外在参数,我们定义了一个综合损失函数来监督细化过程

        其中 λ1、λ2 和 λ3 是平衡各个损失项的贡献的加权参数。 这种联合优化允许同时细化高斯面元、相机内在因素和外在因素,从而提高稀疏视图辐射场重建的整体性能。联合迭代优化的细节如下:

4. Experiments

4.1 baseline

        在新的视图合成任务中,将最新的方法与所提出的方法进行比较,将其分为两类,其中第一组方法,包括PixelNeRF[47]、AttnRend[9]、PixelSplat[5]和MVSplat[6],在其训练和测试过程中需要相机参数,而第二组方法DUSt3R[38]、MASt3R[21]、Splatt3R[35]和NoPoSplat[45]具有估计内外参的能力

        我们在两个大规模数据集上对所提出的方法进行了评估。第一个数据RealEstate10K(Re10K)[50]是从YouTube上的房地产序列中收集的。基于训练/测试分割,数据集分别包含29,144个用于训练的场景和7286个用于测试的场景。第二个数据集ACID[24]侧重于从无人机视角收集的自然场景。为了评估提出的方法的重建能力,我们进一步评估了其他数据集上的训练模型,包括Replica[36](包含多个室内场景的高分辨率图像、深度图以及精确的相机姿态和内参信息。每个场景都是通过 RGBA 摄像头捕捉的,并且数据集中还包括了每幅图像的点云表示)和ICL-NUIM[14]。

        为了进行定量评估,我们报告了渲染效果 使用标准图像质量指标的性能,包括PSNR,SSIM和LPIPS。 前两个指标(PSNR 和 SSIM)评估渲染图像和观察图像之间的颜色相似性和结构相似性第三个指标 LPIPS,使用预先训练的神经网络(例如 VGG-Net [34])提取的特征来比较两个图像之间的特征级相似性。为了分析渲染性能与输入图像视角重叠程度的关系,基于密集特征匹配方法计算了两个输入图像之间的视觉重叠γ[10]。然后,按照[45]的方法,将重叠程度分为三个级别:小(γ≤0.3%)、中(0.3%≤γ≤0.55%)和大(γ≥0.55%)。

4.2 NVS

        如表 1 所示,在新颖的视图渲染任务中,与最先进的方法(CamPara-Free 和 CamPara-Required)进行了比较。 对于 CamPara-Required,gs 方法(例如 PixelSplat 和 MVSplat)与 PixelNeRF 等隐式表示方法相比,表现出卓越的渲染质量。 对于CamParafree方法,DUSt3R [38]和MASt3R [21]根据输入图像预测像素对齐的点云,并且可以使用传统的多视图几何算法来估计和优化其他内在和外在参数。 基于这些方法的架构,Splatt3R [35] 和 NoPoSplat [45] 方法引入了额外的头来估计 3D 高斯椭球体的参数,这显着地将视觉重叠较小的输入的渲染性能从 14.49 提高到 23.08。 与由房地产序列组成的 Re10K 数据集不同,ACID 数据集侧重于自然场景。 然而,表1和图3中观察到的趋势也可以在补充材料中看到。

4.3. Cross-Dataset Generalization

        如表3所示,NoPoSplat 和 SmileSplat 相对于其他无需相机参数(CamPara-Free)和需要相机参数(CamPara-Required)的方法,展示了更优越的稳健性和准确性。在本节中,我们继续通过直接将这两种模型应用于 Replica 序列 [36] 来评估它们的零样本性能。需要注意的是,这两种模型都是在 Re10K 数据集上训练的,没有在 Replica 数据集上进行任何进一步的微调。。

         如表3所示,我们的方法在不同的序列中分为三类:Small(5张图像)、Medium(12张图像)和Large(20张图像)。在每一类中,SmileSplat 一直表现出稳健的性能。具体来说,在 Room 1 序列中,NoPoSplat 的 PSNR 结果为 27.64,而我们的方法将其提高了 25% 到 34.60。然而,直接比较 NoPoSplat 的渲染质量时,如图4所示,渲染图像仍然表现出较高的保真度。

        为了更好地理解定量结果和定性结果之间的差距,我们计算了渲染图像与对应的真实图像之间的光度距离,如图4所示。结果表明,渲染图像与真实图像之间的对齐存在显著问题,特别是在 Office 序列中。在有纹理的区域,NoPoSplat 渲染图像与真实图像之间的光度误差显著较高。由于参考图像的相机姿态是由这些方法自身估计的,观察到的现象表明,所提出的 SmileSplat 方法在对齐和总体性能上优于 NoPoSplat。

4.4. Ablation Study

        我们分析了我们方法中不同模块的性能。如表2所示,各种模块设置被集成并测试在 Re10K 数据集基准上。首先,我们使用两种不同的初始相机参数估计方法在三个不同的视点(View 1、View 2 和 View 3)上渲染预测的高斯分布。由于高斯参数是在 View 1 的坐标上预测的,因此相机姿态误差在从其他两个视点渲染时会导致性能下降。当我们基于 View 1 和 View 2 的光度损失反馈优化高斯参数时,这两个视点的渲染质量显著提高。然而,这种优化对新视点(View 3)的渲染质量影响不大,因为 View 3 的相机姿态无法准确估计。这表明,虽然少数视点的反馈有助于提高这些特定视点的性能,但新视点的准确姿态估计不足限制了整体效果的提升。

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

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

相关文章

Linux学习day2

经过上次我们完成了linux云服务器的安装,今天我们学习一些linux基本指令,是我们使用linux系统的基础 思考:输入指令,让操作系统执行,其实是在做什么呢? Linux环境中,做类似于windows的操作。l…

给DevOps加点料:融入安全性的DevSecOps

从前,安全防护只是特定团队的责任,在开发的最后阶段才会介入。当开发周期长达数月、甚至数年时,这样做没什么问题;但是现在,这种做法现在已经行不通了。 采用 DevOps 可以有效推进快速频繁的开发周期(有时…

【2024年华为OD机试】 (B卷,100分)- 座位调整(Java JS PythonC/C++)

一、问题描述 题目描述 疫情期间课堂的座位进行了特殊的调整,不能出现两个同学紧挨着,必须隔至少一个空位。 给你一个整数数组 desk 表示当前座位的占座情况,由若干 0 和 1 组成,其中 0 表示没有占位,1 表示占位。 …

提供的 IP 地址 10.0.0.5 和子网掩码位 /26 来计算相关的网络信息

网络和IP地址计算器 https://www.sojson.com/convert/subnetmask.html提供的 IP 地址 10.0.0.5 和子网掩码位 /26 来计算相关的网络信息。 子网掩码转换 子网掩码 /26 的含义二进制表示:/26 表示前 26 位是网络部分,剩下的 6 位是主机部分。对应的子网掩码为 255…

IMX6U Qt 开发环境

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言 一、交叉编译 1. 安装通用 ARM 交叉编译工具链 2. 安装 Poky 交叉编译工具链 二、编译出厂源码 1. U-boot 2. 内核和模块 3. 编译出厂 Qt GUI 综合 Demo 前言…

【2024年华为OD机试】(B卷,100分)- 找终点 (Java JS PythonC/C++)

一、问题描述 题目描述 给定一个正整数数组&#xff0c;设为 nums&#xff0c;最大为100个成员&#xff0c;求从第一个成员开始&#xff0c;正好走到数组最后一个成员&#xff0c;所使用的最少步骤数。 要求&#xff1a; 第一步必须从第一元素开始&#xff0c;且 1<第一…

RabbitMQ-集群

RabbitMQ集群----主备关系&#xff0c;在运行的时候&#xff0c;如果非主要节点宕机&#xff0c;程序操作 不受影响&#xff1b; 如果主节点宕机了&#xff0c; 程序会中断操作。 而Rabbitmq集群&#xff0c;会马上让没有宕机的节点参选&#xff0c;选出新的主要节点。 程序重试…

postgresql分区表相关问题处理

1.使用pg_cron按日创建分区表&#xff0c;会出现所在数据库对应用户权限不足的问题。 原因是pg_cron运行在postgres数据库中&#xff0c;是用superuser进行执行的&#xff0c;对应的分区表的owner为postgres&#xff0c;所以需要单独授权对表的所有操作权限。不知道直接改变ow…

网络数据链路层以太网协议

网络数据链路层以太网协议 1. 以太网协议介绍 以太网是一个数据链路层协议&#xff0c;数据链路层的作用是用于两个设备&#xff08;同一种数据链路节点&#xff09;之间进行传递。 以太网不是一种具体的网络&#xff0c;而是一种网络技术标准&#xff0c;既包含了数据链路层…

Kotlin 循环语句详解

文章目录 循环类别for-in 循环区间整数区间示例1&#xff1a;正向遍历示例2&#xff1a;反向遍历 示例1&#xff1a;遍历数组示例2&#xff1a;遍历区间示例3&#xff1a;遍历字符串示例4&#xff1a;带索引遍历 while 循环示例&#xff1a;计算阶乘 do-while 循环示例&#xf…

【STM32】HAL库USB实现软件升级DFU的功能操作及配置

【STM32】HAL库USB实现软件升级DFU的功能操作及配置 文章目录 DFUHAL库的DFU配置修改代码添加条件判断和跳转代码段DFU烧录附录&#xff1a;Cortex-M架构的SysTick系统定时器精准延时和MCU位带操作SysTick系统定时器精准延时延时函数阻塞延时非阻塞延时 位带操作位带代码位带宏…

使用WebdriverIO和Appium测试App

1.新建项目 打开Webstorm新建项目 打开终端输入命令 npm init -y npm install wdio/cli allure-commandline --save-dev npx wdio config 然后在终端依次选择如下&#xff1a; 然后在终端输入命令&#xff1a; npm install wdio/local-runnerlatest wdio/mocha-frameworkla…

uniapp小程序开发,配置开启小程序右上角三点的分享功能

直接全局配置一个分享的功能&#xff0c;要不然需要一个一个页面去单独配置就太麻烦了&#xff01;&#xff01;&#xff01; 1.新建一个share.js文件&#xff0c;并配置代码&#xff0c;调用onShareMessage()和onShareTimeline()两个函数。 其中&#xff1a; title&#xff1…

行业案例:高德服务单元化方案和架构实践

目录 为什么要做单元化 高德单元化的特点 高德单元化实践 服务单元化架构 就近接入实现方案 路由表设计 路由计算 服务端数据驱动的单元化场景 总结 系列阅读 为什么要做单元化 单机房资源瓶颈 随着业务体量和服务用户群体的增长,单机房或同城双机房无法支持服…

ip属地什么条件会改变?多角度深入探讨

IP属地&#xff0c;即IP地址的归属地&#xff0c;是互联网上设备连接时的一个关键信息&#xff0c;它通常反映了设备连接互联网时的地理位置。随着社交软件及各大平台推出IP归属地显示功能&#xff0c;IP属地的变化问题逐渐受到广大用户的关注。那么&#xff0c;IP属地在什么条…

【干货】交换网络环路介绍

定义 以太网交换网络中为了提高网络可靠性&#xff0c;通常会采用冗余设备和冗余链路&#xff0c;然而现网中由于组网调整、配置修改、升级割接等原因&#xff0c;经常会造成数据或协议报文环形转发&#xff0c;不可避免的形成环路。如图7-1所示&#xff0c;三台设备两两相连就…

Linux服务器网络丢包场景及解决办法

一、Linux网络丢包概述 在数字化浪潮席卷的当下&#xff0c;网络已然成为我们生活、工作与娱乐不可或缺的基础设施&#xff0c;如同空气般&#xff0c;无孔不入地渗透到各个角落。对于 Linux 系统的用户而言&#xff0c;网络丢包问题却宛如挥之不去的 “噩梦”&#xff0c;频繁…

Springboot内置Apache Tomcat 安全漏洞(CVE-2024-50379)

背景 大家都知道我们使用Springboot开发后&#xff0c;无需再额外配置tomcat&#xff0c;因为Springboot已经帮我们内置好了tomcat。 这次在线上安全团队就扫出来了我们Springboot服务的tomcat漏洞&#xff1a; 可以看到这是2023年的洞&#xff0c;Apache Tomcat 安全漏洞(…

杭州铭师堂的云原生升级实践

作者&#xff1a;升学e网通研发部基建团队 公司介绍 杭州铭师堂&#xff0c;是一个致力于为人的全面发展而服务的在线教育品牌。杭州铭师堂秉持“用互联网改变教育&#xff0c;让中国人都有好书读”的使命&#xff0c;致力于用“互联网教育”的科技手段让更多的孩子都能享有优…

qml XmlListModel详解

1、概述 XmlListModel是QtQuick用于从XML数据创建只读模型的组件。它可以作为各种view元素的数据源&#xff0c;比如ListView、GridView、PathView等&#xff1b;也可以作为其他和model交互的元素的数据源。通过XmlRole定义角色&#xff0c;如name、age和height&#xff0c;并…