想象一下,将一个装满随机照片的文件夹——这些照片是用不同的相机、从不同的角度拍摄的,没有任何元数据——丢进一个系统,然后在这个系统的另一端得到一个完美的、密集的 3D 模型。这就是几何计算机视觉的“圣杯”: 无约束运动恢复结构 (SfM)。
最近,一种名为 DUSt3R (Dense Unconstrained Stereo 3D Reconstruction,密集无约束立体 3D 重建) 的方法引起了轰动,它无需传统摄影测量中复杂的手工流水线,而是将 3D 重建视为一个简单的回归任务,从而解决了这个问题。然而,DUSt3R 有一个显著的“阿喀琉斯之踵”: 它本质上是一种*成对 (pairwise) *方法。它一次只看两张图片。如果你想从 100 张图片中重建一个场景,你将面临成对处理的组合爆炸问题,以及将它们拼接在一起的混乱的全局对齐问题。
MUSt3R (Multi-view Network for Stereo 3D Reconstruction,立体 3D 重建多视图网络) 登场了。
在这篇文章中,我们将深入探讨来自 NAVER LABS Europe 的一篇新论文,该论文将范式从成对演变为多视图 。 我们将探索 MUSt3R 如何重新设计神经架构以处理任意数量的输入,引入“工作记忆”以实时处理视频流,并在离线重建和在线视觉里程计 (VO) 方面取得最先进的结果。
![图 1: MUSt3R 重建的定性示例: Aachen Day-Night [83] nexus4 序列 5 (离线,顶部) 和 TUM-RGBD [58] Freiburgl-room 序列 (在线,底部) 。更多定性示例可在 B 节中找到。](/en/paper/2503.01661/images/001.jpg#center)
成对处理的问题
要理解为什么 MUSt3R 是必要的,我们首先需要看看它的前身 DUSt3R。
DUSt3R 的工作原理是获取两张图像并为每张图像预测一个“点图 (Pointmap) ”。点图本质上是一种密集的 2D 到 3D 映射: 对于图像中的每个像素,网络预测其 3D 坐标 \((x, y, z)\)。至关重要的是,DUSt3R 在第一台相机的坐标系中预测这些点。
这对两张图片来说效果很好。但是当你有一系列视频帧或大量照片集时会发生什么?
- 二次复杂度: 为了彻底起见,你可能需要将每张图像与所有其他图像进行比较,从而导致 \(O(N^2)\) 的复杂度。
- 全局对齐的噩梦: 由于每一对都是在自己的局部坐标系中重建的,最终你会得到几十或几百个“微型世界”,需要旋转和缩放才能适应一个全局场景。这种优化过程缓慢且容易产生漂移。
MUSt3R 背后的研究人员问道: 我们能否设计一个网络,能够同时理解多个视图,并在一个单一的、共享的坐标系中输出所有内容?
MUSt3R 架构
该解决方案需要对架构进行重大改革。研究人员摒弃了 DUSt3R 特定的双目 (双相机) 设计,转而采用了对称、可扩展的多视图设计。
1. 从非对称到对称
DUSt3R 使用两个独立的解码器分支——一个用于第一张图像,一个用于第二张图像。要扩展到 \(N\) 个视图,你不能简单地不断添加解码器分支;那样模型会变得非常庞大。
MUSt3R 通过使用 孪生架构 (Siamese architecture) 简化了这一点。这意味着相同的解码器权重在所有输入图像之间共享。为了区分“参考”图像 (定义坐标系原点,通常是第一张图像) 和其他图像,网络将一个可学习的嵌入向量 \(\mathbf{B}\) 添加到非参考图像的特征中。

这种改变看似微小,但功能强大。它允许网络使用单组权重处理任意数量的“源”视图与“参考”视图的关系,与原始成对模型相比,解码器的参数数量减少了一半。
2. 工作记忆机制
MUSt3R 最关键的创新是引入了 记忆 (Memory) 。
在标准的基于 Transformer 的视觉模型中,“注意力 (attention) ”是允许输入的不同部分相互交流的机制。在多视图设置中,图像 A 中的像素需要关注图像 B 中的像素以找出 3D 几何结构。
然而,在标准 GPU 上同时计算 100 张图像序列的注意力在计算上是不可能的。MUSt3R 通过使过程迭代化来解决这个问题。它按顺序处理图像,但保留了之前图像计算出的表示的“记忆”。

如上方的 图 3 所示,该过程分为两个阶段:
- 初始化 (左) : 系统从一对图像开始以建立场景。
- 更新 (右) : 当新图像到达时,它不需要单独与每个过去的图像配对。相反,它的特征会关注 记忆 (\(\mathbf{M}\)),其中包含所有先前图像的所有先前层的拼接特征。
在数学上,在每一层 \(l\),新图像 \(n+1\) 的特征通过关注该层的记忆进行更新:
![]\n\\mathbf D _ { n + 1 } ^ { l } = { \\mathrm { D E C } } ^ { l } ( \\mathbf D _ { n + 1 } ^ { l - 1 } , \\mathbf M _ { n } ^ { l - 1 } ) .\n[](/en/paper/2503.01661/images/010.jpg#center)
这创建了一个类似于大型语言模型 (LLM) 中用于加速文本生成的“KV Cache”系统。通过缓存过去,MUSt3R 将添加新视图的计算成本变为线性——\(O(N)\)——而不是二次方。
3. 全局 3D 反馈 (注入)
按顺序处理图像有一个潜在的缺点: 网络的早期层 (处理新图像) 可能不知道先前图像的后续层建立的全局 3D 结构。
为了解决这个问题,作者引入了 3D 反馈模块 。 他们从网络的末端 (第 \(L-1\) 层) 获取高度处理过的、具有 3D 感知的特征,并将它们注入回记忆的开始层。

这种反馈循环确保当网络开始处理新帧时,它已经对需要适应的全局 3D 几何结构有了“直觉”。注入方程如下所示:
![]\n\\bar { \\mathbf { D } } _ { i } ^ { l } = \\left{ \\begin{array} { l l } { \\mathbf { D } _ { i } ^ { l } + \\mathrm { I N } \\boldsymbol { y } ^ { \\mathrm { 3 D } } ( \\mathbf { D } _ { i } ^ { L - 1 } ) , } & { \\forall l < L - 1 \\mathrm { a n d } i \\in \\mathcal { P } } \\ { \\mathbf { D } _ { i } ^ { l } , } & { l = L - 1 \\mathrm { o r } i \\in \\mathcal { N } , } \\end{array} \\right.\n[](/en/paper/2503.01661/images/011.jpg#center)
实验表明,如果没有这种反馈,系统很难在长序列中保持一致性。有了它,网络可以有效地在层之间向后和向前传播全局 3D 知识。
4. 在对数空间训练
最后,作者调整了损失函数。在大规模场景中,度量距离可能会有很大差异——从几厘米到几百米。在原始度量距离上训练回归模型可能不稳定。MUSt3R 使用 3D 点的对数压缩进行训练:
![]\n\\begin{array} { r l } & { f : x \\longrightarrow \\displaystyle \\frac { x } { | x | } l o g ( 1 + | x | ) , } \\ & { { \\bf X } _ { i , j } ^ { \\prime } [ p ] = f ( \\frac { 1 } { z } { \\bf X } _ { i , j } [ p ] ) , \\widehat { \\bf X } _ { i , j } ^ { \\prime } [ p ] = f ( \\frac { 1 } { \\widehat z } \\widehat { \\bf X } _ { i , j } [ p ] ) , } \\ & { \\ell _ { \\mathrm { r e g r } } ( i , j ) = \\displaystyle \\sum _ { p \\in { \\cal I } _ { i } } \\left| { \\bf X } _ { i , j } ^ { \\prime } [ p ] - \\widehat { \\bf X } _ { i , j } ^ { \\prime } [ p ] \\right| . } \\end{array}\n()](/en/paper/2503.01661/images/013.jpg#center)
这使得模型能够以相同的精度处理近处物体和远处背景。
一个网络,两种模式
MUSt3R 的主要优势之一是其多功能性。完全相同的预训练网络可以部署在两个完全不同的场景中。
1. 在线视觉里程计 (VO)
这是“机器人导航”场景。相机在房间里移动,帧逐一到达。系统必须即时估计相机的路径并构建地图。
因为 MUSt3R 使用运行中的记忆,所以它完美地适应了这一点。
- 初始化: 处理前几帧。
- 循环: 对于每一帧新图像,查询记忆以预测 3D 点图。
- 记忆管理: 由于我们无法存储无限的历史记录,系统使用了“空间发现率 (Spatial Discovery Rate) ”。如果新帧显示的是相同的老东西,我们就丢弃它。如果它揭示了房间的新部分,我们就将其添加到记忆中。

其实现出奇地简洁。下面的 Python 代码片段突出了 SLAM (同时定位与地图构建) 的复杂逻辑是如何被网络仅仅“预测”下一个状态的能力所抽象出来的。

2. 离线运动恢复结构 (SfM)
这是“3D 扫描”场景。你有一组杂乱无章的 50 张雕像照片。MUSt3R 根据视觉重叠对图像进行排序,并将它们按顺序送入记忆。一旦记忆中填充了整个场景的潜在表示,它就会执行最后的 渲染 (Rendering) 过程。
在渲染过程中,它会问网络: “鉴于你现在对记忆中整个序列的了解,请重新预测所有图像的 3D 点。”这打破了因果关系 (使用未来的信息来修正过去的预测) ,并产生高精度、全局一致的模型。
实验结果
该论文在几个具有挑战性的基准上验证了 MUSt3R,并将其与其前身 (DUSt3R) 和其他最先进的方法 (如 Spann3R) 进行了比较。
视觉里程计性能
在 TUM RGB-D 基准 (相机跟踪的标准测试) 上,MUSt3R 表现出卓越的性能。在下表中,数字越低 (RMSE) 越好。MUSt3R (底部几行) 始终击败或匹配专为 SLAM 设计的方法,即使 MUSt3R 是未标定的 (它事先不知道相机参数!) 。
![表 1: VO: TUM RGB 上的 ATE RMSE [cm]。TUM-RGB SLAM 基准测试上的稀疏 (S) 与密集 (D) 与密集无约束 (U) 方法对比。\\(( ^ { * } )\\) 模型重新运行,没有回环检测和全局光束法平差。](/en/paper/2503.01661/images/012.jpg#center)
值得注意的是,MUSt3R 在其因果模式 (MUSt3R-C) 下以可观的 15 FPS 运行,使其适用于近实时应用。
3D 重建质量
从定性上看,结果令人震惊。无论是大型户外地标还是杂乱的室内房间,MUSt3R 都能恢复精细的细节和正确的几何结构。
![图 5: MUSt3R 重建 Cambridge Landmarks [27] 的定性示例。](/en/paper/2503.01661/images/022.jpg#center)
该系统也非常稳健,足以处理“以物体为中心”的场景,在这种场景中,相机围绕特定物体旋转,能够平滑地处理剧烈的视角变化。
![图 6: MUSt3R 重建 MIP-360 [5] 的定性示例。](/en/paper/2503.01661/images/023.jpg#center)
内参估计
这类模型 (DUSt3R/MUSt3R) 最疯狂的特征之一是它们纯粹从图像内容预测相机的焦距。实验表明,MUSt3R 估计视场角 (FoV) 的平均误差仅为约 4 度,这通常优于廉价、未标定传感器可能产生的偏差。
结论与启示
MUSt3R 代表了几何深度学习向前迈出的重要一步。通过从成对比较转向增强记忆的多视图架构,它解决了困扰先前方法的可扩展性问题。
主要收获如下:
- 可扩展性: \(O(N)\) 的复杂度允许处理以前难以处理的大型序列。
- 多功能性: 单个模型可同时处理在线类 SLAM 任务和离线 3D 重建。
- 简单性: 对于许多应用,它消除了对复杂、手工设计的几何流水线 (如光束法平差或回环检测) 的需求。网络只是简单地学习了几何结构。
对于计算机视觉的学生和研究人员来说,MUSt3R 表明 3D 重建的未来不在于更好的手工编码数学,而在于能够随着时间推移“记住” 3D 空间的更智能的神经架构。随着记忆机制的改进,我们可能很快就会看到端到端的神经 SLAM 系统,能够与市场上最好的工程解决方案相媲美。
](https://deep-paper.org/en/paper/2503.01661/images/cover.png)