改进的双目立体视觉算法及其应用

2017-04-08 06:12苍岩尹凤鸣毕晓君
哈尔滨工程大学学报 2017年3期
关键词:极线视差双目

苍岩, 尹凤鸣, 毕晓君

(哈尔滨工程大学 信息与通信工程学院,黑龙江 哈尔滨 150001)

改进的双目立体视觉算法及其应用

苍岩, 尹凤鸣, 毕晓君

(哈尔滨工程大学 信息与通信工程学院,黑龙江 哈尔滨 150001)

为了提高双目立体视觉算法正确匹配率,本文改进了特征点提取及立体匹配算法。特征点提取部分,定义了尺度方向不变角点;在匹配计算部分,利用极线约束计算特征点的候选匹配角点,采用视差梯度约束和最大向量角准则多约束条件实现精确匹配。对本文的改进算法进行了实验室以及水池试验验证:实验室中采集小盒图片;水池试验中,拖车带动船模在试验水池航行时,采集船后部的波浪图片。实验结果显示,改进算法在水池实验图片处理中的正确匹配率比尺度不变特征变换(SIFT)算法高14%。

双目视觉;SIFT算法;角点检测;测量;特征提取;匹配算法

双目立体视觉是机器视觉的一种重要形式。双目立体视觉测量系统主要分为图像获取、摄像机标定、特征提取与匹配、三维重建。由于空间的三维景物被投影到二维图像时,视角问题、场景中的光照条件、景物几何形状和物理特性、噪声干扰和畸变、相机特性等都被综合到了图像的灰度值中,因此,要准确地对包含诸多不利因素的图像进行无歧义的特征提取与匹配是很困难的。特征提取是为了得到匹配赖以进行的图像匹配基元,发展至今,有Soble算子[2]、Canny算子[3],Moravec算子[4]、Harris角点检测[5]和尺度不变特征变换(scale invariant feature transform,SIFT)[6]特征提取算法。特征匹配主要利用匹配基元间的相似属性建立相似测度函数,在约束条件下得到双目图像的匹配点对。约束条件主要集中在寻找搜索的范围和相似度的计算两个方面。Marr提出的唯一性约束、相容性约束、视差梯度约束、连续性约束[7]都围绕这两个方面。Marr提出的约束条件是最基本的,随着立体匹配的发展,视差范围约束、最大向量角准则[8]、极线约束[9-10]等也被发展与应用。

针对立体视觉算法中冗余特征点以及误匹配的问题,提出了尺度旋转不变角点的检测方法,解决冗余特征点多、计算量大的问题。本文将极线约束匹配算法、最大视差梯度算法以及最大向量角准则相结合,提高匹配正确率。利用实验室室内拍摄的盒子图像以及水池拍摄的水波纹图像对本文改进的算法进行验证。

1 特征点提取算法

利用特征点代替图像中所有像素点能够减少计算量。依据算法应用的背景不同,特征点的分类也不同。本文选择角点作为感兴趣的特征点。针对Harris算法冗余角点过多的问题,引入尺度旋转不变角点,兼具尺度不变性和旋转不变性。尺度不变性角点,即为同时存在于多个尺度空间的角点。对尺度不变角点及其附近像素点计算方向描述子,选定幅值最大的方向为主方向,幅值不低于最大值80%的方向为辅方向。具有单一主辅方向的角点为尺度旋转不变角点。若存在多个辅方向,说明该点在任何一方向上的变化都很缓慢,属于空白部分,或者该点在任何一方向上变化都很快,属于噪声部分。提取尺度旋转不变角点的具体步骤如下:

1) 生成多尺度空间。假设一个图像I(x,y)的尺度函数定义为L(x,y,σ),则可以通过该图像I(x,y)与高斯函数G(x,y,σ)卷积运算得到尺度函数L(x,y,σ):

L(x,y,σ)=G(x,y,σ)⊗I(x,y)

式中:L(x,y,kσ)表示第k层尺度空间函数,G(x,y,kσ)表示为高斯卷积核函数,其高斯正态分布的标准偏差为kσ,k>1。

2) 对每一层尺度空间图像,分别计算其角点响应值R,并设定一个合适的阈值,对于小于阈值的角点响应值R,将其置零:

R={R:detMk-α(traceMk)2

3) 在5×5的窗口中进行局部非极大值抑制,取其中极大值点的位置点作为每一层尺度空间图像L(x,y,kσ)中的角点。

4) 确定方向,图像中任意角点的幅值m(x,y)和方向θ(x,y)计算公式如下

