摘 要: 在研究区域匹配算法和特征匹配算法的基础上,提出了改进的基于视差梯度的区域匹配算法和基于尺度不变性的Harris角点特征匹配算法,并进一步利用互补策略将两种算法结合起来,提出了一种区域和特征匹配相结合的立体匹配算法,该算法具有速度快、精度高和鲁棒性强等优点。利用该算法提取视差图,进而提取深度图,最后利用OpenGL进行三维重建,获得了良好的重建效果。
关键词: 视差梯度;尺度不变性;互补策略;OpenGL
三维重建技术是计算机视觉、人工智能、虚拟现实等前沿领域的热点和难点,也是人类在基础研究和应用研究中面临的重大挑战之一[1]。基于双目立体视觉的三维重建技术在机器人视觉、工业制造以及医学影像诊断等多个领域具有广阔的应用前景。
基于双目立体视觉的三维重建技术的首要条件是对左右图像对进行立体匹配从而获得高质量的视差图像。在获取视差图像后,通过计算这些视差图像上对应点之间的视差提取出场景的深度,得到反映空间物体纵深关系的深度图像,最后利用OpenGL进行三维重建。
本文在对经典的区域匹配和特征匹配算法进行研究的基础上对算法进行改进,并将两种算法结合起来提出新的立体匹配算法。利用该算法提取出质量较好的视差图,然后利用平行双目视觉三角测量原理来计算物体深度值进而获得物体的深度图像,获得了良好的深度图像,最后利用OpenGL对深度数据进行三维重建,取得了较好的重建效果。
1 基于双目立体视觉的视差图像提取
提取高质量的视差图像是基于双目立体视觉的三维重建技术的首要条件[2]。立体匹配算法的实质是在匹配基元相似性准则下的最佳搜索问题。根据匹配基元的不同,目前的立体匹配算法可分为基于区域的匹配算法、基于特征的匹配算法和基于相位的匹配算法3类。本文重点研究区域匹配与特征匹配算法。
1.1 区域匹配算法研究及改进
根据区域匹配算法的原理可知,计算匹配代价以及对匹配代价进行累积是区域匹配算法的重点[3]。本文从测度函数以及窗口大小的选择两方面进行改进,提出一种新的基于视差梯度的区域匹配算法。
在区域匹配算法中,当图像对中存在像素的灰度分布与常态不同的点或者是有很大的噪声时,常用的测度函数在匹配中就会产生误匹配[4]。本文采用一种新的函数作为相似性测度函数来解决该问题,该函数的表达式及其导数的表达式为:
采用改进的Harris检测算子从位置和尺度上提取具有尺度不变性的角点之后,接下来就要为每个Harris角点构造特征描述子即特征向量。这样,特征匹配算法就转化为利用测度函数来判断特征向量的相似程度从而确定所提取的角点是否就是匹配的。在具体实现时,为了进一步减少匹配误差,采用双向匹配的策略。
1.3 区域和特征匹配相结合算法的研究
基于视差梯度的区域匹配算法能够半自适应地选择匹配窗口,而且搜索范围的减少使得匹配的速度提高了,但是区域匹配算法的特点还是决定了该算法具有对辐射畸变及仿射畸变较敏感、计算量大以及速度较慢等缺陷;而基于尺度不变特征的Harris角点特征匹配算法在匹配的稳定性以及匹配结果的精度方面有很大的提高,但是由于特征匹配的特点,得到的视差图还是稀疏的。针对这两种算法的不足,本文采用互补策略,充分利用区域匹配的致密性以及特征匹配的鲁棒性,将两种算法结合起来,以弥补相互的缺陷。基于此思想,提出了在边缘和角点提取的基础上进行区域和特征相结合的立体匹配算法。
区域和特征相结合的立体匹配算法的具体实现步骤是:首先对左右立体图像对进行灰度化、滤波降噪、锐化等预处理,然后对预处理后的图像对运用Canny算子提取边缘特征,在此基础上采用改进的Harris检测算子提取角点,再对提取边缘后的图像对求取视差梯度δd,对于1.2<|δd|<2的图像边缘点进行基于边缘区域的特征匹配,最后借助于区域的灰度对特征匹配后得到的图像对中视差梯度|δd|<1.2的平滑区域进行基于视差梯度的区域匹配,从而得到最终的视差图。区域和特征匹配相结合算法的匹配流程图如图1所示。
1.4 算法分析
利用本文提出的算法对标准的TsuKuba立体图像对提取视差图。标准的TsuKuba立体图像对如图2所示,相应的基于梯度的区域匹配算法、基于尺度不变特性的Harris角点特征匹配算法和本文提出的基于区域和特征匹配相结合的算法提取的视差图如图3所示。实验结果表明,本算法比基于梯度的区域匹配算法、尺度不变特性的Harris角点特征匹配算法匹配效果更好。
本文提出的区域和特征匹配相结合算法具有以下优势:(1)较为快速,因为在区域匹配中引入视差梯度,这样可以减少匹配时不必要的搜索从而提高匹配的精度和速度;(2)得到的是较为密集的视差图,可以得到高精度的匹配结果; (3)由于基于尺度不变特征的Harris角点匹配算法的引入而具有了很好的稳定性,提升了算法的鲁棒性。综合以上特点,本文的算法成功综合了基于梯度的区域匹配算法和基于尺度不变特性的Harris角点特征匹配算法的优点。
2 基于OpenGL平台的物体三维重建
OpenGL是目前国际上通用的开放式三维图形标准。OpenGL实际上是一个开放的三维图形软件包,它独立于窗口系统和操作系统,以它为基础开发的应用程序可以十分方便地在各种平台间移植,它强大的图形库函数为图形图像的开发提供了方便。
2.1 OpenGL中深度数据的三维重建方法
由于三角形能保证3个顶点在同一平面上,本文采用Delaunay三角剖分方法将所有的数据点连成三角网格,很好地重现了原始物体表面的拓扑结构,并利用OpenGL实现三维重建,其具体步骤如下:
(1)对OpenGL进行初始化,即设置像素格式,为OpenGL提供绘制风格、颜色模式、颜色位元数和深度位元数等信息。
(2)根据基本像素建立景物的三维模型,并对模型进行数学描述。这里需要利用OpenGL的函数GL_POLYGON和glVertex3d等函数。
(3)把景物放置在三维空间的适当位置,设置三维透视视觉体以观察场景。
(4)加入光照及光照条件、材质。
(5)把景物及其颜色信息转化为可在屏幕上显示的像素信息。
2.2 三维重建结果
重建的三维模型如图4所示。实验结果表明,重建的三维物体逼真、真实感强,通过放大、缩小、平移和旋转等方式展示各个方向的三维模型,视觉效果令人满意。
本文研究并改进了经典的区域匹配和特征匹配算法,在改进的基础上提出了区域匹配和特征匹配相结合的立体匹配算法,该算法充分发挥了两种算法的优势。利用该算法进行立体匹配,获得了高质量的视差图;然后根据三角测量原理利用获得的视差图进行深度的计算提取深度图;最后在基于MFC的OpenGL平台下进行三维重建,取得了较好的重建效果。要想进一步提高重建模型的效果,可以在立体匹配算法上进行进一步研究,以期获得更好的视差图和深度图。
参考文献
[1] OKADA K, INABA M. Integration of real-time binocular stereo vision and whole body information for dynamic walking navigation of humanoid robot[J]. IEEE Conference on Multisensor Fusion and Integration for Intelligence Systems, 2003:131-136.
[2] 马颂德,张正友.计算机视觉——计算理论与算法基础[M].北京:科学出版社,1998.
[3] 周秀芝,文贡坚,王润生.自适应窗口快速立体匹配[J].中国图象图形学报,2006,29(3):473-479.
[4] 罗小燕.一种基于目标区域综合特征的图像检索方法[J].微计算机信息,2005(17):214-216.
[5] 周东翔,蔡宣平,孙茂印.一种基于特征约束的立体匹配算法[J].中国图象图形学报,2001,6(7):563-656.