解读:DUSt3R: Geometric 3D Vision Made Easy

概述:给定一个无约束图像集,即一组具有未知相机姿态和内在特征的照片,我们提出的 DUSt3R 方法会输出一组相应的点阵图,从中我们可以直接恢复通常难以一次性估算的各种几何量,如相机参数、像素对应关系、深度图和完全一致的三维重建。请注意,DUSt3R 也适用于单一输入图像(例如,在这种情况下实现单目重建)。我们还展示了 DTU、Tanks and Temples 和 ETH-3D 数据集[1, 50, 107]的定性示例,这些数据集是在没有已知相机参数的情况下获得的。每个样本从左到右依次为:输入图像、彩色点云和渲染阴影,以便更好地查看底层几何图形。

摘要

野外多视角立体重建(MVS)需要首先估算相机参数,例如内在和外在参数。这些参数的获取通常既繁琐又麻烦,但却是在三维空间中对相应像素进行三角测量的必要条件,而三角测量正是所有性能最佳的 MVS 算法的核心。在这项工作中,我们采取了相反的立场,并引入了 DUSt3R,这是一种用于任意图像集合的高密度、无约束立体三维重建的全新范式,即在没有摄像机校准或视点姿势等先验信息的情况下进行操作。我们把成对重建问题看作是点阵图的回归,放宽了通常投影相机模型的硬约束。我们展示了这种表述方式顺利地统一了单目和双目重建情况。在提供两幅以上图像的情况下,我们进一步提出了一种简单而有效的全局配准策略,在一个共同的参考框架中表达所有成对的点阵图。我们的网络架构基于标准的变换器编码器和解码器,使我们能够利用强大的预训练模型。我们的方案直接提供了场景的三维模型以及深度信息,但有趣的是,我们可以从中无缝恢复像素匹配、相对和绝对摄像头。对所有这些任务的详尽实验表明,所提出的 DUSt3R 可以统一各种三维视觉任务,并在单目/多目深度估计以及相对姿态估计方面设定新的 SoTA。总之,DUSt3R 使许多几何 3D 视觉任务变得简单。

引言

基于无约束图像的多视角密集三维重建是计算机视觉领域研究已久的终极目标之一[24, 71, 89]。简而言之,这项任务旨在根据一组特定场景的照片,估算出该场景的三维几何形状和相机参数。它不仅应用广泛,如制图 [13, 72] 、导航 [15]、考古 [86, 132]、文化遗产保护 [38]、机器人技术 [78],更重要的是,它在所有三维视觉任务中占有特殊的地位。事实上,它几乎包含了所有其他几何三维视觉任务。因此,现代的三维重建方法是将数十年来在不同子领域取得的进步成果汇集在一起,如关键点检测 [26, 28, 62, 96] 和匹配 [10, 59, 99, 119]、鲁棒性估计 [3, 10, 180]、运动结构(SfM)和捆绑调整(BA) [20, 58, 105]、密集多视图立体(MVS) [106, 138, 157, 175]等。

归根结底,现代 SfM 和 MVS 流程可以归结为解决一系列最基本的问题:匹配点、寻找基本矩阵、三角测量点、稀疏重建场景、估计摄像机,最后执行密集重建。考虑到最近的进步,这种相当复杂的链条在某些情况下当然是一种可行的解决方案[31, 70, 76, 142, 145, 147, 162],但我们认为它并不令人满意:每个子问题都没有得到完美解决,并为下一步增加了噪音,增加了复杂性和管道整体工作所需的工程努力。在这方面,每个子问题之间缺乏交流就很能说明问题:如果它们能互相帮助,似乎会更合理,也就是说,密集重建应该自然而然地受益于为恢复摄像机姿势而构建的稀疏场景,反之亦然。除此之外,这一流程中的关键步骤也很脆弱,在很多情况下很容易崩溃[58]。例如,用于估算所有摄像机参数的 SfM 关键步骤通常在许多常见情况下都会失效,如场景视图数量较少时[108]、对于非朗伯表面的物体[16]、摄像机运动不足时[13]等。这种情况令人担忧,因为归根结底,"MVS 算法的好坏取决于输入图像和摄像机参数的质量"[32]。

在本文中,我们介绍了 DUSt3R,这是一种通过未校准和未摆好姿势的摄像机进行密集无约束立体三维重建的全新方法。该方法的主要组成部分是一个网络,它能仅通过一对图像回归出密集、准确的场景表示,而无需事先了解场景或摄像机的信息(甚至连固有参数都没有)。生成的场景表示基于具有丰富属性的三维点阵图:它们同时囊括了(a)场景几何图形、(b)像素和场景点之间的关系以及(c)两个视点之间的关系。仅从输出结果来看实际上,所有场景参数(即摄像机和场景几何)都可以直接提取。之所以能做到这一点,是因为我们的网络可以联合处理输入图像和生成的三维点阵图,从而学会将二维结构与三维形状联系起来,并有机会同时解决多个最小问题,实现它们之间的内部 "协作"。

