Stereo Matching文献笔记之(一):《Cross-Scale Cost Aggregation for Stereo Matching》读后感~

最近,在做立体匹配方向相关的研究,先去网上找最新鲜的论文,看到了这篇文献(简称CSCA),来源于CVPR2014,令我惊奇的是,作者竟然提供了详细的源代码,配置运行了一下,效果还真不错,速度也还可以,具有一定的实用价值,所以拿来和大家分享一下。

(转载请注明:http://blog.csdn.NET/wsj998689aa/article/details/44411215, 作者:迷雾forest)

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) 结果优化。对上一步得到的粗估计的视差图进行精确计算,策略有很多,例如plane fitting,BP,动态规划等。这里不再熬述。

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

2. 论文贡献

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

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

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

3. 算法流程

算法流程图如下所示:











你可能感兴趣的:(Stereo Matching文献笔记之(一):《Cross-Scale Cost Aggregation for Stereo Matching》读后感~)