双目视觉的图像立体匹配系统 说明文档_第1页
双目视觉的图像立体匹配系统 说明文档_第2页
双目视觉的图像立体匹配系统 说明文档_第3页
双目视觉的图像立体匹配系统 说明文档_第4页
双目视觉的图像立体匹配系统 说明文档_第5页
已阅读5页,还剩17页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、双目视觉的图像立体匹配系统 文档1 引言计算机视觉技术的发展将光与影的艺术和计算机的逻辑性紧密结合起来,而双目立体视觉技术更将这种结合从平面二次元上升到立体的角度,为我们的生产生活提供了新的技术和工具,例如已经被普遍运用的3D电影技术,研发中的虚拟现实、谷歌视觉眼镜、汽车自动驾驶技术,即将上市的淘宝虚拟实景购物等,不断改变着我们的生活,另外双目立体视觉在军事、医学、工业等领域都有其重要的作用,是机器感知物体几何层级的基础,因此对双目视觉的理论研究成为推动立体视觉乃至计算机视觉技术在各个领域创造更高价值的重要因素。在双目视觉的研究和运用中,最重要的一个阶段无疑为将平面图像转化为可计算机可识别的立

2、体模型,这里将用到立体匹配技术,目前双目视觉研究领域用到的立体匹配算法及其衍生算法有很多种,算法的效率和匹配精度将直接影响到算法运用的响应时间和准确度1,当今各种视觉智能设备的发展需要将立体匹配过程直接嵌入到单片机中,这种场景下,算法的效率和匹配精度将直接决定不同运算性能的嵌入式设备的选择和产品推广后的用户体验度,也将直接决定设备成本,因此研究出更加速度快、精度高的立体匹配算法在各领域都具有划时代的重要意义。2 系统方案设计2.1 双目视觉的图像立体匹配系统说起立体视觉系统,要从人的双眼说起,人眼是一个典型的双目视觉系统,每只眼睛是一个摄像机,两只平行的眼睛是两台平行的摄像机,因为两只眼睛的位

3、置不同,看到的图像是有差异的,这个差异就是立体视觉的基础,视觉信号传入大脑,大脑利用其强大的匹配能力,就可以基本确定图像中的物体的立体信息,或者叫做图像的深度信息。随着人们知识和生产生活的发展,需要通过仿真立体视觉的原理,让计算机获取到图像从2D向3D发展,即获取图像的深度信息,以实现一些和空间视觉有关的需求,这就出现了机器立体视觉技术。图2.1 立体视觉原理示意图如图2.1是一张立体视觉原理示意图,O1和O2为两台摄像机,物体上的点p12分别对应左右图像上点p1和p2,通过算法找到图像左右图像上对应的点p1、p2,这个过程则是立体匹配。求解p1、p2、p12构成的三角形,我们就能得到点p12

4、的坐标,也就能得到p12的深度6,如图2.2所示。图2.2 标准双目视觉系统投影成像示意图其中,点和点分别是左右两个摄像头的光学中心位置,即两个摄像头成像坐标系的光学原点,f为左右两个摄像头的焦距,在这里,点A(X,Y,Z)以为坐标中心,左摄像头成像坐标系为坐标系,由相似三角形的性质,有: (21)则 (22)因此找到点A在左右图像上对应的和则是重中之重,一个好的立体匹配算法对双目视觉系统起到了决定性作用,我们将在本文接下来的章节对最有代表性的算法做具体介绍。双目立体视觉之间模拟了人眼视觉构造,因此双目视觉在各个领域都具有广泛的运用,比如机器人导航领域,双目视觉可以被运用在汽车自动驾驶,机器人

5、自动导航;在虚拟现实领域,通过对双目视觉的研究,人们可以虚拟出立体视觉,极大丰富了人类生活;在航空航天领域,双目视觉已经运用在飞行器自动导航和飞行器避障;在工业上,双目视觉被运用在机械自动化制造,工业监测等方面。一个完整的双目立体视觉系统通常包括图像获取、摄像机标定、图像矫正、立体匹配和深度恢复五个方面:(1)图像获取 通过模拟双目的方式,利用平行的两台摄像机对左右眼图像进行获取。(2)立体标定 通过图像特征点获取,建立摄像机的几何成像模型(3)图像矫正 把实际中非共面行对准的两幅图像,校正成共面行对准,因为当两个图像平面是完全共面行对准时,计算立体视差是最简单的7(4)立体匹配 通过算法对图