我们的模型使用简单的回归损失以完全监督的方式进行训练,并利用大型公共数据集,这些数据集的地面实况注释要么是合成生成的 [68, 103],要么是从 SfM 软件中重建的 [55, 161],要么是使用专用传感器捕获的 [25, 93, 121, 165]。我们偏离了整合特定任务模块的趋势[164],转而采用基于通用变压器架构的完全数据驱动策略,在推理时不强制执行任何几何约束,但能受益于强大的预训练方案。该网络可学习强大的几何和形状先验,这让人想起 MVS 中常用的先验,如从纹理、阴影或轮廓中获得形状 [110]。

为了融合多幅图像对的预测结果,我们在点阵图的情况下重新审视了捆绑调整(BA),从而实现了全面的 MVS。我们引入了全局对齐程序,与 BA 不同,该程序不涉及最小化重投影误差。取而代之的是,我们直接在三维空间中优化摄像机姿态和几何对齐,这种方法速度快,在实践中表现出极佳的收敛性。我们的实验表明,在使用各种未知传感器的真实场景中,不同视图之间的重构是准确和一致的。我们进一步证明,同一架构可以无缝处理现实生活中的单目和多目重建场景。重建示例如图 1 和附带视频所示。

总之,我们的贡献有四个方面。首先,我们提出了第一个从未经校准和未摆放图像的整体端到端三维重建管道,它统一了单目和双目三维重建。其次,我们为 MVS 应用引入了点图表示法,使网络能够预测典型帧中的三维形状,同时保留像素与场景之间的隐含关系。这就有效地放弃了通常透视摄像机表述的许多限制条件。第三,我们引入了一种优化程序,用于在多视角三维重建的背景下全局对齐点阵图。我们的程序可以毫不费力地提取经典 SfM 和 MVS 管道的所有常规中间输出。从某种意义上说,我们的方法统一了所有三维视觉任务,大大简化了传统的重建管道,使 DUSt3R 相比之下显得简单易行。特别是,我们的一体化模型在单目和多目深度基准以及多目相机姿态估计方面取得了最先进的结果。

相关工作

为节省篇幅,我们在此总结了 3D 视觉领域最相关的工作,读者可参阅 C 节的附录了解更全面的回顾。从运动看结构(SfM)[20, 21, 44, 47, 105]旨在重建稀疏的 3D 地图,同时从一组图像中联合确定相机参数。传统的方法是从多幅图像之间的关键点匹配[4, 5, 42, 62, 98]得到的像素对应关系开始确定几何关系,然后进行捆绑调整,共同优化三维坐标和相机参数。最近,SfM 管道得到了大幅改进,特别是将基于学习的技术融入到子流程中。这些改进包括先进的特征描述[26, 28, 96, 134, 166]、更精确的图像匹配[3, 17, 59, 81, 99, 119, 125, 144]、特征度量细化[58]和神经束调整[57, 152]。尽管取得了这些进步,但 SfM 管道的顺序结构依然存在,使其容易受到噪声和每个单独组件错误的影响。多视点立体(MVS)是通过在多个视点之间进行三角测量来密集重建可见表面的任务。在 MVS 的经典表述中,所有相机参数都应作为输入提供。全手工[32, 34, 106, 146, 174]、最新的基于场景优化[31, 70, 75, 76, 142, 145, 147, 162]或基于学习[52, 64, 85, 160, 163, 179]的方法都依赖于通过复杂的校准程序获得的摄像机参数估计,这些校准程序可以是在数据采集过程中[1, 23, 108, 165],也可以是使用 "结构-运动"(Structure-fromMotion)方法[47, 105]进行野外重建。然而,在现实生活中,预先估计的相机参数不准确会影响这些算法的正常工作。在这项工作中,我们建议在不明确摄像机参数的情况下直接预测可见表面的几何形状。直接从 RGB 到 3D最近,有人提出了一些从单张 RGB 图像直接预测 3D 几何图形的方法。由于该问题本质上是一个不确定的问题,不需要引入额外的假设,因此这些方法利用神经网络从大型数据集中学习强大的 3D 先验来解决模糊问题。这些方法可分为两类。第一类是利用类级对象先验。例如,Pavllo 等人[82-84] 建议学习一个模型,该模型可以在大量 2D 图像的基础上,从单张图像中完全恢复形状、姿势和外观。这种方法虽然功能强大,但无法从未曾见过的类别中推断出物体的形状。第二类工作与我们的方法最为接近,主要针对一般场景。这些方法系统地建立或重新使用现有的单目深度估计(MDE)网络 [6, 90, 168, 170]。深度图确实编码了一种三维信息,并与摄像机本征相结合,可直接生成像素对齐的三维点云。例如,SynSin[150] 通过渲染知道所有摄像机参数的特征增强深度图,从单幅图像中合成新的视点。在没有摄像机本征的情况下,一种解决方案是利用视频帧的时间一致性来推断摄像机本征,具体方法是强制执行全局对齐等[155],或利用具有光度重建损失的可微分渲染[36, 116]。另一种方法是明确地学习预测摄像机的内在特征,当与 MDE [167, 169] 结合使用时,可从单个图像执行度量三维重建。然而,所有这些方法本质上都受限于深度估计的质量,可以说这对单目设置来说是个难题。

