立体匹配这个领域,现在有个挺有意思的断层——前端已经迈进了视觉基座模型时代,各种全局语义、多尺度表征信手拈来;后端呢?还在用ConvGRU那套基于卷积的局部递归更新。LinStereo 盯上的就是这个缝隙。想想看,Depth Anything V3 早已能提供强大的全局语义和多尺度表征,可一旦到了遮挡、弱纹理、水下退化这些场景,ConvGRU 式的局部传播就成了实打实的瓶颈。
来自悉尼大学澳大利亚机器人中心的 Yiran Wang、Oliver Turner 和 Viorela Ila,在 ECCV 2026 上拿出的方案很直接:用位置感知线性注意力模块(PALA)替代卷积迭代,让每一轮迭代都能聚合全图上下文信息。同时配合多尺度代价体积(HSCV)和单目深度初始化(DPI),把几何收敛的速度和精度都提了上去。
有个数据特别能说明问题:LinStereo 冻结了视觉基座模型的编码器,只靠 Scene Flow 合成数据训练下游的 stereo 模块,零样本泛化到 Middlebury 数据集,遮挡区域的误差直接压低了 37%。在多项标准评估中,用 ViT-B 的体量就能战胜参数更大的模型,即便到了水下这种跨域场景,优势依然明显。

论文标题:LinStereo: Linear-Complexity Global Attention for Multi-Scale Iterative Stereo Matching
作者:Yiran Wang†, Oliver Turner, Viorela Ila‡
单位:Australian Centre for Robotics, The University of Sydney
会议:ECCV 2026(已接收)
论文链接:https://arxiv.org/abs/2606.25437
代码:https://github.com/u7079256/LinStereo
现有迭代式匹配的瓶颈在哪
先说说现在主流立体匹配的流程,其实大同小异:预训练 backbone 提取特征,构建代价体积,然后用 ConvGRU 迭代回归视差。问题就出在后半段。
backbone 明明输出了好几层不同分辨率的特征,但建代价体积的时候,通常只用其中一层,多尺度信息就这么被浪费了。ConvGRU 每轮迭代的感受野又比较局限,遇到大面积弱纹理或者水下这种退化场景,有用的匹配信号得跑好几轮才能传到远处。更麻烦的是,大多数方法从零视差开始起步,头几轮迭代基本在摸场景的大致轮廓,真正用来精细化的轮次其实不多。
LinStereo 针对这三个痛点,做了三件事:用 PALA 替换 ConvGRU 解决传播局限,用 HSCV 保留多尺度特征,用 DPI 提供一个靠谱的单目深度作为起点。

图 1:LinStereo 整体架构。(a)多尺度层次化语义 cost volume(HSCV);(b)coarse-to-fine 迭代更新;(c)位置感知线性注意力更新模块(PALA)。
PALA:全局注意力,但只要线性复杂度
PALA 做的事情说起来很直观,就是把 ConvGRU 的局部更新换成全局注意力,让每个像素每次迭代都能看到整张图。难点在于 softmax attention 是 O(N²) 的复杂度,直接在高分辨率视差图上跑,计算代价太高。
PALA 的方案是对 query 和 key 做 kernel 激活(ELU+1),利用矩阵乘法结合律把复杂度降到 O(N・C_h²)。实测下来,一次迭代只需要 3.50 ms,而 ConvGRU 是 3.63 ms,基本没有差别。
但线性注意力有个已知的毛病:kernel 化之后,位置信息会丢失。PALA 用 2D RoPE 来补救,这里有个比较巧妙的处理——RoPE 只加在注意力公式的分子上,分母不加。作者把这个叫作“非对称 RoPE”。为什么不在两边都加?因为分母端加了 RoPE 之后,归一化会引入位置偏移,注意力分布反而不稳定。消融实验也验证了这一点:在 KITTI 上差别不大(EPE 1.05 vs 1.01),但换到水下 TartanAir-UW,RMSE 从 2.18 掉到 2.08,差了将近 5%。