6、像进行立体匹配,建立图像的立体模型。深度恢复 通过匹配结果,恢复图像的立体感。2.2 双目视觉的图像立体匹配系统框图在进行图像的立体匹配之前,需要得到可匹配的图像,既使得左右双眼图片在平面上完全行对准,这时计算立体视觉差是最简单的,而这种行对准图像是可以通过图像校正完成的,但由于每对摄像机的参数(位置、畸变等)不同,在校正时需要拿到摄像头的标正值,因此在校正前需要对摄像头进行标定。总的流程图如图3.1所示:图3.1 系统设计框图通过采集左右摄像头的图像和标定图像进行反复对比标定,得到图像的标定参数,进而进行图像校正,校正后的图像即可通过立体匹配算法进行深度匹配。3 设备选型及硬件系统详细设计3

7、.1 设备选型本系统选用不同型号的两个摄像头作为双目视觉采集摄像机。3.2 硬件系统设计系统所用硬件系统配置如下:PC:四核i5处理器、4Gb内存、显示卡2G RAM4 软件设计及测试4.1 开发环境 编译器:VS2015、MATLAB2015B视觉库:OpenCV3.04.2 概要设计4.2.1 流程图 4.2.2 主要函数及实现功能4.3 详细设计4.3.1图像采集 本论文采用MATLAB对双目图像进行采集,摄像机用到是视觉平行的两台摄像头,如图4.1所示:图4.1 图像采集用的双目摄像头说明:将摄像头使用USB连接线与电脑相连接,使用matlab在同一时间对图像进行采集,为了摄像头标定参

8、数无变化,整个实验过程中需要保持摄像头位置不变,否则实验会不准确。4.3.2立体标定在实际拍摄中,有的摄像头会产生畸变,且采集到的图像极线相交,为了降低后续图像匹配的难度,我们需要得到两个摄像头的焦距、主点坐标、倾斜系数、畸变系数以及它们之间的旋转矢量,现多采用张定友棋盘格标定法对摄像头进行标定,他利用了摄像头拍摄的图像与实物间存在线性关系,表达式如下: (4.2)其中,K代表摄像机的内参数矩阵,u v 1表示实物投影到图像平面上的齐次坐标,r1 r2 r3和t是摄像机的外参数,分别代表以摄像机为中心的坐标系相对世界坐标系的旋转矩阵和平移向量。采用棋盘格能够得到多个角点的位

9、置,解方程组得到摄像机的内外参数15。Opencv3.0和MATLAB的标定都采用了张定友定标法,因为MATLAB标定工具箱较OpenCV3.0标定结果更为准确,因此,本文采用MATLAB对摄像机进行进行标定,本文用14*14,以20mm为边长的黑白棋盘格进行标定,如图4.3所示:图4.3 14*14,20mm为边长的棋盘格标定图像 标定具体步骤如下:(1)使用左右摄像头采集同一时间下同一标定板图像,采集过程中,应让标定图像处于摄像头视野的中间位置(2)分别读取摄像头图像对两个摄像头进行单独标定,本文采集了15张标定图完成标定,每个摄像头的标定结果单独储存。(3)将左右摄像头mat文件读入MA

10、TLAB的标定工具箱,进行立体标定。标定图像如下图4.4和4.5图4.4 左摄像头标定图像集图4.5 右摄像头标定图像集单摄像头标定结果表4.1 左摄像头标定结果参数结果焦距主点倾斜系数畸变像素误差937.38 917.06±10.68 8.93409.05 279.03±11.63 14.390.00±0.00-0.18643 1.69505 0.01121 0.02210 0.00000±0.06598 0.59557 0.00555 0.00447 0.000000.15528 0.19454表4.2 右摄像头标定结果参数结果焦距主点倾斜系数畸变像

