在计算机视觉领域,立体匹配一直是个极具挑战性的基础问题。简单来说,立体匹配就是通过分析左右两个视角拍摄的图像,计算出场景中每个像素点的深度信息。这个技术广泛应用于自动驾驶、机器人导航、三维重建等场景。2023年CVPR会议上,华中科技大学团队提出的IGEV-Stereo方法,在保持高效计算的同时,显著提升了匹配精度,成为该领域的新标杆。
当前立体匹配算法主要分为两大类:代价滤波方法和迭代优化方法。代价滤波方法(如PSMNet、GwcNet)通过构建3D代价体并使用3D卷积进行正则化,能够很好地处理遮挡和重复纹理区域,但计算量巨大。迭代优化方法(如RAFT-Stereo)则采用ConvGRU在4D代价体上迭代更新视差,计算效率高但需要大量迭代才能收敛。
提示:代价体是立体匹配中的核心概念,可以理解为存储了左右图像在不同视差假设下匹配程度的3D/4D数据结构。
IGEV-Stereo的突破性在于将两种方法的优势巧妙结合:
这种"全局引导+局部精修"的思路,使得模型仅需3次迭代就能超越RAFT-Stereo32次迭代的效果,在KITTI等基准测试中刷新了记录。
IGEV-Stereo的网络架构包含四个关键模块:
整个处理流程可以形象地理解为"先画轮廓,再填细节"的过程。首先通过GEV获得场景的几何结构,然后用APC补充局部细节,最后通过少量迭代完成精修。
特征提取采用双分支设计:
这种设计既保证了特征质量,又控制了计算量。特别值得注意的是,团队采用了CoEx机制,利用左图特征对代价体进行引导激励,显著提升了特征表达能力。
CGEV的构建是IGEV-Stereo的核心创新,分为三个关键步骤:
借鉴GwcNet的思路,将特征分成8组分别计算相关性。这种分组策略既降低了计算复杂度,又保留了足够的匹配信息。公式表示为:
C_corr(g,d,x,y) = (1/(N_c/N_g))⟨f^g_l(x,y), f^g_r(x-d,y)⟩
其中g表示组索引,d为视差假设,N_c/N_g是每组通道数。
设计了一个轻量级3D UNet对代价体进行正则化:
这个模块虽然增加了约5ms的计算时间,但带来的精度提升非常显著。
将正则化后的GEV与APC特征金字塔融合,形成最终的CGEV。这种组合确保了网络同时具备:
与传统迭代方法从零开始不同,IGEV-Stereo通过soft argmin直接从GEV回归初始视差:
d_0 = Σ_d d×Softmax(C_G(d))
这个设计使得初始视差就非常接近真实值,为后续迭代提供了极好的起点。实验表明,仅使用初始视差就能达到0.66 EPE,已经优于RAFT-Stereo多次迭代后的结果。
迭代更新过程采用三级ConvGRU结构(1/4,1/8,1/16分辨率),每次迭代包含三个关键操作:
更新公式遵循标准ConvGRU设计,但通过精心设计的特征融合,每次迭代都能带来明显的精度提升。
与RAFT-Stereo不同,IGEV-Stereo的上采样模块充分利用了更高分辨率的上下文特征:
这种方法在保持边缘锐度的同时,有效减少了上采样带来的信息损失。
通过系统的消融实验,验证了各个组件的必要性:
| 配置 | EPE(px) | >3px(%) |
|---|---|---|
| 仅APC | 0.56 | 2.85 |
| 仅GEV | 0.51 | 2.68 |
| GEV+APC | 0.50 | 2.62 |
| 完整模型 | 0.47 | 2.47 |
结果显示,GEV和APC确实具有互补性,而初始视差监督进一步提升了性能。
IGEV-Stereo在迭代效率上展现出巨大优势:
| 迭代次数 | RAFT-Stereo | IGEV-Stereo |
|---|---|---|
| 1 | 2.16 | 0.66 |
| 3 | 0.95 | 0.58 |
| 8 | 0.66 | 0.50 |
| 32 | 0.61 | 0.47 |
值得注意的是,IGEV-Stereo仅用1次迭代就超越了RAFT-Stereo多次迭代的结果,展现出其初始视差质量的重要性。
在零样本迁移测试中,IGEV-Stereo也表现出色:
这表明IGEV-Stereo学习到的几何表示具有很强的泛化能力。
IGEV-Stereo在权威的KITTI基准测试中创下新纪录:
这些结果证明了该方法在真实场景中的实用价值。
团队还将IGEV思路扩展到多视图立体匹配,提出IGEV-MVS:
这一扩展展现了IGEV框架的通用性和可扩展性。
尽管IGEV-Stereo取得了显著进展,但仍存在一些限制:
未来可能的发展方向包括:
在实际部署时,建议根据具体应用场景在精度和速度之间进行权衡。对于实时性要求高的应用,可以适当减少迭代次数;而对精度要求高的场景,则可以增加迭代次数以获得更好的结果。