首页 > 其他分享 >Splatt3R: Zero-shot Gaussian Splatting from Uncalibrated Image Pairs 论文解读

Splatt3R: Zero-shot Gaussian Splatting from Uncalibrated Image Pairs 论文解读

时间:2024-10-13 12:53:44浏览次数:10  
标签:Uncalibrated Pairs shot 高斯 损失 MASt3R 图像 点云 3D

目录

一、概述

二、相关工作

1、近期工作

2、DUSt3R

3、MASt3R

三、Splatt3R

1、MASt3R的Backbone 

2、高斯预测头

3、点云与3D高斯参数结合

4、3D高斯渲染

5、损失函数

四、实验 

1、对比实验

2、消融实验


一、概述

        该论文首次提出了一种无需任何相机参数和深度信息,从未校准图像中预测3D高斯模型的方法。该论文建立在MASt3R模型架构之上,并添加了高斯解码器预测3DGS原语。

(1)在MASt3R基础上加了一个高斯预测头,可以从未校准的图像中预测高斯原语,而MASt3R只能预测3D点云。

(2)训练过程中只训练高斯预测头,其他部分使用预训练好的MASt3R模型,利用了MASt3R的泛化能力,并且减少重复训练消耗。

(3)提出一种新的损失掩码策略,可以更好地处理输入相机看不见的部分的外推视点,避免预测这些无法观测的区域。

二、相关工作

1、近期工作

        在三维新视图合成领域(NVS),NeRF技术依赖于光线追踪的方式,通过密集收集图片送入神经网络训练隐式神经辐射场。3DGS通过训练3D高斯原语,并通过光栅化方法来提高训练和渲染速度。

        在pixelSplat、MVSplat、GPS-Gaussian、SplatterImage、Flash3D模型都需要依赖相机参数预测3DGS原语,FlowCam论文考虑了未知相机参数的问题,但仍需要将图片按序的输入,而该论文Splatt3R中考虑到对于未知相机参数的影响,不需要按序输入。

        GGRt论文中考虑不使用已知相机或内在技术的情况下建立3DGS模型,但仍需要密集的采集图像集进行迭代优化来拟合3DGS原语(依赖密集图像集),而且在梯度过大,过于偏离正确位置的情况下容易陷入局部最优(存在局部最优,可能难以泛化到未校准图像)

2、DUSt3R

        DUSt3R:提出了一种从一对无校准立体图像中预测点云的方法,但是预测的点云无法直接渲染,原因有三:一是,点云中点的具体位置并不清晰,二是,由于输出经过了归一化,缺乏真实的尺度信息,三是,由于输出是建立在相机坐标系下,需要全局对齐到世界坐标才能得到真实三维点云场景,但DUSt3R没有做这一步。

        DUSt3R的流程:

(1)输入一对RGB图像I_1,I_2,分别经过一个共享权重的ViT编码器得到特征F_1,F_2

(2)将这两个特征输入到两个Transformer解码器中,解码器通过交叉注意力机制交换信息(类似于配准前面的匹配工作)。

(3)利用两个回归头输出两个点云X^{1,1},X^{2,1}以及置信度C^1,C^2。这两个点云都是在第一个图片I_1坐标系下。

(4)损失函数两部分构成,三维空间回归损失和置信度感知损失。

三维空间回归损失:预测点云与地面GT点云之间的欧式距离的归一化。(所以也就照应了前面没有比例的问题)。

置信度感知损失:置信度分数的似然函数。

总损失:在每个像素下的三维空间回归损失与置信度感知损失的差。

3、MASt3R

        MASt3R:考虑在DUSt3R基础上增加了密集局部特征图回归的头部,并使用InfoNCE损失进行训练,并且采用了由粗到细的匹配方案,在多个尺度进行匹配(参考了CoFiNet?),另外输出更为密集的3D点云,同时估计相机的位姿。

        下图为网络结构(跟DUSt3R类似吧)

        MASt3R流程:

(1)特征预测头:相较于DUSt3R,增加了新的Head_{desc},用来预测局部的特征,Head_{desc}实现为两层MLP加一层GELU。

