立体匹配1

CVPR2014

《cross-scale cost aggregation for stereo matching》

这篇文章我这里就简称CSCA,作者提供了详细的源代码,效果还不错,速度也可以,具有一定的实用价值。

1.立体匹配的概念

立体匹配的意思是基于同一场景得到的多张二维图,还原场景的三维信息,一般采用的图象是双目图像,这种叫做场景三维图像。

目前,立体匹配领域,主要有两个评测网站,

一个是,KITTI(http://www.cvlibs.net/datasets/kitti/eval_stereo_flow.php?benchmark=stereo)

另一个是,middlebury(http://vision.middlebury.edu/stereo/)

两个网站上的算法都交叉,但又不完全一样,相对来说,KITTI更好一点,对算法的性能评测更好,虽然时间测算的并不准确(CSCA竟然要140s)。

下面是立体匹配的最基本的步骤:

1、代价计算。计算左图一个像素和右图一个像素之间的代价。

2、代价聚合。一般基于点之间的匹配很容易受噪声的影响,往往真实匹配的像素的代价并不是最低。所以有必要在点的周围建立一个window,让像素块和像素块之间进行比较,这样肯定靠谱些。代价聚合往往是局部算法或者半全局算法才会使用,全局算法抛弃了window采用基于全图信息的方式建立能量函数。

3、深度赋值。这一步可以区分局部算法与全局算法,局部算法直接优化代价聚合模型。而全局算法要建立一个能量函数,能量函数的数据项往往就是代价聚合公式,例如DoubleBP。输出的是一个粗略的视差图。

4、结果优化。对上一步得到的粗估计的视差图进行精确计算,策略有很多,例如plae fitting BP,动态规划等。

这可以看作为一种全局算法框架,通过融合现有的局部算法,大幅提高了算法效果。

2.论文贡献

文献《cross-scale cost aggregation for stereo matching》有三大贡献,第一,设计了一种一般化的代价聚合模型,可将现有算法作为其特例。第二,考虑到了多尺度交互(multi-scale interaction),形式化为正则化项,应用于代价聚合(cost aggregation)。第三,提出了一种框架,可以融合现有多种立体匹配算法。

这篇文章一直强调利用了不同尺度图像“间”的信息。不同于一般的立体匹配算法,只采用了同样尺度下,图像的“内”部结构信息,CSCA利用了多尺度信息,多尺度从何而来?其实说到底,就是简单的对图像进行高斯下采样,得到的多幅成对图像(一般是5副),就代表了多尺度信息。为什么作者会这么提,作者也是从生物学的角度来启发,他说人类就是这么一个有粗到精的观察习惯(coarse-to-line)。

该文献生成的稠密的视差图,基本方法也是逐像素的(pixelwise),分别对每个像素计算视差值,并没有采用惯用的图像分割预处理手段,如此看来运算量是比较可观的。

3.算法流程

算法流程如下:

其实,这篇文章的论述是非常清晰的,上图是自己理解的一份流程图,下面我根据这份流程图,对文章脉络进行说明,对关键的公式进行解释:

1、对文章左右两幅图片进行高斯下采样,得到多尺度图像。

2、计算匹配代价,这个是基于当前像素点的,通常代价计算这一步并不重要,主要方法有CEN,CG,GRD等几种,论文中给出了GRD,公式如下所示:



你可能感兴趣的:(立体匹配1)