相比之下,我们的网络同时处理两个视点,以便输出深度图,或者说点图。至少从理论上讲,这使得来自不同视角的光线之间的三角测量成为可能。过去曾有人提出过用于 3D 重建的多视角网络。它们基本上是基于建立一个可区分的 SfM 管道的想法,复制传统管道,但对其进行端到端训练 [130, 135, 183]。然而,这需要地面真实的相机本征作为输入,输出通常是深度图和相对相机姿态 [135,183]。与此相反,我们的网络采用通用架构,输出点图,即三维点的密集二维场,隐式处理相机姿态,使回归问题得到更好的解决。点阵图使用点阵图集合作为形状表示对于 MVS 来说是非常反直觉的,但它在视觉定位任务中的应用却非常广泛,无论是场景相关优化方法 [8, 9, 11] 还是场景无关推理方法 [95, 123, 158]。同样,视图建模也是单目三维重建工作 [56, 112, 126, 140] 和视图合成工作 [150] 的共同主题。其原理是在多个典型视图中存储典型三维形状,以便在图像空间中工作。这些方法通常通过渲染典型表示,利用显式透视相机几何图形。

方法

在详细介绍我们的方法之前,我们先介绍一下点阵图的基本概念。

点映射。点阵图X 与其对应的分辨率为 W × H 的 RGB 图像 I 相结合,在图像像素和三维场景点之间形成了一一对应的映射,即对于所有像素坐标 (i, j) ∈ {1 .. .W }× {1 . . .H}.这里我们假设每个相机射线击中一个3D点,忽略半透明表面的情况。

摄像机和场景。给定摄像机本征 K∈R、观测场景的点图X可以从地面实况深度图D直接得到∈R为X = K [iD, jD, D]。在这里,X 表示在相机坐标系中。在下文中,我们将相机 n 的点图 X 表示为 X,该点图以相机 m 的坐标系表示:

其中 P ∈ 是图像 n 和 m 的世界到相机的姿态,h : (x, y, z) → (x, y, z, 1) 齐次映射。

概述

我们希望建立一个网络,通过直接回归解决广义立体情况的 3D 重建任务。为此,我们训练了一个网络 F,该网络将 2 个 RGB 图像 I、I ∈ R 作为输入,并输出 2 个相应的点 X、X ∈ R,以及相关的置信度图 C、C ∈ R。请注意,两个点图都以 I 的同一坐标系表示,这与现有方法截然不同,但具有关键优势(参见第 1、2、3.3 和 3.4 节)。为了清晰起见,在不损失泛化的情况下,我们假设两个图像具有相同的分辨率W × H,但在实践中它们的分辨率自然会有所不同。

网络架构。我们的网络 F 的架构受到 CroCo [149] 的启发,因此很容易从 CroCo 预训练 [148] 中获益匪浅。如图 2 所示,它由两个相同的分支(每个图像一个)组成,每个分支包括一个图像编码器、一个解码器和一个回归头。两个输入图像首先由相同的权重共享ViT编码器[27]以连体方式编码,产生两个标记表示F和F:

然后,网络在解码器中对它们进行联合推理。与CroCo[149]类似,解码器是一个通用的transformer网络,配备了交叉注意力。因此,每个解码器块按顺序执行自注意力(每个视图的标记处理同一视图的标记),然后交叉注意(视图的每个标记处理另一个视图的所有其他标记),最后将标记提供给 MLP。重要的是,在解码器传递期间,两个分支之间不断共享信息。这对于输出正确对齐的点图至关重要。也就是说,每个解码器块都处理来自另一个分支的令牌:

对于 i = 1, . . . , B 表示具有 B 块并使用编码器标记 G := F 和 G := F 初始化的解码器。这里,DecoderBlock (G, G) 表示分支 v 中的第 i 个块 ∈ {1, 2},G 和 G 是输入标记,G 是来自另一个分支的标记。最后,在每个分支中,一个单独的回归头获取解码器标记集,并输出点图和关联的置信度图:

讨论。输出点图 X 和 X 将回归到未知比例因子。此外,应该注意的是,我们的通用架构从未明确地强制执行任何几何约束。因此,点图不一定与任何物理上合理的相机模型相对应。相反,我们让网络从训练集中学习所有相关的先验,训练集只包含几何一致的点图。使用通用架构可以利用强大的预训练技术,最终超越现有的特定于任务的架构所能实现的目标。我们将在下一节中详细介绍学习过程。

训练目标

