DEFOM-Stereo: Depth Foundation Model Based Stereo Matching¶
会议: CVPR 2025
arXiv: 2501.09466
代码: https://insta360-research-team.github.io/DEFOM-Stereo
领域: 3D视觉
关键词: 立体匹配, 深度基础模型, 零样本泛化, 单目深度, 尺度更新
一句话总结¶
将单目深度基础模型 (Depth Anything V2) 融入循环立体匹配框架 RAFT-Stereo,通过组合特征编码器和尺度更新模块,在保持强泛化能力的同时实现多个基准上排名第一的立体匹配性能。
研究背景与动机¶
立体匹配是计算机视觉中度量深度估计的关键技术,但面临遮挡、无纹理、模糊等难题。近年来,单目相对深度估计方法(如 Depth Anything V2)借助视觉基础模型展现出强大的零样本泛化能力,但仅提供相对深度而非度量深度。作者发现:
- 后续循环优化方法虽然提升了域内拟合,但零样本泛化能力反而不如基础的 RAFT-Stereo
- Depth Anything V2 能恢复精细细节和鲁棒的相对深度,但存在严重的尺度不一致性问题——图像内不同区域深度预测的尺度不统一
- 简单地用最小二乘仿射对齐DEFOM深度,视差误差仍然很大,尤其在合成数据集 Scene Flow 上
核心动机是将 DEFOM 的鲁棒单目线索引入立体匹配,同时解决其尺度不一致的关键问题。
方法详解¶
整体框架¶
DEFOM-Stereo 基于 RAFT-Stereo 框架,整合 Depth Anything V2 (DEFOM),包括两个阶段: 1. 特征提取阶段:用 DEFOM 预训练特征增强 CNN 特征编码器,用 DEFOM 深度初始化视差 2. 视差更新阶段:先用尺度更新 (SU) 模块恢复逐像素尺度,再用传统增量更新 (DU) 恢复局部细节
关键设计¶
-
组合特征编码器 (CFE + CCE):
- 功能:融合 DEFOM 预训练 ViT 特征与 CNN 特征,构建更强的匹配特征和上下文特征编码器
- 核心思路:初始化一个新的可训练 DPT 头从 ViT backbone 提取特征(原始 DPT 需固定用于深度预测),通过卷积块对齐通道后与 CNN 特征逐元素相加。上下文编码器取 DPT 的 \(Reassemble_4\)、\(Reassemble_8\)、\(Reassemble_{16}\) 多尺度特征
- 设计动机:DEFOM 的 DPT 特征与深度任务高度相关,而 CNN 特征保留局部匹配能力,简单的加法融合即可有效互补
-
单目深度初始化 (DI):
- 功能:用 DEFOM 预测的相对深度初始化视差图,替代传统的零初始化
- 核心思路:考虑到视差幅度通常与图像宽度 \(w\) 成正比,用 \(\mathbf{d}_0 = \frac{\eta w \cdot \mathbf{z}}{\max(\mathbf{z})} + \epsilon\) 归一化深度估计,其中 \(\eta = 1/2\)
- 设计动机:不同样本和不同 backbone 尺寸下 DEFOM 输出的深度幅度差异大,用图像宽度归一化可提供合理的初始化
-
尺度更新模块 (SU):
- 功能:通过循环的逐像素密集尺度更新,将尺度不一致的初始视差修正为准确视差
- 核心思路:更新方式为乘法 \(\mathbf{d}_n = \mathbf{s} \cdot \mathbf{d}_{n-1}\)(而非传统的加法),配合尺度查找 (Scale Lookup, SL) 从相关体中检索信息。SL 将当前视差乘以一系列预定义尺度因子 \(\{1,2,4,6,8,10,12,16\}/8\),采样对应相关值,搜索范围覆盖全图
- 设计动机:传统金字塔查找的最大搜索范围仅128像素,不足以处理大视差;SL 通过尺度缩放实现全局匹配,SU 先获得整体尺度正确的结果,再由 DU 恢复局部细节
损失函数 / 训练策略¶
- 采用指数递增权重的 L1 损失:\(\mathcal{L} = \sum_{n} \gamma^{N-n} \|\mathbf{d}_{gt} - \mathbf{d}_n\|_1\),\(\gamma=0.9\)
- Scene Flow 预训练 200k 步,crop size \(320 \times 736\),AdamW 优化器,one-cycle 学习率 2e-4
- SU 迭代8次 + DU 迭代10次 = 总18次(训练),评估时总32次
- DEFOM 的 ViT backbone 和原始 DPT 始终冻结
实验关键数据¶
主实验(零样本泛化,Scene Flow → 真实数据集)¶
| 数据集 | 指标 | DEFOM-Stereo (ViT-L) | RAFT-Stereo | 提升 |
|---|---|---|---|---|
| KITTI 2012 | Bad 3.0 | 3.76 | 4.35 | 13.6% |
| KITTI 2015 | Bad 3.0 | 4.99 | 5.74 | 13.1% |
| Middlebury-full | Bad 2.0 | 11.95 | 18.33 | 34.8% |
| Middlebury-half | Bad 2.0 | 5.91 | 12.59 | 53.1% |
| ETH3D | Bad 1.0 | 2.35 | 3.28 | 28.4% |
消融实验¶
| 配置 | Scene Flow EPE | Middlebury-half Bad 2.0 | 说明 |
|---|---|---|---|
| Baseline (简化RAFT-Stereo) | 0.56 | 10.67 | 2层相关金字塔 |
| +CCE | 0.49 | 8.42 | 组合上下文编码器 |
| +CFE | 0.50 | 10.45 | 组合特征编码器 |
| +DI+SU | 0.50 | 8.15 | 深度初始化+尺度更新 |
| Full Model (ViT-S) | 0.46 | 6.76 | 所有组件 |
| Full Model (ViT-L) | 0.42 | 5.91 | 大backbone |
关键发现¶
- DEFOM-Stereo 在多个在线基准排名第一,在 Robust Vision Challenge 联合评估中全面超越先前方法
- Middlebury-half 上零样本误差率降低超过50%,高分辨率 Middlebury-full 上比之前最佳方法 DLNR 降低29%
- SU 模块增加5.4M参数但仅增加约10%推理时间,因推理时间主要花在循环迭代上
- 尺度查找的全局搜索能力是 SU 成功的关键,传统金字塔查找范围不足
亮点与洞察¶
- DEFOM深度的尺度不一致性分析: 作者指出 DEFOM 的尺度不一致源于在不同 FoV 图像上用仿射不变损失训练,这个观察深刻且重要
- 乘法更新 vs 加法更新: 用尺度乘法更新深度初始化的视差,概念简洁但非常有效
- 简单融合的有效性: CNN+ViT 特征的简单逐元素相加就很有效,无需复杂的注意力适配器
- 冻结策略: 冻结DEFOM的backbone和DPT,仅训练新DPT头和SU模块,既保留泛化能力又降低训练成本
局限与展望¶
- ViT-L 模型参数量47.3M,推理时间0.316s(960×540),相比基线增加42%
- 深度初始化对DEFOM质量有依赖,在DEFOM失败的极端场景可能受限
- 尺度因子集合为手动设定,可考虑自适应选择
- 当前仅验证了 Depth Anything V2,未尝试 Marigold 等其他深度基础模型
相关工作与启发¶
- 与同期工作的区别:其他将DEFOM融入立体匹配的工作(如 Foundation Stereo)通常使用 4D cost volume + 3D 卷积初始化视差,再与DEFOM对齐;本文直接用DEFOM深度替代零初始化,并通过SU模块循环修正
- RAFT-Stereo 作为基线的选择有独到见解:虽然后续方法域内拟合更好,但RAFT-Stereo的零样本泛化反而最优
- 启发:基础模型+任务特定模块的范式在密集预测中有广泛前景
评分¶
- 新颖性: ⭐⭐⭐⭐ 将深度基础模型整合入立体匹配的思路直觉且有效,尺度更新模块设计精巧
- 实验充分度: ⭐⭐⭐⭐⭐ 覆盖零样本泛化、在线基准提交、RVC联合评估、详尽消融,极为全面
- 写作质量: ⭐⭐⭐⭐ 结构清晰,动机和设计逻辑链完整
- 价值: ⭐⭐⭐⭐⭐ 多个基准第一名,实际验证了基础模型赋能立体匹配的巨大潜力
相关论文¶
- [CVPR 2025] Consistency-aware Self-Training for Iterative-based Stereo Matching
- [CVPR 2025] FoundationStereo: Zero-Shot Stereo Matching
- [CVPR 2026] Lite Any Stereo: Efficient Zero-Shot Stereo Matching
- [ECCV 2024] TC-Stereo: Temporally Consistent Stereo Matching
- [ICCV 2025] Stereo Any Video: Temporally Consistent Stereo Matching