想象一下,你拿着智能手机录制朋友在沙滩上奔跑或赛车在赛道上飞驰的视频。对你来说,场景很清晰。但对于试图以 3D 形式重建该场景的计算机来说,这是一场噩梦。

几十年来, 运动恢复结构 (Structure from Motion, SfM)即时定位与地图构建 (Simultaneous Localization and Mapping, SLAM) 算法一直依赖两条黄金法则: 场景必须是静态的 (刚性) ,相机必须有足够的移动以产生视差 (近处物体比远处物体移动得更快的效应) 。随手拍的视频不断打破这两条规则。我们有移动的物体,我们原地旋转相机而不移动脚步,我们拍摄“动态”元素 (如人或车) 占据主视野的场景。

今天,我们将深入探讨 MegaSaM , 这是一个由 Google DeepMind、加州大学伯克利分校和密歇根大学的研究人员开发的新系统。该论文提出了一个鲁棒的管道,可以处理随手拍的、抖动的、动态的视频,并提取精确的相机路径和密集的 3D 深度图。

MegaSaM 有什么特别之处?它弥合了传统几何 SLAM 和现代深度学习之间的鸿沟,利用不确定性感知优化单目深度先验来解决通常导致 3D 重建崩溃的问题。

MegaSaM 的输入和输出示例,显示了对赛车的精确跟踪。 图 1: MegaSaM 能够从随手拍的视频中实现相机和场景结构的精确估计。上图: 输入帧。下图: 估计的相机路径和 3D 点云。


“随手拍”视频的问题

为什么传统方法会在你的 iPhone 视频上失效?

  1. 动态场景: 传统的 SLAM 假设世界是坚如磐石的。如果一辆车穿过画面,算法可能会错误地认为相机在向相反方向移动。这会破坏估计的相机轨迹。
  2. 有限视差: 如果你站在原地移动相机 (仅旋转运动) ,从数学上讲,极难判断物体有多远。近处的小物体看起来和远处的巨大物体完全一样。这导致了“尺度模糊”。
  3. 未知内参: 与经过校准的机器人不同,你的手机会随时改变对焦甚至焦距,而算法通常不知道确切的镜头属性。

最近的神经方法如 CasualSAMDROID-SLAM 试图解决这个问题,但它们通常需要数小时的“测试时训练” (针对特定视频微调网络) ,或者在相机运动细微时失败。MegaSaM 旨在做到 快速、准确且鲁棒 , 无需昂贵的逐视频训练。


架构: 建立在 DROID-SLAM 之上

要理解 MegaSaM,我们首先需要看看它的基础: DROID-SLAM 。 这是一个“深度视觉 SLAM”系统。与使用手工特征 (如 ORB 或 SIFT) 的传统方法不同,DROID-SLAM 使用神经网络来预测光流和“置信度”权重。

然而,神奇之处不仅在于神经网络;还在于可微光束法平差 (Differentiable Bundle Adjustment, BA) 层。

什么是可微 BA?

在计算机视觉中,光束法平差是一个优化过程,通过微调相机位姿和 3D 点来最小化“重投影误差”——即基于 3D 几何结构计算出的点在屏幕上的位置与网络看到的位置之间的差异。

误差 \(\mathcal{C}\) 的核心方程如下所示:

重投影代价函数方程。

这里,\(\hat{\mathbf{u}}_{ij}\) 是预测的帧 \(i\) 和 \(j\) 之间的光流,\(\mathbf{u}_{ij}\) 是由估计的相机运动和深度诱导产生的光流。项 \(\Sigma_{ij}\) 代表权重 (或置信度) 。

MegaSaM 保留了这个可微层,但从根本上改变了权重的计算方式以及系统处理移动物体的训练方式。

MegaSaM 管道

该系统分为两个主要阶段,模仿标准的 SfM 管道,但通过深度学习进行了增强:

  1. 相机跟踪 (前端) : 估计相机位姿和低分辨率视差 (深度) 图。
  2. 一致视频深度 (后端) : 优化深度图,使其具有高分辨率和时间一致性。