3D 回归损失。我们唯一的训练目标是基于 3D 空间中的回归。让我们将 groundtruth 点图表示为X11 和X21,由式(1)得到以及两组相应的有效像素 D、D属于 {1 . . .W }× {1 . . .H} 上定义的地面实况。视图 v∈{1, 2} 中有效像素 i∈D 的回归损失简单定义为欧氏距离:

为了处理预测和地面实况之间的尺度模糊性,我们用比例因子 z = norm(X, X) 和 ̄z = norm( ̄) 对预测点图和地面实况点图进行归一化处理,X,X),它们分别简单地代表了

发送所有有效点到原点的平均距离:

可信度感知损耗。在现实中,与我们的假设相反,存在一些不明确的三维点,例如天空中或半透明物体上的点。一般来说,图像中的某些部分通常比其他部分更难预测。因此,我们共同学习为每个像素预测一个分数,该分数代表网络对该特定像素的置信度。最终的训练目标是公式 (2) 中所有有效像素的置信度加权回归损失:

其中 C是像素 i 的置信度得分,α 是一个控制正则化项的超参数 [136]。为了确保严格的正置信度,我们通常定义

网络可以在较难的区域进行推断,例如单个视图所覆盖的区域。根据这一目标训练网络 F,就可以在没有明确监督的情况下估算出置信度分数。图 3 和附录中的图 4、图 5 和图 8 显示了输入图像对及其相应输出的示例。

下游应用

输出点阵图的丰富属性使我们可以相对轻松地执行各种便捷的操作。

点匹配。在三维点阵图空间中通过近邻(NN)搜索可以轻松建立两幅图像像素之间的对应关系。为了尽量减少误差,我们通常会保留图像 I 和 I 之间的互惠(相互)对应关系 M,即我们有

恢复本征根据定义,点阵图 X 是以 I 的坐标框架表示的。因此,可以通过解决一个简单的优化问题来估计摄像机的固有参数。在本文中,我们假设主点近似居中,像素为正方形,因此只需估算焦点 f:

相对姿态估计可以通过几种方式实现。一种方法是如上所述进行二维匹配并恢复本征,然后估计外极矩阵并恢复相对姿态[44]。另一种更直接的方法是使用 Procrustes alignment [63] 比较点图 X ↔ X(或等价于 X ↔ X),得到相对姿态 P = [R|t]:

可以通过闭合形式实现。遗憾的是,Procrustes alignment 对噪声和异常值很敏感。一个更稳健的解决方案是使用 RANSAC [30] 和 PnP [44, 51]。

绝对姿态估计(也称视觉定位)同样可以通过几种不同的方法实现。让 I 表示查询图像,I 表示有 2D-3D 对应关系的参考图像。首先,可以通过 X 估算 I 的本征。一种方法是获取 I 和 I 之间的 2D 对应关系,进而得到 I 的 2D-3D 对应关系,然后运行 PnP-RANSAC [30, 51]。另一种解决方案是如前所述获取 I 和 I 之间的相对姿态。然后,我们根据 X 与 I 的地面实况点图之间的比例,通过适当缩放将姿态转换为世界坐标。

全局对齐

目前介绍的网络 F 只能处理一对图像。我们现在介绍一种针对整个场景的快速而简单的后处理优化方法,它可以将多幅图像中预测的点阵图对齐到一个联合三维空间中。这要归功于我们点阵图的丰富内容,它通过设计包含了两个对齐的点云及其相应的像素到三维映射。