11、素误差927.22 907.05±11.02 8.93337.29 280.35±13.06 15.060.00±0.00-0.01803 -0.43391 0.00965 0.01415 0.00000±0.05957 0.36702 0.00597 0.00484 0.000000.42602 0.53865如图4.6和4.7分布表示标定时棋盘标定板和两个摄像机的位置关系:图4.6 棋盘标定板与左摄像机位置关系图4.7 棋盘标定板与右摄像机位置关系立体标定结果读取左右摄像机的标定参数,进行立体标定后,其结果如表4.3所示:表4.3 立体摄像头标定结果

12、摄像头参数结果左摄像头焦距主点倾斜系数畸变919.29 901.54±6.88 6.35402.30 258.05±11.24 10.120.00±0.00-0.01803 -0.43391 0.00965 0.01415 0.00000±0.05957 0.36702 0.00597 0.00484 0.00000右摄像头焦距主点倾斜系数畸变919.29 901.54±6.88 6.35402.30 258.05±11.24 10.120.00±0.00-0.23197 2.36790 -0.00265 0.01769 0

13、.00000±0.06621 0.79331 0.00399 0.00376 0.00000双目摄像头旋转矢量转化矢量0.04887 0.01864 0.01890±0.01496 0.01610 0.00116101.42 4.24 -11.01±0.65 0.77 5.33 双摄像机与棋盘标定板的位置关系如图4.8所示:图4.8 双摄像机与棋盘标定板的位置关系4.3.3校正为了在立体匹配时,左右摄像机图像的平面是行对准的,需要对图像进行校正,而图像校正,使用OpenCV3.0图像库里的bouguet算法比较适合,采用bouguet算法比利用摄像机标定参数,对图

14、像进行校正16,其过程如图4.9所示:图4.9图像校正过程实现过程如下:分别读取立体标正后的标定参数,之后使用OpenCV3.0自带的库进行消除畸变和图像校正矫正的结果分别对比4.10和4.11可知,如图4.10和4.11分别为左摄像机和右摄像机校正前后的图像对比:图4.10 左右摄像机校正前图4.11 左右摄像机校正后4.3.4立体匹配经过校正后的图像左右平面为行对准的,之后即可使用不同的立体匹配算法对左右图像进行立体匹配,为了之后做算法的效率和匹配精度的性能分析,本文在算法运行的同时,通过打印时间戳的方法获取其运行时长。并通过操作系统监控其对内存、cpu的占用情况。基于图像分割的置信传播立

15、体匹配算法匹配 图4.12 算法流程图局部匹配求初始视差图由于优化方式不同,立体匹配通常可以分为局部匹配和全局匹配算法17。本文首先采用局部匹配算法求得初始视差图。要判断两个像素点的相似度,仅凭单个像素显然是不够的。当两个像素块反映同一个场景时,这两个像素块的像素值就会比较相似。最常见的图像块是边长为奇数的正方形,关键点位置就是正方形的中心,可通过比较两个块内像素的匹配代价函数,来衡量两个正方形图像块的相似度。经典的局部匹配代价函数有绝对误差和算法SAD、误差平方和算法SSD和归一化积相关算法NCC。 (3.2) 其中,、分别表示(i,j)处子图、模板的平均灰度值。算法SAD和SSD实现较简单

16、,运行时间短,但容易受到光线等影响,影响匹配精度,因此本文采用NCC算法求初始视差图。得到初始视差值后,为剔除匹配不正确的点,本文采用一致性校验法校验视差图,即先以左摄像头采集图片作为目标图片,右摄像头采集图片作为待匹配图,在右图求得与左图像素点匹配的点后,再以右摄像头图片作为目标图片,在左图求得与右图像素点匹配的点,若两次匹配后找到的点一致,则视为正确的匹配点,若不一致,则一定至少有一次匹配是错误的,则剔除该点得到的视差值。(二)利用meanshift分割图片的分割结果拟合各像素块经过meanshift分割图片后视各图片模块在同一平面,根据各区域内校验后仍为正确的视觉点,计算出各区域内的视觉

