【三维重建】PhotoReg:光度测量三维高斯溅模型

在这里插入图片描述



摘要

项目地址:https://ziweny11.github.io/photoreg.

  构建准确的环境表示法对于智能机器人在部署过程中做出决策至关重要。最近引入的三维高斯溅射(3DGS)可以实时渲染,它描述了多达数百万个原始的椭球体。3DGS已经迅速崛起。然而,一个尚未解决的关键问题仍然存在:如何将多个3DGS融合成一个单一的相干模型?这项工作的一个关键见解是利用逼真重建之间的二元性(duality),从三维结构渲染真实的二维图像,和三维基础模型,从图像对预测三维结构。为此,我们开发了PhotoReg,一个框架来注册多个逼真的3DGS模型与3D基础模型。由于3DGS模型通常是由单眼相机图像构建的,因此它们具有任意的尺度。为了解决这个问题,PhotoReg通过考虑这些模型中的深度估计,积极地加强不同3DGS模型之间的尺度一致性。然后,利用细粒度的光度损耗迭代地细化对齐,以产生高质量的融合3DGS模型。

  


一、前言

  本文将允许一组机器人,以分散的方式探索和绘制大的未知空间。经典的配准(registration)方法,如 iterative closest point(ICP) 及其变体,主要关注于通过最小化对应点之间的距离来对齐点云。然而,3DGS中固有的连续和复杂的几何表示与传统配准方法管理的离散点集有显著的不同,这需要像PhotoReg等创新方法来有效对齐。

  PhotoReg利用在互联网规模的数据集上训练的三维基础模型,从二维图像对中获得初始的三维结构( 3DGS模型的初始对齐,特别是在模型之间的重叠最小的情况下 )。由于单个的3DGS模型可能不是相同的尺度,PhotoReg通过考虑每个模型中的置信度感知深度估计来积极地对齐其尺度。随后,PhotoReg优化了细粒度光度损失,以测量模型中渲染图像的质量,以确保3DGS之间的紧密对齐。我们对经典基准数据集和定制收集的数据提供了PhotoReg的广泛的经验评估。这包括一个由在一个公共区域内工作的两只四足动物收集的自定义数据集。

二、准备工作

1.3D Registration(三维配准)

  三维配准:在机器人感知中,配准是指寻找两个三维结构之间的转换。随着时间的推移,登记两点云已经得到了广泛的研究。ICP [22]基于最近点假设,寻找对应点对并估计它们之间的刚体变换。诸如color ICP [23]、Point to plane ICP [24]和鲁棒ICP [25]等变量在准确性和效率方面改进了该方法。我们已经探索了注册两个nerf的方法。NeRF2NeRF [26]提出通过手动选择关键点来对齐两个NeRFDReg-NeRF [27]通过使用深度学习自动化NeRF模型的对齐,进一步推进了三维配准。人们尝试探索3DGS配准: LoopSplat [28] 通过registering 3D Gaussian splats,引入了一种新的loop closure technique。然而,LoopSplat依赖于RGB-D图像来进行深度传感器的读数,这限制了它在深度传感器不可用或不可靠时的适用性。PhotoReg可以在没有深度传感器的情况下注册3DGS。

  

  

2.视觉基础模型

  在互联网规模的数据[29]上训练的视觉基础模型,充当即插即用的模块,以促进一系列下游任务。例如,DINOv2 [33]是在互联网规模的未标记数据上进行训练的,使用自我监督技术,允许它在不需要显式注释的情况下发展对视觉内容的深刻理解。DUSt3R [34]设计用来从RGB图像中生成三维点图,实现姿态估计,并已应用于下游机器人机械手感知[35]、[36]。PhotoReg利用基础模型的突发功能来执行稳健的对齐。

  DUSt3R:在DUSt3R的核心是一个大型vision transformer[37]。输入2张 RGB图像宽度W和高度H, I 1 , I 2 ∈ R W × H × 3 I_1,I_2∈R^{W×H×3} I1,I2RW×H×3和输出2相应的3D点图 X 1 , 1 X 2 , 1 ∈ R W × H × 3 X_{1,1}X_{2,1}∈R^{W×H×3} X1,1X2,1RW×H×3与相关置信图 C 1 , C 2 ∈ R W × H C_1,C_2∈R^{W×H} C1,C2RW×H和深度图 D 1 , D 2 ∈ R W × H D_1,D_2∈R^{W×H} D1,D2RW×H进一步恢复各种几何量,如相对相机姿态和完全一致的3D重建。在我们提出的PhotoReg框架中,我们将利用上述输出。这个工作流程如图2所示。由于DUSt3R完全是由数据驱动的,所以它不需要在我们的图像中识别手工特征来找到对应关系。因此,它能够准确地找到相对的相机姿态,即使在输入的图像对之间的视觉重叠是最小的。我们的PhotoReg框架利用了这一特性,使GS模型的重叠对齐。