(2)快速最近邻匹配:用于两个预测的特征图和点云提取特征或者点云对应关系。最近邻公式其实就是满足条件像素i(或者特征,点云位置)在D_1中的最近邻是像素j在D_2的最近邻。

(3) Coarse2Fine:首先在小分辨率图像中进行匹配,得到粗的对应关系,再逐渐迭代到高分辨率的图像的进行匹配。(这不就是CoFiNet吗,乐)

(4)损失函数:由三部分构成,在之前的基础上加了匹配损失函数。

        匹配损失函数L_{match }:采用InfoNCE损失,鼓励每个局部描述子只与另一幅图像中表示同一3D点的描述子匹配。

        总损失:L=L_{conf}+\beta L_{match}

三、Splatt3R

         Splatt3R的网络结构由MASt3R的Backbone,新增加的高斯头,点云与3D高斯参数结合,视角渲染四个部分。

1、MASt3R的Backbone 

        首先使用MASt3R训练一个Backbone然后frozen住。对于特征预测头只是用于前期训练MASt3R Backbone阶段的损失函数,对于后面Splatt3R的损失函数是用不到的。对于点云头只输出点云。

2、高斯预测头

        在训练Splatt3R的部分,我们只训练高斯预测头。高斯预测头预测四个参数(偏移量\Delta,协方差矩阵\Sigma,球谐函数S,不透明度\alpha),然后3D高斯的平均位置\mu转换为偏移量加原来的3D高斯位置x其实这个就是MVSplat对于3D高斯原语的预测方法。

3、点云与3D高斯参数结合

        这一部分就是将点云位置x,作为3D高斯的位置,然后将高斯预测头预测的偏移量\Delta叠加到点云位置上,输出3D高斯原语。

        另外在原来训练好的MASt3R模型进行frozen,也保证了3D高斯原语训练时由于梯度离正确位置过远,而导致陷入局部最优,也之间监督3D点云位置到高斯原语之间的一条单调递减的损失函数,保证训练。(其实就是锁住原始3D点云位置x,但是3D点云位置一定可以做3D高斯椭球集的中心初始化吗??)

4、3D高斯渲染

        首先使用3D高斯参数直接进行3DGS渲染,另外使用Mask的策略,只对被重建的部分进行监督,避免对看不见的区域进行更新。

        在训练过程中Splatt3R会选择两张上下文图像(允许上下文无关视图监督?)和三张目标图像,由于上下文图像之间存在一定的直接对应关系,另外目标图像中也存在一定像素在上下文图像中。但由于模型会预测无限远的距离,这不仅浪费一些无用的计算,也会将较远的距离(看不到的图像)叠加在三维场景中,造成错误图像视角,所以论文加入了一些掩码在损失中,用于限制损失的计算范围,避免模型去预测无法从输入图像中推断的区域。

5、损失函数

        损失函数由两部分组成,MSE和LPIPS的损失,并且我们只计算掩码覆盖的区域的损失。

        MSE损失用于限制生成图像与目标图像之间的像素级差异(均方差)

        LPIPS损失用于衡量生成图像与目标图像之间的相似度。

        总损失:L=\lambda_{MSE}L_{MSE}+\lambda_{LPIPS}L_{LPIPS},一般建议\lambda_{MSE}=1.0,\lambda_{LPIPS}=0.25

四、实验 

1、对比实验

        对比视角不同下的的不同模型的性能,视角越近重叠越高,视角越远重叠越低。

2、消融实验

参考文献:Splatt3R: Zero-shot Gaussian Splatting from Uncalibrated Image Pairs 

参考代码:https://github.com/btsmart/splatt3r/tree/main

标签:Uncalibrated,Pairs,shot,高斯,损失,MASt3R,图像,点云,3D
From: https://blog.csdn.net/m0_60177079/article/details/142828188