17、方程,并组成视觉模板集。(三)通过置信传播算法,进行全局最优分配第二步中获取的视觉平面模板只是根据各个区域内部视差分布而获得的,并没有考虑区域间的相互作用,存在较大误差,之后需要使用置信传播算法对其进行全局匹配,将每个视觉模板作为一个节点,利用全局的置信传播进行不断的迭代推算,直到最终收敛。 利用surf算子的特征提取立体匹配算法匹配图4.13 算法流程图(一)直方图均衡化普通摄像头拍摄的照片常常会出现这样的情况,在某些强度值出现的频率比其他强度值高,呈现出来的照片会是灰蒙蒙的。通常情况下,一张图片各像素的强度值都均衡分布,才会被认为是一张质量高的图片。在这种情况下,便需要用直方图均衡化使图片

18、的直方图居于平稳。但是直方图均衡化也有它的缺点,就是容易模糊掉有的像素点,而在图像本真像素非常重要的双目视觉立体匹配中,我们无法确定直方图均衡化对匹配的影响是否会利大于弊。于是本文用OpenCV3.0中提供的equalizeHist函数进行直方图均衡化处理,比较均衡化前后对立体匹配的影响。(a)直方图均衡化前立体匹配结果(b)直方图均衡化后立体匹配结果图4.14 直方图均衡化前后立体匹配结果的比较 分别对A、B、C三组不同立体图像对进行试验,所得结果如下,其中,A(1)、B(1)、C(1)分别为直方图均衡化前的匹配结果,A(2)、B(2)、C(2)为对应的立体图像对直方图均衡化后的匹配结果。表

19、4.5 直方图均衡化前后立体匹配结果比较实验图片总特征点数正确匹配数正确率A(1)A(2)B(1)B(2)C(1)C(2)165191222461045811153662.5%88.24%88.89%91.67%68.18%78.26% 由表4.5可得,直方图均衡化后surf算子特征点匹配数增多,正确率提高。 (二)匹配特征点后优化,排除匹配错误的点,得到离散的视差图,通过双线性插值得到最终视差图。特征点优化利用的是RANSAC算法,该算法利用少量数据集,对特定的数学实体进行估算,利用不少于8个匹配对来估算基础矩阵,剩下的匹配对均以这个基础矩阵为标准来衡量,不满足时则舍弃。因此当8个匹配对自身

20、正确率不高时,留下的支撑对也会越来越少,因此找到正确的8个匹配对很重要。本文利用OpenCV3.0的findFundamentalMat()函数找到正确的基础矩阵。运行效果如下图所示:(a)RANSAC优化前匹配结果(b)RANSAC极线优化后匹配结果图4.15 RANSAC优化前后对比 去掉匹配错误的点后,就可以求特征点的视差了,由于之前已经完成校正,因此两张图的极线是平行的,可直接通过特征点横坐标相减得到视差值,此时的视差值还是离散的,需根据实物的数学形态等进行插值,即可得到最终的视差图。4.4 结构化实现4.4.1 代码4.4.2 测试本次设计一共进行了四组实验,前三组利用middleb

21、ury16网站得到的标图分别用两种算法进行匹配,第四组实验使用双目摄像头采集图片,经过相同的标定、校正过程,最后两种不同的算法实现匹配, 四组对照试验组的匹配结果如下。1、基于图像分割的置信传播立体匹配算法匹配结果第一组:左视图 右视图 匹配图 图4.16 第一组试验结果图第二组:左视图 右视图 匹配图图4.17 第二组试验结果图第三组:左视图 右视图 匹配图 图4.18 第三组试验结果图第四组:左视图 右视图 匹配图 图4.19 第四组试验结果图2、SURF算子的特征提取立体匹配算法匹配结果第一组:左视图 右视图 匹配图图4.20 第一组试验结果图第二组:左视图 右视图 匹配图图4.21 第二组试验结果图第三组:左视图 右视图 匹配图图4.22 第三组试验结果图第四组:左视图 右视图 匹配图图4.23 第三组试验结果图5 总结近些年来,计算机视觉技术飞速发展,被

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论