引言

计算机视觉领域的圣杯之一,就是能够通过智能手机拍摄一段简单的视频,并立即将其转化为环境中高度详细的稠密 3D 模型。想象一下,当你穿过一个房间进行拍摄,当你停止录制时,屏幕上已经准备好了一个数字孪生模型。

几十年来,这一直是一个巨大的挑战。传统方法迫使我们在质量速度之间做出选择。如果你愿意等待数小时的离线处理 (使用运动恢复结构和多视图立体视觉) ,你可以获得高精度的模型。或者,你可以使用 SLAM (即时定位与地图构建) 获得实时性能,但这通常以稀疏、嘈杂或不完整的几何结构为代价。

但是,如果你不需要做选择呢?如果你甚至不需要显式地求解复杂的相机轨迹数学问题呢?

在这篇文章中,我们将详细解读 SLAM3R (发音为 “SLAM-er”) ,这是由北京大学、香港大学和阿尔托大学的研究人员提出的一项新系统。SLAM3R 提供了一个引人入胜的范式转变: 一种端到端的神经网络方法,可以从单目 RGB 视频中实时 (20+ FPS) 重建稠密 3D 场景,而无需预先显式求解相机参数。

图 1. SLAM3R 概览。该系统接收标准 RGB 视频,将其分解为片段进行局部重建,并增量地将其注册到全局模型中。

背景: 为什么稠密 SLAM 如此困难?

要理解 SLAM3R 的重要性,我们需要看看传统的 3D 重建流程。

老派方法: SfM 和 MVS

传统上,从视频重建场景涉及两个阶段的流程:

  1. 运动恢复结构 (SfM): 计算每一帧的相机位置和方向 (位姿) 。这会产生稀疏的点云。
  2. 多视图立体视觉 (MVS): 一旦知道了相机的确切位置,就利用三角测量来填补空白,创建稠密表面。

虽然这能产生漂亮的结果,但计算量巨大。这通常是一个“离线”过程,意味着你需要先录制视频,然后再处理并等待结果。

实时挑战

实时 SLAM 系统 (如 ORB-SLAM) 优先考虑跟踪相机。它们构建地图主要是为了让相机不迷路。因此,地图通常只是稀疏点的集合——这对于在走廊中导航的机器人来说很好,但如果你想要客厅的可视化 3D 模型,效果就很糟糕了。

最近,深度学习方法试图融合这两个世界。一篇名为 DUSt3R 的突破性论文介绍了一种无需相机位姿进行稠密重建的方法,它通过学习直接预测 3D 点图来实现。然而,DUSt3R 需要计算昂贵的全局优化来将多个视图拼接在一起,导致它太慢而无法用于实时视频。另一个尝试 Spann3R 试图加速这一过程,但受到了“漂移”的影响——随着相机的移动,误差会累积,导致 3D 模型变形。

SLAM3R 进入这个领域正是为了解决这一特定瓶颈: 我们如何在保持像 DUSt3R 这样的离线方法的高保真度的同时,实现在线 SLAM 系统的速度?

SLAM3R 方法

研究人员通过将重建任务分为两个不同的层级来解决这个问题: 局部全局

  1. 窗口内 (局部) : 非常精确地重建一小段时间 (几帧) 。
  2. 窗口间 (全局) : 动态地将这些小块拼接到主世界坐标系中。

至关重要的是,这两个步骤都依赖于前馈神经网络 。 后台没有运行会降低速度的迭代优化循环 (如光束法平差) 。

图 2. 系统概览。流程分为窗口内 (I2P) 和窗口间 (L2W) 处理。注意架构是如何从局部点估计流向全局注册的。

让我们拆解这两个核心模块: 图像到点 (I2P) 网络和局部到世界 (L2W) 网络。

1. 图像到点 (I2P): 构建局部几何

系统使用滑动窗口机制处理视频。它抓取一小段帧 (一个“窗口”) ,并指定其中一帧 (通常是中间的一帧) 作为关键帧

I2P 模块的目标是确定这个特定窗口的 3D 结构。它暂时忽略世界的其余部分,建立一个以该关键帧为中心的局部坐标系。

架构

I2P 网络建立在视觉 Transformer (ViT) 之上。它修改了 DUSt3R 中的架构,以高效处理多视图。

首先,图像编码器提取关键帧和窗口内所有“辅助”帧的特征:

特征提取公式

这里,\(E_{img}\) 是编码器,它为每一帧 \(I\) 生成特征 Token \(F\)。

多视图交叉注意力

这就是神奇之处。网络需要理解辅助帧与关键帧的关系以估计深度。作者使用了一种特定的解码器架构,其中关键帧“查询”辅助帧。

图 3. 解码器块。关键帧 Token 充当查询 (Query),而辅助帧提供键 (Key) 和值 (Value)。最大池化聚合了多视图信息。

如图 3 所示,关键帧 Token (\(F_{key}\)) 经过自注意力层 (以理解关键帧图像本身) 和多视图交叉注意力层。在这个交叉注意力步骤中,关键帧查看辅助帧的特征 (\(F_{sup}\))。

如果你熟悉 Transformer,你会知道注意力机制的计算量通常随 Token 数量呈二次方增长。为了保持速度,系统分别处理每个辅助帧的交叉注意力,然后使用最大池化来聚合最重要的几何线索。

解码器输出一个精炼的表示,记为 \(G_{key}\):

关键帧解码公式

最后,一个“头” (一个简单的线性层) 接收这些 Token 并直接回归两件事:

  1. 3D 点图 (\(\hat{X}\)): 局部坐标系中每个像素的 X, Y, Z 坐标。
  2. 置信度图 (\(\hat{C}\)): 网络对每个点的确信程度。

