本文翻译的外国学者的一份talk,主要内容是关于立体视觉算法和应用的基础知识。限于个人水平,如有疏漏之处请谅解。
大纲
3、视觉匹配算法
4、计算优化
5、硬件实现
6、应用
视觉匹配算法(匹配步骤与匹配代价函数)
匹配陷阱
光学扭曲和噪音:图像在成像时会发生扭曲和噪音干扰;
a)高光区域:由于光照的原因,两幅图像的高光区可能并不一致;
b)透视收缩、失真:由于透视原理,图像会发生收缩与失真;
c)模糊/歧义区域:模棱两可的匹配往往发生在图像某部分不均匀或者重复率较高的区域;
d)透明物体:图像中含有透明物体会对匹配产生干扰;
e)遮挡和不连续:由于两个相机和物体本身放置的位置会造成遮挡,使所成的像不连续并且某一部分一幅图像中存在而另一幅图像中不存在。
匹配步骤
根据一般的分类方法,大多数的匹配算法步骤包含:1)匹配代价计算、2)代价聚合、3)视差计算/优化、4)视差调整等几个步骤。 为了减小图像的畸变所造成的影响,在匹配前常常会进行图像的预处理。常用的方法有LoG滤波、均值滤波、双边滤波、统计变换等方法。以下示例一种简单的匹配算法:在参考图像中选取一点x,在目标图像中选取对应位置的点。根据极线约束,匹配的点必定在极线之上,那么在最大视差范围的点集[x,x+d(max)]中选取匹配点即可。其中匹配代价设置为两个像素点之差的绝对值,视差计算采用的像素点为代价值最小(WTA:winner takes all)的点。
根据策略的不同,算法了通常分为两类:局域算法和全局算法。其中局域算法往往包含1.2.3几个步骤,而全局算法可能会省去2。局域算法会通过一个支持窗口进行代价聚合以减少歧义性(提高性噪比SNR)然后采用简单的WTA策略来进行视差值选择,有时也会在步骤中加入平滑项;全局算法利用基于像素匹配代价来最小化全图能量函数(E=E(data)+E(smooth))以寻找视差分配,其中的匹配代价有时会采用基于窗口支持的代价聚合方式。在上述两类算法中都或明或暗的存在一个假设前提:图像是分段平滑的。
匹配代价
(1)基于像素的匹配代价
差值的绝对值(Absolute differences):
差值的平法(Squared differences):
M-estimators:一类带鲁棒的匹配测度方法,限制了奇点(干扰点)的影响。例如:TAD(truncated absolute differences)
针对图像采样不敏感的差异性测度:
(2)基于区域的匹配代价
差值绝对值之和(Sum of Absolute differences (SAD)):
差值平方之和(Sum of Squared differences (SSD)):
Sum of truncated absolute differences (STAD):
常用的方法还有Normalized Cross Correlation,Zero mean Normalized Cross Correlation,Gradient based MF,Non parametric,Mutual Information等。