【PromptStereo】零样本立体匹配新范式:用结构与运动Prompt驱动迭代优化(CVPR 2026)

【PromptStereo】零样本立体匹配新范式:用结构与运动Prompt驱动迭代优化(CVPR 2026) 摘要零样本(zero-shot)立体匹配的核心瓶颈在于迭代优化阶段现有方法虽然利用了单目深度基础模型做特征提取和视差初始化但GRU的有限表征能力无法充分利用这些先验。PromptStereo提出Prompt Recurrent Unit(PRU)直接继承Depth Anything V2的DPT解码器架构作为迭代优化器并设计Structure Prompt和Motion Prompt两路提示信号引导优化方向。在SceneFlow单一数据集训练下PromptStereo即在KITTI、Middlebury、ETH3D等多个基准上实现零样本SOTA同时推理速度与RAFT-Stereo持平0.36s比MonSter快近一倍。论文PromptStereo: Zero-Shot Stereo Matching via Structure and Motion Prompts (CVPR 2026)代码Windsrain/PromptStereo一、问题背景GRU迭代优化的瓶颈从RAFT-Stereo到IGEV再到MonSter主流立体匹配管线遵循统一范式特征提取代价体构建初始视差GRU迭代优化K次迭代最终视差图近期方法MonSter、BridgeDepth引入单目深度基础模型Depth Anything V2做特征提取器显著提升了泛化性能。但关键问题在于阶段利用了基础模型先验现状特征提取是ViT encoder效果好视差初始化部分单目深度做初始猜测有帮助迭代优化否从零训练GRU瓶颈核心矛盾GRU的sigmoid门控将隐藏状态约束在[0,1]范围内表征能力有限且GRU从零训练无法利用基础模型已学到的几何先验。PromptStereo的洞察为什么不直接用基础模型的解码器替代GRU做迭代优化二、核心方法2.1 整体框架图 1PromptStereo整体架构。左侧为特征提取和代价体构建中间为Affine-Invariant Fusion右侧为PRU迭代优化模块。来源[PromptStereo] GitHub图 2PromptStereo完整数据流。红色标注为核心创新点PRU、Structure Prompt、Motion Prompt、AIF。重绘自 design skill整体流程共享权重的ViT-L编码器来自Depth Anything V2提取左右图特征构建Group-wise和All-pair两种相关代价体Affine-Invariant Fusion融合初始立体视差和单目深度PRU以Structure Prompt和Motion Prompt为引导迭代优化视差2.2 Affine-Invariant Fusion (AIF)单目深度是相对值尺度和偏移未知不能直接与立体视差相加。AIF通过中值归一化对齐两者尺度d ^ d − median ( d ) 1 N ∑ ∣ d − median ( d ) ∣ \hat{d} \frac{d - \text{median}(d)}{\frac{1}{N}\sum|d - \text{median}(d)|}d^N1​∑∣d−median(d)∣d−median(d)​将单目深度投影到视差空间后用置信度加权融合d F c ⊙ d 0 ( 1 − c ) ⊙ d M ′ d_F c \odot d_0 (1-c) \odot d_MdF​c⊙d0​(1−c)⊙dM′​其中c cc为学习的置信度图d 0 d_0d0​为初始立体视差d M ′ d_MdM′​为尺度对齐后的单目深度。2.3 Prompt Recurrent Unit (PRU)PRU是本文核心创新直接继承DPT解码器的预训练权重替代GRU为什么不用GRU对比维度GRUPRU (DPT Decoder)初始化随机Depth Anything V2预训练隐藏状态范围sigmoid约束[0,1]无约束自由范围分辨率单分辨率多分辨率(1/8→1/4→1/2→full)几何先验无丰富的单目深度先验收敛速度32次迭代4次迭代即达高精度PRU更新机制多分辨率z k σ ( ConvBlock ( [ h k i , h k i − 1 ] ) ) z_k \sigma(\text{ConvBlock}([h_k^i, h_k^{i-1}]))zk​σ(ConvBlock([hki​,hki−1​]))h k 1 i ( 1 − z k ) ⊙ h k i z k ⊙ h ^ k i h_{k1}^i (1-z_k) \odot h_k^i z_k \odot \hat{h}_k^ihk1i​(1−zk​)⊙hki​zk​⊙h^ki​d k 1 d k ConvBlock ( h k 1 0 ) d_{k1} d_k \text{ConvBlock}(h_{k1}^0)dk1​dk​ConvBlock(hk10​)关键设计Prompt仅注入到最高分辨率层h k 0 h_k^0hk0​低分辨率层保持DPT原始行为。2.4 Structure Prompt (SP)捕捉立体视差和单目深度之间的几何差异D ∣ d ^ k − d ^ M ∣ D |\hat{d}_k - \hat{d}_M|D∣d^k​−d^M​∣P S Encoder ( F M , D ) , h h ConvBlock ( P S ) P_S \text{Encoder}(F_M, D), \quad h h \text{ConvBlock}(P_S)PS​Encoder(FM​,D),hhConvBlock(PS​)直觉哪里立体和单目意见不一致哪里就是优化需要重点关注的区域如透明物体、反射表面。使用仿射不变归一化确保比较不受尺度影响。2.5 Motion Prompt (MP)编码立体特有的运动信息GRU方法也有类似输入但PRU以Prompt方式注入P M k Encoder ( V k , d k ) , h h ConvBlock ( P M k ) P_M^k \text{Encoder}(V_k, d_k), \quad h h \text{ConvBlock}(P_M^k)PMk​Encoder(Vk​,dk​),hhConvBlock(PMk​)其中V k V_kVk​为以当前视差为中心的局部代价体。关键设计选择两个Prompt都通过残差加法注入而非拼接或替换不破坏DPT解码器继承的先验。渲染错误:Mermaid 渲染失败: Parse error on line 3: ...Structure Prompt|d_k - d_M| 几何差异] -----------------------^ Expecting SQE, TAGEND, UNICODE_TEXT, TEXT, TAGSTART, got PIPE2.6 训练损失L ∥ d 0 − d g t ∥ smooth ∑ k 1 K γ K − k ∥ d k − d g t ∥ 1 \mathcal{L} \|d_0 - d_{gt}\|_{\text{smooth}} \sum_{k1}^{K} \gamma^{K-k} \|d_k - d_{gt}\|_1L∥d0​−dgt​∥smooth​k1∑K​γK−k∥dk​−dgt​∥1​初始视差用Smooth L1损失迭代输出用L1损失加指数衰减权重γ 0.9 \gamma0.9γ0.9越后面的迭代权重越大。三、工程实现组件技术细节编码器ViT-Large (Depth Anything V2, frozen)解码器DPT decoder (pre-trained, 可训练)训练数据SceneFlow (基础) / FoundationStereoTartanAirCREStereo (Unlimited)输入分辨率192 或 576 高度推理速度0.36s (与RAFT-Stereo持平)框架PyTorch xformers代码仓库Windsrain/PromptStereo四、实验分析零样本泛化性能SceneFlow训练方法KITTI’12 Bad3KITTI’15 Bad3Midd-T Bad2Midd-2021 Bad2ETH3D Bad1速度RAFT-Stereo4.345.6811.0711.112.610.36sIGEV-Stereo5.136.039.9510.004.050.37sMonSter4.625.528.9715.553.200.64sDEFOM-Stereo3.904.996.778.622.40-PromptStereo3.774.596.038.261.560.36sPromptStereo在仅用SceneFlow训练的条件下全面超越所有同条件方法尤其在ETH3D上(1.56 vs 2.40)和Middlebury-T上(6.03 vs 6.77)优势明显。Unlimited训练数据对比方法Midd-2021 Bad2Booster-Sunny Bad2速度FoundationStereo7.145.150.65sMonSter12.4311.550.64sBridgeDepth13.6611.25-PromptStereo5.973.670.36sMiddlebury-2021上比FoundationStereo低16%错误率Booster-Sunny上低29%——透明/反射表面处优势巨大。消融实验配置MPSPAIFMidd-T Bad2ETH3D Bad1速度Baseline (MonSter)---7.272.860.64sPRU MP✓--4.181.380.35sPRU MP SP✓✓-3.901.350.36sPromptStereo✓✓✓3.761.300.36sPRU本身带来最大提升7.27→4.18SP和AIF各贡献增量改进。PRU通用性验证PRU不仅适用于MonSter也能提升RAFT-Stereo和IGEV方法KITTI’15 Bad3Midd-T Bad2ETH3D Bad1RAFT-Stereo5.688.412.29Prompt-RAFT4.786.391.49IGEV-Stereo6.037.043.61Prompt-IGEV4.846.502.21作为即插即用模块PRU对所有GRU-based方法都有显著提升。收敛速度对比图 3PRU vs GRU收敛曲线。PRU在4次迭代时已达到GRU 32次迭代才能达到的精度水平最终精度差距达67%。重绘自 design skill迭代次数MonSter (Midd-2021)PromptStereo (Midd-2021)410.754.35810.643.28169.612.79328.462.78PRU在4次迭代(4.35)即优于MonSter 32次迭代(8.46)。小结核心贡献PRU用基础模型解码器替代GRU做迭代优化这个思路简洁而有效——不是设计更复杂的模块而是直接继承已有知识双Prompt机制Structure Prompt抓单目-立体差异区域Motion Prompt编码立体运动信息两者通过残差注入不破坏继承先验AIF仿射不变融合解决了单目深度的尺度模糊问题局限性依赖Depth Anything V2的ViT-L参数量和显存需求大在KITTI等小视差场景上优势不如大视差场景明显Unlimited训练需要多个大规模合成数据集个人判断PromptStereo的PRU思路代表了一个重要趋势——将基础模型的知识从特征提取扩展到迭代优化。传统方法把GRU当作黑盒优化器从零训练浪费了大量基础模型已学到的几何理解。PRU证明了站在巨人肩膀上做优化比自己重新学优化高效得多。这一范式有望推广到光流估计、场景流等其他稠密匹配任务。