式中:L是检测到的每一个角点各自所位于多尺度空间图像上的尺度。

2 立体匹配算法

立体匹配算法将左右图中的特征点实现一对一匹配。立体匹配过程中,经常出现一对多误匹配现象。针对该问题,本文采用多约束条件匹配,提高匹配的精度。首先采用极线约束,计算左图特征点在右图上的极线,取极线上下20像素范围内的角点作为候选点,结合视差梯度与最大向量角约束,实现一对一精确匹配。具体计算步骤如下:

1)对左图中的角点pl,计算其右图对应的极线约束方程:

lpr=Fpl

式中:F为相机的基础矩阵。利用极线条件约束后,能够减少一定数量的无匹配角点。

式中:Gd为视差梯度,K为视差梯度约束的阈值,一般取值为2。如果视差梯度值大于设定的阈值K时,则认为该点对违反了视差梯度约束,统计其违反的次数。

图1 视差梯度约束Fig.1 Disparity gradient constraint

3)依次计算出其他的匹配点对的视差梯度以及其违反的次数,找出其中违反次数最多的一组,剔除该组匹配点对,更新角点对。

4)重复2)、3),直到没有违反视差度约束条件为止。

式中:N为左图中其他候选角点对个数。最大向量角准则是找出θsum最大的点,这点即是错误的匹配点,将其删除,继续寻找剔除,直到最精确的那一点作为最后的匹配角点。

3 试验结果与分析

双目摄像机固定在三脚架上,摄像的高度、摄像机的间距以及夹角均可调。双目摄像机通过网络交换机与主控电脑相连。主控电脑采用ThinkPad T440计算机。主控平台上运行双目测量测试开发平台软件,由Visual C++6.0语言编写,实现图像的采集,标定等功能。本系统所采集的图像均为480×640。

3.1 小盒试验

通过双目视觉系统对盒子进行拍摄,将双目摄像机调到与盒子等高的位置,调整两摄像机之间的角度,使左右摄像机均能拍到盒子。得到的左右两幅原图如图2所示。

图2 双目摄像机摄取的小盒左右原图片Fig.2 Binocular camera capturing left and right original images

从图3~5可以看出,Harris算法检测出的角点非常密集,过多的角点里面包含冗余信息,增加匹配算法的计算量,也会增加误匹配率。SIFT算法剔除了冗余角点,但是能够提供给后续匹配处理的角点数据量相对较少,匹配点的数量较少,导致后续的三维测量的精度较低。本文改进的算法所保留的角点数量介于两者之间,有效去处了冗余角点,同时还能保证足够的角点数量,为后续的匹配处理提供最优的角点数据库。虽然降低SIFT算法的角点响应阈值,能够增加角点数量,但这相当于增加了角点检测算法的噪声,给后续的匹配算法增加了计算量和误匹配率。本文提出的尺度方向不变角点在保证每层角点提取总基数的基础上,利用方向算子抑制冗余角点,提高角点提取的质量。

图3 Harris角点检测算法检测到的角点图Fig.3 Corners showed by Harris corner detection algorithm

图4 SIFT算法检测到的角点图Fig.4 Corner showed by SIFT detection algorithm

图5 改进的角点检测算法检测到的角点图Fig.5 Corners showed by improved corner detection algorithm

左右图匹配计算中,本文提出了在极线约束算法基础上,结合最大视差梯度以及最大向量角算法提高左右图匹配的准确率和后期三维测量精度。由于篇幅所限,本文只选取了一个点作为描述举例。图6(a)是左图的角点(842,758),利用极线约束算法,取上下20个像素范围,在图6(b)所描述的右图中找到了67个符合极线约束的角点,从图6中可以看出,由于极线是一条贯穿右图的直线,因此可以用图中视差梯度以及最大向量角准则进一步剔除误匹配点。

将视差梯度约束阈值设为2,视差约束后,右图剩余64个点,剔除3个点,如图7(a)所示,利用最大向量角约束后,剩余一个角点(791,783),如图7(b)所示。

图6 极限约束一对多的情况Fig.6 One to many example of pole line contraint

图7 视差梯度约束取2匹配结果Fig.7 Matching results of gradient of disparity value being 2

视差梯度约束阈值为1时,视差梯度约束后,剩余59个点,剔除8个点,如图8(a)所示。利用最大向量角准则后,实现了匹配一对一结果,匹配点(791,783),结果如图8(b)所示。

图8 视差梯度约束取1匹配结果Fig.8 Matching results of disparity gradient constraint value being 1

