WAFT-Stereo:基于扭曲的场变换用于立体匹配 WAFT-Stereo: Warping-Alone Field Transforms for Stereo Matching
用高分辨率扭曲代替代价体积,实现高效准确的立体匹配
前置知识
立体匹配
立体匹配是从两个已校正的相机图像中估计每个像素水平运动(称为视差)的计算机视觉任务。由于相机已校正,像素对应关系被限制在水平极线上,因此只需要估计一维位移。视差可以直接转换为深度:$z = f \cdot b / d$,其中 $f$ 是焦距,$b$ 是基线距离,$d$ 是视差。立体匹配广泛应用于自动驾驶、增强现实等需要深度信息的场景。
理解立体匹配是理解本文的基础,因为WAFT-Stereo就是针对这个任务提出的新方法。论文的改进点是相对于现有立体匹配方法而言的。
代价体积
代价体积是立体匹配和光流估计中的核心数据结构,用于表示不同视差或运动假设下的匹配成本。对于每个像素,代价体积计算该像素在参考图像中与目标图像在不同位移位置的特征相似度。全代价体积对所有可能的视差候选进行计算,内存开销与视差范围线性增长;部分代价体积只在当前估计周围的小窗口内计算,内存开销与查找半径线性增长。代价体积通常在低分辨率(如原始分辨率的1/4)构建以节省内存。
代价体积是本文要替换的核心组件。理解代价体积的工作原理和局限性,才能理解为什么WAFT-Stereo的扭曲设计是重要的创新。
特征空间扭曲
扭曲是一种将目标视图的特征图根据当前运动估计(如光流或视差)进行几何变换的操作。给定左图特征 $F(I_L)$、右图特征 $F(I_R)$ 和当前视差估计 $d_{cur}$,向后扭曲操作定义为 $\texttt{Warp}(d_{cur})_p = F(I_R)_{(p_h, p_w - (d_{cur})_p)}$,其中 $p = (p_h, p_w)$ 是左图中的像素坐标。扭曲通过双线性插值实现,将扭曲后的右图特征与左图特征拼接,作为下一次迭代更新的输入。扭曲的计算和内存开销只与空间分辨率线性相关,与视差范围无关。
扭曲是WAFT-Stereo的核心操作,代替代价体积成为特征对齐的新方式。理解扭曲的数学定义和优势是理解本文方法创新的关键。
零样本泛化
零样本泛化是指模型仅在与测试场景完全不同的数据集上训练后,在未见过的测试集上直接评估的能力。在立体匹配中,真实世界数据标注昂贵且技术困难,公开真实数据集规模比合成数据集小三个数量级。零样本泛化测试的是模型从合成数据学习到真实数据的能力,是评估方法泛化性的重要指标。零样本错误率降低意味着模型能有效跨越模拟到真实的领域差距。
论文在ETH3D和KITTI-2015上报告了零样本结果,WAFT-Stereo在零样本设置下达到最佳性能,这是本文的重要贡献之一。理解零样本泛化才能正确解读论文的实验结果。
LoRA微调
LoRA(Low-Rank Adaptation)是一种参数高效的微调方法,通过在预训练模型的权重矩阵上添加低秩分解的可训练适配器来实现微调。具体地,对于权重矩阵 $W \in \mathbb{R}^{d \times k}$,LoRA添加两个低秩矩阵 $A \in \mathbb{R}^{r \times k}$ 和 $B \in \mathbb{R}^{d \times r}$,使得前向计算变为 $h = Wx + BAx$,其中 $r \ll \min(d, k)$。微调时只更新 $A$ 和 $B$,冻结原始权重 $W$。LoRA显著减少可训练参数数量,同时保持接近全参数微调的性能。
WAFT-Stereo使用LoRA微调预训练编码器,而不是像原始WAFT那样附加一个可训练的小型U-Net。这是本文相对于WAFT的重要架构改进,理解LoRA有助于理解这个改进的意义。
研究动机
现代立体匹配方法大多依赖于代价体积设计,这些方法在ETH3D、KITTI和Middlebury等基准上取得了领先性能。然而,代价体积存在两个根本性问题。首先是内存开销问题:代价体积的计算和存储与视差范围线性增长,这意味着对于大视差范围的高分辨率图像,代价体积的内存消耗会变得极其昂贵。实际中,代价体积通常在低分辨率(如原始分辨率的1/4)构建和处理,这会损害精度,特别是在高细节图像区域。其次是架构复杂性问题:为了有效利用代价体积,现有方法引入了大量代价体积特定的网络设计,如3D卷积、Cost Volume Attention等,这些设计计算昂贵且增加了架构复杂性。作者观察到,在540p分辨率下处理时,FoundationStereo需要708ms延迟,S2M2-XL需要195ms延迟,这反映了当前方法的效率瓶颈。
本文的目标是本文的核心目标是证明在立体匹配中,代价体积并非强性能的必要条件,可以完全被扭曲操作所替代,从而实现更简单、更高效且同样准确的立体匹配方法。具体而言,作者希望展示:(1)高分辨率特征空间扭曲配合迭代更新足以达到最先进精度;(2)去除代价体积特定的设计能够简化架构并提升效率;(3)仅使用标准网络组件(如ViT、ResNet块)可以构建高效的立体匹配模型;(4)模型在零样本设置下具有强泛化能力。作者在ETH3D基准上达到BP-0.5第一名的成绩,同时将延迟降低到106ms(比FoundationStereo快6.7倍),并在零样本设置下将ETH3D的BP-0.5错误降低61%。
与已有工作不同的是,本文的独特切入角度在于重新审视了代价体积在立体匹配中的必要性,挑战了领域内代价体积是必需组件的主流假设。虽然光流领域的工作(如WAFT)已经展示了扭曲可以代替代价体积,但直接将这一思想应用到立体匹配并非易事。立体匹配面临的大位移(数百像素)远大于光流中相邻帧间的小位移,这使得基于回归的迭代更新难以收敛。本文的切入角度是结合分类和回归:先通过分类获得粗糙但稳定的视差估计,再通过回归迭代细化,从而解决大位移问题。另一个独特角度是证明性能提升主要来自分类公式本身,而非代价体积或代价体积特定设计,这与BridgeDepth等方法使用代价体积进行分类形成对比。
核心方法
WAFT-Stereo的整体思路是将光流估计中的扭曲框架引入立体匹配,用特征空间扭曲代替代价体积索引。方法由三个部分组成:(1)输入编码器,从立体图像对中提取特征;(2)分类步骤,将视差离散化到预定义的箱子中,估计每个像素在这些箱子上的概率分布;(3)循环更新器,通过扭曲操作对齐右图特征,并回归视差更新。直觉上,分类步骤提供了一个粗糙但稳定的初始估计,特别适合处理立体匹配中的大位移场景;循环更新器则通过多次迭代细化视差估计。整个架构完全基于扭曲,没有使用任何代价体积或代价体积特定的设计,因此可以使用标准网络组件,简化设计并提升效率。与原始WAFT相比,WAFT-Stereo在回归迭代之前添加了分类步骤,用LoRA微调代替代价体积U-Net,并用ResNet块替换高分辨率skip连接。
WAFT-Stereo的核心创新点有两个。第一个创新点是证明代价体积并非必需:分类步骤可以完全在扭曲特征上实现,而不是在代价体积上。现有方法如BridgeDepth和S2M2使用代价体积进行分类,因为代价体积值可以自然表示视觉相似性,经过softmax归一化后代表匹配概率。WAFT-Stereo展示了分类的好处来自分类公式本身,而非代价体积或代价体积特定设计。分类模块与循环更新器共享相同的网络架构(ViT-small + DPT),只是操作在扭曲特征而非代价体积上。第二个创新点是分类+回归的混合设计:先进行一次分类步骤估计离散化的视差分布,再进行回归迭代细化。这与纯回归方法(如MonSter++、FoundationStereo)不同,后者从全零视差场开始,需要较多迭代(如32次)才能收敛。混合设计使得WAFT-Stereo只需5次迭代(1次分类+4次回归)就能达到最优性能,显著提升效率。
方法步骤详情
WAFT-Stereo的完整流程包含以下步骤。步骤1:输入编码。给定已校正的立体图像对 $I_L, I_R \in \mathbb{R}^{H \times W \times 3}$,输入编码器 $F$ 提取特征图 $F(I_L), F(I_R) \in \mathbb{R}^{h \times w \times c}$,其中 $(h, w) = (H/2, W/2)$ 是半分辨率。编码器使用预训练的DepthAnythingV2骨干网络,通过LoRA微调。步骤2:分类步骤。分类模块将视差离散化到 $B=40$ 个箱子,箱子范围为 $[0, D_{max}]$,其中 $D_{max}=800$。对于每个像素 $p$,定义软目标分布 $(P_{gt})_p = \text{Softmax}(|(d_{gt})_p / (D_{max} / (B-1))|)$,其中 $d_{gt}$ 是真实视差。模型预测分布 $P$ 并用软交叉熵损失监督:$\mathcal{L}_{cls} = -\sum_{p}\sum_{i=0}^{B-1}(P_{gt})_{p,i}\log P_{p,i}$。初始视差估计通过soft-argmax计算:$d_0 = \sum_{i=0}^{B-1}(i \cdot D_{max}/(B-1))P_i$。步骤3:循环更新。对于迭代 $t=1$ 到 $T-1$($T=5$),循环更新器接收左图特征 $F(I_L)$、扭曲右图特征 $\texttt{Warp}(d_{t-1})$ 和隐藏状态 $h_{t-1}$,输出下一个隐藏状态 $h_t$。循环更新器使用ViT-small架构,之前应用 $8 \times 8$ patchify。扭曲操作通过双线性采样实现。步骤4:预测与损失。从隐藏状态 $h_t$ 预测Mixture-of-Laplace参数,并通过凸上采样上采样到输入分辨率。回归迭代使用MoL损失,总损失为 $\mathcal{L}_{total} = \mathcal{L}_{cls} + \sum_{i=1}^{T-1}\gamma^{T-i}\mathcal{L}_{MoL}^i$,其中 $\gamma$ 是衰减因子。
技术新颖性
WAFT-Stereo的技术新颖性体现在多个方面。首先,在立体匹配中首次证明了分类可以在无代价体积的情况下实现有效。通过消融实验,作者发现基于代价体积的分类并不比基于扭曲的分类更好,这表明性能提升来自分类公式本身,而非代价体积。其次,分类+回归的混合设计是新颖的。纯回归方法难以处理大位移,而纯分类方法难以细化估计,混合设计结合了两者的优势。第三,架构简化具有新颖性。原始WAFT使用一个小型U-Net作为预训练编码器的轻量级适配层,WAFT-Stereo改用LoRA微调,减少了延迟。第四,高分辨率处理的新颖性。循环更新器中的高分辨率skip连接被替换为4个ResNet块,这显著提升了精度。作者通过消融实验发现,高分辨率ResNet块在ETH3D上将BP-1-all从1.99降至1.48。最后,损失函数的新颖性。立体匹配中常用L1损失,但WAFT-Stereo引入光流中常用的Mixture-of-Laplace损失,消融实验显示MoL损失在ETH3D上将BP-1-all从2.44降至1.48,显著优于L1损失。
实验结果
WAFT-Stereo在多个标准基准上达到了最先进的性能,同时保持了高效率。在ETH3D基准上,WAFT-Stereo(DAv2L,5次迭代)在BP-0.5-noc上达到0.89,在BP-0.5-all上达到0.97,排名所有公开提交中的第一名。与之前的SOTA方法S2M2-XL相比,BP-0.5-noc从0.93降至0.89,降低了4.3%;与FoundationStereo相比,BP-0.5-noc从1.26降至0.89,降低了29.4%。在效率方面,WAFT-Stereo在540p输入上的延迟为106ms,比FoundationStereo(708ms)快6.7倍,比S2M2-XL(195ms)快1.8倍。更令人印象深刻的是零样本泛化性能:仅使用合成数据训练时,WAFT-Stereo在ETH3D上的BP-0.5-noc为0.89,比最佳零样本基线FoundationStereo(2.31)降低了61%的错误。在KITTI-2012上,WAFT-Stereo达到BP-2-noc为1.18,比MonSter++(1.30)降低了9.2%;在KITTI-2015上,达到D1-noc为1.21,比MonSter++(1.29)降低了6.2%。在Middlebury基准上,WAFT-Stereo达到RMSE-noc为5.61,比S2M2-XL(6.01)降低了6.7%。作者还报告了实时版本的结果:使用DAv2S骨干网络,WAFT-Stereo在540p输入上达到21 FPS,同时保持与先前SOTA方法相当的精度。
查看结构化数据
| 任务 | 指标 | 本文 | 基线 | 提升 |
|---|---|---|---|---|
| 立体匹配-ETH3D | BP-0.5-noc | 0.89% | S2M2-XL: 0.93% | 降低4.3% |
| 立体匹配-ETH3D零样本 | BP-0.5-noc | 0.89% | FoundationStereo: 2.31% | 降低61% |
| 立体匹配-KITTI-2012 | BP-2-noc | 1.18% | MonSter++: 1.30% | 降低9.2% |
| 立体匹配-KITTI-2015 | D1-noc | 1.21% | MonSter++: 1.29% | 降低6.2% |
| 立体匹配-KITTI-2015零样本 | D1-noc | 2.79% | FoundationStereo: 3.08% | 降低9.4% |
| 立体匹配-Middlebury | RMSE-noc | 5.61 | S2M2-XL: 6.01 | 降低6.7% |
| 推理效率-540p输入 | 延迟 | 106ms | FoundationStereo: 708ms | 快6.7倍 |
局限与改进
作者诚实地讨论了方法的局限性。首先,在Middlebury基准的BP-2-all指标上,WAFT-Stereo(4.39)落后于S2M2-XL(2.94)和MatchStereo(4.90)。作者观察到这个性能差距主要由一个特别具有挑战性的场景Classroom2E主导,其中立体对存在显著的照明差异。排除这个场景后,差距显著缩小。其次,随着迭代次数增加,推理延迟几乎线性增长(从4次迭代的47ms到5次迭代的106ms),这是因为迭代更新减少了并行度。虽然WAFT-Stereo需要的迭代次数(5次)少于纯回归方法(如32次),但仍然存在效率权衡。第三,论文只测试了DAv2系列骨干网络,虽然作者提到可以轻松集成各种预训练骨干网络(如DINOv2),但没有报告其他骨干网络的结果,限制了方法通用性的全面评估。最后,论文没有报告在极端场景(如大光照变化、纹理缺失、遮挡严重)下的性能,这些场景通常对立体匹配方法构成挑战。
独立分析的弱点
WAFT-Stereo存在几个可以改进的弱点。第一个弱点是对大照度变化的鲁棒性不足。在Middlebury的Classroom2E场景中,显著照明差异导致性能大幅下降,这表明扭曲操作对光照变化敏感。改进方向可以是在特征提取阶段引入光照不变特征,或在损失函数中加入光照鲁棒性正则项。第二个弱点是迭代更新的并行度受限。随着迭代次数增加,延迟几乎线性增长,这不利于实时应用。改进方向可以探索并行化迭代更新策略,或设计更高效的迭代收敛方案(如自适应早停)。第三个弱点是缺乏对边缘和纹理缺失区域的专门处理。论文没有报告在这些困难区域的表现,而这是立体匹配的关键挑战。改进方向可以引入边缘感知损失或纹理增强模块。第四个弱点是分类步骤的箱子数量选择是固定的(B=40)。不同场景可能需要不同的箱子分辨率,固定选择可能不是最优。改进方向可以是自适应箱子选择或多尺度分类。第五个弱点是零样本性能仍然有提升空间。虽然WAFT-Stereo在零样本设置下表现优异,但与有监督微调结果相比仍有差距(如ETH3D上零样本0.89% vs 微调结果未明确报告)。改进方向可以是更好的域适应技术或合成数据增强。
未来方向
基于本文成果,多个未来研究方向值得探索。首先,作者提到可以探索更多骨干网络选择。论文只测试了DAv2系列,但WAFT-Stereo的架构可以轻松集成各种预训练骨干网络(如DINOv2、SAM等)。未来工作可以系统评估不同骨干网络的影响,并探索专门针对立体匹配预训练的骨干网络。其次,可以研究更高效的迭代策略。论文观察到迭代次数与延迟的线性关系,未来可以设计更少的迭代次数达到相同精度,或并行化迭代更新。第三,可以探索更复杂的损失函数。虽然MoL损失优于L1损失,但可以尝试其他分布假设(如Mixture-of-Gaussian)或引入边缘感知、结构感知的损失项。第四,可以研究跨任务的泛化。WAFT-Stereo基于光流的WAFT框架,未来可以探索统一的光流和立体匹配架构,实现任务间的知识共享。第五,可以研究更好的零样本泛化技术。虽然仅使用合成数据训练已经很强,但可以引入域适应、无监督领域适应等技术进一步提升零样本性能。最后,可以研究在极端场景下的鲁棒性。大光照变化、严重遮挡、纹理缺失等场景需要专门的设计,这是实际应用中的重要挑战。
复现评估
WAFT-Stereo的复现性评估较为积极。作者提供了代码和模型权重,公开在GitHub(https://github.com/princeton-vl/WAFT-Stereo),这为复现提供了基础。论文详细描述了实现细节:warping在半分辨率进行,ViT blocks之前应用 $8 \times 8$ patchify,循环更新器使用4个ResNet块进行高分辨率处理,LoRA rank设为8,分类箱子数B=40,最大视差Dmax=800。这些具体的超参数设置有助于复现。训练细节也很详细:合成数据集混合包含约330万立体对,在480p随机裁剪上训练,批大小32,学习率 $5 \times 10^{-4}$,使用AdamW优化器和OneCycle调度器,训练400k步。这些具体设置使复现可行。论文还提供了消融实验,使用较小的合成子集(约160万立体对)训练100k次迭代,这为快速验证提供了参考。论文在L40 GPU上报告了540p BF16精度的性能数据,这提供了明确的硬件要求参考。然而,论文没有报告训练所需的GPU小时数,也没有详细说明合成数据集的具体组成比例,这可能影响完全复现。总体而言,WAFT-Stereo的复现难度中等,需要较强的计算资源(多个L40 GPU),但详细的实现描述和公开代码降低了复现门槛。
论文图表
这张表格展示了ETH3D基准上的零样本结果。表格列出了12个方法,包括RAFT-Stereo、CREStereo、CroCo-Stereo、Selective-IGEV、BridgeDepth、MonSter++、MatchStereo、DEFOM-Stereo、FoundationStereo、S2M2-XL和两个WAFT-Stereo配置(DAv2S, 4和DAv2L, 5)。对于每个方法,报告了6个指标:BP-0.5-noc、BP-1-noc、BP-2-noc、BP-0.5-all、BP-1-all、BP-2-all。关键发现是WAFT-Stereo(DAv2L, 5)在BP-0.5-noc(0.89)和BP-2-all(0.07)上排名第一。零样本列标记了方法是否仅使用合成数据训练,WAFT-Stereo的两个配置都是零样本。
这个表格对理解论文极其重要,它提供了WAFT-Stereo在ETH3D上的定量性能证据,特别是零样本泛化能力的量化证明。表格中的数字(如0.89% BP-0.5-noc)是论文主要 claims 的核心支撑数据。
这张表格展示了KITTI-2012和KITTI-2015基准上的结果。表格分为两部分:左侧是KITTI-12,报告BP-2-noc和BP-2-all;右侧是KITTI-15,报告D1-bg-noc、D1-noc、D1-bg-all和D1-all。表格列出了13个方法,包括GWCNet、RAFT-Stereo、CREStereo、DLNR、MoCha-Stereo、Selective-IGEV、Croco-Stereo、NMRF、BridgeDepth、DEFOM-Stereo、MatchStereo、MonSter++和WAFT-Stereo。零样本列标记了零样本提交,包括Selective-IGEV、FoundationStereo、S2M2-XL和WAFT-Stereo。关键发现是WAFT-Stereo在KITTI-12的BP-2-noc(1.18)和KITTI-15的D1-noc(1.21)上排名第一,在零样本设置下也达到最佳D1-noc(2.79)。
这个表格对理解论文很重要,它提供了WAFT-Stereo在KITTI基准上的定量性能证据,验证了方法在不同数据集上的泛化能力。零样本结果(2.79% D1-noc)进一步证明了方法的强泛化能力。
这张表格展示了Middlebury基准上的结果。表格列出了11个方法,包括RAFT-Stereo、CREStereo、CroCo-Stereo、GMStereo、MoCha-Stereo、Selective-IGEV、MonSter++、DEFOM-Stereo、BridgeDepth、MatchStereo、FoundationStereo、S2M2-XL和WAFT-Stereo。对于每个方法,报告了6个指标:BP-2-noc、BP-2-all、BP-4-noc、BP-4-all、RMSE-noc、RMSE-all。关键发现是WAFT-Stereo在RMSE-noc(5.61)和RMSE-all(7.02)上排名第一,分别比S2M2-XL(6.01, 7.39)降低了6.7%和5.1%。但在BP-2-all上,WAFT-Stereo(4.39)落后于S2M2-XL(2.94)和MatchStereo(4.90)。
这个表格对理解论文很重要,它提供了WAFT-Stereo在Middlebury基准上的完整性能画像。表格既展示了优势(RMSE第一),也暴露了局限性(BP-2-all落后),这是全面评估方法的重要依据。
这张表格展示了训练数据的消融实验。表格按训练数据分为四个块:FSD-ZS(合成数据+单个真实数据集)、FSD-ZS+(更大训练数据集)、SynLarge(作者使用的大规模合成混合)、SceneFlow(仅SceneFlow)。每个块比较不同方法在KITTI-12、KITTI-15、ETH3D、Middlebury-Q训练集上的性能,以及延迟。关键发现包括:(1)在FSD-ZS设置下,WAFT-Stereo达到与FoundationStereo相当的性能,但快6.7倍;(2)在SynLarge设置下,WAFT-Stereo超越MonSter++,同时快2.0倍;(3)仅用SceneFlow训练导致严重过拟合(BP-1-all高达71.0)。
这个表格对理解论文很重要,它证明了WAFT-Stereo的架构优势不是来自更多训练数据,而是在相同或更少数据下仍能超越现有方法。表格还揭示了SceneFlow-only零样本设置的问题,这对理解零样本评估的局限性很重要。
这张表格展示了架构设计的消融实验。表格列出了6组实验,分别改变不同设计选择:基准、视差箱子数量、分类与回归、高分辨率块、不同骨干网络、回归损失。对于每组实验,报告了迭代次数(分类、回归)、特征维度、高分辨率块数量、箱子数、ETH3D的BP-1-all、Middlebury-Q的BP-2-all、回归损失类型和MACs。关键发现包括:(1)箱子数量从40减少到5导致性能显著下降;(2)分类+回归优于纯回归或纯分类;(3)高分辨率块将BP-1-all从1.99降至1.48;(4)MoL损失优于L1损失(1.48 vs 2.44)。
这个表格对理解论文极其重要,它提供了每个设计选择的定量证据,读者可以清楚地看到每个组件的贡献。特别是分类+回归、高分辨率块和MoL损失的消融结果,是理解方法核心创新的关键。