专栏名称: 学姐带你玩AI
这里有人工智能前沿信息、算法技术交流、机器学习/深度学习经验分享、AI大赛解析、大厂大咖算法面试分享、人工智能论文技巧、AI环境工具库教程等……学姐带你玩转AI!
目录
相关文章推荐
泉安安海在线  ·  泉州晋江国际机场最新通告 ·  昨天  
泉安安海在线  ·  泉州晋江国际机场最新通告 ·  昨天  
海峡都市报闽南新闻  ·  36个教学班!新增学位1800个!泉州九中城 ... ·  3 天前  
海峡都市报闽南新闻  ·  36个教学班!新增学位1800个!泉州九中城 ... ·  3 天前  
海峡都市报闽南新闻  ·  事发泉州!一皮卡车突然冲进商场,现场画面曝光 ·  3 天前  
51好读  ›  专栏  ›  学姐带你玩AI

DUSt3R爆火!立体建模取代Sora!2秒重建一个3D模型

学姐带你玩AI  · 公众号  ·  · 2024-06-24 18:30

正文

来源:投稿  作者:橡皮
编辑:学姐

论文链接:https://arxiv.org/abs/2312.14132

项目主页:https://github.com/naver/dust3r

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

unset unset 摘要: unset unset

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

unset unset 1.引言 unset unset

基于图像的无约束多视角密集 3D 重建是计算机视觉领域长期研究的几个最终目标之一。简而言之,该任务旨在根据给定的一组特定场景的照片,估计该场景的 3D 几何和相机参数。它不仅具有测绘、导航、考古、文化遗产保护、机器人等众多应用,而且也许更重要的是,它在所有 3D 视觉任务中占有特殊的地位。事实上,它涵盖了几乎所有其他几何 3D 视觉任务。因此,现代 3D 重建方法汇集了各个子领域数十年来的进步成果,例如关键点检测和匹配、稳健估计、运动结构 (SfM) 和捆绑调整 (BA)、密集多视图立体 (MVS) 等。

最后,现代 SfM 和 MVS 管道归结为解决一系列最小问题:匹配点、查找基本矩阵、三角测量点、稀疏重建场景、估计相机并最终执行密集重建。考虑到最近的进展,这个相当复杂的链条当然在某些情况下是一个可行的解决方案,但我们认为它并不令人满意:每个子问题都没有得到完美解决,并为下一步增加了噪音,增加了复杂性和管道作为一个整体工作所需的工程工作量。在这方面,每个子问题之间缺乏沟通是很能说明问题的:如果它们互相帮助,这似乎更合理,即密集重建应该自然受益于为恢复相机姿势而构建的稀疏场景,反之亦然。最重要的是,这个管道中的关键步骤很脆弱,在许多情况下容易中断。例如,SfM 的关键阶段用于估计所有相机参数,通常在许多常见情况下会失败,例如当场景视图数量较少时、对于具有非朗伯表面的物体、在相机运动不足的情况下等。这是令人担忧的,因为最终“MVS 算法的好坏取决于输入图像和相机参数的质量”。

在本文中,我们介绍了 DUSt3R ,这是一种全新的方法,用于从未校准和未调整姿势的相机中进行密集无约束立体 3D 重建。 主要组件是一个网络,它可以仅从一对图像中回归密集而准确的场景表示,而无需有关场景或相机的先验信息(甚至没有内在参数)。 生成的场景表示基于具有丰富属性的 3D 点图:它们同时封装了 (a) 场景几何、(b) 像素和场景点之间的关系以及 (c) 两个视点之间的关系。仅从这个输出中,就可以直接提取几乎所有场景参数(即相机和场景几何)。这是可能的,因为我们的网络联合处理输入图像和生成的 3D 点图,从而学习将 2D 结构与 3D 形状关联起来,并有机会同时解决多个最小问题,从而实现它们之间的内部“协作”。

我们的模型采用全监督方式训练,使用简单的回归损失,利用大型公共数据集,其中的真实注释要么是合成生成的,要么是从 SfM 软件重建的,要么是使用专用传感器捕获的。我们摆脱了集成特定任务模块的趋势,而是采用了基于通用转换器架构的完全数据驱动策略,在推理时不强制任何几何约束,但能够从强大的预训练方案中受益。网络学习强大的几何和形状先验,这让人想起 MVS 中常用的先验,例如从纹理、阴影或轮廓中获取形状。

为了融合来自多个图像对的预测,我们重新审视了点图情况下的捆绑调整 (BA),从而实现了全尺寸 MVS。我们引入了一个全局对齐程序,与 BA 相反,它不涉及最小化重新投影误差。相反,我们直接在 3D 空间中优化相机姿势和几何对齐,这在实践中速度很快并且表现出出色的收敛性。我们的实验表明,在具有各种未知传感器的实际场景中,重建在视图之间是准确且一致的。我们进一步证明,相同的架构可以无缝处理现实生活中的单目和多视图重建场景。重建示例如图 1 和随附视频所示。

