CREStereo 论文总结(2022)

CREStereo 论文总结

论文标题:Practical Stereo Matching via Cascaded Recurrent Network with Adaptive Correlation

作者:Jiankun Li, Peisen Wang, Pengfei Xiong, Tao Cai, Ziwei Yan, Lei Yang, Jiangyu Liu, Haoqiang Fan, Shuaicheng Liu

单位:Megvii Research、Tencent、电子科技大学

会议:CVPR 2022

代码https://github.com/megvii-research/CREStereo


文章目录

  • [CREStereo 论文总结](#CREStereo 论文总结)
    • [1. 研究背景与动机](#1. 研究背景与动机)
      • [1.1 实际场景中的三大挑战](#1.1 实际场景中的三大挑战)
      • [1.2 本文的解决方案](#1.2 本文的解决方案)
    • [2. 网络架构总览](#2. 网络架构总览)
    • [3. 各模块详细原理](#3. 各模块详细原理)
      • [3.1 自适应群组相关层(Adaptive Group Correlation Layer, AGCL)](#3.1 自适应群组相关层(Adaptive Group Correlation Layer, AGCL))
        • [3.1.1 局部特征注意力(Local Feature Attention)](#3.1.1 局部特征注意力(Local Feature Attention))
        • [3.1.2 2D-1D 交替局部搜索(2D-1D Alternate Local Search)](#3.1.2 2D-1D 交替局部搜索(2D-1D Alternate Local Search))
        • [3.1.3 可形变搜索窗口(Deformable Search Window)](#3.1.3 可形变搜索窗口(Deformable Search Window))
        • [3.1.4 群组相关(Group-wise Correlation)](#3.1.4 群组相关(Group-wise Correlation))
      • [3.2 级联循环网络(Cascaded Recurrent Network)](#3.2 级联循环网络(Cascaded Recurrent Network))
        • [3.2.1 循环更新模块(Recurrent Update Module, RUM)](#3.2.1 循环更新模块(Recurrent Update Module, RUM))
        • [3.2.2 级联细化(Cascaded Refinement)](#3.2.2 级联细化(Cascaded Refinement))
      • [3.3 推理阶段:堆叠级联架构(Stacked Cascades for Inference)](#3.3 推理阶段:堆叠级联架构(Stacked Cascades for Inference))
      • [3.4 损失函数](#3.4 损失函数)
    • [4. 新合成训练数据集](#4. 新合成训练数据集)
      • [4.1 形状多样性](#4.1 形状多样性)
      • [4.2 光照与纹理多样性](#4.2 光照与纹理多样性)
      • [4.3 视差分布设计](#4.3 视差分布设计)
    • [5. 实验结果](#5. 实验结果)
      • [5.1 消融实验(表 1,Middlebury + ETH3D)](#5.1 消融实验(表 1,Middlebury + ETH3D))
      • [5.2 与 SOTA 方法对比](#5.2 与 SOTA 方法对比)
      • [5.3 实用性能评估](#5.3 实用性能评估)
    • [6. 关键设计总结](#6. 关键设计总结)
    • [7. 结论与局限性](#7. 结论与局限性)

1. 研究背景与动机

1.1 实际场景中的三大挑战

现有立体匹配算法在合成数据集上取得了显著进展,但在消费级设备(如智能手机)拍摄的真实图像上仍面临以下三大障碍:

挑战一:细节结构恢复困难

  • 消费级相机拍摄的高分辨率图像中,细线结构(如铁丝网、猫须、电线)的视差恢复极为困难
  • 现有方法往往在细节区域产生过度平滑,导致散景渲染等应用中出现不自然的效果

挑战二:非理想极线校正(Non-ideal Rectification)

  • 真实双目相机(尤其是智能手机双目模组)常配备广角镜头和长焦镜头,焦距和畸变参数各异
  • 校正后的立体图像对中,对应点往往不严格在同一扫描线上,存在轻微的垂直偏移(< 2 像素)或 3D 空间中的小旋转
  • 假设完美校正的现有方法在此类情况下极易失效

挑战三:训练数据泛化性不足

  • 现有合成数据集(如 SceneFlow、Falling Things)物体形状变化有限、视差分布受限
  • 难以覆盖无纹理、重复纹理、反光等真实世界中的困难场景

1.2 本文的解决方案

提出 CREStereo(Cascaded REcurrent Stereo matching network),包含三项核心创新:

  1. 自适应群组相关层(Adaptive Group Correlation Layer, AGCL):采用 2D-1D 交替局部搜索策略 + 可形变搜索窗口,应对非理想校正问题

  2. 级联循环网络(Cascaded Recurrent Network):层级式粗到精的迭代视差更新,兼顾鲁棒性与细节保留;推理阶段采用堆叠级联(Stacked Cascades)处理高分辨率输入

  3. 新的合成训练数据集:针对真实世界困难场景精心设计,含丰富形状、光照、纹理变化,显著提升跨域泛化能力


2. 网络架构总览

CREStereo 的整体流程(参见论文图 2):

复制代码
左图 I_1 ──┐
            ├── 共享权重特征提取网络 ──→ 3 级特征金字塔(1/4、1/8、1/16)
右图 I_2 ──┘       │
                   │(I_1 特征金字塔同时提供上下文信息)
                   ↓
            ┌─────────────────────────────────────┐
            │        级联循环网络(训练阶段)         │
            │                                     │
            │  第 1 级(1/16 分辨率)               │
            │  视差初始化为 0                       │
            │  → RUM(循环更新模块)× n 次迭代       │
            │  → 输出视差 d_1(上采样)              │
            │                                     │
            │  第 2 级(1/8 分辨率)                │
            │  视差初始化 = 上采样(d_1)             │
            │  → RUM × n 次迭代                    │
            │  → 输出视差 d_2(上采样)              │
            │                                     │
            │  第 3 级(1/4 分辨率)                │
            │  视差初始化 = 上采样(d_2)             │
            │  → RUM × n 次迭代                    │
            │  → 最终视差(凸上采样至输入分辨率)     │
            └─────────────────────────────────────┘

推理阶段(高分辨率):堆叠级联(Stacked Cascades)
  → 将图像降采样构建图像金字塔
  → 低分辨率结果作为高分辨率的初始化,多阶段推理

每个 RUM 内部核心操作:AGCL(自适应群组相关层)


3. 各模块详细原理

3.1 自适应群组相关层(Adaptive Group Correlation Layer, AGCL)

AGCL 是 CREStereo 的核心创新之一,解决两个关键问题:非理想校正和遮挡/无纹理区域的匹配歧义。

3.1.1 局部特征注意力(Local Feature Attention)

在第一级级联的相关计算之前,加入一个注意力模块来聚合全局上下文信息:

  • 参考 LoFTR,对骨干网络输出添加位置编码(Positional Encoding),增强特征的位置依赖性
  • 对左右特征分别计算自注意力与交叉注意力(交替进行),使用线性注意力层降低计算复杂度
  • 注意力模块仅在第一级级联使用,后续级别的 RUM 不再重复执行

目的:在局部相关计算之前,将全局上下文信息融入单张或跨图的特征图中。

3.1.2 2D-1D 交替局部搜索(2D-1D Alternate Local Search)

传统方法(如 RAFT-Stereo):

  • 全对相关(All-Pairs):对两个 C × H × W C \times H \times W C×H×W 特征图做矩阵乘法,输出 H × W × H × W H \times W \times H \times W H×W×H×W 的 4D 相关体或 H × W × W H \times W \times W H×W×W 的 3D 相关体,显存和计算量极大
  • 局部相关:只在固定 1D 搜索窗口内匹配,不适应非理想校正情况

CREStereo 的策略 :只在局部搜索窗口内计算相关,输出体积仅为 H × W × D H \times W \times D H×W×D( D D D 远小于 W W W),节省显存与计算量。

给定重采样并经注意力处理的特征图 F 1 \mathbf{F}_1 F1 和 F 2 \mathbf{F}_2 F2,在位置 ( x , y ) (x, y) (x,y) 的局部相关定义为:

Corr ( x , y , d ) = 1 C ∑ i = 1 C F 1 ( i , x , y ) F 2 ( i , x ′ , y ′ ) (1) \text{Corr}(x, y, d) = \frac{1}{C} \sum_{i=1}^{C} \mathbf{F}_1(i, x, y) \mathbf{F}_2(i, x', y') \tag{1} Corr(x,y,d)=C1i=1∑CF1(i,x,y)F2(i,x′,y′)(1)

其中 x ′ = x + f ( d ) x' = x + f(d) x′=x+f(d), y ′ = y + g ( d ) y' = y + g(d) y′=y+g(d), f ( d ) f(d) f(d) 和 g ( d ) g(d) g(d) 分别为水平和垂直方向的固定偏移。

搜索策略

  • 1D 搜索模式 (标准极线搜索): g ( d ) = 0 g(d) = 0 g(d)=0, f ( d ) ∈ [ − r , r ] f(d) \in [-r, r] f(d)∈[−r,r], r = 4 r = 4 r=4,仅在水平方向搜索
  • 2D 搜索模式 (处理非理想校正):使用以当前预测偏移为中心的 k × k k \times k k×k 网格(膨胀系数 l l l)进行搜索, k = 2 r + 1 k = \sqrt{2r+1} k=2r+1 ,保证输出相关图与 1D 搜索形状一致

两种搜索模式的结果按通道维度拼接,形成最终相关体。

2D-1D 交替搜索的意义

  • 1D 搜索利用极线约束,高效精确
  • 2D 搜索处理轻微垂直偏移(非理想校正),作为传播模块,让网络学会用更准确的邻域像素替换当前位置的有偏预测
  • 两者交替使用,互为补充

受可形变卷积启发,对于遮挡或无纹理区域,固定搜索窗口计算的相关性往往不可靠。因此引入内容自适应搜索窗口:

网络学习额外的偏移量 d x dx dx 和 d y dy dy,新的相关公式变为:

Corr ( x , y , d ) = 1 C ∑ i = 1 C F 1 ( i , x , y ) F 2 ( i , x ′ ′ , y ′ ′ ) (2) \text{Corr}(x, y, d) = \frac{1}{C} \sum_{i=1}^{C} \mathbf{F}_1(i, x, y) \mathbf{F}_2(i, x'', y'') \tag{2} Corr(x,y,d)=C1i=1∑CF1(i,x,y)F2(i,x′′,y′′)(2)

其中 x ′ ′ = x + f ( d ) + d x x'' = x + f(d) + dx x′′=x+f(d)+dx, y ′ ′ = y + g ( d ) + d y y'' = y + g(d) + dy y′′=y+g(d)+dy。

偏移量 o ∈ R 2 × ( 2 r + 1 ) × h × w o \in \mathbb{R}^{2 \times (2r+1) \times h \times w} o∈R2×(2r+1)×h×w 由 GRU 块更新后输入到 AGCL 中。

图 4(论文原图)展示了 2D 和 1D 两种情况下偏移如何改变标准局部搜索窗口的形态。

3.1.4 群组相关(Group-wise Correlation)

受 GwcNet 启发,将特征图沿通道维度分成 G \mathcal{G} G 组,逐组计算局部相关,将 G \mathcal{G} G 个相关体(每个 D × H × W D \times H \times W D×H×W)在通道维度拼接,得到 G D × H × W \mathcal{G}D \times H \times W GD×H×W 的输出相关体。

群组相关相比单一相关能够捕获更多的特征通道信息,提升匹配准确性。


3.2 级联循环网络(Cascaded Recurrent Network)

3.2.1 循环更新模块(Recurrent Update Module, RUM)

RUM 基于 GRU 块和 AGCL 构建(参见论文图 3 左侧):

RUM 的工作流程

  1. 在每次迭代时,用当前视差预测 f k f_k fk 对群组化特征(Grouped Features)采样(Sampler),得到右图采样特征
  2. 将采样后的特征输入 AGCL,计算局部相关(Grouped Correlation)
  3. AGCL 输出当前相关体,与左图特征、当前视差预测拼接
  4. GRU 块利用上述输入更新隐状态,输出残差视差 Δ f \Delta f Δf
  5. 更新当前视差: f k + 1 = f k + Δ f k f_{k+1} = f_k + \Delta f_k fk+1=fk+Δfk
  6. GRU 块输出新的偏移(offset),用于下一次迭代的 AGCL 可形变搜索

共享权重:所有层级的 RUM 共享相同的权重,减少参数量并提升泛化能力。

其中 { f 1 , ... , f n } \{f_1, \ldots, f_n\} {f1,...,fn} 为 n n n 次迭代的中间预测,以初始视差 f 0 f_0 f0 为起点。

3.2.2 级联细化(Cascaded Refinement)

训练阶段使用固定分辨率的三级特征金字塔(1/16、1/8、1/4)进行层级式细化:

  • 第 1 级 (1/16 分辨率):视差初始化为全零( d 0 = 0 d_0 = 0 d0=0)
  • 第 2 级(1/8 分辨率):视差初始化 = 上一级输出的上采样结果
  • 第 3 级(1/4 分辨率):视差初始化 = 上一级输出的上采样结果
  • 最终输出:最后一级 RUM 输出后,通过凸上采样(Convex Upsampling,参考 RAFT)得到输入分辨率的视差图

设计原理

  • 低分辨率/高语义层级:感受野大,语义信息丰富,对无纹理或重复纹理区域的匹配更鲁棒
  • 高分辨率/低语义层级:保留细节信息,恢复细线结构等精细深度
  • 层级式级联将两者优势结合,从粗到精逐步细化,同时避免单纯下采样导致小目标大位移区域的特征退化

3.3 推理阶段:堆叠级联架构(Stacked Cascades for Inference)

训练时使用固定的三级金字塔(1/16、1/8、1/4),但对于高分辨率输入图像,直接下采样至 1/4 分辨率可能导致:

  • 特征感受野不足(需要更多下采样来扩大感受野)
  • 高分辨率图像中小目标大位移区域特征退化

解决方案:推理时,提前将图像对降采样构建图像金字塔,依次以不同分辨率作为输入喂入同一训练好的特征提取网络,利用多层级上下文。

堆叠级联架构如论文图 2 右侧所示,包含以下几种配置:

  • 单阶段(Single stage):直接以某一分辨率输入
  • 两阶段(Two stages):低分辨率运行一遍 → 结果作为高分辨率的初始化,再运行一遍
  • 三阶段(Three stages):进一步扩展到三个分辨率层级

各阶段的 RUM 权重与训练时共享,无需额外微调。低分辨率阶段的输出视差经上采样后作为高分辨率阶段的初始化。同一阶段中,所有 RUM 与上一高分辨率阶段的最后一个 RUM 共同使用。

消融实验(论文表 2)表明:

  • 单阶段(1024×1536):Middlebury Bad 2.0 = 6.00
  • 两阶段(1536×2048):Bad 2.0 = 4.53(显著提升)
  • 三阶段(1536×2048):Bad 2.0 = 4.58(与两阶段相近)

3.4 损失函数

对特征金字塔的每个层级 s ∈ { 1 / 16 , 1 / 8 , 1 / 4 } s \in \{1/16, 1/8, 1/4\} s∈{1/16,1/8,1/4},将 n n n 次迭代的输出序列 { f 1 s , ... , f n s } \{f_1^s, \ldots, f_n^s\} {f1s,...,fns} 通过上采样算子 μ s \mu_s μs 调整到完整预测分辨率,然后计算指数加权 L1 损失(与 RAFT 相同, γ = 0.9 \gamma = 0.9 γ=0.9):

L = ∑ s ∑ i = 1 n γ n − i ∥ d g t − μ s ( f i s ) ∥ 1 (3) \mathcal{L} = \sum_s \sum_{i=1}^{n} \gamma^{n-i} \|\mathbf{d}_{gt} - \mu_s(f_i^s)\|_1 \tag{3} L=s∑i=1∑nγn−i∥dgt−μs(fis)∥1(3)

其中 d g t \mathbf{d}_{gt} dgt 为真值视差,指数权重使靠后迭代的预测权重更大,鼓励网络快速收敛。


4. 新合成训练数据集

为弥补现有合成数据集(SceneFlow、Falling Things)的不足,CREStereo 提出并发布了一个新的合成数据集,特点如下:

4.1 形状多样性

场景主体内容来自三个来源:

  1. ShapeNet:40,000+ 种常见物体的 3D 模型
  2. Blender 树苗生成插件:生成精细、杂乱的视差图
  3. Blender 内部基础形状 + 网格修改器:生成含孔洞和开放结构的挑战性场景

4.2 光照与纹理多样性

  • 在场景内不同位置放置多种颜色和亮度的随机光源,营造复杂光照环境
  • 使用真实世界图像作为物体和背景纹理,特别关注含有重复纹理、反光表面等困难情况
  • 利用 Blender Cycles 渲染器的光线追踪能力,将物体随机设置为透明或金属反光,以覆盖此类真实场景

4.3 视差分布设计

  • 在相机视锥体形成的截锥形空间(frustum-shaped space)内随机放置物体
  • 每个物体的确切位置从概率分布中随机采样,然后根据其到相机的距离按比例缩放
  • 生成随机可控的视差分布,覆盖不同基线设置

如图 6 所示,在相同大小(35K 对)训练集的对比实验中,使用本文新数据集训练的模型在 ETH3D 和 Middlebury 验证集上均取得更低的训练 loss 和更好的泛化性能。


5. 实验结果

5.1 消融实验(表 1,Middlebury + ETH3D)

相关类型对比(上半部分,公共数据集训练,不含 Middlebury/ETH3D):

方法 Middlebury Bad 2.0 Middlebury AvgErr ETH3D Bad 1.0 ETH3D AvgErr
2D 全对相关 47.38 5.62 6.17 0.38
1D 全对相关 44.41 4.93 6.03 0.38
1D 局部 19.87 3.03 3.13 0.28
2D 局部 20.70 2.99 3.33 0.29
1D+2D 局部 19.23 3.01 3.05 0.28
1D 局部,2 级 13.84 2.24 2.35 0.23
2D 局部,2 级 14.07 2.15 2.09 0.23
1D+2D 局部,2 级 12.48 1.99 2.20 0.22
1D+2D 局部,3 级 12.67 1.80 2.01 0.21

AGCL 关键组件对比(下半部分,全数据集训练):

方法 Middlebury Bad 2.0 Middlebury AvgErr ETH3D Bad 1.0 ETH3D AvgErr
无可形变搜索 & 群组 & 注意力 6.86 1.11 1.26 0.19
无可形变搜索 6.84 1.08 1.22 0.19
无群组相关 6.82 1.07 1.20 0.18
无注意力 6.49 1.07 1.22 0.18
完整方法 6.46 1.05 1.03 0.17

5.2 与 SOTA 方法对比

Middlebury 2014 基准(表 3):

方法 Bad 2.0 Bad 2.5 AvgErr RMS A95
RAFT-Stereo 4.74² 9.37² 1.27² 8.41³ 2.29²
LEAStereo 7.15¹⁸ 20.8⁴⁰ 1.43¹ 8.11² 2.65³
AANet++ 15.4⁶⁶ 25.5⁵¹ 6.37⁹⁴ 23.5¹⁰³ 48.8¹¹²
CREStereo (Ours) 3.71¹ 8.25¹ 1.15¹ 7.70¹ 1.58¹

(上标为排名,第一名加粗)

ETH3D 基准(表 4):

方法 Bad 1.0 Bad 0.5 AvgErr RMSE
RAFT-Stereo 2.44⁵ 7.04⁴ 0.18⁴ 0.36⁵
GwcNet 3.66²⁵ 12.04³⁹ 0.29⁴⁰ 0.67⁵²
AANet 5.01⁵² 13.16⁴⁵ 0.31⁴⁵ 0.68³⁷
CREStereo (Ours) 0.98¹ 3.58¹ 0.13¹ 0.28²

在 ETH3D 上,CREStereo 超越已发布 SOTA 方法 59.84%(Bad 1.0 指标)。

KITTI 2012/2015 :在 KITTI 上超越 LEAStereo 9.47%(Out-Noc,2 像素误差阈值)。

5.3 实用性能评估

Holopix50K 真实数据集(图 9):

  • 在多种真实场景下视觉质量显著优于 AANet、HSMNet、GwcNet、LEAStereo、RAFT-Stereo
  • 尤其在细线结构(猫须、铁丝网)上有明显优势

干扰鲁棒性测试(ETH3D,图 10):

  • 对图像模糊、色变、色度噪声、透视变换、垂直偏移、畸变等 7 类干扰
  • CREStereo 平均误差在所有干扰类型下均低于对比方法

智能手机照片(表 5,400 张手机拍摄场景):

方法 mxIoU mxIoUBd
RAFT-Stereo 94.58% 69.26%
AANet 91.02% 63.70%
LEAStereo 92.38% 58.06%
CREStereo (Ours) 97.50% 72.61%

6. 关键设计总结

设计 解决的问题 核心机制
AGCL 局部特征注意力 首级缺乏全局上下文 LoFTR 风格自/交叉注意力 + 位置编码
2D-1D 交替搜索 非理想校正的垂直偏移 交替使用水平 1D 和二维网格搜索
可形变搜索窗口 遮挡/无纹理区域匹配歧义 GRU 输出偏移调整搜索位置
群组相关 特征通道信息利用不足 分组计算相关后拼接
级联循环网络 鲁棒性与细节难以兼顾 粗到精三级层级式迭代更新
堆叠级联(推理) 高分辨率输入的感受野不足 图像金字塔 + 多阶段堆叠推理
新合成数据集 合成到真实的泛化性不足 丰富形状/光照/纹理/视差分布设计

7. 结论与局限性

主要贡献

  1. AGCL:通过局部注意力、2D-1D 交替搜索、可形变窗口、群组相关,有效处理非理想校正和困难匹配区域

  2. 级联循环网络 + 堆叠级联推理:在鲁棒性(低分辨率粗估计)和细节恢复(高分辨率精估计)之间取得平衡,支持任意高分辨率推理

  3. 新合成训练数据集:覆盖真实场景困难情况,提升跨域泛化能力

  4. 性能突破:在 ETH3D、Middlebury 基准均排名第一,在真实世界手机照片上也展现出明显优势

局限性

  • 模型推理效率尚不足以支持移动端实时运行
  • 未来方向:针对移动端设备(手机等便携设备)的网络轻量化与加速优化

相关推荐
Fevered 路小小呀!3 小时前
mediapipe新版本怎么玩--面部特征检测
人工智能·python·计算机视觉
sali-tec3 小时前
C# 基于OpenCv的视觉工作流-章45-圆卡尺
图像处理·人工智能·opencv·算法·计算机视觉
刘若里3 小时前
【论文阅读】自适应稀疏自注意力——可直接用!
论文阅读·人工智能·笔记·深度学习·计算机视觉
刘简爱学习4 小时前
用于病理图像多类分割的弱监督状态空间模型PathMamba
人工智能·深度学习·计算机视觉
AI人工智能+4 小时前
医疗器械注册证识别技术采用深度学习与计算机视觉技术,实现注册证关键信息的智能提取与结构化转换
深度学习·计算机视觉·ocr·医疗器械注册证识别
kay_5455 小时前
YOLO26 | 注意力机制 | 以分解式双层注意力提升语义表达与细节捕捉【完整步骤】
人工智能·目标检测·计算机视觉·目标跟踪·视觉检测·yolo26·yolo26改进
Daydream.V5 小时前
OpenCV——人脸识别
人工智能·opencv·计算机视觉·人脸识别·人脸识别的三种算法·附代码实现
我材不敲代码6 小时前
OpenCV 实现人脸识别全流程:从人脸检测到 LBPH/Eigen/Fisher 三种算法实战
人工智能·opencv·计算机视觉
MyBFuture19 小时前
Halcon 金字塔与边缘检测技术解析
人工智能·计算机视觉·halcon