处理结果显示,一对多的“多”较集中在正确匹配点周围。当视差梯度约束的阈值取2时,剔除的误匹配点较少,最终还是最大向量角准则的作用,得到一对一匹配结果。当一对多的“多”不集中在正确匹配点周围时,视差梯度约束2能剔除离正确匹配点较远的点,保留集中在正确匹配点周围的点集,再采用最大向量角准则,得到一对一。从实验效果来看,当视差梯度约束阈值为1时,能更有效地剔除那些远离正确匹配点的点集,保留更集中于正确匹配点周围的点集。因此,视差梯度约束阈值选择1较好。

选择的定位角点为小盒的上表面的三个角点以及底部的三个角点,标号1~6。特征值比值约束为[0.2,10],相关系数阈值取0.7。利用本文算法得到113对匹配点,错误匹配21对,如图9所示。

图9 左右匹配效果图Fig.9 Matching results of the improved algorithm

采用SIFT算法时,distRatio 采用建议的0.65,匹配结果为匹配了18对,错误匹配2对,正确匹配16对,如图10所示。

图10 SIFT算法的匹配结果Fig.10 Matching results of SIFT algorithm

从实验结果可以看出,SIFT算法所提取的特征角点少,正确匹配率高。匹配点对太少,导致后期的三维测量是离散点少,进行拟合时误差较高。

3.2 水池试验

本文采集的实验图片是在哈尔滨工程大学船模实验室水池中船模航行时船侧水波纹图像。船模长度1.2 m。试验中,在船艏,船舯,船艉处分别放置了三组双目摄像设备,同时拍摄船模以不同的速度航行时,船周围所泛起的波浪照片,用于绘制船侧的波浪等高线图。图11表示航模速度为1.701 kn时船模后部位置产生的波浪经过预处理后的图片。由于水池实验环境有许多噪声干扰,如光照影响,相机自身干扰,波浪反光等,获得的图片噪声太多,不能直接应用处理。本文改进的特征点提取算法处理结果如图12所示。

本文所提出算法的匹配结果如图13所示。视差梯度约束阈值为1,极线约束上下20像素,区域对应查找,特征值比值范围[0.2,10]。左右匹配两点之间的距离范围为[2 085,2 170],匹配点之间相关系数的阈值选取为0.7。

图14 为Harris检测结果,阈值取0.000 000 4。左图检测出角点2 349个,右图检测出角点1 882。

SIFT算法检测出左图角点993个,右图角点750个, distRatio 采用建议的0.65,匹配点3对,正确匹配2,错误匹配1。SIFT算法检测出的特征点如图15所示,图16给出了SIFT算法最终的匹配结果。

将小盒以及水池照片所有参数的各种对比数据统计在表1中。

图11 预处理原始左右灰度图的结果Fig.11 The left and right original grayscale images after de-noising

图12 改进算法的左右两图角点检测Fig.12 The corner detection results of the improved algorithm

图13 改进算法匹配结果Fig.13 Matching results of the improved algorithm

图14 Harris角点检测结果Fig.14 The corner detection results of Harris

图15 SIFT算法检测的特征点Fig.15 The corner detection results of SIFT algorithm

图16 SIFT算法匹配结果Fig.16 Matching results of SIFT algorithm

从表1的统计数据中可以看出,SIFT算法在小盒图片的匹配中运算时间以及正确匹配率高于本文的算法。但在水池船后图片处理中,本文提出的算法正确匹配率远远高于SIFT算法,运算时间虽然高于SIFT算法,但是在合理运算时间范围内。主要原因在于两次实验所选取的角点响应阈值不同,因此可以看出角点响应阈值参数是一个非常重要并且敏感的参数,未来研究中将阈值参数定义为一个自适应参数算法会更加稳健。本文所进行的研究工作是基于立体双目波浪等高线绘制算法中的基础部分,是后续所进行三维波浪等高线绘制的基础,所匹配的点对数目直接影响等高线拟合精度。从上述数据对比可以看出,本文所提出的算法在处理基于双目立体视觉的水面图片时,在匹配率参数性能上面要高于SIFT算法。

表1 匹配结果分析

4 结论

双目立体视觉算法主要分为两个步骤,特征点提取以及立体匹配。本文以船模航行时船侧的波浪等高线测量为应用背景,提出了一种有效的立体视觉测量方法,主要贡献有以下两点:

1)引入尺度方向不变算子,将其作为待提取的特征点,提高了特征点提取的质量,降低了冗余特征点数量,减少了匹配算法部分的计算量;