总之, 我们的贡献有四个方面。 首先,我们提出了第一个整体端到端 3D 重建流程,该流程从未校准和未摆姿势的图像中进行,统一了单目和双目 3D 重建。其次,我们为 MVS 应用引入了点图表示,使网络能够在规范框架中预测 3D 形状,同时保留像素和场景之间的隐式关系。这有效地消除了通常透视相机公式的许多限制。第三,我们引入了一个优化程序,以在多视图 3D 重建的背景下全局对齐点图。我们的程序可以毫不费力地提取经典 SfM 和 MVS 流程的所有常见中间输出。从某种意义上说,我们的方法统一了所有 3D 视觉任务,并且大大简化了传统的重建流程,相比之下,DUSt3R 显得简单易用。第四,我们在一系列 3D 视觉任务中展示了良好的性能,特别是我们的一体化模型在单目和多视图深度基准以及多视图相机姿势估计上取得了最先进的结果。

unset unset 2.相关工作 unset unset

为了节省篇幅,我们在此总结了 3D 视觉中最相关的工作,并请读者参阅 C 节中的附录以获得更全面的回顾。

运动结构(SfM) 旨在重建稀疏的 3D 地图,同时从一组图像中联合确定相机参数。传统流程从多幅图像之间的关键点匹配获得的像素对应关系开始,以确定几何关系,然后进行捆绑调整以联合优化 3D 坐标和相机参数。最近,SfM 流程经历了重大改进,特别是将基于学习的技术融入其子流程。这些改进包括高级特征描述、更准确的图像匹配、特征度量细化和神经捆绑调整。尽管取得了这些进步,但 SfM 流程的顺序结构仍然存在,使其容易受到每个单独组件中的噪声和错误的影响。

多视角立体视觉 (MVS) 是一项密集重建可见表面的任务,它通过多个视点之间的三角测量来实现。在 MVS 的传统公式中,所有相机参数都应作为输入提供。完全手工制作的、较新的基于场景优化的或基于学习的方法都依赖于通过复杂的校准程序获得的相机参数估计,无论是在数据采集期间还是使用 Structure-from-Motion 方法进行野外重建。然而,在现实生活中,预先估计的相机参数的不准确性可能会不利于这些算法的正常工作。在这项工作中,我们建议直接预测可见表面的几何形状,而无需任何相机参数的明确知识。

直接 RGB 转 3D。 最近,提出了一些旨在从单个 RGB 图像直接预测 3D 几何形状的方法。由于该问题本质上是不适当的,无需引入额外的假设,因此这些方法利用从大型数据集中学习强大 3D 先验的神经网络来解决歧义问题。这些方法可以分为两类。第一组利用类级对象先验。例如,Pavllo 等人提出学习一个模型,该模型可以在给定大量 2D 图像的情况下从单个图像中完全恢复形状、姿势和外观。虽然这种方法很强大,但它不允许从看不见的类别中推断物体的形状。第二组工作与我们的方法最接近,而是专注于一般场景。这些方法系统地建立在现有的单目深度估计 (MDE) 网络之上或重新使用它们。深度图确实编码了一种 3D 信息,与相机内在函数相结合,可以直接产生像素对齐的 3D 点云。例如,SynSin 通过在了解所有相机参数的情况下渲染特征增强深度图,从单个图像执行新视点合成。如果没有相机本征,一种解决方案是通过利用视频帧中的时间一致性来推断它们,要么通过强制执行全局对齐等,要么通过利用具有光度重建损失的可微分渲染。另一种方法是明确学习预测相机本征,这使得与 MDE 结合时可以从单个图像执行度量 3D 重建。然而,所有这些方法本质上都受到深度估计质量的限制,这对于单目设置来说可以说是不适定的。

相比之下,我们的网络同时处理两个视点以输出深度图,或者更确切地说是点图。至少在理论上,这使得来自不同视点的射线之间的三角测量成为可能。过去曾提出过用于 3D 重建的多视图网络。它们本质上是基于构建可微分 SfM 管道的想法,复制传统管道但对其进行端到端训练。然而,为此,需要地面实况相机内在函数作为输入,输出通常是深度图和相对相机姿势。相比之下,我们的网络具有通用架构并输出点图,即 3D 点的密集 2D 场,它可以隐式处理相机姿势并使回归问题更好地呈现。

点图。 使用点图集合作为形状表示对于 MVS 来说是相当违反直觉的,但它在视觉定位任务中被广泛使用,无论是在场景相关的优化方法中还是在场景无关的推理方法中。同样,视图建模是单目 3D 重建工作和视图合成工作中的一个常见主题。其思想是将规范的 3D 形状存储在多个规范视图中以在图像空间中工作。这些方法通常通过渲染规范表示来利用显式透视相机几何。

unset unset 3.方法 unset unset

在深入研究我们的方法的细节之前,我们首先介绍点图的基本概念。

点图。 在下文中,我们将 3D 点的密集 2D 场表示为点图 。与其对应的分辨率为 W × H 的 RGB 图像 I 相关联,X 形成图像像素和 3D 场景点之间的一一映射,即对于所有像素坐标 。我们在此假设每条相机光线都照射到一个 3D 点,即忽略半透明表面的情况。

