1. 立体匹配的“老问题”与“新思路”
如果你玩过3D电影或者VR设备,一定对那种身临其境的立体感印象深刻。这种立体感是怎么来的呢?简单说,就是让我们的两只眼睛(或者两个摄像头)从不同角度观察同一个场景,然后通过计算这两幅图像之间的差异,来推断出每个物体离我们的距离,这个距离信息就是“视差”。这个计算过程,在计算机视觉领域就叫“立体匹配”。
听起来挺简单,不就是找找两张图里哪个像素点是对应的嘛?但实际做起来,那可真是“坑”多路滑。我刚开始接触这个领域时,也被各种问题搞得头大。比如,场景里有一面纯白的墙(低纹理区域),或者墙上贴满了重复的瓷砖图案(重复纹理),算法就懵了,根本找不到可靠的对应点。再比如,一个物体把后面的东西挡住了(遮挡区域),被挡住的区域在另一张图里压根没有信息,这怎么匹配?还有反光强烈的物体表面,亮度变化剧烈,也给匹配增加了巨大难度。这些区域,我们统称为“病态区域”,是立体匹配算法长期以来的“心病”。
为了解决这些难题,研究者们想出了很多办法,主要分成了两大流派。第一种是“基于代价滤波”的方法。你可以把它想象成一个非常严谨的“全局审查官”。它会为每一个可能的视差值都计算一个匹配代价,形成一个三维的“代价体”,然后对这个代价体进行复杂的3D滤波和聚合,把周围像素的信息都考虑进来。这样做的好处是,它能编码非常丰富的全局几何和上下文信息,对付病态区域很有一套。但缺点也明显:计算量巨大,内存消耗高,跑起来慢,对硬件要求高。
第二种是“基于迭代优化”的方法,以RAFT-Stereo为代表。它更像一个“高效的精算师”。它不构建那个庞大的3D代价体,而是先计算左右图像特征点之间的“相关性”,然后从一个初始的视差估计开始,像“猜数字”游戏一样,通过一个循环网络(比如ConvGRU)不断地迭代更新,一步步逼近正确的视差。这种方法速度快、内存省,非常高效。但问题在于,它主要依赖局部特征的相关性(All-pairs Correlations, APC),在那些缺乏纹理或特征模糊的病态区域,信息来源太少,容易“猜”错,导致预测模糊。而且,在物体边缘等细节处,迭代优化容易产生过度平滑的效果,边界不够锐利。
那么,有没有一种方法,能像“全局审查官”一样洞察全局,又能像“高效精算师”一样快速计算呢?这正是CVPR 2023上提出的IGEV-Stereo的核心思想。它不走寻常路,没有在两条老路上二选一,而是大胆地将两者“融合”起来,取长补短,提出了一种名为“迭代几何编码代价体”的新范式。简单说,它先用一个轻量级的3D网络对初始代价进行快速聚合,得到一个富含几何信息的“编码体”(GEV),然后再把这个编码体和RAFT-Stereo的局部相关性(APC)结合起来,一起喂给迭代优化器去精修。这样,优化器每一步迭代不仅有局部线索,还有来自全局聚合的几何信息作为“导航”,自然就能在病态区域看得更清,在边缘细节处定得更准。接下来,我就带你深入这个巧妙的设计,看看它是如何具体实现的。
2. IGEV-Stereo的核心架构:四步打造立体感知系统
IGEV-Stereo的整体流程设计得非常清晰,像一个流水线,总共分为四个核心模块。理解了这个框架,你就抓住了它的命脉。
第一步,多尺度特征提取器。 这是所有视觉任务的“前哨站”。IGEV-Stereo这里用了两个子网络。一个是特征提取网络,用的是在ImageNet上预训练好的MobileNetV2。它的任务是把输入的左右原始图像,像剥洋葱一样,提取出不同“尺度”的特征图。具体来说,它会先把图像缩放到很小的尺寸(1/32),捕捉全局的、语义级别的信息,然后再逐步上采样,得到1/4、1/8、1/16、1/32四种尺度的特征。其中,最“精细”的1/4尺度特征(记作 f_l,4 和 f_r,4),会被用来构建最基础的匹配代价。另一个是上下文提取网络,它的结构和RAFT-Stereo里



被折叠的 条评论
为什么被折叠?