2)在立体匹配算法部分,将极线约束方法与视差梯度和最大向量角算法相结合,提高了匹配精度。实验结果显示本文提出的算法在检测水面图片中,正确匹配率达到了81%。

[1]陈小天, 沈振康. 机器人视觉导航[J]. 系统仿真学报, 2008, 20(10): 5501-5503.

CHEN Xiaotian, SHEN Zhenkang. Robot visual navigation [J]. Journal of system simulation, 2008, 20(10): 5501-5503.

[2]GONZALEZ R C, WOODS R E. Digital image processing[M]. 3rd ed. India: Pearson Education, 2009.

[3]CANNY J. A computational approach to edge detection[J]. IEEE transactions on pattern analysis and machine intelligence, 1986, PAMI-8(6): 679-698.

[4]MORAVEC H P. Obstacle avoidance and navigation in the real world by a seeing robot rover[D]. Stanford: Stanford University, 1980.

[5]HARRIS C, STEPHENS M. A combined corner and edge detector[C] // Proceedings of the 4th Alvey vision conference. Manchester, UK: AVC, 1988: 147-150.

[6]LOWE D G. Distinctive image features from scale-invariant keypoints[J]. International journal of computer vision, 2004, 60(2): 91-110.

[7]MARR D, VISION A. A Computational Investigation into the Human Representation and Processing of Visual Information[M]. San Francisco: Freeman and Company, 1982.

[8]解则晓, 陆文娟. 基于图像相似几何特征的双目匹配算法[J]. 中国激光, 2014, 41(5): 0508002.

XIE Zexiao, LU Wenjuan. Binocular matching algorithm based on similar geometric Features[J]. Chinese journal of lasers, 2014, 41(5): 0508002.

[9]TAN Xiao, SUN Changming, SIRAULT X, et al. Feature matching in stereo images encouraging uniform spatial distribution[J]. Pattern recognition, 2015, 48(8): 2530-2542.

[10]SONG Tao, TANG Baoping, ZHAO Minghang, et al. An accurate 3-D fire location method based on sub-pixel edge detection and non-parametric stereo matching[J]. Measurement, 2014, 50: 160-171.

Improvement and application of a binocular stereo vision algorithm

CANG Yan, YIN Fengming, BI Xiaojun

(College of Information and Communication Engineering, Harbin Engineering University, Harbin 150001, China)

This paper aims at improving the feature point extraction and stereo match algorithm to increase the right matching rate of binocular stereo vision. For the feature point extraction, we defined corners with a fixed scale and direction. To calculate the stereo match algorithm, a pole line constraint was used to match the corners. A disparity gradient constraint and maximum vector angle criterion were combined as a multi-constraint condition to determine a one-to-one exact match. A box image collected in the lab room and wave images generated by a ship model towed by a trailer in the experiment pool were used as objects to test the proposed algorithm. The results show that the correct match rate of the proposed algorithm is 14% higher than the scale invariant feature transform (SIFT) algorithm.

binocular vision; scale invariant feature transform (SIFT); corner detection; measurement; feature extraction; match algorithm

2016-03-22.

日期:2017-01-11.

国家国际科技合作专项项目(KY10800150002);国家自然科学基金项目(61371175).

苍岩(1978-), 女, 讲师,博士; 毕晓君(1964-), 女, 教授,博士生导师.

苍岩, E-mail: cangyan@hrbeu.edu.cn.

10.11990/jheu.201603076

TP911

A

1006-7043(2017)03-0465-06

苍岩, 尹凤鸣, 毕晓君. 改进的双目立体视觉算法及其应用[J]. 哈尔滨工程大学学报, 2017, 38(3):465-470.

CANG Yan,YIN Fengming,BI Xiaojun. Improvement and application of a binocular stereo vision algorithm[J]. Journal of Harbin Engineering University, 2017, 38(3):465-470.

网络出版地址:http://www.cnki.net/kcms/detail/23.1390.u.20170111.1443.002.html

猜你喜欢
极线视差双目
基于自适应窗的立体相机视差图优化方法研究
破解定值有妙法,极点极线显神威
夏泽洋团队提出一种基于分割的立体匹配视差优化方法
基于双目测距的卡尔曼滤波船舶轨迹跟踪
一道高考试题的背景简介
基于梯度域引导滤波的视差精炼迭代算法
基于HALCON和VC++的双目机器人织物抓取系统设计
基于分割树的视差图修复算法研究
基于双目视觉图像的长度测量方法
简述与圆锥曲线的极点和极线有关的性质