立体匹配--foundation stereo总结(2025)

这篇文章是2025年比较里程碑式的立体匹配网络了。主要在于泛化性实现了zero shot。我认为主要的贡献点在于:

1.百万级别的仿真数据集,并且在训练时去掉一些不好的数据

2.混合代价聚合机制:AHCF=APC+DT

APC就是将depth-anythingv2 中的vit特征与cnn融合,是使用分离的3Dcnn网络( 网络还是用的PSM网络(金字塔立体匹配) Hourglass。)降低内存占用,可以进一步增大卷积核大小,增加感受野,同时适应更大范围的视差聚合,获取更多的局部信息,

DT是使用vit计算全局特征特征,将局部和全局特征融合更高级的代价体。

感觉能实现zero shot可能的原因在于数据和depth-anything,整体的网络架构算不上开创性。

FoundationStereo: Zero-Shot Stereo Matching 论文总结

文章目录

  • [FoundationStereo: Zero-Shot Stereo Matching 论文总结](#FoundationStereo: Zero-Shot Stereo Matching 论文总结)
    • [📝 文章基本信息](#📝 文章基本信息)
    • [🎯 一句话总结](#🎯 一句话总结)
    • [0. 论文概述 (Executive Summary)](#0. 论文概述 (Executive Summary))
    • [1. 问题背景与动机](#1. 问题背景与动机)
      • [1.1 立体匹配的现状与困境](#1.1 立体匹配的现状与困境)
      • [1.2 为什么选择立体匹配作为研究对象?](#1.2 为什么选择立体匹配作为研究对象?)
    • [2. 相关工作与创新关联](#2. 相关工作与创新关联)
      • [2.1 前人工作综述](#2.1 前人工作综述)
        • [2.1.1 深度立体匹配方法分类](#2.1.1 深度立体匹配方法分类)
        • [2.1.2 域泛化与零样本学习](#2.1.2 域泛化与零样本学习)
        • [2.1.3 训练数据](#2.1.3 训练数据)
      • [2.2 存在的问题与不足](#2.2 存在的问题与不足)
        • [2.2.1 网络架构层面](#2.2.1 网络架构层面)
        • [2.2.2 Sim-to-Real Gap](#2.2.2 Sim-to-Real Gap)
        • [2.2.3 数据规模](#2.2.3 数据规模)
      • [2.3 本论文与前人工作的关系](#2.3 本论文与前人工作的关系)
    • [3. 贡献与核心创新点](#3. 贡献与核心创新点)
      • [3.1 论文的四大贡献](#3.1 论文的四大贡献)
        • **贡献1:FoundationStereo基础模型**
        • [**贡献2:FoundationStereo Dataset (FSD)**](#贡献2:FoundationStereo Dataset (FSD))
        • [**贡献3:Side-Tuning Adapter (STA)**](#贡献3:Side-Tuning Adapter (STA))
        • [**贡献4:Attentive Hybrid Cost Filtering (AHCF)**](#贡献4:Attentive Hybrid Cost Filtering (AHCF))
    • [4. 方法与网络设计](#4. 方法与网络设计)
    • [5. 实验结果](#5. 实验结果)
      • [5.1 数据集与评估指标](#5.1 数据集与评估指标)
      • [5.2 零样本泛化对比](#5.2 零样本泛化对比)
      • [5.3 域内对标](#5.3 域内对标)
        • [Table 3:Scene Flow 测试集](#Table 3:Scene Flow 测试集)
        • [Table 4:ETH3D Leaderboard](#Table 4:ETH3D Leaderboard)
      • [5.4 消融研究](#5.4 消融研究)
        • [Table 5:STA设计选择](#Table 5:STA设计选择)
        • [Table 6:AHCF设计选择](#Table 6:AHCF设计选择)
        • [**DT部分(Disparity Transformer)------解释与结论**](#DT部分(Disparity Transformer)——解释与结论)
        • [**APC部分(Axial-Planar Convolution)------解释与结论**](#APC部分(Axial-Planar Convolution)——解释与结论)
      • [Table 7:模块有效性与FSD数据集贡献](#Table 7:模块有效性与FSD数据集贡献)
        • [**(1) Table 7 Left:Effects of Proposed Modules**](#(1) Table 7 Left:Effects of Proposed Modules)
        • [**(2) Table 7 Right:Effects of FoundationStereo Dataset(FSD)**](#(2) Table 7 Right:Effects of FoundationStereo Dataset(FSD))
      • [5.3 性能对比(Experiments)](#5.3 性能对比(Experiments))
        • [5.3.1 零样本泛化:Table 2 + 直观结论](#5.3.1 零样本泛化:Table 2 + 直观结论)
        • [5.3.2 In-the-wild 定性对比:Figure 5](#5.3.2 In-the-wild 定性对比:Figure 5)
        • [5.3.3 域内对比:Table 3(Scene Flow)与 Table 4(ETH3D)](#5.3.3 域内对比:Table 3(Scene Flow)与 Table 4(ETH3D))
        • [**Table 3:Scene Flow(in-domain)EPE**](#Table 3:Scene Flow(in-domain)EPE)
        • [**Table 4:ETH3D Leaderboard**](#Table 4:ETH3D Leaderboard)
    • [6. 不足之处与未来工作(Limitations & Future Work)](#6. 不足之处与未来工作(Limitations & Future Work))
    • [7. 总体评价(Overall Evaluation)](#7. 总体评价(Overall Evaluation))

📝 文章基本信息

  • 标题: FoundationStereo: Zero-Shot Stereo Matching
  • 作者: Bowen Wen, Matthew Trepte, Joseph Aribido, Jan Kautz, Orazio Gallo, Stan Birchfield (NVIDIA)
  • 年份: 2025
  • 会议: arXiv:2501.09898v4
  • 链接: https://nvlabs.github.io/FoundationStereo/

🎯 一句话总结

FoundationStereo是第一个实现强零样本泛化的立体匹配基础模型,通过大规模合成数据、单目先验适配和混合成本体积过滤,在无需微调的情况下可与目标域微调方法媲美。


0. 论文概述 (Executive Summary)

核心问题

尽管深度学习立体匹配在基准数据集上表现卓越,但都需要对目标域进行微调。这与其他视觉任务的基础模型(如CLIP、SAM)的零样本泛化能力形成鲜明对比。为什么立体匹配难以实现零样本泛化?

关键观察与创新

  1. 数据瓶颈:现有公开数据集(如SceneFlow仅40K对)规模太小,多样性不足
  2. 模型架构局限
    • 成本过滤(cost filtering)被忽视,而它是立体匹配的关键
    • 标准3D卷积在大视差范围下内存消耗爆炸性增长
    • 缺乏全局上下文推理能力
  3. Sim-to-Real Gap:合成训练数据与真实场景差异大

论文的三大贡献

  1. FoundationStereo Dataset (FSD):100万立体对的大规模、高保真合成数据集 + 自动迭代清洁管道

  2. Side-Tuning Adapter (STA):适配DepthAnythingV2的单目先验到立体匹配任务

  3. Attentive Hybrid Cost Filtering (AHCF)

    • Axial-Planar Convolution (APC):高效的维度解耦卷积
    • Disparity Transformer (DT):全局视差上下文推理

与相关工作的关系

  • vs 传统立体匹配:融合cost volume aggregation与迭代精化
  • vs Transformer-based方法:在特征提取阶段引入Transformer(如[35,68])后还要做成本过滤,AHCF填补这一空白
  • vs 域泛化方法:不仅关注特征不变性,而是通过基础模型适配和强大的网络设计实现真正的零样本泛化

1. 问题背景与动机

1.1 立体匹配的现状与困境

现有方法的成功条件

  • 需要在目标域微调才能获得竞争力结果
  • 不同应用场景(室内/户外、自动驾驶、机器人等)都需要单独适配

零样本泛化的挑战

方面 困难 原因
数据规模 SceneFlow仅40K对 小数据难以学到泛化特性
多样性 场景类型单一 缺乏纹理、反射、透明等挑战
Sim-to-Real 合成数据与真实差异大 传统合成渲染缺乏逼真度
网络能力 局部感受野有限 3D卷积难以扩展,无全局上下文

1.2 为什么选择立体匹配作为研究对象?

  • 在其他视觉任务(深度估计、光流估计)已有基础模型成功案例(CLIP、SAM、DepthAnythingV2)
  • 立体匹配是3D感知的基础,应用广泛(机器人、自动驾驶、AR/VR)
  • 当前缺少专门的立体匹配基础模型

2. 相关工作与创新关联

2.1 前人工作综述

2.1.1 深度立体匹配方法分类

① Cost Volume Aggregation 方向

  • 代表作:PSMNet、GCNet、ACVNet等
  • 方法:构造4D成本体积 → 3D CNN过滤 → 初始视差预测
  • 优点:精度高,能有效编码对应关系信息
  • 缺点:内存消耗大,难以扩展到高分辨率/大视差

② Iterative Refinement 方向

  • 代表作:RAFT-Stereo、MoCha-Stereo
  • 方法:避免显式构造4D体积,通过递归模块逐步精化视差
  • 优点:内存效率高,适应各种视差范围
  • 缺点:递归更新耗时,缺乏长程上下文

③ Transformer特征提取

  • 代表作:CroCo-Stereo、Context-Enhanced Stereo Transformer
  • 方法:用Vision Transformer替代CNN做特征提取
  • 优点:特征质量好,泛化能力强
  • 缺点:成本过滤阶段仍采用传统3D CNN,未充分利用Transformer优势
2.1.2 域泛化与零样本学习

跨域泛化工作

  • DSMNet、HVT-RAFT、GraftNet:学习域不变特征
  • 局限:仅在SceneFlow训练,未能达到微调水平

零样本学习在其他任务

  • DepthAnythingV2:单目深度估计,互联网规模无标注数据
  • DUSt3R、MASt3R:多视图重建零样本泛化
  • 启发:利用大规模数据 + 基础模型适配
2.1.3 训练数据
数据集 规模 特点 局限
KITTI 几百对 自驾驾驶 稀疏GT,场景单一
Middlebury 低质 室内 数据量少
SceneFlow 40K 多样 仍不足以训练基础模型
FSD (本文) 1M 高保真 首个百万级立体匹配数据

2.2 存在的问题与不足

2.2.1 网络架构层面

问题1:成本过滤被忽视

复制代码
传统pipeline:
特征提取(CNN) → 成本体积构造 → 【成本过滤】← 关键但常用标准3D CNN
                                    ↓
                            初始视差预测
  • 先前Transformer工作专注特征提取,忽视了成本过滤的关键性
  • 成本过滤本质:将混乱的匹配信息→清晰的概率分布
  • 原始成本体积噪声多、歧义多,需要精心设计的聚合机制

问题2:3D卷积的可扩展性瓶颈

复制代码
3×3×3卷积 ← 小视差范围适用
5×5×5卷积 ← 80GB GPU内存溢出❌

原因:参数量与计算量关于核大小立方增长

问题3:缺乏全局上下文推理

  • 重复纹理、薄结构、透明物体等区域,靠局部对应难以判别
  • 需要长程依赖建模:相似区域应有一致视差
2.2.2 Sim-to-Real Gap
  • 合成数据渲染逼真度不足
  • 缺少单目几何/光照约束(monocular priors)
  • 导致在真实图像上泛化差
2.2.3 数据规模
  • 40K (SceneFlow) 无法支撑基础模型训练
  • 需要至少100K+量级的高质量多样数据

2.3 本论文与前人工作的关系

方面 前人做法 本论文创新
数据 SceneFlow 40K FSD 1M + 自动清洁
特征 CNN或ViT单一 STA混合 + 单目先验
成本过滤 标准3D CNN APC (高效) + DT (全局)
迭代精化 基础GRU 多尺度 + 注意力机制
零样本 对标CroCo/IGEV 显著超越,媲美微调方法

APC阶段对PSM网络(金字塔立体匹配) Hourglass进行了卷积核改进。

3. 贡献与核心创新点

3.1 论文的四大贡献

贡献1:FoundationStereo基础模型
  • 首个实现零样本强泛化的立体匹配模型
  • 不微调即可在多个真实数据集上媲美或超越微调方法
  • 定量:Middlebury BP-2: 1.1% (零样本) vs 1.1% (SOTA微调)
贡献2:FoundationStereo Dataset (FSD)
  • 规模:100万立体对(现有最大)

  • 质量

    • NVIDIA Omniverse构建(RTX path-tracing高保真渲染)
    • 5000+ 3D资产(家具、容器、车辆、机器人等)
    • 150+ 材料 + 400+ 纹理
  • 多样性

    • 场景:12个大型室内/室外场景 + 随机化场景
    • 难度:反射、低纹理、严重遮挡、透明物体
    • 相机:可变基线和焦距
  • 创新

    自动迭代清洁管道

    • 第1轮训练 → 识别BP-2>60%的模糊样本 → 重新生成
    • 第2轮迭代:数据+模型双向改进
贡献3:Side-Tuning Adapter (STA)
  • 适配DepthAnythingV2的单目先验到立体任务
  • 保留丰富的几何/光照信息,减小Sim-to-Real差距
  • 简洁设计获得最优效果(对比3种设计选择)
贡献4:Attentive Hybrid Cost Filtering (AHCF)
  • APC (Axial-Planar Convolution)
    • 解耦3×3×3为空间(Ks×Ks×1)和视差(1×1×Kd)两个卷积
    • 内存从 O ( K 3 ) O(K^3) O(K3) 降至 O ( K s 2 + K d ) O(K_s^2 + K_d) O(Ks2+Kd)
    • 保留完整表示能力(不分组)
    • 使能大视差范围处理
  • DT (Disparity Transformer)
    • 沿整个视差维度做自注意力
    • 捕捉全局视差一致性约束
    • 使用FlashAttention实现高效计算
    • 补充APC的局部性限制

4. 方法与网络设计

4.1 整体网络架构概览

4.1.1 五阶段处理流程
复制代码
┌──────────────────────────────────────────────────────────────┐
│                    FoundationStereo 完整流程                  │
└──────────────────────────────────────────────────────────────┘

【输入】左/右立体图像对 (I_l, I_r) ∈ ℝ^(H×W×3)
   │
   ↓
┌──────────────────────────────────────────┐
│ ① 特征提取:Side-Tuning Adapter (STA)    │
│  ├─ EdgeNeXt-S (CNN主干)                │
│  ├─ DepthAnythingV2 (ViT冻结)           │
│  └─ 融合: f^(4)_l, f^(4)_r (1/4分辨率) │
│  + 上下文特征: f_c^(i) (多尺度)         │
└──────────────────────────────────────────┘
   │
   ↓
┌──────────────────────────────────────────────────┐
│ ② 成本体积构造:混合相关性+级联                  │
│  ├─ 分组相关性: V_gwc (8组)                     │
│  ├─ 级联特征: V_cat (拼接左右特征)              │
│  └─ 输出: V_C ∈ ℝ^(C × D/4 × H/4 × W/4)        │
└──────────────────────────────────────────────────┘
   │
   ↓
┌─────────────────────────────────────────────────────┐
│ ③ 成本体积过滤:AHCF (局部+全局)                   │
│  ├─ APC Hourglass:                              │
│  │  ├─ 下采样块 × 3                             │
│  │  ├─ 中间层用APC (Ks=3, Kd=17)               │
│  │  └─ 上采样块 × 3                             │
│  │                                              │
│  ├─ Disparity Transformer (并行):                │
│  │  ├─ 下采样 (4×4×4, stride=4)                │
│  │  ├─ 位置编码 + 4个编码块                      │
│  │  ├─ 4头自注意力 (FlashAttention)             │
│  │  └─ 三线性插值上采样                        │
│  │                                              │
│  └─ 融合: V'_C = Hourglass + DT (残差相加)      │
└─────────────────────────────────────────────────────┘
   │
   ↓
┌──────────────────────────────────────────┐
│ ④ 初始视差预测                           │
│  └─ Softargmax: d_0 = Σ d·Softmax(V'_C) │
│     (1/4分辨率)                         │
└──────────────────────────────────────────┘
   │
   ↓
┌──────────────────────────────────────────────────┐
│ ⑤ 迭代细化:多尺度GRU                           │
│  ├─ 循环 k=1...32:                            │
│  │  ├─ 查询体积特征 (V'_C + V_corr)            │
│  │  ├─ GRU更新 (3级,含注意力机制)             │
│  │  └─ 视差增量: d_{k+1} = d_k + ΔD           │
│  │                                            │
│  └─ 凸采样上采样到完整分辨率                    │
└──────────────────────────────────────────────────┘
   │
   ↓
【输出】最终深度图 (高分辨率)
4.1.2 信息流向与模块交互
复制代码
Left Image  →┐
             ├→ [STA特征提取] → f^(4)_l, f^(4)_r, f_c
Right Image →┘
                     │
                     ↓
            [成本体积构造]
           (混合相关性+级联)
                  V_C
                  ╱  ╲
                 /    \
         ┌──────┘      └──────┐
         │                     │
         ↓                     ↓
      [APC]              [DT]
    (本地聚合)        (全局推理)
         │                     │
         └──────────┬──────────┘
                    ↓
              [融合 + 上采样]
                    V'_C
                    │
                    ↓
            [Softargmax初始预测]
                    d_0
                    │
                    ↓
            [迭代GRU细化×32]
            (查询V'_C + V_corr)
                    │
                    ↓
            [凸采样上采样]
                    │
                    ↓
              [最终深度图]
4.1.3 各模块功能概述
模块 功能 输入 输出 关键设计
STA 特征提取+单目先验 原始图像 1/4分辨率特征 ViT冻结+CNN适配
成本体积构造 编码对应关系 特征 4D成本体积 分组相关性+级联
APC 局部空间-视差聚合 成本体积 多尺度聚合 维度解耦
DT 全局视差依赖 降采样体积 长程推理 自注意力
初始预测 离散化视差 过滤体积 1/4分辨率视差 Softargmax
GRU迭代 逐步精化 视差+体积查询 精化视差 3级+注意力

4.2 网络详细分析

4.2.1 Side-Tuning Adapter (STA) 详解
问题与动机

Sim-to-Real Gap的根本原因

  • 合成数据缺少真实图像的语义/几何先验
  • 单纯在合成数据上训练难以获得模棱两可区域的正确判断

解决方案:适配预训练的单目深度模型

  • DepthAnythingV2在互联网规模真实数据上训练(10K+图像)
  • 学到了丰富的monocular priors(深度、边界、表面法线等)
  • 将这些先验"传递"到立体匹配任务
设计选择对比

论文探索了三种设计方案(Fig. 3左),选择©获得最优结果

复制代码
设计(a): 直接使用DepthAnythingV2的特征金字塔
  └─ 优点:简单
  └─ 缺点:CNN高频特征缺失,BP-2=6.48% ❌

设计(b): ViT-Adapter风格的CNN-ViT特征交换
  └─ 优点:两种特征融合
  └─ 缺点:复杂度高,BP-2=2.22

✅ 设计(c): 【采用】在ViT输出前插入CNN
  ├─ DepthAnythingV2最后一层前降采样
  ├─ 与同尺度CNN特征拼接
  └─ 优点:保留高分辨率+细粒度语义/几何,BP-2=1.97
实现细节

特征提取部分 : 对于图像 I l , I r : f l ( i ) , f r ( i ) ∈ R C i × H i × W i , i ∈ 4 , 8 , 16 , 32 其中第4层(1/4分辨率)融合DepthAnythingV2特征 \begin{aligned} &\text{对于图像 } I_l, I_r:\ &f_l^{(i)}, f_r^{(i)} \in \mathbb{R}^{C_i \times H_i \times W_i}, \quad i \in {4,8,16,32}\ &\text{其中第4层(1/4分辨率)融合DepthAnythingV2特征} \end{aligned} 对于图像 Il,Ir: fl(i),fr(i)∈RCi×Hi×Wi,i∈4,8,16,32 其中第4层(1/4分辨率)融合DepthAnythingV2特征

上下文特征 : f c ( i ) ∈ R C i × H i × W i , i ∈ 4 , 8 , 16 f_c^{(i)} \in \mathbb{R}^{C_i \times H_i \times W_i}, \quad i \in {4,8,16} fc(i)∈RCi×Hi×Wi,i∈4,8,16

  • 用于初始化和驱动GRU递归更新
  • 编码单目先验约束视差合理范围

DepthAnythingV2冻结

  • 原预训练参数不更新
  • 只学习侧面CNN的权重
  • 保护学到的monocular priors
效果验证

如Fig. 3右所示:

  • W/o STA:仅用CNN提取特征,复杂照明(灯)、低纹理(吉他孔)失败
  • W/ STA:利用单目先验成功预测模糊区域的几何信息

4.2.2 混合成本体积构造 详解
成本体积的两个来源

成本体积需要编码两类信息,分别通过不同机制:

V C = [ V g w c , V c a t ] \mathbf{V_C} = [\mathbf{V_{gwc}}, \mathbf{V_{cat}}] VC=[Vgwc,Vcat]

其中两部分沿通道维拼接。

分组相关性 V g w c \mathbf{V_{gwc}} Vgwc(Group-wise Correlation)

目的:传统相关性匹配的优点

V g w c ( g , d , h , w ) = ⟨ f ^ l ( 4 ) ( h , w ) , f ^ r ( 4 ) ( h , w − d ) ⟩ \mathbf{V_{gwc}}(g,d,h,w) = \langle \hat{f}_l^{(4)}(h,w), \hat{f}_r^{(4)}(h,w-d) \rangle Vgwc(g,d,h,w)=⟨f^l(4)(h,w),f^r(4)(h,w−d)⟩

参数含义

  • f ^ \hat{f} f^ :L2归一化特征(保证数值稳定)
  • ⟨ ⋅ , ⋅ ⟩ \langle \cdot, \cdot \rangle ⟨⋅,⋅⟩ :点积(Frobenius内积)
  • g ∈ 1 , . . . , 8 g \in {1,...,8} g∈1,...,8 :将总特征分成8组,每组计算独立相关性
  • d ∈ 0 , . . . , D / 4 − 1 d \in {0,...,D/4-1} d∈0,...,D/4−1 :视差索引
  • ( h , w ) (h,w) (h,w) :空间位置

为什么分组?

复制代码
单个相关性:特征维度太高 C,可能有冗余
分组(G=8):每组C/8维度 → 多个独立相似度度量
好处:多样化视角,容错能力强

输出维度 : G × H 4 × W 4 × D 4 G \times \frac{H}{4} \times \frac{W}{4} \times \frac{D}{4} G×4H×4W×4D (按视差维堆积)

级联特征 V c a t \mathbf{V_{cat}} Vcat(Concatenation)

目的:保留一元特征(单目线索)

V c a t ( d , h , w ) = [ Conv ( f l ( 4 ) ) ( h , w ) , Conv ( f r ( 4 ) ) ( h , w − d ) ] \mathbf{V_{cat}}(d,h,w) = \left[\text{Conv}(f_l^{(4)})(h,w), \text{Conv}(f_r^{(4)})(h,w-d)\right] Vcat(d,h,w)=[Conv(fl(4))(h,w),Conv(fr(4))(h,w−d)]

工作流

  1. 对左右特征分别应用卷积处理
  2. 在视差 d d d 处,将左特征与移位后的右特征拼接
  3. 保留单目先验:曲率、边界、纹理等局部信息

维度变换

  • 原始特征 C C C 通道
  • 内存优化:线性缩小到14通道(共享的1×1卷积)
  • 拼接后:28通道

为什么保留单目特征?

复制代码
相关性V_gwc:捕捉匹配强度(高还是低)
级联V_cat:保留"这个位置长什么样"的信息
两者结合:既有匹配信号,也有几何约束
组合成本体积

V C ( d , h , w ) = [ V g w c ( d , h , w ) , V c a t ( d , h , w ) ] \mathbf{V_C}(d,h,w) = [\mathbf{V_{gwc}}(d,h,w), \mathbf{V_{cat}}(d,h,w)] VC(d,h,w)=[Vgwc(d,h,w),Vcat(d,h,w)]

最终维度 : V C ∈ R ( G + 28 ) × H 4 × W 4 × D 4 = R 36 × H 4 × W 4 × D 4 \mathbf{V_C} \in \mathbb{R}^{(G+28) \times \frac{H}{4} \times \frac{W}{4} \times \frac{D}{4}} = \mathbb{R}^{36 \times \frac{H}{4} \times \frac{W}{4} \times \frac{D}{4}} VC∈R(G+28)×4H×4W×4D=R36×4H×4W×4D


4.2.3 Attentive Hybrid Cost Filtering (AHCF) 详解

这是论文的核心创新,包含两个互补模块。

A. Axial-Planar Convolution (APC) Filtering
问题:3D卷积的可扩展性瓶颈

标准做法的局限

复制代码
3×3×3卷积 ← 小视差范围(D/4≈50)OK
问题:当视差大时(D/4≈200+)或高分辨率图像(1280×720)
     内存消耗:参数O(K³),梯度O(K³C)
     结果:5×5×5已导致80GB GPU内存溢出❌

影响

  • 感受野有限,难以捕捉全局视差一致性
  • 制约了模型在大规模数据上的训练
解决方案:维度解耦

核心思想:将3×3×3卷积分解为两个独立卷积

Conv 3 × 3 × 3 ⇒ { 空间卷积: K s × K s × 1 视差卷积: 1 × 1 × K d \text{Conv}_{3 \times 3 \times 3} \Rightarrow \begin{cases} \text{空间卷积:} K_s \times K_s \times 1 \ \text{视差卷积:} 1 \times 1 \times K_d \end{cases} Conv3×3×3⇒{空间卷积:Ks×Ks×1 视差卷积:1×1×Kd

数学表达(以APC在hourglass中的应用):

APC ∗ spatial ( V ) = ReLU ( BN ( Conv ∗ K s × K s × 1 ( V ) ) ) \text{APC}*{\text{spatial}}(V) = \text{ReLU}\left(\text{BN}\left(\text{Conv}*{K_s \times K_s \times 1}(V)\right)\right) APC∗spatial(V)=ReLU(BN(Conv∗Ks×Ks×1(V)))

APC ∗ disparity ( V ′ ) = ReLU ( BN ( Conv ∗ 1 × 1 × K d ( V ′ ) ) ) \text{APC}*{\text{disparity}}(V') = \text{ReLU}\left(\text{BN}\left(\text{Conv}*{1 \times 1 \times K_d}(V')\right)\right) APC∗disparity(V′)=ReLU(BN(Conv∗1×1×Kd(V′)))

APC ( V ) = APC ∗ disparity ( APC ∗ spatial ( V ) ) \text{APC}(V) = \text{APC}*{\text{disparity}}(\text{APC}*{\text{spatial}}(V)) APC(V)=APC∗disparity(APC∗spatial(V))

参数设置(表6的最优选择):

  • K s = 3 K_s = 3 Ks=3(空间核大小)
  • K d = 17 K_d = 17 Kd=17(视差核大小)

内存对比 : 标准卷积: 3 3 = 27 参数/操作 \text{标准卷积:} 3^3 = 27 \text{ 参数/操作} 标准卷积:33=27 参数/操作 APC分解: 3 2 + 17 = 26 参数/操作 \text{APC分解:} 3^2 + 17 = 26 \text{ 参数/操作} APC分解:32+17=26 参数/操作 5×5×5卷积: 5 3 = 125 (内存爆炸) \text{5×5×5卷积:} 5^3 = 125 \text{ (内存爆炸)} 5×5×5卷积:53=125 (内存爆炸)

相同表示能力下,内存降低~90%

与可分离卷积的区别
特性 可分离卷积 APC
分解方式 沿空间和通道 沿空间和视差
是否分组 是(深度卷积) (保留所有通道)
表示能力 降低(分组限制) 完整保留
Hourglass中的应用
复制代码
混合成本体积 V_C (H/4 × W/4 × D/4)
    │
    ├─ [下采样块 1]
    │  └─ 不用APC(改变分辨率)
    │
    ├─ [中间卷积层]
    │  └─ 用APC (K_s=3, K_d=17)  ← 局部聚合
    │  └─ 用APC (K_s=3, K_d=17)
    │
    ├─ [跳跃连接] ← 残差
    │
    ├─ [上采样块]
    │  └─ 不用APC(改变分辨率)
    │
    └─ 输出特征
为什么视差维度特殊处理?

视差维度与空间维度的物理含义不同

  • 空间维度:图像坐标,相邻像素往往相似(平面约束)
  • 视差维度:匹配成本的概率分布,需要在整个范围内进行聚合
  • 特点:需要更大的核大小来建模视差的全局分布

B. Disparity Transformer (DT)
背景:为什么需要全局推理?

APC虽然高效,但仍是局部操作

复制代码
局部感受野例子:
K_s=3, K_d=17的APC
├─ 空间:3×3邻域(仅∼8个相邻像素)
└─ 视差:17个视差值范围(D/4≈50中的17)

问题:某些匹配歧义需要跨越**整个视差范围**的全局推理
例如:
  • 重复纹理区域:需要参考不同尺度的相同模式
  • 薄结构:需要从周围相似区域借用信息
  • 透明反射物体:需要全局一致性约束
核心设计:令牌化 + 自注意力

① 下采样 : Conv 4 × 4 × 4 ( V C ) , stride = 4 \text{Conv}_{4 \times 4 \times 4}(\mathbf{V_C}), \text{ stride}=4 Conv4×4×4(VC), stride=4 输出: R H 16 × W 16 × D 4 \text{输出:} \mathbb{R}^{\frac{H}{16} \times \frac{W}{16} \times \frac{D}{4}} 输出:R16H×16W×4D

减少Transformer计算复杂度(注意力是二次的)

② 令牌序列构造(reshape操作):

V C ∈ R C × H 16 × W 16 × D 4 \mathbf{V_C} \in \mathbb{R}^{C \times \frac{H}{16} \times \frac{W}{16} \times \frac{D}{4}} VC∈RC×16H×16W×4D ⇓ Reshape ( R ) \Downarrow \text{Reshape}(R) ⇓Reshape(R) Token Sequence ∈ R H 16 × W 16 × D 4 \text{Token Sequence} \in \mathbb{R}^{\frac{H}{16} \times \frac{W}{16} \times \frac{D}{4}} Token Sequence∈R16H×16W×4D

每个令牌序列

  • 数量 : H 16 × W 16 \frac{H}{16} \times \frac{W}{16} 16H×16W 个(每个空间位置一个)
  • 长度 : D 4 \frac{D}{4} 4D (视差维度)
  • 语义:该空间位置在不同视差值下的成本

③ 位置编码

Q ∗ 0 = PE ( R ( Conv ∗ 4 × 4 × 4 ( V C ) ) ) \mathbf{Q}*0 = \text{PE}(\mathbf{R}(\text{Conv}*{4 \times 4 \times 4}(\mathbf{V_C}))) Q∗0=PE(R(Conv∗4×4×4(VC)))

为什么需要位置编码?

  • 令牌序列的顺序信息 至关重要:第 d d d 个令牌代表视差 d d d
  • PE告诉模型每个位置的视差编码,保留序列结构

④ Transformer编码块堆叠(4个块):

Q 1 = Norm ( MultiHead ( Q 0 , Q 0 , Q 0 ) + Q 0 ) \mathbf{Q}_1 = \text{Norm}\left(\text{MultiHead}(\mathbf{Q}_0, \mathbf{Q}_0, \mathbf{Q}_0) + \mathbf{Q}_0\right) Q1=Norm(MultiHead(Q0,Q0,Q0)+Q0) Q 2 = Norm ( FFN ( Q 1 ) + Q 1 ) \mathbf{Q}_2 = \text{Norm}\left(\text{FFN}(\mathbf{Q}_1) + \mathbf{Q}_1\right) Q2=Norm(FFN(Q1)+Q1)

每个块包含:

  • 自注意力层 + 残差连接 + LayerNorm
  • 前馈网络 + 残差连接 + LayerNorm

参数设置

  • 头数 h = 4 h=4 h=4
  • 位置编码:Cosine (vs RoPE)
  • 作用范围:仅视差维度(vs全体积)

⑤ 上采样 + 融合

Output = Upsample trilinear ( Q 2 ) + HourglassOutput \text{Output} = \text{Upsample}_{\text{trilinear}}(\mathbf{Q}_2) + \text{HourglassOutput} Output=Upsampletrilinear(Q2)+HourglassOutput

  • 三线性插值 恢复到 V C \mathbf{V_C} VC 的原始大小
  • 残差相加融合两个子模块,保留各自优势
Transformer在成本体积中的作用

问题:为什么在成本过滤而不是特征提取阶段用Transformer?

答案

复制代码
特征提取 (特征维度C):
  • 图像语义丰富,Transformer已有工作验证有效性
  • 但立体特有信息还未充分编码
  
成本体积 (视差维度D/4):
  • 已编码了立体匹配信息
  • 视差轴有特殊结构:应形成单峰分布
  • 需要沿视差进行全局聚合,Transformer自注意力理想
  
本论文创新:
  • 不是用Transformer做特征(已有人做)
  • 而是在成本过滤阶段用Transformer进行视差优化
  • 新视角,填补空白!
消融验证

表6的关键消融结果:

变化 BP-2 说明
仅Disparity维注意力 1.97 ✅ 最优
全体积注意力 2.25 过大的搜索空间,效果差
仅空间维聚合 2.06 缺乏视差长程依赖
APC单独 2.16 局部限制
DT单独 2.21 缺乏空间-视差耦合
APC + DT 1.97 ✅ 互补最优

4.2.4 初始视差预测

Softargmax操作

d 0 = ∑ d = 0 D 4 − 1 d ⋅ Softmax ( V C ′ ) ( d ) d_0 = \sum_{d=0}^{\frac{D}{4}-1} d \cdot \text{Softmax}(\mathbf{V'_C})(d) d0=d=0∑4D−1d⋅Softmax(VC′)(d)

其中 d 0 d_0 d0 处于 1 4 \frac{1}{4} 41 原始分辨率。

工作原理

  1. 概率化 :将过滤后的成本体积转换为概率分布 p ( d ) = exp ⁡ ( V ′ ∗ C ( d ) ) ∑ ∗ d ′ exp ⁡ ( V C ′ ( d ′ ) ) p(d) = \frac{\exp(\mathbf{V'*C}(d))}{\sum*{d'} \exp(\mathbf{V'_C}(d'))} p(d)=∑∗d′exp(VC′(d′))exp(V′∗C(d))
  2. 期望计算 :加权求和得到期望视差 d 0 = E [ d ] = ∑ d d ⋅ p ( d ) d_0 = \mathbb{E}[d] = \sum_d d \cdot p(d) d0=E[d]=d∑d⋅p(d)

优势

  • 可微分:支持端到端训练
  • 光滑:相比argmax的离散决策更稳定
  • 不确定性感知:考虑整个分布,不仅是峰值
  • 梯度流通畅:利于反传优化

4.2.5 迭代细化:多尺度GRU

这一阶段将初始视差 d 0 d_0 d0 逐步精化为高精度。

工作流程图
复制代码
初始视差 d₀ (1/4分辨率)
    │
    ├─→ [第1次迭代 k=0]
    │    ├─ 体积查询
    │    ├─ GRU更新
    │    └─ d₁ = d₀ + Δd₀
    │
    ├─→ [第2次迭代 k=1]
    │    └─ ...
    │
   ...
    │
    └─→ [第32次迭代 k=31]
         └─ d₃₂

凸采样上采样到完整分辨率
第k次迭代的详细过程

步骤1:构造特征向量

成对相关体积 (已在初始化时计算): V c o r r ( w ′ , h , w ) = ⟨ f l ( 4 ) ( h , w ) , f r ( 4 ) ( h , w ′ ) ⟩ \mathbf{V_{corr}}(w', h, w) = \langle f_l^{(4)}(h, w), f_r^{(4)}(h, w') \rangle Vcorr(w′,h,w)=⟨fl(4)(h,w),fr(4)(h,w′)⟩

输出: R W 4 × H 4 × W 4 \mathbb{R}^{\frac{W}{4} \times \frac{H}{4} \times \frac{W}{4}} R4W×4H×4W(按右图列维度堆积)

融合体积特征 (基于当前视差查询): F V ( h , w ) = [ V ′ ∗ C ( d k , h , w ) , V ∗ c o r r ( w − d k , h , w ) ] \mathbf{F_V}(h,w) = [\mathbf{V'*C}(d_k, h, w), \mathbf{V*{corr}}(w - d_k, h, w)] FV(h,w)=[V′∗C(dk,h,w),V∗corr(w−dk,h,w)]

  • 第一项:从过滤成本体积查询当前视差值处的特征
  • 第二项:从相关体积查询当前视差对应的右图位置的相关性

编码为GRU输入 : x k = [ Conv v ( F V ) , Conv d ( d k ) , c ] \mathbf{x}_k = [\text{Conv}_v(\mathbf{F_V}), \text{Conv}_d(d_k), c] xk=[Convv(FV),Convd(dk),c]

  • Conv v ( F V ) \text{Conv}_v(\mathbf{F_V}) Convv(FV):卷积处理融合的体积特征
  • Conv d ( d k ) \text{Conv}_d(d_k) Convd(dk):编码当前视差值(位置编码)
  • c = ReLU ( f c ) c = \text{ReLU}(f_c) c=ReLU(fc):上下文特征(包含STA的单目先验)
  • 三部分级联作为GRU输入

步骤2:GRU门控机制(三个方程)

更新门 (Eq. 6): z k = σ ( Conv ∗ z ( [ h ∗ k − 1 , x k ] ) ) z_k = \sigma(\text{Conv}*z([h*{k-1}, \mathbf{x}_k])) zk=σ(Conv∗z([h∗k−1,xk]))

  • 决定有多少历史信息要保留
  • z k ∈ [ 0 , 1 ] z_k \in [0,1] zk∈[0,1]:接近0表示忽视历史,接近1表示保留历史

重置门 (Eq. 7): r k = σ ( Conv ∗ r ( [ h ∗ k − 1 , x k ] ) ) r_k = \sigma(\text{Conv}*r([h*{k-1}, \mathbf{x}_k])) rk=σ(Conv∗r([h∗k−1,xk]))

  • 决定前一隐状态中有多少信息参与候选值计算
  • 防止灾难性遗忘(catastrophic forgetting)

候选隐状态 (Eq. 8): h ^ k = tanh ⁡ ( Conv ∗ h ( [ r k ⊙ h ∗ k − 1 , x k ] ) ) \hat{h}_k = \tanh(\text{Conv}*h([r_k \odot h*{k-1}, \mathbf{x}_k])) h^k=tanh(Conv∗h([rk⊙h∗k−1,xk]))

  • r k ⊙ h k − 1 r_k \odot h_{k-1} rk⊙hk−1:重置后的前一隐状态
  • 与当前输入拼接,经过卷积+tanh生成新的信息

新隐状态 (Eq. 9): h k = ( 1 − z k ) ⊙ h k − 1 + z k ⊙ h ^ k h_k = (1 - z_k) \odot h_{k-1} + z_k \odot \hat{h}_k hk=(1−zk)⊙hk−1+zk⊙h^k

  • 加权融合 : ( 1 − z k ) (1-z_k) (1−zk)权重的历史 + z k z_k zk权重的新信息
  • 确保梯度流通畅

步骤3:视差更新(Eq. 10):

d k + 1 = d k + Conv Δ ( h k ) d_{k+1} = d_k + \text{Conv}_\Delta(h_k) dk+1=dk+ConvΔ(hk)

  • 增量预测:学习相对改进而非绝对值
  • Conv Δ \text{Conv}_\Delta ConvΔ:单层卷积预测 Δ d ∈ ( − 1 , 1 ) \Delta d \in (-1, 1) Δd∈(−1,1) 范围
  • 优势:增量学习比绝对值更容易收敛
多尺度结构(关键)

论文使用三级GRU块进行从粗到细的更新:

复制代码
初始隐状态初始化 (三个尺度):
h₀⁽⁴⁾ = tanh(f_c⁽⁴⁾)   [粗级别,1/4分辨率]
h₀⁽⁸⁾ = tanh(f_c⁽⁸⁾)   [中级别,1/8分辨率]  
h₀⁽¹⁶⁾ = tanh(f_c⁽¹⁶⁾)  [细级别,1/16分辨率]

每个级别的GRU独立更新,之后用注意力机制融合

为什么多尺度?

  • 粗级别 ( 1 / 4 1/4 1/4):捕捉全局大尺度视差变化(平面、阶跃)
  • 中级别 ( 1 / 8 1/8 1/8):处理中等尺度结构(物体、边界)
  • 细级别 ( 1 / 16 1/16 1/16):捕捉局部细节(纹理、高频)
  • 融合:各级别独立学习,注意力机制自适应加权
终端上采样

d k ∈ R H 4 × W 4 → Convex Sampling d final ∈ R H × W d_k \in \mathbb{R}^{\frac{H}{4} \times \frac{W}{4}} \xrightarrow{\text{Convex Sampling}} d_{\text{final}} \in \mathbb{R}^{H \times W} dk∈R4H×4WConvex Sampling dfinal∈RH×W

凸采样(Convex Sampling)的优势

  • 相比简单的双线性/三线性插值更精准
  • 学习图像的局部几何结构
  • 减少上采样导致的棱角和锯齿

4.2.6 损失函数与训练策略
损失函数定义(Eq. 11)

L = ∣ d 0 − d ‾ ∣ ∗ smooth + ∑ ∗ k = 1 K γ K − k ∣ d k − d ‾ ∣ 1 \mathcal{L} = \left|d_0 - \overline{d}\right|*{\text{smooth}} + \sum*{k=1}^{K} \gamma^{K-k} \left|d_k - \overline{d}\right|_1 L= d0−d ∗smooth+∑∗k=1KγK−k dk−d 1

其中:

  • d ‾ \overline{d} d:ground-truth视差
  • ∣ ⋅ ∣ smooth |\cdot|_{\text{smooth}} ∣⋅∣smooth:Smooth L1损失(对初始预测)
  • ∣ ⋅ ∣ 1 |\cdot|_1 ∣⋅∣1:L1范数(对迭代预测)
  • γ = 0.9 \gamma = 0.9 γ=0.9:衰减系数
  • K K K:总迭代次数(训练时K=22)

设计特点

复制代码
初始预测权重: 1.0
第1次迭代权重: 0.9
第2次迭代权重: 0.9²
...
最后迭代权重: 0.9^(K-1)

效果:
  • 初期迭代(小k)权重大 → 快速粗调
  • 后期迭代(大k)权重小 → 允许细调可能卡在局部
  • 平衡稳定性和精度
训练策略

数据集组合

复制代码
FSD (新建):1M对
+
Scene Flow:40K对
+ Sintel:1K对
+ CREStereo:200K对
+ FallingThings:62K对
+ InStereo2K:2K对
+ Virtual KITTI 2:...对

超参数设置

  • 优化器:AdamW
  • 学习率:1e-4,在0.8×训练步时衰减×0.1
  • 批量大小:128(32 A100 GPUs × 4样本/GPU)
  • 训练步数:200K
  • 图像输入大小:320×736(随机裁剪)
  • 最大视差:416像素
  • 训练迭代:K=22次
  • 推理迭代:K=32次(更多迭代提高精度)

数据增强

  • 随机翻转、旋转
  • 颜色抖动
  • 高斯模糊
  • 遮挡模拟
  • 类似[36]的标准增强

4.3 FoundationStereo Dataset (FSD) 详解

数据集规模与特点

规模对比(Table 1):

数据集 立体对数 分辨率 场景数 质量特性
Scene Flow 40K 960×540 9
CREStereo 200K 1920×1080 0
FSD 1M 1280×720 12

关键特性

  • 最大规模的合成立体匹配数据集
  • 高保真渲染:NVIDIA Omniverse RTX path-tracing(32-128 spp)
  • 丰富资产:5000+ 3D对象,包含高频几何细节
  • 多样化难度:反射、低纹理、遮挡、透明等
生成过程

工具与资源

  • 渲染引擎:NVIDIA Omniverse
  • GPU集群:48× A40,连续10天
  • 资产来源:艺术设计 + 3D扫描
  • 材料库:150+ 材质,400+ 纹理

场景类型(图4展示):

  1. 结构化场景 (12个预设):
    • 室内:家庭、办公室、走廊、厨房等
    • 户外:仓库、工厂、停车场等
    • 特点:布局合理,物体放置逼真
  2. 随机化场景 (更多样):
    • 大量飞行物体(干扰项、目标物)
    • 各种形状和纹理的几何体
    • 高度随机的配置
领域随机化策略

相机配置(关键):

复制代码
视差范围多样化:
  • 可变基线 (baseline):改变左右相机距离
  • 可变焦距 (focal length):从广角到长焦
  
效果:生成不同视差分布,覆盖[0, 250]像素范围(见Fig.9)

场景配置

复制代码
布局方式 (2种):
  1. Chaotic (混乱):大量飞行体,简单背景
  2. Realistic (写实):预设场景,物理约束
  
场景子类型 (3类):
  • Navigation:相机平行于地面,对象远
  • Driving:相机沿地面,对象沿路径
  • Manipulation:相机向下,对象近(机器人交互)

光照随机化

  • 全局光照、天空光、点光源
  • 亮度、颜色、方向随机
  • 光照时间:白天、黄昏、夜晚
  • 效果:模拟各种真实光线条件

材料与纹理多样化

  • 150+ 预设材料(金属、木质、布料等)
  • 400+ 纹理用于瓷砖包裹
  • 程序化生成的随机纹理
  • 提高渲染逼真度
自动迭代清洁管道(Iterative Self-Curation)

问题:域随机化难以避免产生模糊样本

复制代码
问题类型:
  • 严重纹理重复:无法区分视差
  • 全反射或有限背景:对应关系不清
  • 单色不当光照:无法估计深度

解决方案(图4右):

复制代码
第1轮:
  训练初版FoundationStereo在FSD上
  ↓
  评估FSD:标记BP-2 > 60%的样本为"模糊"
  ↓
  重新生成这些模糊样本(新的随机配置)
  ↓
第2轮:
  用改进后的FSD重新训练模型
  ↓
  性能提升 (消融表8验证)
  
结果:迭代过程既改进数据集,也改进模型!

效果量化(表8):

设置 Middlebury BP-2
未清洁 1.27
已清洁(×2轮) 1.15

5. 实验结果

5.1 数据集与评估指标

基准数据集

四个公共真实数据集

  1. Middlebury [51]
    • 类型:室内高精度数据
    • 特点:地结光采集,高质量GT(结构光)
    • 评估:通常用半分辨率,非遮挡区域
    • 分辨率:约600×500
  2. ETH3D [52]
    • 类型:室内+户外场景
    • 特点:高分辨率灰度立体对
    • 范围:建筑物、街道、自然场景
    • 分辨率:约1600×1200
  3. KITTI 2012 & 2015 [20, 45]
    • 类型:真实自驾场景
    • 特点:LiDAR稀疏GT
    • 评估:Monkaa (合成)、Driving、FlyingThings
    • 分辨率:375×1242
评估指标
指标 含义 优点
EPE 平均每像素视差误差 连续误差度量
BP-X 误差>X像素的像素比例(%) 关注严重错误
D1 D1范数:误差>3px且>5% GT的比例 KITTI标准

5.2 零样本泛化对比

场景1:仅在SceneFlow上训练

Table 2上半部:所有对比方法仅用SceneFlow训练

复制代码
结果:FoundationStereo(仅SceneFlow) 
  vs 其他方法(仅SceneFlow)

Middlebury BP-2:
  CREStereo++: 14.8%
  NMRF: 7.5%
  Ours: 5.5%  ← 显著优
  
优势源于:
  • STA + 单目先验
  • 虽然仍用SceneFlow(40K),但架构强
场景2:允许混合数据集训练(关键)

Table 2下半部:允许用FSD+其他所有数据集,但不微调目标域

复制代码
完全零样本设置(Fair Comparison):
  
Middlebury BP-2:
  Selective-IGEV*: 7.5% (训练了Middlebury)
  Ours: 1.1%    ← 不用Middlebury仍更优!
  
KITTI-15 D1:
  IGEV++: 5.9% (微调KITTI)
  Ours: 2.8%    ← 无微调但更好
  
结论:FoundationStereo的零样本泛化力超过多数微调方法
场景3:野生图像泛化(Figure 5)

定性对比:难挑战图像

复制代码
测试图像特征:
  • DROID数据集(机器人场景)
  • 自定义真实拍摄
  • 高度挑战的场景

难度特征:
  ✓ 强反射(镜子、金属)
  ✓ 透明物体(玻璃、水)
  ✓ 重复纹理(地毯、墙壁)
  ✓ 复杂光照(阴影、强曝光)
  ✓ 细结构(电线、头发)

对比方法:
  - CroCo v2  [68]
  - CREStereo [34]
  - IGEV      [71]
  - Selective-IGEV [67]
  
结果:FoundationStereo定性上显著更好✓

5.3 域内对标

Table 3:Scene Flow 测试集
复制代码
所有方法都在Scene Flow train/test标准分割上评估

方法          EPE
MoCha-Stereo: 0.41
Selective-IGEV: 0.44
Ours:         0.33  ← 显著领先(19.5%改进)

说明:虽然不是论文重点,但模型设计本身就很强

Table 4:ETH3D Leaderboard

两个设置

①微调版本:

复制代码
Training: FSD + 其他 + ETH3D (再训50K步)

排名:1st on leaderboard (提交时)
BP-0.5: 1.26
BP-1.0: 0.26

与最强前作对比:
  之前最优 Selective-IGEV: BP-0.5=3.06
  本文微调: BP-0.5=1.26  ← 超60%改进!

②零样本版本:

复制代码
Training: FSD + 其他 (不用ETH3D)

Zero-shot EPE: 0.13
vs 微调版本:  0.09

结论:
  零样本已接近微调水平(1.5倍误差)
  而微调的SOTA其他方法有2-3倍误差

5.4 消融研究

Table 5:STA设计选择
复制代码
不同vision foundation model:

DINOv2-L:           BP-2 = 2.46
DepthAnythingV2-S:  BP-2 = 2.22
DepthAnythingV2-B:  BP-2 = 2.11
DepthAnythingV2-L:  BP-2 = 1.97  ✓ 最优

为什么DAV2优于DINOv2?
  • DAV2在单目深度估计上训练(任务相关性)
  • DINOv2偏向对应匹配(分辨率不足)

三种设计方案

复制代码
(a) 仅用DepthAnythingV2特征金字塔:
    BP-2 = 6.48  ❌ (差)
    
(b) ViT-Adapter式特征交换:
    BP-2 = 2.22  
    
(c) 【采用】CNN在ViT之前插入:
    BP-2 = 1.97  ✅ (最优)
    
关键:(c)保留高分辨率细粒度特征

ViT冻结vs解冻

复制代码
冻结 ViT 参数:  BP-2 = 1.97  ✓
解冻 ViT:       BP-2 = 3.94  ❌

原因:ViT参数更新破坏预训练单目先验
Table 6:AHCF设计选择

DT部分(左侧行)

DT部分(Disparity Transformer)------解释与结论

上表中(左侧)主要比较了 DT 的位置编码、特征尺度、注意力范围以及 DT 放置位置等:

  1. 位置编码(Position Embedding)

    • RoPE:BP-2 = 2.19
    • CosineBP-2 = 1.97(最优)
    • 论文解释:RoPE 主要编码相对距离 ,但由于该任务里 4D 成本体积的视差序列长度是固定的,RoPE 并没有带来优势,反而不如 Cosine。
  2. Transformer输入特征尺度(Feature scale)

    • 1/32:BP-2 = 2.06
    • 1/16BP-2 = 1.97(最优)
    • 论文结论:1/16 在效果与信息量之间更合适。
  3. 注意力范围(Attention scope)

    • 全体积注意力(Full):BP-2 = 2.25

    • 仅沿视差维注意力(Disparity)BP-2 = 1.97

    • 论文解释:理论上全体积注意力感受野更大,但代价是 4D 成本体积空间维度巨大,

      注意力可用性/可优化性较差

      ;而沿视差维度注意力提供了足够长程信息,能更好服务

      • 初始视差初始化
      • 以及 GRU细化阶段的体积特征查询(volume lookup)
  4. DT 与 hourglass 的相对位置(Placement)

    • Pre-hourglass:BP-2 = 2.06
    • Post-hourglass:BP-2 = 2.20
    • Parallel(并行)BP-2 = 1.97(最优)
    • 结论:DT 与 APC hourglass 以并行方式融合更优。

APC部分(Axial-Planar Convolution)------解释与结论

(右侧表)比较的是 APC 中核大小 ( K s , K d ) (K_s, K_d) (Ks,Kd),其中括号最后一维对应视差维核大小 K d K_d Kd:

  • ( 3 , 3 , 1 ) , ( 1 , 1 , 5 ) (3,3,1),(1,1,5) (3,3,1),(1,1,5):BP-2 = 2.10
  • ( 3 , 3 , 1 ) , ( 1 , 1 , 9 ) (3,3,1),(1,1,9) (3,3,1),(1,1,9):BP-2 = 2.06
  • ( 3 , 3 , 1 ) , ( 1 , 1 , 13 ) (3,3,1),(1,1,13) (3,3,1),(1,1,13):BP-2 = 2.01
  • ( 3 , 3 , 1 ) , ( 1 , 1 , 17 ) (3,3,1),(1,1,17) (3,3,1),(1,1,17):BP-2 = 1.97(达到饱和最优)
  • ( 3 , 3 , 1 ) , ( 1 , 1 , 21 ) (3,3,1),(1,1,21) (3,3,1),(1,1,21):BP-2 = 1.98(略有回升/饱和)

**总体规律(论文原意):**随着 K d K_d Kd 增大,收益逐步提升,大约在 17 处饱和


Table 7:模块有效性与FSD数据集贡献

Table 7 在两部分展示消融:

  • Left:网络模块有效性(STA / APC / DT)
  • Right:训练时是否加入 FSD 数据集(以及与 AHCF 组件的组合效果)

(1) Table 7 Left:Effects of Proposed Modules

(以 BP-2 为指标,Middlebury训练子集评估,论文设置下通常用于"零样本泛化"检验)

  • 不使用 STA / APC / DT:BP-2 = 2.34

  • 只用 STA

    BP-2 = 1.15

    • 说明:单目先验适配(STA)对提升真实场景泛化帮助最大。
  • STA + APC(无 DT):BP-2 = 2.16

  • STA + DT(无 APC):BP-2 = 2.05

  • STA + APC + DTBP-2 = 1.97(完整模型最优)

解读:

  • STA 提供关键的 monocular prior(单目几何/语义先验),显著降低歧义;
  • APC 与 DT 分别在不同维度聚合成本信息:空间聚合 vs 视差长程上下文;
  • 三者协同后整体效果最好。

(2) Table 7 Right:Effects of FoundationStereo Dataset(FSD)

该表研究:训练基础模型时,是否将 FSD加入到已有公开数据集训练中。

关键结论(按 BP-2 变化趋势):

  • 不用 FSD:BP-2 = 2.48
  • 加入 FSD(在相应组合下):BP-2 降到 2.21
  • 当进一步加入 APC / DT 并结合 FSD,最终达到 1.97(完整配置)

同时论文在后文表 7 的解读中指出:FSD 单独带来的提升是可观的,并且与模型结构(APC/DT)存在互补效应。


5.3 性能对比(Experiments)

5.3.1 零样本泛化:Table 2 + 直观结论

论文在四个真实数据集上进行零样本泛化对比(训练/推理使用固定 foundation 模型参数,不对目标域微调)。

  • 第一组设置:仅 Scene Flow 训练
    • 结果总体:Ours(FoundationStereo)在 Middlebury、ETH3D、KITTI-12、KITTI-15 上均优于对比方法,尤其 Middlebury 的 BP-2 有明显优势。
  • 第二组设置:允许训练集包含任意公开数据,但排除目标域(更接近实际"可用数据但不微调目标域")
    • 结论非常强:即便对比方法可能包含目标域相近数据的训练优势,FoundationStereo 仍能取得更低的 BP-2 / D1 / EPE。

(具体数值你前文已经在 summary 中给到过:如 Middlebury BP-2 从 7.5%(Selective-IGEV*)降到 1.1%(Ours),KITTI-15 D1 从 5.9% 降到 2.8% 等。)


5.3.2 In-the-wild 定性对比:Figure 5

Figure 5 展示在野生场景中的零样本推理可视化对比,挑战包括:

  • 反射(reflective)
  • 半透明/透明(translucent)
  • 重复纹理(repetitive textures)
  • 复杂光照(shadow / strong exposure)
  • 薄结构(thin-structures,如电线、薄杆)

论文强调这些场景正体现了其 cost filtering(AHCF)+ 迭代细化(GRU refinement)的价值。


5.3.3 域内对比:Table 3(Scene Flow)与 Table 4(ETH3D)
Table 3:Scene Flow(in-domain)EPE

在 Scene Flow 官方划分下,所有方法训练/测试一致。论文给出的关键结果是:

  • Ours:EPE = 0.34
    显著优于同类对比方法(例如 Selective-IGEV = 0.44,MoCha-Stereo = 0.41 等)。
Table 4:ETH3D Leaderboard

论文给出两种设置:

  1. Fine-tuned(微调版本)
    • BP-0.5 = 1.26
    • BP-1.0 = 0.26
    • EPE = 0.09
    • 并且论文说明:提交时排名 1st
  2. Zero-shot(不使用 ETH3D 训练)
    • BP-0.5 = 2.31
    • BP-1.0 = 1.52
    • EPE = 0.13
    • 并说明:这一零样本效果仍接近甚至优于许多需要 in-domain 训练的方法。

6. 不足之处与未来工作(Limitations & Future Work)

论文在结论中明确指出至少两点局限:

  1. 效率尚未优化(Efficiency)
    • 在 NVIDIA A100 上、分辨率 375×1242 时耗时约 0.7s
    • 未来方向:借鉴其他视觉基础模型的 **蒸馏(distillation)**与 剪枝(pruning) 技术以提升速度与显存效率。
  2. FSD 数据集中透明物体多样性有限
    • FSD 虽然包含反射等关键难例,但论文指出其中全透明对象数量/多样性仍有限
    • 未来方向:在训练中进一步加入更大规模、更多种类的全透明物体以增强鲁棒性。

7. 总体评价(Overall Evaluation)

综合来看,FoundationStereo 的路线是:

  • 数据端:FSD(1M合成、高保真 + 自动自清洁)解决训练规模与歧义样本问题;
  • 先验端:STA 将 DepthAnythingV2 这种"视觉基础知识"迁移到立体成本体积中;
  • 成本过滤端:AHCF = APC(空间/局部视差聚合,效率与表示平衡)+ DT(沿视差长程注意力,解决全局上下文不足);
  • 细化端:迭代 GRU(多尺度注意力 + 基于最新视差的体积 lookup)提升精度与收敛性。

因此它不仅在零样本任务上表现出色,而且通过消融(Table 5/6/7)也能看到每个组件的可解释贡献。

相关推荐
春末的南方城市4 小时前
比肩顶尖闭源模型!京东开源240亿参数多模态模型JoyAI-Image:统一理解/生成/编辑,重塑AI图像编辑。
人工智能·深度学习·机器学习·计算机视觉·aigc
格林威5 小时前
工业相机 SDK 在 Docker 容器中的部署与权限配置(含 USB/GigE)
开发语言·人工智能·数码相机·计算机视觉·docker·容器·工业相机
泰恒8 小时前
人工智能简述
人工智能·深度学习·yolo·机器学习·计算机视觉
薛定e的猫咪10 小时前
【Neural Networks 2025】TDAG 论文解读:多智能体不是重点,动态任务分解才是关键
人工智能·深度学习·计算机视觉
xiaoyaohou1111 小时前
014、Neck结构改进(二):自适应空间特征金字塔(ASPP)的引入
深度学习·计算机视觉·cnn
__Wedream__11 小时前
NTIRE 2026 Challenge on Efficient Super-Resolution——冠军方案解读
人工智能·深度学习·算法·计算机视觉·超分辨率重建
春末的南方城市12 小时前
CVPR 2026 | 复旦开源首个端到端多模态矢量动画生成框架OmniLottie:UI动效革命,文本/图像一键转Lottie动画!
人工智能·深度学习·机器学习·计算机视觉·aigc
好家伙VCC12 小时前
**发散创新:基于Python与OpenCV的视频流帧级分析实战**在当前人工智能与计算机视觉飞速发展的背景下
java·人工智能·python·计算机视觉
盘古开天166612 小时前
【本科毕业设计全集】资源目录
人工智能·计算机视觉·毕业设计·资源合集