配对图。给定场景的一组图像 {I, I, .我们首先构建一个连接图 G(V,E),其中 N 幅图像构成顶点 V,每条边 e = (n, m) ∈ E 表示图像 I 和 I 共享某些视觉内容。为此,我们要么使用现有的现成图像检索方法,要么通过网络 F 传递所有图像对(在 H100 GPU 上推理时间≈40ms)。并根据两对的平均置信度来衡量它们的重叠,然后我们过滤掉低置信度对。

全局优化。我们使用连通性图 G 来恢复所有相机的全局对齐点图 {χ ∈ R} n = 1 . . .N .为此,我们首先预测,对于每个图像对 e = (n, m) ∈ E,成对点图 X、X 及其相关的置信度图 C、C。为了清楚起见,让我们定义 X := X 和 X := X。由于我们的目标是在一个公共坐标系中旋转所有成对预测,因此我们引入了一个成对姿态 P ∈ R 和与每对 e ∈ E 相关的缩放 0 σ >。然后,我们提出以下优化问题:

恢复相机参数。一个直截了当的此框架的扩展可以恢复所有相机参数。通过简单地替换 χ :=

(即执行标准相机针孔模型如式(1)所示),因此我们可以估计所有相机姿态{P}、相关的内在函数{K}和深度图{D},当n = 1时。N .讨论。我们指出,与传统的捆绑调整相反,这种全局优化在实践中执行起来既快速又简单。事实上,我们并没有像束平差那样最小化 2D 重投影误差,而是最小化 3D 投影误差。优化使用标准梯度下降进行,通常在几百步后收敛,在标准 GPU 上只需几秒钟。

实验

训练数据。我们使用八个数据集的混合来训练我们的网络:Habitat [103]、MegaDepth [55]、ARKitScenes [25]、MegaDepth [55]、Static Scenes 3D [68]、Blended MVS [161]、ScanNet++ [165]、CO3D-v2 [93] 和韦莫[121]。这些数据集具有不同的场景类型:室内、室外、合成、真实世界、以对象为中心等。当数据集中没有直接提供图像对时,我们根据 [148] 中描述的方法提取它们。具体来说,我们利用现成的图像检索和点匹配算法来匹配和验证图像对。总而言之,我们总共提取了 8.5M 对。培训详情。在每个时期,我们从每个数据集中随机抽取相同数量的对,以均衡数据集大小的差异。我们希望将相对高分辨率的图像提供给我们的网络,比如最大维度的 512 像素。为了降低与此类输入相关的高成本,我们按顺序训练我们的网络,首先在 224×224 张图像上训练,然后在更大的 512 像素图像上训练。我们随机选择每批图像的纵横比(例如 16/9、4/3 等),以便在测试时我们的网络熟悉不同的图像形状。我们只需将图像裁剪到所需的纵横比,并调整大小,使最大尺寸为 512 像素。

我们总体上使用标准的数据增强技术和培训设置。我们的网络架构包括用于编码器的 Vit-Large [27]、用于解码器的 ViT-Base 和 DPT 头 [90]。有关培训和架构的更多详细信息,请参阅 F 节中的附录。在训练之前,我们使用现成的CroCo预训练模型的权重初始化我们的网络[148]。Cross-View Completion (CroCo) 是最近提出的一种受 MAE [45] 启发的预训练范式,已被证明在各种下游 3D 视觉任务中表现出色,因此特别适合我们的框架。我们在第 4.6 节中消融了 CroCo 预训练的影响并提高了图像分辨率。

评估。在本节的其余部分,我们将根据一组具有代表性的经典 3D 视觉任务对 DUSt3R 进行基准测试,每次都指定数据集、指标并将性能与现有的最先进方法进行比较。我们强调,所有结果都是使用相同的 DUSt3R 模型获得的(我们的默认模型表示为“DUSt3R 512”,其他 DUSt3R 模型用于第 4.6 节中的消融),即我们从不对特定下游任务的模型进行微调。在测试期间,所有测试图像都会重新缩放到 512 像素,同时保留其纵横比。由于可能存在不同的'routes' 从 DUSt3R 中提取特定于任务的输出,如在第 3.3 节和第 3.4 节中描述,我们每次精确采用的方法。

定性结果。即使在具有挑战性的情况下,DUSt3R 也能生成高质量的高密度三维重建。我们请读者参阅 B 章的附录,了解成对和多视角重建的非樱桃采摘可视化效果。

视觉定位

数据集和度量标准我们首先在 7Scenes [113] 和 Cambridge Landmarks 数据集 [48] 上对 DUSt3R 的绝对姿态估计任务进行了评估。7Scenes 包含 7 个室内场景,其中有来自视频的 RGB-D 图像及其 6-DOF 摄像机姿势。Cambridge-Landmarks 包含 6 个室外场景的 RGB 图像及其相关的摄像机姿势,这些姿势是通过 SfM 获取的。我们报告了平移和旋转误差的中位数,单位分别为(厘米/)。协议和结果为了计算世界坐标中的摄像机姿态,我们使用 DUSt3R 作为查询和使用现成图像检索 APGeM [94] 获得的最相关数据库图像之间的 2D-2D 像素匹配器(见第 3.3 节)。换句话说,我们只需使用由 F(I,I)输出的原始点阵图,无需任何细化,其中 I 是查询图像,I 是数据库图像。我们使用剑桥地标的前 20 张检索图像和 7Scenes 的前 1 张检索图像,并利用已知的查询内在要素。关于不使用地面真实内在参数的结果,请参阅 E 节的附录。

在表 1 中,我们针对两个数据集的每个场景将我们的结果与最新技术进行了比较。我们的方法获得了与现有方法相当的精度,无论是特征匹配方法 [100, 102] 还是基于端到端学习的方法 [11, 54, 101, 124, 151],甚至在某些情况下还能超越 HLoc [100] 等强大的基准方法。我们认为这有两个重要原因。首先,DUSt3R 从未接受过任何视觉定位训练。其次,在 DUSt3R 的训练过程中,我们既没有看到查询图像,也没有看到数据库图像。

多视觉姿态估计

现在,我们将评估 DUSt3R 在 3.4 节进行全局配准后的多视角相对姿态估计。数据集。按照文献 [139],我们使用 CO3Dv2 [93] 和 RealEstate10k [185] 两个多视角数据集进行评估。CO3Dv2 包含从大约 37k 个视频中提取的 600 万帧图像,涵盖 51 个 MS-COCO 类别。使用 COLMAP 对每段视频中的 200 个帧进行了地面真实摄像机姿势注释。RealEstate10k 是一个室内/室外数据集,从 YouTube 上的约 8 万个视频片段中提取了 1 千万帧,摄像机姿势是通过 SLAM 和捆绑调整获得的。我们按照 [139] 中介绍的协议,在 CO3Dv2 的 41 个类别和 RealEstate10k 测试集中的 1.8K 视频片段上对 DUSt3R 进行了评估。对于每个序列,我们随机选择 10 个帧,并将所有可能的 45 对帧输入 DUSt3R。

基准和度量。我们将通过 PnP-RANSAC 或全局配准获得的 DUSt3R 姿态估计结果与基于学习的 RelPose [176]、PoseReg [139] 和 PoseDiffusion [139],以及基于结构的 PixSFM [58]、COLMAP+SPSG(COLMAP [106] 扩展了 SuperPoint [26] 和 SuperGlue [99])进行了比较。与文献[139]类似,我们报告每对图像的相对旋转精度(RRA)和相对平移精度(RTA),以评估相对姿态误差,并选择阈值 τ = 15 来报告 RTA@15 和 RRA@15。此外,我们还计算了平均精度(mAA)@30,其定义为最小值(RRA@30,RTA@30)处角度差异的曲线下面积精度。

结果如表 2 所示。如表 2 所示,采用全局配准的 DUSt3R 在两个数据集上取得了最佳的整体性能,大大超过了最先进的 PoseDiffusion [139]。此外,采用 PnP 的 DUSt3R 也比现有的学习方法和基于结构的方法表现出更优越的性能。值得注意的是,PoseDiffusion 的 RealEstate10K 结果是在 CO3Dv2 上训练出来的模型。尽管如此,考虑到在 DUSt3R 的训练过程中也没有使用 RealEstate10K,我们认为我们的比较是合理的。我们还在附录(D 章)中报告了在输入视图较少(3 到 10 个之间)的情况下的性能,在这种情况下,DUSt3R 在两个基准测试中都取得了优异的成绩。

单目深度

对于这项单目任务,我们只需将相同的输入图像 I 作为 F(I,I)输入网络即可。根据设计,深度预测只是预测三维点图中的 Z 坐标。

数据集和衡量标准。我们在以下平台上对 DUSt3R 进行了基准测试两个室外数据集(DDAD [40]、KITTI [35])和三个室内数据集(NYUv2 [114]、BONN [79]、TUM [118])。我们将 DUSt3R 的性能与最先进的方法进行了比较,这些方法分为监督式、自监督式和零拍摄式,最后一类与 DUSt3R 相对应。我们使用了单目深度评估中常用的两个指标[6, 116]:目标 y 与预测值 ˆy 之间的绝对相对误差 AbsRel(AbsRel = |y - ˆy|/y),以及预测阈值精度 δ = max(ˆy/y, y/ˆy)< 1.25。

结果。在零镜头设置中,最新的 SlowTv [116] 代表了目前的技术水平。这种方法收集了大量城市、自然、合成和室内场景的混合数据集,并训练了一个通用模型。对于混合物中的每个数据集,摄像机参数都是已知的,或者是用 COLMAP 估算的。如表 2 所示,DUSt3R 能够很好地适应室外和室内环境。它的表现优于自监督基线 [6、37、120],与最先进的监督基线 [90、173] 不相上下。

多视觉深度

我们评估了DUSt3R的多视图立体深度估计任务。同样,我们将深度图提取为预测点图的 z 坐标。在同一张图像有多个深度图的情况下,我们重新调整所有预测以将它们对齐在一起,并通过按置信度加权的简单平均来聚合所有预测。

数据集和指标。继[109]之后,我们在DTU[1]、ETH3D [108]、Tanks and Temples [49]和ScanNet [23]数据集上对其进行了评估。我们报告了每个测试集的绝对相对误差 (rel) 和内利尔比 (τ),阈值为 1.03,以及所有测试集的平均值。请注意,我们既不利用地面实况相机参数和姿势,也不利用地面实况深度范围,因此我们的预测仅在比例因子内有效。因此,为了进行定量测量,我们使用预测深度的中位数和真实深度的中位数来归一化预测,正如[109]所倡导的那样。

结果。我们在表 3 中观察到,DUSt3R 在 ETH-3D 上实现了最先进的精度,并且总体上优于最新的最先进的方法,即使是那些使用地面实况相机姿势的方法也是如此。从时间上看,我们的方法也比传统的COLMAP管道快得多[105,106]。这展示了我们的方法在各种领域的适用性,无论是室内、室外、小规模还是大规模场景,而自列车分裂以来,除了 ScanNet 测试集外,没有在测试领域接受过训练是 Habitat 数据集的一部分。

3D重建

最后,我们测量了在第 3.4 节中描述的全局对齐程序之后获得的完整重建的质量。我们再次强调,我们的方法是第一个启用全局无约束MVS的方法,从某种意义上说,我们对相机的内在和外在参数没有先验知识。为了量化重建的质量,我们只需将预测与地面实况坐标系对齐即可。这是通过将参数固定为第 3.4 节中的常量来完成的。这导致在地面实况坐标系中表示的一致的 3D 重建。

数据集和指标。我们在 DTU [1] 数据集上评估了我们的预测。我们在零样本设置中应用我们的网络,即我们不对 DTU 列车集进行微调并按原样应用我们的模型。在表 4 中,我们报告了基准作者提供的平均准确率、平均完整性和总体平均误差指标。重建形状的点的精度定义为到地面实况的最小欧几里得距离,而地面实况点的完整性定义为到重建形状的最小欧几里得距离。总体只是前两个指标的平均值。

结果。我们的方法没有达到最佳方法的准确度水平。在我们的辩护中,这些方法都利用——年龄 GT 在适用的情况下专门在 DTU 列车上摆姿势和训练。此外,这项任务的最佳结果通常是通过亚像素精确的三角测量获得的,需要使用明确的相机参数,而我们的方法依赖于回归,众所周知,回归的准确性较低。然而,在没有事先了解相机的情况下,我们达到了 2.7 毫米的平均精度,完整性为 0.8 毫米,整体平均距离为 1.7 毫米。考虑到我们方法的即插即用性质,我们相信这种准确性水平在实践中非常有用。

结论

我们提出了一种新颖的范式,不仅可以在没有场景或摄像机的先验信息的情况下解决野外 3D 重建问题,还可以解决各种 3D 视觉任务。

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

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

相关文章

【PCIe】 PCIe 拓扑结构与分层结构

&#x1f525;博客主页&#xff1a;PannLZ 文章目录 PCIe拓扑结构PCIe分层结构 PCIe拓扑结构 计算机网络中的拓扑结构源于拓扑学(研究与大小、形状无关的点、线关系的方法)。 把网络中的计算机和通信设备抽象为一个点&#xff0c;把传输介质抽象为一条线&#xff0c;由点和线组…

【物联网】stm32芯片结构组成,固件库、启动过程、时钟系统、GPIO、NVIC、DMA、UART以及看门狗电路的全面详解

一、stm32的介绍 1、概述 stm32: ST&#xff1a;指意法半导体 M&#xff1a;指定微处理器 32&#xff1a;表示计算机处理器位数 与ARM关系:采用ARM推出cortex-A&#xff0c;R,M三系中的M系列&#xff0c;其架构主要基于ARMv7-M实现 ARM分成三个系列&#xff1a; Cortex-A&…

【排序算法】推排序算法解析:从原理到实现

目录 1. 引言 2. 推排序算法原理 3. 推排序的时间复杂度分析 4. 推排序的应用场景 5. 推排序的优缺点分析 5.1 优点&#xff1a; 5.2 缺点&#xff1a; 6. Java、JavaScript 和 Python 实现推排序算法 6.1 Java 实现&#xff1a; 6.2 JavaScript 实现&#xff1a; 6.…

K8S之实现业务的金丝雀发布

如何实现金丝雀发布 金丝雀发布简介优缺点在k8s中实现金丝雀发布 金丝雀发布简介 金丝雀发布的由来&#xff1a;17 世纪&#xff0c;英国矿井工人发现&#xff0c;金丝雀对瓦斯这种气体十分敏感。空气中哪怕有极其微量的瓦斯&#xff0c;金丝雀也会停止歌唱&#xff1b;当瓦斯…

【JS逆向学习】猿人学 第五题 js混淆 乱码

逆向目标 网址&#xff1a;https://match.yuanrenxue.cn/match/5接口&#xff1a;https://match.yuanrenxue.cn/api/match/5?page2&m1709806560791&f1709806560000参数&#xff1a; Cookie(m、RM4hZBv0dDon443M)payload(m、f) 逆向过程 老规矩&#xff0c;上来先分…

第24集《灵峰宗论导读》

请大家打开讲义第79面。 在第一段呢蕅益大师先讲到这个诸法实相的妙理&#xff0c;说从我们现前一念心性来观察诸法实相有两个角度&#xff1a; 第一个角度呢就是当我们摄用归体的时候&#xff0c;所谓万法唯识一心的时候&#xff0c;这个时候我们会发觉三世诸佛&#xff0c;…

vue实现文字手工动态打出效果

vue实现文字手工动态打出效果 问题背景 本文实现vue中&#xff0c;动态生成文字手动打出效果。 问题分析 话不多说&#xff0c;直接上代码&#xff1a; <template><main><button click"makeText"><p class"text">点击生成内容…

启动vue项目执行npm run serve报错 : error in ./src/element-variables.scss

error in ./src/element-variables.scss 问题原因 node-sass的版本问题 解决方式 我直接更新了一下node-sass&#xff0c;就好了 npm install node-sass 再次执行就可以执行成功了

如何设置WhatsApp Business账号?

WhatsApp Business是WhatsApp为企业打造的一款应用程序&#xff0c;旨在帮助企业与客户更轻松地互动。如果您是一家出海企业&#xff0c;想要更好地与客户沟通&#xff0c;那么WhatsApp Business账号是您不可或缺的工具。 以下是设置WhatsApp Business账号的步骤&#xff1a; …

AIGC绘画关键词 - 写实少女

Unity3D特效百例案例项目实战源码Android-Unity实战问题汇总游戏脚本-辅助自动化Android控件全解手册再战Android系列Scratch编程案例软考全系列Unity3D学习专栏蓝桥系列ChatGPT和AIGC &#x1f449;关于作者 专注于Android/Unity和各种游戏开发技巧&#xff0c;以及各种资源分…

MongoDB黑窗口操作(CRUD)

目录 连接数据库 插入数据 for循环插入数据 根据条件查询 修改数据 删除数据 连接数据库 对应路径下cmd中输入命令mongo即可 插入数据 j{name:"mongo"} t{x:3} 提交&#xff1a;db.things.svae(j);db.things.svae(t); 查询&#xff1a;db.things.find(); …

Java面试挂在线程创建后续,不要再被八股文误导了!创建线程的方式只有1种

线程创建之源 OK&#xff01;咱们闲话少叙&#xff0c;直接进入正题&#xff0c;回顾一下通过实现Runnable接口&#xff0c;重写run方法创建线程的方式&#xff0c;真的可以创建一个线程吗&#xff1f;来看下面这段demo。 【代码示例1】 public class Test implements Runnab…

信号处理--使用CNN+LSTM实现单通道脑电信号EEG的睡眠分期评估

目录 背景 亮点 环境配置 数据 方法 结果 代码获取 参考文献 背景 睡眠对人体健康很重要。监测人体的睡眠分期对于人体健康和医疗具有重要意义。 亮点 架构在第一层使用两个具有不同滤波器大小的 CNN 和双向 LSTM。 CNN 可以被训练来学习滤波器&#xff0c;以从原始…

redis缓存(穿透, 雪崩, 击穿, 数据不一致, 数据并发竞争 ), 分布式锁(watch乐观锁, setnx, redission)

redis的watch缓存机制 WATCH 机制原理&#xff1a; WATCH 机制&#xff1a;使用 WATCH 监视一个或多个 key , 跟踪 key 的 value 修改情况&#xff0c;如果有key 的 value 值在事务 EXEC 执行之前被修改了&#xff0c;整个事务被取消。EXEC 返回提示信息&#xff0c;表示 事务已…

Linux安装,配置,启动HBase

Linux安装&#xff0c;配置&#xff0c;启动HBase 一、HBase安装&#xff0c;配置 1、下载HBase安装包 Hbase官方下载地址: http://archive.apache.org/dist/hbase 选择相应的版本点击下载&#xff0c;这里以2.3.5为例 # linux可以通过wget命令下载 wget https://archive…

Windows11安装FFmpeg最新版本

打开终端: 输入 winget install ffmpeg 然后输入 Y 回车后出现如下图: 正在下载FFmpeg 6.1 安装成功 测试

STM32CubeIDE基础学习-STM32CubeIDE软件配置下载器方法

STM32CubeIDE基础学习-STM32CubeIDE软件配置下载器方法 文章目录 STM32CubeIDE基础学习-STM32CubeIDE软件配置下载器方法前言第1章 配置ST-LINK下载器第2章 配置DAP下载器总结 前言 这个软件编译完之后&#xff0c;可以使用下载器进行在线下载程序或仿真调试程序&#xff0c;也…

050-WEB攻防-PHP应用文件包含LFIRFI伪协议编码算法无文件利用黑白盒

050-WEB攻防-PHP应用&文件包含&LFI&RFI&伪协议编码算法&无文件利用&黑白盒 #知识点&#xff1a; 1、文件包含-原理&分类&危害-LFI&RFI 2、文件包含-利用-黑白盒&无文件&伪协议 演示案例&#xff1a; ➢文件包含-原理&分类&am…

设计模式(工厂模式)

设计模式&#xff08;工厂模式&#xff09; 一、工厂模式介绍 在工厂模式中&#xff0c;父类决定生成示例的方式&#xff0c;但不决定所要生成的具体的类&#xff0c;具体的处理部分交给子类负责。这样就可以将生成示例的框架和生成示例的类解耦。 二、示例程序 以下示例程…

力扣-数组题

1. 两数之和 找出map中是否有target-nums[i]&#xff0c; class Solution { public:vector<int> twoSum(vector<int>& nums, int target) {unordered_map<int, int> hash;for(int i 0 ;i < nums.size(); i){if(hash.find(target - nums[i]) ! hash…