相机和场景。 给定相机本征 ,观察到的场景的点图 X 可以直接从真实深度图 D ∈ 获得,即 。这里,X 在相机坐标系中表示。在下文中,我们将相机 n 的点图 表示为 ,在相机 m 的坐标系中表示:

其中 表示图像 n 和 m 的世界到相机姿势, 表示齐次映射。

3.1. 概述

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

图 2. 网络 F 的架构。首先使用共享 ViT 编码器以连体方式对场景的两个视图 (I 1 , I2 ) 进行编码。然后将得到的标记表示 F 1 和 F 2 传递给两个 Transformer 解码器,这两个解码器通过交叉注意不断交换信息。最后,两个回归头输出两个相应的点图和相关的置信度图。重要的是,这两个点图在第一幅图像 I 1 的同一坐标系中表示。网络 F 使用简单的回归损失进行训练(等式 4)。

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

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

对于具有 B 个块的解码器, ,并使用编码器标记 进行初始化。这里, 表示分支 中的第 i 个块,G1 和 G2 是输入标记,G2 是来自另一个分支的标记。最后,在每个分支中,单独的回归头采用解码器标记集并输出点图和相关的置信度图:

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

3.2 训练目标

3D 回归损失。 我们唯一的训练目标是基于 3D 空间中的回归。让我们将根据公式 (1) 获得的真实点图表示为 ,以及两个对应的有效像素集 ,真实点图就是在这些像素集上定义的。视图 {1,2} 中有效像素 的回归损失简单定义为欧几里得距离:

为了处理预测和真实值之间的尺度模糊性,我们分别通过缩放因子 对预测和真实点图进行归一化,它们只是表示所有有效点到原点的平均距离:

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

其中 是像素 i 的置信度得分,α 是控制正则化项的超参数。 为了确保严格正向置信度,我们通常定义 。这会迫使网络在更难的区域进行推断,例如那些被单一视图覆盖的区域。使用此目标训练网络 F 允许在没有明确监督的情况下估计置信度得分。图 3 和附录中的图 4、5 和 8 显示了输入图像对及其相应输出的示例。

3.3.下游应用程序

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

点匹配。 通过在 3D 点图空间中进行最近邻 (NN) 搜索,可以轻松建立两个图像像素之间的对应关系。为了最大限度地减少错误,我们通常保留图像 I 1 和 I 2 之间的相互 (相互) 对应关系 M1,2,即我们有:

恢复内参。 根据定义,点映射X1,1在i1的坐标系中表示。因此,可以通过求解一个简单的优化问题来估计相机的内在参数。在这项工作中,我们假设主点近似居中,像素为正方形,因此只需要估计焦点 :

其中 。快速迭代求解器(例如基于 Weiszfeld 算法)可以在几次迭代中找到最优的 。对于第二台摄像机的焦点 ,最简单的选择是对 (I 2 , I1 ) 对进行推断,并使用上述公式,用 X2,2 代替 X1,1 。

相对姿态估计 可以通过多种方式实现。 一种方法是执行 2D 匹配并恢复上述内在函数,然后估计对极矩阵并恢复相对姿态。 另一种更直接的方法是使用 Procrustes 对齐比较点图 (或等效地, )以获得相对姿态

可以以闭式实现。遗憾的是,Procrustes 对齐对噪声和异常值很敏感。最终,更强大的解决方案是依靠带有 PnP 的 RANSAC。

绝对姿态估计 (也称为视觉定位)同样可以通过多种不同的方式实现。令 I Q 表示查询图像,I B 表示可获得 2D-3D 对应关系的参考图像。首先,可以根据 XQ,Q 估计 I Q 的内在函数。一种可能性是获取 I Q 和 I B 之间的 2D 对应关系,进而得到 I Q 的 2D-3D 对应关系,然后运行 PnP-RANSAC。另一种解决方案是获取 I Q 和 I B 之间的相对姿态,如前所述。然后,我们根据 XB,B 和 I B 的真实点图之间的比例,通过适当缩放将该姿态转换为世界坐标。

3.4.全局对齐

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

成对图。 给定一组图像 对于给定的场景,我们首先构造一个连通性图 ,其中N个图像形成顶点V,每个边 表示图像I n和I m共享一些视觉内容。为此,我们要么使用现有的现有图像检索方法,要么通过网络F传递所有对(在H100 GPU上推断需要≈40ms),并根据两对的平均置信度测量它们的重叠,然后我们过滤掉低置信度对。

图 3. 训练期间从未见过的两个场景的重建示例。从左到右:RGB、深度图、置信度图、重建。左侧场景显示 F(I 1 , I2 ) 的原始结果输出。右侧场景显示全局比对的结果(第 3.4 节)。

全局优化。 我们使用连通图 来恢复所有相机 的全局对齐点图 。为此,我们首先预测每个图像对 的成对点图 及其相关的置信度图 。为了清楚起见,我们定义







请到「今天看啥」查看全文