相关文章

  • [论文阅读报告] Fast 2-Approximate All-Pairs Shortest Paths, SODA '24
    本篇文章介绍\(\tildeO(n^{2.032})\)的无向无权图全源最短路stretch2近似算法和\(\tildeO(n^{\frac94})\)的组合算法,以及\(\tildeO(n^{2.214}(1/\epsilon)^{O(1)}\logW)\)的非负整数边权stretch\((2+\epsilon)\)近似算法。其中\((1/\epsilon)^{O(1)}\)......
  • [论文阅读报告] All pairs shortest paths using bridging sets and rectangular matr
    本篇文章介绍整数边权下\((\min,+)\)矩阵乘、APSP等问题的一些做法。若每个元素的权值在\([-M,M]\cap\mathbbZ\)中,\(n\timesn^r\)和\(n^r\timesn\)的\((\min,+)\)矩阵乘可做到\(\tildeO(Mn^{\omega(r)})\);有向图APSP可做到\(\tildeO(n^{2+\mu(t)})\),......
  • [LeetCode] 1497. Check If Array Pairs Are Divisible by k
    Givenanarrayofintegersarrofevenlengthnandanintegerk.Wewanttodividethearrayintoexactlyn/2pairssuchthatthesumofeachpairisdivisiblebyk.ReturntrueIfyoucanfindawaytodothatorfalseotherwise.Example1:Input:arr......
  • leetcode24 两两交换链表中的节点(swap-nodes-in-pairs)
    题目描述:给你一个链表,两两交换其中相邻的节点,并返回交换后链表的头节点。你必须在不修改节点内部的值的情况下完成本题(即,只能进行节点交换)。示例1:输入:head=[1,2,3,4]输出:[2,1,4,3]示例2:输入:head=[]输出:[]示例3:输入:head=[1]输出:[1] 提示:链表中节点的数......
  • chrome-截图录屏插件-Awesome Screenshot
    ......
  • maven 使用SNAPSHOT版本确实可以帮助开发团队更高效地迭代和测试新功能
    使用SNAPSHOT版本确实可以帮助开发团队更高效地迭代和测试新功能。下面是一个更详细的解释:快速迭代频繁构建和部署:由于SNAPSHOT版本通常与持续集成(CI)工具结合使用,因此每次提交代码后都可以触发构建和部署流程。这意味着每次有新的代码更改时,都会有一个新的SNAPSHOT版本产......
  • Metric3D v2: A Versatile Monocular Geometric Foundation Model for Zero-shot Metr
    paperMetric3Dv2:AVersatileMonocularGeometricFoundationModelforZero-shotMetricDepthandSurfaceNormalEstimation作者MuHu1∗,WeiYin2∗†,ChiZhang3,ZhipengCai4,XiaoxiaoLong5‡,HaoChen6,KaixuanWang1,GangYu7,ChunhuaShen......
  • [ABC263G] Erasing Prime Pairs
    题目思路看到配对,想到网络流。考虑如果一个点是奇数,那么将源点与其连接,如果是偶数,那么将汇点与其连接,如果一对奇数和偶数的和是质数,那么将它们两对应的点相连。其中,我们要对1特殊处理,因为\(1+1=2\)而\(2\)是偶数且是质数,所以考虑费用流,尽可能多地保留\(1\),对所有不......
  • 探索未来智能:Moonshot AI 引领AI新纪元——M1超级模型
    在人工智能的快速演进中,MoonshotAI再次站在了技术创新的前沿。推出M1超级模型,这是一款旨在突破现有AI能力极限的革命性产品。M1超级模型的诞生背景随着数据量的爆炸性增长和计算能力的提升,AI模型正变得越来越复杂和强大。M1超级模型的诞生是对这一趋势的直接响应,它代表了Moons......
  • Align Your Prompts论文解读: Test-Time Prompting with Distribution Alignment for
    Comment:AcceptedtoNeurIPS2023对齐提示:用于zero-shot泛化的测试时提示分布对齐摘要CLIP等视觉语言模型的zero-shot泛化已经引领它们在下游任务中使用提示学习。先前的工作已经表明使用熵最小化进行测试时提示调优,调整文本提示适应未见过的领域。尽管这样的方法非常高效......