在这里插入图片描述

  DINOv2 [33]: DINOv2是一个视觉基础模型,它使用了一个transformer,在广泛的图像数据集上以一种自监督的方式进行训练。它以单个图像作为输入,并输出一个相应的向量嵌入。这些嵌入对于spatial transformation是invariant的,语义上相似的对象在这个嵌入空间中很接近

我们使用DINOv2在每个3DGS模型中搜索潜在的相邻区域。这些相邻的区域表现出重叠的视觉特征,如在两幅图像中都可识别的共同元素。DINOv2有助于检测这些重叠的特征,并指导选择输入图像到上面讨论的DUSt3R模型中。DINOv2的工作流程概述如图3所示。

三、主要方法

  问题设置。具体来说,给定输入3DGS模型 G 1 G_1 G1 G 2 G_2 G2,我们提出的方法旨在发现一个变换函数T,该函数在 G 1 G_1 G1的坐标系内,将 G 2 G_2 G2对齐到 G 1 G_1 G1。由于3DGS是任意规模的,T需要处理 G 1 G_1 G1 G 2 G_2 G2,这可能会有很大的不同的scale。

  3DGS模型 G G G由一组三维高斯分布组成,其中每个高斯分布由其三维位置 µ µ µ定义;协方差矩阵 Σ Σ Σ,描述高斯分布在三维空间中的分布和方向;不透明度 α α α;球谐(SH)系数 c c c,包含颜色信息:

在这里插入图片描述

  转换:3DGS模型的转换涉及到对每个高斯分布的每个属性应用缩放、旋转和平移。设 T A B T^B_A TAB表示将一般坐标系的3DGS模型从A坐标系映射到坐标系B的变换函数,该函数将坐标系A的3DGS模型A作为输入[G]A,变换后输出B帧对应的3DGS模型B,表示为 [ G ] B = T A B ( [ G ] A ) [G]_B=T_A^B([G]_A) [G]B=TAB([G]A)

  变换函数TA B可以分别由比例因子 s ∈ R s∈R sR、旋转 R ∈ S O ( 3 ) R∈SO (3) RSO(3)和平移 t ∈ R 3 t∈R^3 tR3组成。假设 [ G ] A = ( µ A , Σ A , α A , c A ) [G]_A={(µ_A,Σ_A,α_A,c_A)} [G]A=(µA,ΣA,αA,cA) [ G ] B = ( µ B , Σ B , α B , c B [G]_B={(µ_B,Σ_B,α_B,c_B} [G]B=(µB,ΣB,αB,cB)。每个属性的转换映射定义如下:

在这里插入图片描述
SH系数为平移不变系数,由 c B = D ( R , o r d e r ) ⋅ c A c_B = D(R,order)·c_A cB=D(R,order)cA变换得到。其中 D ( R , o r d e r ) D(R,order) D(R,order)对应于一个已知特定顺序的旋转的 Wigner D-matrix [38]。

  PhotoReg Overview.PhotoReg由四个顺序阶段组成:基础图像匹配:在每个输入的3DGS模型中选择相邻区域的渲染图像对作为输入到三维基础模型中;初始估计:通过三维基础模型获得旋转和平移的初始估计;尺度估计:通过置信加权深度图解决3DGS模型之间的尺度差异;优化:通过光度损失最小化同时优化尺度、旋转和平移。该工作流程如图4所示

3.1 Foundational Image Matching 基础图像匹配

  FIM过程的输入包括两个3DGS模型,表示为 G 1 G_1 G1 G 2 G_2 G2,每个模型与一组相机姿态 C 1 C_1 C1 C 2 C_2 C2相关联。 FIM的主要目的是从 G 1 G_1 G1 G 2 G_2 G2中识别和提取在给定的相机姿态下的两张高质量的渲染图像它们在语义水平上相似,并且与观看姿态不变 。也就是说,同一物体的两幅,但角度非常不同的图像将被识别为相似。为了选择合适的图像作为输入到三维基础模型中,我们首先以不同的姿态渲染g1和g2中的图像集 I 1 I_1 I1 I 2 I_2 I2。我们的目标是选择一个合适的图像对img1∈I1和img2∈I2进行粗配准。我们寻找 v 1 v_1 v1 V 1 V_1 V1 v 2 v_2 v2 V 2 V_2 V2:

在这里插入图片描述

在这里插入图片描述

3.2 Coarse Registration via 3D Foundation Models 粗配准

  我们继续使用图像对(img1,img2)作为输入到三维基础模型DUSt3R [34]中,以获得初始粗配准, G 2 G_2 G2近似对齐到 G 1 G_1 G1的坐标系中。我们将img1和img2输入到DUSt3R中,它估计了一个具有旋转和平移的刚性变换 T i m g 2 i m g 1 T^{img1}_{img2} Timg2img1。然而, G 1 G_1 G1 G 2 G_2 G2之间的缩放因子仍然未知: DUSt3R将2D图像作为输入,因此不可能直接恢复缩放

  下一步是将从三维基础模型中获得的转换应用到原始的3DGS模型中。这个过程涉及到一系列的转换步骤,如图5所示。我们将坐标系定义如下:对于坐标系 P P P [ G i ] P [Gi]_P [Gi]P表示坐标系P下的3DGS模型 G i G_i Gi。具体来说, P o i P_{oi} Poi是3DGS模型 G i G_i Gi的原始帧,KaTeX parse error: Expected '}', got 'EOF' at end of input: P_{ci{ 是相机产生图像imgi的坐标系。splat模型的原始帧是任意构造的

  我们的目标是得到一个变换函数 T o 2 o 1 T^{o1}_{o2} To2o1 ,它直接将 G 2 G_2 G2转换为 G 1 G_1 G1的坐标系,从而得到:

在这里插入图片描述

  我们遵循图5中的转换序列。在这里, T o 1 c 1 T^{c1}_{o1} To1c1 T o 2 c 2 T^{c2}_{o2} To2c2是world-to-camera的变换,对应于已知图像 i m g 1 img_1 img1 i m g 2 img_2 img2。两个相机姿态之间的转换记为 T c 2 c 1 T^{c1}_{c2} Tc2c1,它包括旋转、平移和缩放( R c 2 c 1 R^{c1}_{c2} Rc2c1 t c 2 c 1 t^{c1}_{c2} tc2c1 s c 2 c 1 s^{c1}_{c2} sc2c1)。我们强调了 R c 2 c 1 R^{c1}_{c2} Rc2c1 t c 2 c 1 t^{c1}_{c2} tc2c1与DUSt3R的输出 T i m g 2 i m g 1 T^{img1}_{img2} Timg2img1相匹配。然而,尺度 s c 2 c 1 s^{c1}_{c2} sc2c1是未知的。根据转换的组合:

在这里插入图片描述
由于world-to-camera的变换都知道绝对尺度, s c 2 c 1 s^{c1}_{c2} sc2c1是两个3DGS模型之间的尺度差异。也就是说, s c 2 c 1 s^{c1}_{c2} sc2c1= s o 2 o 1 s^{o1}_{o2} so2o1。在下面的小节中,我们将估计这个最终的未知参数, s o 2 o 1 s^{o1}_{o2} so2o1,即 G 1 G_1 G1 G 2 G_2 G2之间的尺度比。

3.3 Scale Estimation 尺度估计

  从给定的相机姿态中,深度图可以从标准的3DGS模型[39]中提取,并在初始粗对齐过程中由DUSt3R输出。对深度图的像素级置信度图也被输出。从各自的3DGS模型表示深度图 D 1 , D 2 D_1,D_2 D1,D2 R W × H R^{W×H} RW×H,和从DUSt3R 输出的深度图 D 1 ˉ \bar{D_1} D1ˉ D 2 ˉ \bar{D_2} D2ˉ∈RW×H,以及像素置信图 C 1 C_1 C1 C 2 C_2 C2 R W × H R^{W×H} RW×H

在这里插入图片描述

3.4 Precise Refinement via Photometric Optimization 光度优化微调

  在大致对齐之后,通过渲染 G 1 G_1 G1 G 2 G_2 G2中新位姿 C ˉ \bar{C} Cˉ 的图像来进一步细化对齐。然后,我们最小化渲染图像之间的光度损失,并优化关于我们的变换参数。我们注意到,3DGS模型和渲染的可微性使基于梯度的优化能够传播回转换参数。使用L1距离计算损失(利用二进制指标mask来指示是否在给定的像素,且为相同的pose但分别来自 G 1 G_1 G1 G 2 G_2 G2)。具体来说:

在这里插入图片描述
其中, F F F为生成给定相机姿态的图像和3DGS模型的可微渲染函数。We differentiate L with respect to the parameters of T c 2 c 1 T^{c1}_{c2} Tc2c1,given as R c 2 c 1 R^{c1}_{c2} Rc2c1 t c 2 c 1 t^{c1}_{c2} tc2c1 s c 2 c 1 s^{c1}_{c2} sc2c1

  







d \sqrt{d} d 1 8 \frac {1}{8} 81 x ˉ \bar{x} xˉ x ^ \hat{x} x^ x ~ \tilde{x} x~ ϵ \epsilon ϵ
ϕ \phi ϕ


总结

提示:这里对文章进行总结:

例如:以上就是今天要讲的内容,本文仅仅简单介绍了pandas的使用,而pandas提供了大量能使我们快速便捷地处理数据的函数和方法。

猜你喜欢

转载自blog.csdn.net/qq_45752541/article/details/143321493