MegaSaM 系统概览,显示跟踪和深度估计阶段。 图 9: MegaSaM 系统概览。左图: 跟踪模块使用带有学习到的运动概率的可微光束法平差。右图: 后端针对一致的视频深度进行优化。


核心创新 1: 处理动态内容

如果你将移动的人的视频输入标准 SLAM 系统,它会将人视为静态结构,从而破坏相机跟踪。MegaSaM 通过学习运动概率图 (Movement Probability Map) 来解决这个问题。

运动模块

研究人员引入了一个特定的网络模块 \(F_m\),它观察当前帧及其邻域,以决定哪些像素代表移动物体。

光流和运动图预测器的架构。 图 10: 该架构包括一个标准的光流网络 (灰色) 和一个特定的运动模块 (蓝色,\(F_m\)) ,用于预测运动图。

关键在于,这个图允许光束法平差层降低动态区域的权重。如果网络看到一个移动的人,它会给这些像素分配低权重,实际上是在告诉几何求解器: “忽略这部分;它不可靠。”

可视化学习到的运动图。 图 3: 学习到的运动图。较暗区域 (右侧) 表示高运动概率,有效地掩盖了动态角色。

两阶段训练

你不能一次性训练所有内容。如果这样做,网络会混淆相机运动和物体运动。作者使用了一种巧妙的两阶段训练过程 :

  1. 自运动预训练: 仅在静态场景上训练基础网络。这教会模型完美地理解相机运动 (使用下面的方程 7 中的损失) 。 静态训练损失方程。

  2. 动态微调: 冻结基础网络,并在动态视频上训练运动模块 \(F_m\)。这强制运动模块去修正由移动物体引起的误差。 动态训练损失方程。


核心创新 2: 解决“旋转”问题

当你在不移动的情况下平移相机 (仅旋转) 时,几何三角测量会失败。仅凭旋转无法计算深度。这就是 MegaSaM 集成单目深度先验的地方。

DepthAnythingUniDepth 这样的模型是在数百万张图像上训练出来的,可以从单张图片预测深度。它们擅长相对深度,但在绝对尺度和时间一致性方面表现不佳。

MegaSaM 使用这些先验来初始化 SLAM 系统中的视差。它们不是从随机猜测开始 (这会导致旋转场景失败) ,而是从 DepthAnything 的预测开始。

不确定性感知全局光束法平差

这是论文中技术上最优雅的部分。我们不想总是相信单目先验。如果相机横向移动 (视差良好) ,几何信号优于神经网络的猜测。如果相机仅旋转 (视差差) ,我们必须依赖神经网络。

系统如何决定? 它计算认知不确定性 (Epistemic Uncertainty)

在优化求解器 (Levenberg-Marquardt 算法) 中,系统计算 Hessian 矩阵 \(\mathbf{H}\)。Hessian 的逆矩阵近似于参数的协方差 (不确定性) 。

通过 Hessian 对角线近似不确定性的方程。

如果视差变量的不确定性很高,意味着几何结构很弱 (可能是仅旋转运动) 。在这种情况下,系统会动态增加正则化权重 \(w_d\),强制解更接近单目先验。

视差中认知不确定性的可视化。 图 4: 不确定性的可视化。上图: 仅旋转运动导致高不确定性 (黄色) 。下图: 向前运动在极点处产生确定的“孔洞”,但在其他地方具有高不确定性。

这创建了一个混合系统: 可能时基于几何,必要时基于神经网络。


核心创新 3: 一致视频深度

一旦相机位姿被锁定,MegaSaM 会执行最后一遍处理以生成高质量、密集的深度图。这不仅仅是在每一帧上运行深度网络;这是一个全局优化

系统针对满足三个条件的深度图进行优化,由以下代价函数定义:

一致视频深度的代价函数。

  1. 光流 (\(C_{flow}\)): 点应根据光流移动。
  2. 时间 (\(C_{temp}\)): 深度不应随时间闪烁。
  3. 先验 (\(C_{prior}\)): 结构应类似于单目深度预测。

