几种经典的双目匹配的算法

描述

 

在深度相机的主流技术方案Structure Light,ToF,Stereo Dual)中,主动双目成像方案可以基于低成本的硬件,获得高分辨率、高精度的深度图像,但是立体匹配算法(stereo matching)复杂,对计算资源消耗很大。那我们介绍下几种经典的双目匹配的算法。

【双目匹配】

双目立体视觉理论建立在对人类视觉系统研究的基础上,通过双目立体图象的处理,获取场景的三维信息,其结果表现为深度图,再经过进一步处理就可得到三维空间中的景物,实现二维图象到三维空间的重构。Marr-Poggio-Grimson [1] 最早提出并实现了一种基于人类视觉系统的计算视觉模型及算法。双目立体视觉系统中,获取深度信息的方法比其它方式(如由影到形方法)较为直接,它是被动方式的,因而较主动方式(如程距法)适用面宽,这是它的突出特点。

双目立体视觉系统中,深度信息的获得是分如下两步进行的:

(1) 在双目立体图象间建立点点对应,

(2) 根据对应点的视差计算出深度。

第一部分,也就是对应点问题,是双目立体视觉的关键; 第二部分是摄像机模型问题。双目立体视觉模型中,双摄像机彼此参数一致,光轴平行且垂直于基线,构成一共极性 (epipolar) 结构,这样做是为了缩小对应的搜索空间,只有水平方向的视差,简化了对应过程

硬件

【立体匹配算法介绍】

BM

其中minDisparity是控制匹配搜索的第一个参数,代表了匹配搜苏从哪里开始,numberOfDisparities表示最大搜索视差数uniquenessRatio表示匹配功能函数,这三个参数比较重要,可以根据实验给予参数值。

该方法速度最快,一副320*240的灰度图匹配时间为31ms

硬件硬件

SBGM

SGBM算法 Stereo Processing by Semiglobal Matching and Mutual Information

作为一种全局匹配算法,立体匹配的效果明显好于局部匹配算法,但是同时复杂度上也要远远大于局部匹配算法。算法主要是参考Stereo Processing by Semiglobal Matching and Mutual Information。

通过选取每个像素点的disparity,组成一个disparity map,设置一个和disparity map相关的全局能量函数,使这个能量函数最小化,以达到求解每个像素最优disparity的目的。

能量函数形式如下:

硬件

D指disparity map。E(D)是该disparity map对应的能量函数。

p, q代表图像中的某个像素

Np 指像素p的相邻像素点(一般认为8连通)

C(p, Dp)指当前像素点disparity为Dp时,该像素点的cost

P1 是一个惩罚系数,它适用于像素p相邻像素中dsparity值与p的dsparity值相差1的那些像素。

P2 是一个惩罚系数,它适用于像素p相邻像素中dsparity值与p的dsparity值相差大于1的那些像素。

I[.]函数返回1如果函数中的参数为真,否则返回0

利用上述函数在一个二维图像中寻找最优解是一个NP-complete问题,耗时过于巨大,因此该问题被近似分解为多个一维问题,即线性问题。而且每个一维问题都可以用动态规划来解决。因为1个像素有8个相邻像素,因此一般分解为8个一维问题。

硬件

硬件

OpenCV中自带了BM和SBGM,效果对比如下图:

硬件

GC

GC算法 算法文献:Realistic CG Stereo Image Dataset with Ground Truth Disparity Maps

硬件

SAD

SAD(Sum of absolute differences)是一种图像匹配算法。基本思想:差的绝对值之和。此算法常用于图像块匹配,将每个像素对应数值之差的绝对值求和,据此评估两个图像块的相似度。该算法快速、但并不精确,通常用于多级处理的初步筛选。

基本流程

输入:两幅图像,一幅Left-Image,一幅Right-Image 对左图,依次扫描,选定一个锚点:

(1)构造一个小窗口,类似于卷积核; (2)用窗口覆盖左边的图像,选择出窗口覆盖区域内的所有像素点; (3)同样用窗口覆盖右边的图像并选择出覆盖区域的像素点; (4)左边覆盖区域减去右边覆盖区域,并求出所有像素点灰度差的绝对值之和; (5)移动右边图像的窗口,重复(3)-(4)的处理(这里有个搜索范围,超过这个范围跳出); (6)找到这个范围内SAD值最小的窗口,即找到了左图锚点的最佳匹配的像素块。

硬件

【匹配陷阱】

以下几种情形生成的深度图像可能会有缺陷:

(1) 光学失真和噪声(亮度、色调、饱和度等失衡)

 

(2) 平滑表面的镜面反射

高光处无细节,无特征点。

 

(3) 投影缩减(Foreshortening)

摄影测量学中的一个概念,指物体近大远小。由于相对左右照相机距离的不同,看到的同一个物体在左右视图中的投影尺寸也会不同,造成匹配障碍。

 

(4) 透视失真(Perspective distortions)

由于镜头畸变造成的被摄物体失真。譬如画面中的鼻子被拉长。

 

(5) 低纹理(Low texture)

无细节。主动纹理光可以解决这一问题。

硬件

(6) 重复纹理(Repetitive/ambiguous patterns)

高度相似的特征点描述向量接近,行扫描时难以判断哪一个是对应的特征点。

 

(7) 透明物体

同低纹理。

 

(8) 重叠和非连续

纹理中断,不利于行查找。

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分