引言

在计算机视觉的世界里,感知深度至关重要。无论是自动驾驶汽车在繁忙的街道上穿梭,还是机械臂伸手去拿杯子,机器都需要确切知道物体有多远。

多年来, 立体匹配 (Stereo Matching) 一直是这一领域的黄金标准。它模仿人类的双眼,利用左右图像之间的视差 (Disparity) 来进行三角测量以确定距离。但这里有一个陷阱: 立体匹配依赖于在左图和右图中找到完全相同的特征。当汽车驶入纹理缺失的白色隧道,或是面对高反光的玻璃建筑时,那些匹配线索就会消失。立体视觉本质上就变成了“盲人”。

接着是单目深度估计 (Monocular Depth Estimation) 。 这种技术利用深度学习,根据上下文 (例如,“汽车通常在地面上”,“天空在远处”) 从单张图像预测深度。它不需要匹配像素,但它有自己的缺陷: 它非常不擅长猜测绝对距离。它可能会告诉你建筑物在树后面,但无法告诉你建筑物是在 10 米外还是 100 米外。

如果我们能将立体匹配的几何精度与单目深度的上下文理解能力结合起来,会怎么样呢?

这正是论文 “MonSter: Marry Monodepth to Stereo Unleashes Power” 所提出的设想。研究人员引入了一种新颖的框架,融合了这两种方法,使它们能够通过迭代相互修正错误。

零样本泛化比较显示在反光和无纹理区域有显著改善。

如上图所示,标准的立体匹配方法 (如 IGEV) 通常在反光或无纹理区域失效,产生伪影。然而,MonSter 即使在这些“病态 (ill-posed) ”场景中也能生成平滑、准确的深度图。让我们深入了解这种技术联姻是如何工作的。


核心问题: 为什么仅有立体匹配是不够的

要理解为什么 MonSter 是必要的,我们首先需要看看传统立体匹配的局限性。

立体匹配算法通常遵循以下流程:

  1. 特征提取 (Feature Extraction) : 在两张图像中寻找独特的模式。
  2. 代价体构建 (Cost Volume Construction) : 比较左右图像的特征以寻找匹配。
  3. 视差回归 (Disparity Regression) : 基于这些匹配计算距离 (视差) 。

对于像树木或砖墙这样有纹理的物体,这非常有效。然而,在病态区域 (ill-posed regions) ——例如遮挡 (物体在一只眼睛中可见但在另一只中不可见) 、无纹理表面 (空白墙壁) 或重复图案 (栅栏) ——算法很难找到唯一的匹配。这导致深度图中出现噪点和“空洞”。

单目困境

另一方面,我们有单目深度估计。现代 Transformer (如 DepthAnything 或 DINOv2) 非常擅长从单张图像理解场景结构。它们不在乎墙壁是否没有纹理,因为它们能识别出“墙”是一个物体。

然而,单目深度受限于尺度和偏移模糊 (scale and shift ambiguity) 。 一张近距离的玩具车照片在几何上看起来与远处的真车完全一样。单目模型产生的是“相对”深度,而不是“度量”深度。

比较源自单目深度的视差与真值 (GT) 视差。

上图完美地阐释了这个问题。

  • 图 (a) 显示了原始单目输出与真值 (GT) 的对比。结果一团糟。
  • 图 (b) 显示了如果进行全局尺度和偏移对齐会发生什么。情况有所好转,但仍有显著的噪点,因为误差在像素间并不一致。
  • 图 (c) 显示了 MonSter 的结果。通过利用立体线索逐像素地精细化单目深度,对齐变得近乎完美。

MonSter 方法

MonSter 的精妙之处在于其双分支架构 。 作者并没有简单地将单目通道添加到立体网络中,而是构建了一个系统,让两个分支能够主动对话并相互优化。

架构概览

MonSter 架构概览,展示了双分支系统。

如上图所示,该架构由三个主要组件组成:

  1. 单目分支: 使用预训练模型 (DepthAnythingV2) 获取场景结构的“猜测”。
  2. 立体分支: 使用标准的立体匹配网络 (类似于 IGEV) 计算几何视差。
  3. 互优化模块 (Mutual Refinement Module) : 这是融合发生的引擎室。

该过程是迭代的。模型生成初始估计,然后进入优化阶段,在此阶段,立体分支修正单目分支的尺度,而单目分支则修复立体分支缺失的细节。

第一步: 全局尺度-偏移对齐 (Global Scale-Shift Alignment)

在两个分支能够合作之前,它们需要通过同一种语言交流。单目输出是相对逆深度,而立体输出是视差。

第一步是全局尺度-偏移对齐 。 模型通过求解最小二乘优化问题,找到一个全局尺度 (\(s_G\)) 和偏移 (\(t_G\)),将单目深度图 (\(\mathcal{D}_M\)) 与当前的立体视差 (\(\mathcal{D}_S^0\)) 进行粗略对齐。

全局尺度-偏移对齐的公式。

这创建了一个粗略的“单目视差” (\(\mathcal{D}_M^0\)),它与立体输出处于大致相同的度量空间中。

第二步: 立体引导对齐 (SGA)

全局对齐是不够的。尺度或偏移误差可能会在图像的不同部分有所变化。这就是立体分支帮助单目分支的地方。