图 2:PALA 模块架构,展示 kernel-activated attention、非对称 2D RoPE 和门控更新机制。
HSCV 和 DPI
HSCV 比较好理解:在 1/4、1/8、1/16 三个尺度上分别构建代价体积,每个尺度内部再做 4 层视差金字塔。这样一来,PALA 每轮迭代能查到不同粒度的匹配信息——浅层管纹理,深层管语义。去掉多尺度之后,KITTI 上的 EPE 涨了 0.06,水下 AbsRel 涨了 0.003,看起来不大,但和 PALA 配合起来,效果会被放大。
DPI 更直接。Depth Anything V3 的 backbone 本身就能输出一张单目深度图,虽然是 affine-invariant 的(只有相对远近,没有绝对尺度),但拿 SIFT 在左右图上匹配几个点,就能把 scale 和 shift 算出来,转成度量视差作为初始值。为什么不用 SuperPoint 或 LightGlue?因为这些学习型匹配器在水下之类的跨域场景可能失效,SIFT 纯靠几何约束反而更稳定。在 SQUID 上,SIFT 的失败率只有 3.7%,失败了就退回零初始化,EPE 性能仅略降 0.08 个像素。
实验:标准 benchmark 和跨域泛化
标准 benchmark
LinStereo 的 backbone 是 ViT-B,参数量和计算量都比用 ViT-L 的 FoundationStereo、MonSter 小一截。从下表来看,常规场景上基本打平,但遮挡场景上优势非常明显。

Middlebury 遮挡区域是最能体现全局注意力价值的地方。EPE 1.33,比排第二的 FoundationStereo 低了 16%,比之前的 DEFOM-Stereo(2.11)低了 37%。道理也很好理解:被遮挡的像素附近没有可靠的匹配线索,ConvGRU 的局部窗口传不过来,而 PALA 可以直接从远处拿信息。

图 3:标准 benchmark 定性对比,LinStereo 在物体边缘和遮挡区域的深度图更干净。
跨域泛化:水下 zero-shot
全局传播的另一个受益场景是水下。光在水里按波长衰减,红色最先消失,再加上悬浮颗粒的散射,远处的纹理基本不可用。ConvGRU 在这种大面积退化的场景里传播太慢,而 PALA 不存在这个问题。
LinStereo 没用过任何水下数据训练,但在水下 benchmark 上全面领先。


图 4:水下场景定性对比。在退化严重的区域里,LinStereo 的深度图仍然连贯。
精准度和推理速度两手抓
只需 T=2 次迭代,就能跑到 12.5 FPS(480×640 分辨率),在这个配置下,SQUID 的 AbsRel 依然能达到 0.05。这意味着在计算资源受限的场景下,LinStereo 依然能保持出色的性能。
三个模块,协同才是关键
三个模块单独加都有提升,但组合在一起,效果远超简单叠加:

还有一个有意思的现象:PALA block 堆到 3 个(参数从 127M 涨到 147M),KITTI 上的 EPE 反而从 1.01 涨到 1.05。仔细想想也合理——迭代本身已经在做隐式的深度堆叠,再显式地加层数,可能就过拟合了。
SeaStereo 数据集
论文还发布了 SeaStereo-Dataset——40,320 对水下立体图像,带稠密视差标注,涵盖 7 种 Jerlov 水体类型。整个数据集用 Blender 做物理级水下光学渲染,前景是 ShapeNetCore 物体,背景是真实海洋照片。水下立体匹配一直缺公开数据,这个数据集对后续研究会很有帮助。
参数高效:以小博大
得益于参数高效的设计,LinStereo 的 127M 参数中,超过 100M 来自冻结的 Depth Anything V3 backbone,真正需要训练的仅约 10M。这充分说明,轻量 decoder 同样可以撬动大规模预训练模型的强大先验,在小样本水下场景下达到当前性能。面向水下机器人等边缘算力平台,团队正在进一步通过知识蒸馏压缩编码器,把推理延迟推向更极致的水平。
ECCV 2026 论文链接:https://arxiv.org/abs/2606.25437
GitHub:https://github.com/u7079256/LinStereo
作者简介
Yiran Wang,悉尼大学澳大利亚机器人中心(Australian Centre for Robotics)博士生,导师为 Viorela Ila 博士。本科毕业于澳大利亚国立大学(ANU)高级计算专业(荣誉学位)。研究方向涵盖计算机视觉、立体深度估计、运动生成与三维视觉,近期聚焦于利用 Vision Foundation Model 提升立体匹配在退化视觉条件下的鲁棒性。相关工作发表于 ECCV、NeurIPS、ICRA 等国际会议。
Viorela Ila,悉尼大学航空航天与机电工程学院高级讲师(Senior Lecturer),澳大利亚机器人中心核心研究员。2005 年获西班牙赫罗纳大学博士学位,后赴佐治亚理工学院从事博士后研究。研究方向涵盖视觉 SLAM、三维重建、图模型优化与水下机器人感知,近期代表工作包括动态 SLAM 框架 DynoSAM 等。