与以前微调神经网络的方法 (耗时 20 多分钟) 不同,MegaSaM 直接优化深度值,根据分辨率不同,仅需几秒到几分钟。


实验与结果

它有效吗?作者在 MPI Sintel (动画、复杂运动) 、DyCheck (真实手持视频) 和 In-the-Wild (野外) 素材等标准基准上测试了 MegaSaM。

相机跟踪精度

结果显示性能有了巨大的飞跃。在下表中, ATE 代表绝对平移误差 (越低越好) 。

Sintel 数据集上,MegaSaM 大幅超越了竞争对手,包括同期的 “MonST3R” 方法。

Sintel 数据集上的定量对比。 表 1: MegaSaM 在已校准的 Sintel 序列上实现了显著更低的错误率 (ATE 0.018 vs 次优的 0.036) 。

这种性能差距在真实的“野外”素材上甚至也是肉眼可见的,MegaSaM 保持高精度,而其他方法则发生漂移。

野外素材上的定量对比。 表 3: 在野外素材上,误差 (0.004) 比其他鲁棒 SLAM 方法低一个数量级。

轨迹可视化

数字是一回事,但查看估计的路径才能说明真实情况。在图 5 中,注意 MegaSaM (红色虚线) 如何紧贴真实值 (蓝色实线) ,而像 RoDynRF 或 CasualSAM 这样的基线则因场景动态而偏离航线。

轨迹对比图。 图 5: 相机轨迹估计。与基线相比,MegaSaM (红色) 与真实值的偏差明显更小。

深度重建质量

MegaSaM 生成的深度图更清晰、更稳定。在下面的对比中,请看分割和边缘。CasualSAM 和 MonST3R 经常在移动物体周围产生模糊的伪影或“重影”。

深度图和 x-t 切片的视觉对比。 图 6: 深度对比。x-t 切片 (偶数列) 显示了时间稳定性。与其他方法的抖动结果相比,MegaSaM 在时间上产生平滑、连续的深度。


为什么每个组件都很重要 (消融研究)

你可能会问,“我们真的需要那些不确定性的东西吗?难道不能只用深度先验吗?”

研究人员进行了一项消融研究来证明每个部分的必要性。

  • 无单目深度初始化 (w/o mono-depth init): 系统在仅旋转视频上失败。
  • 无不确定性感知 BA (w/o uncertainty-aware BA): 即使几何结构更好,系统也过于依赖先验,从而降低了准确性。

图 2 完美地展示了这一点。如果没有完整配置 (c),重建的围栏和地面平面会扭曲或完全错误。

消融研究可视化。 图 2: (a) 无单目深度,重建失败。(b) 无不确定性感知 BA,几何结构扭曲。(c) 完整 MegaSaM 产生正确的结构。


局限性

没有系统是完美的。MegaSaM 依赖于找到一些静态背景来跟踪。

  1. 主导运动: 如果一个移动物体 (如公共汽车) 占据了 90% 的屏幕,系统可能会跟踪公共汽车而不是世界。
  2. 共线运动: 如果你边走边拍自己 (自拍视频) ,相机会随你的脸移动。系统很难将你的脸与背景分离开来。

失败案例的可视化。 图 8: 失败案例。上图: 移动物体占据主视野。下图: 物体随相机移动的自拍视频。


结论

MegaSaM 代表了计算机视觉领域向前迈出的重要一步。它接受了现实世界是混乱的这一事实——动态的、未校准的,并且通常拍摄时的相机运动很糟糕。通过智能地结合深度学习先验 (猜测场景的样子) 与几何约束 (计算物体实际在哪里) ,并利用不确定性在两者之间进行调解,它实现了最先进的结果。

对于学生和研究人员来说,MegaSaM 展示了现代 AI 的一个强大趋势: 纯粹端到端的黑盒通常会被那些将深度学习集成到鲁棒的、基于数学的优化框架中的系统所击败。

欲了解更多详情、交互式结果和代码,您可以查看论文中引用的项目页面: mega-sam.github.io。