系统使用基于置信度的引导 (Confidence-Based Guidance) 。 它通过使用当前的立体视差将右图特征变换 (warp) 到左图,计算一个“光流残差图” (\(F_S^j\))。

光流残差图计算公式。

如果残差很低 (\(F_S^j\) 很小) ,意味着立体匹配很好 (置信度高) 。如果残差很高,立体匹配很可能是错的。

利用这个置信度,模型构建了一个包含几何特征和光流残差的“立体条件”向量 (\(x_S^j\))。

立体条件向量公式。

该条件被输入到一个门控循环单元 (GRU) 中。GRU 逐像素地决定在多大程度上信任立体信息,以更新单目分支的隐藏状态

立体引导对齐中的 GRU 更新公式。

最后,网络预测一个残差偏移 (\(\Delta t\)) 来微调单目视差。

更新单目视差的公式。

这一步利用立体输出的高置信度区域,有效地将单目深度“锚定”到现实世界的度量中。

第三步: 单目引导精细化 (MGR)

既然我们有了高质量、度量对齐的单目深度图,现在是时候回报了。单目分支现在充当立体分支的老师。

在立体匹配失效的区域 (病态区域) ,置信度很低。然而,对齐后的单目深度提供了强大的结构先验。系统使用一个对称的过程,利用单目特征和对齐后的单目视差来引导立体视差的精细化。

单目引导精细化及条件向量公式。

这使得立体分支能够依靠单目分支的语义理解,在无纹理或反光区域“推断”出正确的深度。

损失函数

为了训练这一庞大的系统,作者使用了监督两个分支的损失函数。总损失结合了立体分支和单目分支的误差,并随着迭代次数增加呈指数级增加权重 (因为最终输出最重要) 。

损失函数公式。


实验与结果

研究人员在五个主要基准测试集上评估了 MonSter: Scene Flow, KITTI 2012 & 2015, Middlebury, 和 ETH3D。结果具有绝对的统治力。

排行榜表现

MonSter 在所有五个排行榜上均排名第一

比较 MonSter 与其他最先进方法的雷达图。

正如雷达图所示,MonSter (红线) 的性能表现 (在这个归一化图表中越高越好) 明显超越了 IGEV 和 CREStereo 等竞争对手。

Scene Flow 数据集上的详细定量结果显示,端点误差 (EPE) 大幅降低。

Scene Flow 上的定量评估表。

MonSter 实现了 0.37 的 EPE,相比之前的最先进技术提升了 15.91%

征服病态区域

MonSter 的真正考验在于困难区域: 反光和无纹理区域。下表重点展示了在 KITTI 2012 基准测试中“反光区域 (Reflective Regions) ”的具体表现。

展示 KITTI 2012 反光区域结果的表格。

MonSter 将错误率 (Out-4 All) 从大约 3% (竞争对手) 降至 2.13% , 证明了当反光混淆几何求解器时,单目先验能有效地稳定立体匹配。

视觉质量

数字令人印象深刻,但视觉结果更能说明问题。在下面的 ETH3D 数据集对比中,请观察白色箭头指出的区域。

在 ETH3D 上比较 IGEV 和 MonSter 的定性结果。

标准方法 (IGEV) 经常产生颜色“渗漏”或空洞,因为算法会被光照或细微结构搞混。MonSter 则保持了清晰的边界和一致的深度梯度。

零样本泛化

也许最令人兴奋的结果是零样本泛化 (Zero-Shot Generalization) 。 这测试了模型在使用合成数据 (Scene Flow) 训练的情况下,未经任何微调,在真实世界数据 (KITTI, Middlebury) 上的表现。

零样本泛化基准表。

MonSter 在这种设置下以巨大优势超越了现有方法。这表明,通过结合两种不同的感知模式 (几何和语义) ,模型学习到了更鲁棒的“深度”表示,不易被域偏移所愚弄。

真实世界数据上的零样本性能视觉对比。

在上面的真实世界捕获中 (图 6) ,注意 MonSter (右列) 在处理平坦墙壁和复杂的户外场景时,比引入大量噪点的基线方法要好得多。

效率

你可能认为运行两个分支会使模型变得极其缓慢。然而,由于单目分支提供了如此强大的先验,立体分支需要更少的迭代次数即可收敛。

展示 MonSter 效率和通用性的表格。

如表 7 所示,仅需 4 次迭代的完整 MonSter 模型就优于需要 32 次迭代的基线 IGEV。虽然由于沉重的单目骨干网络 (DepthAnything) ,总运行时间较长 (0.64秒 vs 0.37秒) ,但对于高精度应用来说,其计算精度性价比非常有吸引力。


结论

MonSter 代表了深度估计领域的一次范式转变。它不再试图从单一的立体匹配中榨取更多性能,而是承认该技术的固有局限性,并引入了一个合作伙伴——单目深度——来填补空白。

通过将问题分解为“单目深度估计”和“尺度-偏移恢复”,MonSter 释放了两个领域的全部潜力。立体分支提供了单目模型缺乏的度量精度,而单目分支提供了立体模型缺乏的结构完整性。

其结果——在五个主要排行榜上排名第一——不言自明。这项工作为未来的“立体基础模型”铺平了道路,这些模型可能充当下一代自主系统的视觉皮层。