点回归公式

结果是该特定视频时刻的高度精确、稠密的 3D 点云。

2. 局部到世界 (L2W): 拼接世界

现在我们有一堆小的、不连贯的 3D 快照 (来自 I2P 模块) 。如果我们只是把它们放在一起,它们是对不齐的,因为相机移动了。我们需要将这些局部点注册到一个统一的全局坐标系中。

这就是局部到世界 (L2W) 网络的工作。

“场景帧”缓冲区

传统的 SLAM 会跟踪相机位姿。SLAM3R 则是跟踪场景帧 。 这些是已经被成功注册到全局世界中的过去的关键帧。

因为视频可能无限长,我们无法存储每一帧。作者使用了一种蓄水池采样策略。这是一种花哨的说法,意思是他们保留一个固定大小的缓冲区,该缓冲区在统计上代表了视频的历史。当缓冲区满时,新帧会随机替换旧帧,确保系统不会耗尽内存,同时仍能记住长期历史。

检索模块

当一个新的关键帧从 I2P 模块到达时,系统需要知道: “这应该放在哪里?”

它运行一个轻量级的检索模块 , 将当前关键帧特征与存储的场景帧进行比较。

检索公式

它选择前 \(K\) 个最相似的场景帧。这些帧充当锚点。由于我们知道锚点在 3D 世界中的位置,我们可以利用它们将新的关键帧拉到正确的位置。

几何感知融合

L2W 网络与 I2P 网络非常相似,但有一个转折。它不仅查看图像像素;它还查看我们已经计算出的 3D 点。

系统使用点编码器 (\(E_{pts}\)) 嵌入 3D 点图 (\(\hat{X}\)),并将它们添加到视觉特征中:

点嵌入公式

特征融合公式

现在,Token \(\mathcal{F}\) 包含了外观 (看起来像什么) 和几何 (形状) 信息。

注册解码器 (\(D_{reg}\)) 接收这些融合的 Token。新的关键帧查询检索到的场景帧。网络学习输出关键帧点的坐标,有效地将它们从局部系统转换到全局世界系统。

注册解码公式

这个过程完全是前馈的。没有迭代最近点 (ICP) 算法或矩阵乘法来显式求解旋转和平移。网络只是简单地学会将点移动到正确的位置。

实验与结果

这真的有效吗?作者在 7-Scenes (真实世界手持视频) 和 Replica (高保真合成) 等标准基准数据集上测试了 SLAM3R。

准确性 vs. 速度

最令人信服的结果是准确性和速度之间的平衡。在下表中,请查看 FPS 列 (颜色编码) 。

  • 红色/橙色: 像 DUSt3R 和 MASt3R 这样的方法非常慢 (< 1 FPS)。它们很准确,但无法用于实时应用。
  • 绿色: SLAM3R 运行速度约为 25 FPS。

表 1. 7 Scenes 上的结果。SLAM3R (底部几行) 在保持实时的同时实现了最先进的准确性和完整性。

请注意,SLAM3R 在准确性和完整性方面经常击败 Spann3R (其主要的实时竞争对手) 。这很大程度上是因为 Spann3R 会随时间累积漂移,而 SLAM3R 的检索模块允许它回顾旧帧以进行自我校正 (一种隐式回环检测) 。

视觉质量

数字固然重要,但视觉重建更看重观感。

图 4. 办公室场景的视觉对比。注意 Spann3R (左) 中的噪点与 SLAM3R (右中) 中干净的几何结构的对比。

在图 4 中,我们可以看到“原始点云” (顶行) 。

  • Spann3R (最左侧) 在墙壁和地板周围显示出明显的噪点和“模糊感”。
  • SLAM3R (第三列) 生成了清晰、平坦的墙壁和轮廓分明的家具,看起来非常接近真值 (最右侧) 。

作者还在“野外”对无序图像集和室外场景测试了该系统,表明该模型的泛化能力远超其训练数据集。

图 8. 无序图像上的重建 (DTU 数据集) 。即使没有视频序列数据,模型也能恢复详细的几何结构。

“无位姿”的惊喜

也许最具科学趣味的发现与相机位姿有关。研究人员从他们预测的点云中提取相机位姿,以便与传统 SLAM 进行比较。

表 6. 相机位姿估计结果。

有趣的是,SLAM3R 的相机位姿估计有时比其他方法更差,但其 3D 重建效果却更好。这凸显了一个至关重要的见解: 你不需要完美的相机跟踪来获得完美的地图。 传统 SLAM 过度纠结于相机轨迹。SLAM3R 专注于场景的几何结构,即使隐含的相机路径略有偏差,它也能生成更好的 3D 模型。

结论

SLAM3R 代表了稠密 3D 重建迈出的重要一步。通过摆脱显式位姿优化并采用纯粹的基于学习的前馈方法,它实现了以前被认为是“二选一”的权衡: 它是准确的完整的实时的

主要收获:

  • 端到端学习: 用训练好的神经网络代替复杂的数学求解器来处理局部几何和全局对齐。
  • 分层策略: 将问题分解为窗口内 (详细的局部形状) 和窗口间 (全局一致性) 任务。
  • 隐式定位: 专注于绘制点而不是跟踪相机,从而实现卓越的场景重建。

对于学生和研究人员来说,SLAM3R 展示了 Transformer 在几何任务中的威力。这表明 3D 计算机视觉的未来可能不再依赖上个世纪的几何方程,而是依赖于能够简单地“知道”如何组装世界的大规模、训练有素的网络。

如果你有兴趣深入研究,代码可在论文摘要中提供的链接处获取。