目的

至25年年底的双目深度估计开发中,我们收敛除了LR consistency、uncertainty loss、foundation model teacher distillation等有效tricks。而大半年过去了,很多有意思的实验结论等待着我们去发现,所以为了更好的支持S1项目,有必要进行一次深度的调研和实验。

调研结论

网络框架从LightStereo向LAS2迁移

LAS2与 LightStereo 的思路非常接近:仍然是 correlation volume、2D cost aggregation、soft-argmax、convex upsampling,但更加激进地针对边缘设备做设计。

实际测速统一使用 384×1248 输入、关闭 torch.compile,在论文使用的 Orin NX 8GB 上:

数据来自作者统一重测,所以比不同论文之间拿 FPS 横向比较可信得多。实际部署使用TensorRT速度会更快。

训练配方的改进

LAS2 作者专门做了一个实验:完全不改 LightStereo-M 架构,只把新的三阶段训练方案移植过去。效果较好:

LAS2 的三阶段分别是:

Stage 1 Synthetic GT → Stage 2 Self-Distillation → Stage 3 Real Pseudo-label

Stage 1:学基础的Stereo

LAS2 收集了大约 180 万对有 GT 的 synthetic stereo,这也是最近2年开始的通用做法:

  • SceneFlow:35K
  • FallingThings:30K
  • FoundationStereo Dataset(FSD):1.1M
  • CREStereo:0.2M
  • VKITTI2:21K
  • TartanAir:0.31M
  • Dynamic Replica:0.14M

然后直接:

(I_L,I_R)→LAS2/LightStereo→

与真实 disparity

G_{gt}

计算:

L_{disp}=SmoothL1(D−D_{gt})

训练。值得注意的是,Stage1作者甚至明确不做 data augmentation

Stage 2:Self-distillation提升泛化

这个部分有点DAgger的感觉。

               Stage1 checkpoint
                      │
              ┌──────┴──────┐
              ↓                ↓
           Teacher        Student
           θ₁ fixed       θ₁ train

Teacher 看 clean image:

(I_L,I_R)

Student 看 heavily perturbed image:

(T(I_L),T(I_R)

其中​T表示transforms,意思是数据增强,包括:

很强的 brightness jitter

  • contrast jitter
  • saturation jitter
  • hue jitter
  • 5×5 Gaussian blur
  • σ∈[0.1,2.0]
  • gamma correction
  • γ∈[0.7,1.5]

左右图多数情况下同步增强,也会以较小概率使用 asymmetric perturbation。

遵循经典的distillation做法,对student的特征图进行监督:

\mathcal{L}_\mathrm{feat}=1-\frac{1}{HW}\sum_i\cos(F_i,F_i^{\prime}

这就是学习所谓的domain-invariant representation:不管把亮度、contrast、gamma、blur 搞成什么样,网络提取出来的 stereo matching representation最好还是跟干净图差不多。本质上相当于增加了一个正则项。

Stage3:真实数据伪标签

Stage3直接换数据

Synthetic
   ↓
Real World

作者用大约 50 万对真实 stereo数据,覆盖室内、室外真实 pinhole stereo。使用Foundation Stereo作为teacher打伪标签,并用了3层工作去保证伪标签尽可能的正确。

作者试了三种 teacher 更新方式:

  1. fixed teacher
  2. EMA teacher
  3. 每轮直接 copy student → teacher

最后反而发现:fixed teacher 最好,所以最终 Stage2的 Teacher 就固定在 Stage1 checkpoint,不跟着 Student 更新。

3层工作保障标签正确:

第一层:LR consistency

M_{LR}=\mathbf{1}\left(|D_L-warp(D_R,D_L)|<1\right)

第二层:Edge mask

作者认为如果disparity edge 没有 RGB edge 支持,应当认为这个 pseudo label 很可疑。不过我对这个结论存疑。反例:

  • 一块纯白色泡沫板,悬在纯白墙前 20 cm。板边缘处深度从 1.0 m 突然变成 1.2 m,但如果光照均匀,左右两侧像素都是 (240,240,240) 左右,RGB 几乎没有梯度。
  • 白色杯子放在白色桌面/白色墙背景前。如果杯沿或侧边没有明显阴影,物体轮廓处可能有几十厘米的深度跳变,但颜色接近连续。
  • 以上的情况可能从局部上看是无法辨别的,但是使用全局一些的信息缺足以判断,如利用物体上下边缘。

第三层:Sky mask

直接用foundation segmentation model给无穷远或者深度估计容易出问题的地方打上mask,这是很常见的做法了,不加赘述。

Data quality > data quantity

2026 CVPR 的 synthetic stereo data 系统研究结果很有意思。

他们发现仅 500 个精心生成的 stereo pair,在 Middlebury 上甚至能超过用 100,000 个 CREStereo 样本训练的结果;同时发现 baseline diversity 对 zero-shot generalization 有显著影响。

LAS2 又从真实数据上得出了几乎一样的结论:

增加更多数据并不自动提高结果;低分辨率、rectification artifacts、domain bias 反而会伤害训练。

他们明确认为 well-rectified + diverse 比 raw quantity 更重要。

给我的启发

  1. 训练流程和网络迭代

结合我们此前的经验,提出此训练pipeline:

                 ┌──────────────────────┐
                 │ Stage 1              │
                 │ Synthetic GT         │
                 │                      │
Stereo ─────────►│ LightStereo          │
                 │ disparity            │
                 │ + uncertainty        │
                 └──────────┬───────────┘
                            ↓

                 ┌──────────────────────┐
                 │ Stage 2              │
                 │ Self-distillation    │
                 │                      │
clean ──► frozen teacher ──► F_teacher │
                                     ↑  │
perturb ► student ─────────► F_student │
                 │ + disparity GT       │
                 │ + uncertainty        │
                 └──────────┬───────────┘
                            ↓

                 ┌────────────────────────┐
                 │ Stage 3                │
Real stereo ────►│ FoundationStereo      │
                 │      ↓                 │
                 │ D_L / D_R              │
                 │      ↓                 │
                 │ LR consistency         │
                 │ + edge mask            │
                 │ + sky mask             │
                 │      ↓                 │
                 │ clean pseudo GT        │
                 │      ↓                 │
                 │ LightStereo fine-tune  │
                 │ + error clamp          │
                 │ + uncertainty          │
                 └────────────────────────┘
  1. 数据scaling与来源选择

大量采自己的真实 stereo raw pairs,不需要可以构建GT,尤其是基于LiDAR建图的GT,很容易受标定误差的影响。

可能几万到几十万张真正来自真实使用的相机的高质量数据,比继续堆一堆与目标相机分布无关的公开 synthetic data 更有价值。

参考

https://arxiv.org/html/2606.24457v1

https://arxiv.org/html/2602.20496v1

https://openaccess.thecvf.com/content/CVPR2025/html/Cheng_MonSter_Marry_Monodepth_to_Stereo_Unleashes_Power_CVPR_2025_paper.html?utm_source

https://openaccess.thecvf.com/content/CVPR2025/html/Wen_FoundationStereo_Zero-Shot_Stereo_Matching_CVPR_2025_paper.html?utm_source

https://openaccess.thecvf.com/content/CVPR2025/html/Bartolomei_Stereo_Anywhere_Robust_Zero-Shot_Deep_Stereo_Matching_Even_Where_Either_CVPR_2025_paper.html?utm_source