双目视觉

2024-09-03

双目视觉(精选8篇)

双目视觉 篇1

0 引言

在机器视觉中, 双目视觉是指在不需要特殊光源的情况下, 运用两台视觉传感器在一定距离范围内同时对同一物体拍摄, 通过获取的两幅图像中对应点的位置关系最终确定该物体的空间位置。机器视觉技术相较于其他技术而言是一种快速发展的新技术, 20世纪60年代美国的Robert通过分析大量图像, 把对图像的研究从二维发展到了三维。20世纪80年代初期, 美国麻省理工学院的David Marr教授提出了视觉研究中较为完善的视觉理论系统, 该系统至今仍为机器视觉系统发展的理论基础。其中涉及到的摄像机成像模型有很多种类, 但对双目视觉而言主要有标准双目视觉模型和汇聚式双目视觉模型两种。

1 标准双目视觉模型

我们通常把由两个光轴平行且内部参数一致的相机组成的双目视觉模型称之为标准双目视觉模型[1], 如图1所示。

图2为标准双目视觉理论模型, 其中, 和π2分别为左、右两摄像机的透视平面[2], P1和P2分别为三维空间点P在左、右两透视平面的投影点。

假如P点三维空间坐标为 (x, y, z) , 则与之对应的P点在左摄像机中的图像坐标为P1 (X1, Y1) , 在右摄像机中的图像坐标为P2 (X2, Y2) , 由此可得到以下关系[3]:

其中:u0, v0, ax, ay为摄像机的内部参数;△x为两台摄像机光心之间的距离;X1-X2称为视差[4]。由此可知, 在摄像机内部参数已知的情况下, 我们只要知道空间中某点投影到两摄像机左、右平面上的图像坐标就可以利用视差原理恢复出该点的空间三维坐标, 这也就是双目视觉三维重建的基本原理。但标准视觉模型也有它自身的局限性, 即它需要两个摄像机配置相同, 且所放置的位置要处于绝对平行的状态, 所以其不便于广泛应用。

2 汇聚式双目视觉模型

相对于标准双目视觉模型来说汇聚式双目视觉模型对光轴位置无特殊要求, 所以它使用的范围更为广泛一些, 且标准双目视觉模型可以看成是它的一个特例。汇聚式双目视觉模型如图3所示[5]。

图4为汇聚式双目视觉理论模型。空间点P的三维空间坐标为 (x, y, z) , 同时使左相机坐标系o1x1y1z1与三维空间坐标系重合, 原点o1为光心, 图像坐标系为O1X1Y1, 有效焦距为f1;右相机坐标系为o2x2y2z2, 图像坐标系为O2X2Y2, 有效焦距为f2。由成像模型可知:

其中:k1, k2为比例因子, 且满足;R为一个3阶的空间旋转矩阵, 为旋转分量;T为3×1的空间平移矩阵, 为平移分量。

同时左相机坐标系o1x1y1z1和右相机坐标系o2x2y2z2的空间位置有如下关系:

由式 (2) ~式 (5) 可得出空间点P的坐标。即:

由式 (6) 可以解得:

由此可以得出一般双目视觉模型为:

或者:

式 (8) 和式 (9) 为汇聚式双目视觉模型中空间三维坐标的解, 在其他因素已知的情况下, 利用汇聚式双目视觉模型就能够求出空间中某点的坐标。

3 结论

由上述可知, 在双目视觉系统中, 不同的成像模型有各自不同的特点和应用范围, 我们应该合理选择成像模型以期满足自己的实际需求。

摘要:重点对双目视觉建立过程中的不同成像模型进行了分析研究, 并最终找到一种适用范围更为广泛的双目视觉成像模型。

关键词:双目视觉,坐标变换,透视平面,视觉模型

参考文献

[1]穆向阳, 张太镒.机器视觉系统的设计[J].西安石油大学学报 (自然科学版) , 2007, 21 (6) :1-2.

[2]张艳珍, 欧宗瑛.一种新的摄像机线性标定方法[J].中国图像图形学报, 2001 (8) :14-18.

[3]马颂德, 张正友.计算理论与算法基础[M].北京:科学出版社, 2003.

[4]贾云得.机器视觉[M].北京:科学出版社, 2000.

[5]M Sonka, V H1avac, R Boyle.图像处理与机器视觉[M].艾海舟, 武勃, 译.北京:人民邮电出版社, 2003.

双目视觉 篇2

收稿日期: 20130927

摘要: 特征点匹配在图像检索、三维测量、模式识别等技术中起着重要的作用。使用MATLAB软件剪切图像并细化线结构光光线条纹。经理论分析SURF算法优缺点,提出了一种基于SURF算法特征点提取的改进算法。用C语言编写改进后的特征提取算法,通过MATLAB软件实验对比两种算法的特征点提取结果并且编写程序实现后期的特征匹配。实验表明:该算法基本满足双目视觉立体匹配的要求,对于线结构光三维测量技术具有重要的理论意义和实用价值。

关键词: 结构光; 双目视觉; 立体匹配算法

中图分类号: TP 391文献标志码: Adoi: 10.3969/j.issn.10055630.2014.02.015

Research on matching algorithm based on

structured light binocular vision feature

LIU Yu, LIU Chanlao, SU Hai

(School of Optoelectronic Engineering, Xi’an Technological University, Xi’an 710032, China)

Abstract: Matching feature points play an important role in image retrieval, dimensional measurement and pattern recognition technology. By using the MATLAB software shear thinning line structured light image and light stripes, and through theoretical analysis of the advantages and disadvantages of SURF algorithm, this article proposes the SURF algorithm which based on feature points extraction algorithm. Through C language improved feature extraction algorithm, MATLAB software experimental comparison of the two algorithms feature point extraction results and preparation program features the late match. Experiments show that the algorithm basically meets the requirements of binocular vision stereo matching, and linear structured light for threedimensional measurement technique has important theoretical significance and practical value.

Key words: structured light; binocular vision; stereo matching algorithm

引言双目立体视觉是利用双目摄像机模拟生物的视觉特征,获取物体表面的三维信息,从而还原物体外表面的几何形貌。如今,基于双目立体视觉的技术,结构光三维测量技术作为一种快速、便携、高精度的三维测量技术,在工业设计、航空等领域均得到了广泛的应用,已成为一种成熟的三维数据获取和质量评价与控制手段[1]。在结构光双目视觉技术中,由于不同视觉所获取信息的不完备性和不同应用中的复杂性,立体匹配成为立体视觉技术中最重要也是最难以处理的问题之一[2]。现今,立体匹配方法有多种。特征的选取跟图像的内容有关,对结构光匹配目前常用的是相位匹配方法,但是相位匹配一般是针对核线平行而言,虽然将空间域转化为时间域,可同样存在邻域奇异性,匹配误差较大[3]。基于区域立体匹配方法,可以得到稠密的视差图,其缺点是在低纹理区域或纹理相似区域容易造成大量的误匹配,边界模糊,视差图效果不理想[46],计算量大,运算时间较长。基于特征点的立体匹配方法,能够精确的匹配,视差效果明显,但是只能获得稀疏的匹配点,所以仅能勾勒物体的大致轮廓,不能呈现物体的细节部分,也不能得到稠密的视差图[7]。针对特征匹配只能得到稀疏点数的缺点,本文提出了一种改进的特征点提取算法,在不影响匹配速度的情况下,匹配更多的特征点对,并且有效地减少了误匹配率。光学仪器第36卷

第2期刘瑜,等:一种基于结构光双目视觉的特征匹配算法研究

1立体匹配关键技术双目立体匹配的方法是从左右视角两个摄像机拍摄同一物体的两幅图像中找出被测元件表面同一点在不同图像中的对应点,进而求出各个点对应的视差,再由视差信息和投影模型还原出原始物体形貌的深度信息[89],最终得到三维表面形貌。因此,图像的立体匹配是三维重建的关键环节,也是立体视觉尤其是三维重建的重要研究内容。关于立体匹配方法研究重点具体有两方面:算法鲁棒性和计算速度。(1)算法鲁棒性:三维重建过程与投影过程是互逆的,图像经三维投影到二维空间,三维的深度信息丢失。从二维图像恢复至三维模型,对应匹配点可能会出现一对一或多对一的情况,导致唯一性失效,此外成像过程中如噪声、遮挡、光照变化等干扰都会造成匹配误差。可以通过对原有算法改进或引入新算法来提高准确性。(2)计算速度:立体匹配是在左、右两幅图像中搜索对应点对的过程。所以,提高计算速度需要解决搜索策略问题如极线约束[10]的使用可以将二维搜索降到一维搜索;视差约束也可以通过降低搜索范围方式提高计算速度。2特征点匹配算法的改进特征匹配分为特征点的提取和特征点的匹配两个过程。首先对两幅图像分别提取特征点,根据特征点的相似程度匹配特征点对,并根据各自点的灰度信息得到匹配视差图。因此,特征点提取的准确程度和数量直接影响后期的匹配,从而影响整个立体匹配的精度和效率。所以,如何快速有效地提取特征点是本文重点解决的问题。根据本实验采集5组图片(任选一组左右视图如图1所示),将三线激光器投影到被测物体表面,CCD采集得到左右两幅图像。本文通过对图像进行预处理,减少图像噪声以及测量环境对光条中心提取的不良影响。(1)图像剪切:首先为了确保图像处理速度,在进行结构光光条图像处理时,只剪切包含光条在内的一小部分图像进行处理,而不是对整幅图像都进行处理,如此可以大大地减少运算量,提高检测效率。(2)图像滤波:为了抑制噪声、改善图像质量,要对图像进行滤波处理。本文采用中值滤波能较好地去除孤立噪声点,如图2所示。

2.1基于SURF算子的特征点提取常用的特征点检测方法有Harris角点检测,SUSANA,HessianLaplace,强角点检测等。但是它们缺点是不能适应图像的尺度变化,对于不同尺度的图像,无法建立相应特征点的关系。SURF是一种尺度不变和旋转不变的特征点检测算法,具有速度快,鲁棒性好的特点,针对特征点对的提取数量较少这一不足,本文通过算法上的改进,来提高匹配效率。

nlc202309040401

图1原始图像对

Fig.1Untreated images图2图像预处理

Fig.2Preprocessed image

SURF算法就是利用积分图像的加减运算来实现图像与高斯二阶微分模板的卷积运算,积分图像是由Viola和Jones[11]提出,很大程度上简化了计算时间。积分图像中任一点(i,j)的值ii(i,j),用原图像左上角的任一点(i,j)相应的对角线区域灰度值的和表示,ii(i,j)=∑i′≤i,j′≤jp(i′,j′)(1)图3SURF算子提取效果图

Fig.3SURF operator extraction effect image式中,p(i′,j′)表示原始图像点(i′,j′)的灰度值,ii(i,j)可以用如下迭代式计算得到,S(i,j)=S(i,j-1)+p(i,j)(2)

ii(i,j)=ii(i-1,j)+S(i,j)(3)式中,S(i,j)表示一列的积分,并且S(i,-1)=0,ii(-1,j)=0。需要积分图像时,只需对原始图像的所有像素扫描一遍。用MATLAB软件对滤波后的图像进行处理,结果如图3所示。

2.2基于SURF算法的改进由于结构光光学条纹能实现图像对的立体匹配、还原三维结构,因此需要快速地提取结构光条纹,才能提高立体匹配的匹配速率。通过对图像的剪切和中线条纹提取,可在很大程度上降低后期立体匹配时间,进而提高匹配效率。(1)均衡化与二值化由于结构光光条图像正是属于待测对象(结构光光条),与背景有较强对比度的图像,所以二值化对结构光光条图像是特别有效的,它能有效地分离光条目标区域与背景区域,减少计算量,提高处理速率。在二值化之前需要突出感兴趣的部分,因此提前进行直方图均衡化,将灰度值低的感兴趣部分显现出来,提高处理精度。得到图像对如图3所示。(2)细化与骨架提取利用MATLAB函数库中的细化函数对图像进行细化与骨骼提取,得到单像素的细线条纹,为后期匹配减少了运算量,缩短了匹配时间,提高匹配速率。经过图像预处理后得到立体图像对,对图像二值化结果如图4所示,使得对比度得到明显改善,再通过细化后得到的图像对能够较好地满足后期立体匹配的要求,如图5所示。

2.2.1约束条件由于立体匹配是寻求同一空间景点在不同视角下投影图像的像素间的一一对应关系,因此立体匹配的实质就是在某一匹配准则下的最佳搜索。由于同一物体在不同视角下的图像会有差异,而且场景中的很多因素,如光照条件,物体几何形状和物理特性、噪声干扰等,都被综合成单一的图像中的灰度值。为解决这一问题,通常引入各种约束,将匹配限制在平滑解空间范围内。其约束条件如下:(1)极限约束:当给定一点,它的匹配点一定出现在所对应的极线上。如图6所示,L1为点P2对应的极线,L2为点P1对应的极线,L1和L2互为极线。

图4二值化后立体图像对

Fig.4Binarized stereo image pair图5条纹细化后立体图像对

Fig.5Thinning stripe stereo image pair

图6双摄像机成像模型

Fig.6Dualcamera imaging model(2)唯一性约束:指左图像中的任何点在右图像中最多一个点与之匹配,也就是说,无论是参考图像还是目标图像,任何点都不能同时匹配两个点。(3)顺序约束:对于相似深度的表面,对应的特征点一般以相同的次序落在极线上。(4)最大视差约束:视差范围约束指参考图像某个点的对应点只能在一定的范围内搜索,也就是说,两个匹配点横坐标相差必须小于某个最大视差阈值。

2.2.2算法描述本文基于SURF特征点提取过程,首先选取3个正确的匹配点对,下一步的改进提取算法如下:(1)对左右两幅图像分别取第i个基准点(xi,yi);(2)对左右两幅图像分别取第i个基准点(xi,yi);(3)得到新的基准点(xi,yi+3);(4)对两点(xi-10,yi+3),(xi+10,yi+3)间所有像素点进行遍历,判断该像素点灰度值是否大于200,若是,则提取该特征点坐标(xj,yi+3),保存该特征点并将该特征点作为新的基准点;(5)重复执行(2)(3)步,直到左右图像都遍历结束;(6)对得到的左右图像特征点点集合进行逐个对比,若同时满足xi左-xj右≤3且yi左-yj右≤3则匹配成功,则得到的(xi左,yi左),(xj右,yj右)为匹配成功的特征点对。根据上述改进算法,编写C程序,对图像处理,提取到34个特征点对,由于此方法提取得到的是特征点相对于原始图像的坐标,因此,其坐标数据显示结果如图7所示。图7改进SURF算法的特征点提取坐标示意图

Fig.7The diagram of the improved SURF algorithm coordinates of the feature point extraction图8W窗口内像素灰度和的计算

Fig.8W window pixel grayscale and calculations

图9特征点匹配算法流程图

Fig.9Feature point matching algorithm flowchart

图10改进SURF算法的特征匹配视差图

Fig.10Feature point matching algorithm floechart

2.3特征点的匹配根据这几个约束条件根据选取映射函数,对映射值取值,再判断映射点是否满足条件,满足后,根据双线性插值对图像进行插值,将插值之后和原始图像进行组合,得到匹配视差图。求窗口W内的像素灰度值时,W的大小可通过积分图像的4个相应点(i1,j1)、(i2,j2)、(i3,j3)、(i4,j4)的值计算得到,如图8所示,即窗口的像素灰度和与窗口尺寸无关。窗口W内的像素灰度和为:∑w=ii(i4,j4)-ii(i2,j2)-

ii(i3,j3)+ii(i1,j1)(4)通过该算法,结合改进的SURF算法提取到的特征点对,设置匹配算法流程如图9所示,在MATLAB图形处理软件中,采用C语言编程实现。处理得到特征匹配的视差图,如图10所示。3实验及结果分析结合MATLAB软件,对经过预处理得到的图像进行SURF特征点提取匹配得到29对特征点,再选取其中匹配正确的特征点对10对设为基准,再根据匹配约束条件共选取得到34对特征点,并与相应的SURF测量结果比较(见表1)。从测量结果可以看出,改进后的SURF特征点提取算法运行时间较SURF特征点提取匹配时间增加了0.12 s。 但是误匹配率却降低了约36.5%,匹配成功率得到了明显改善。通过对多幅图像对试验验证,匹配时间增加为0.2 s左右,而误匹配率均降低为40%左右,因此该方案具有可行性。由于前期对图像的剪切和结构光线细化结果中,大量减少了特征提取图像的像素数,从而缩短了整体匹配的运行时间。因此,本文对于匹配算法的改进中,又进一步完善了基于改进SURF算子的特征匹配算法。表1特征点提取算法实验结果比较

Tab.1Feature point extraction algorithm experimental results

特征点提取方法提取特征点对数误匹配对数误匹配率/%匹配时间/sSURF特征点提取291862.072.19SURF算法的改进34926.472.23

nlc202309040401

4结论本文基于线结构光双目视觉立体匹配技术,分析了特征匹配算法的优缺点,通过实验验证了SURF算子匹配方法对于线结构光的适用性,并且在特征匹配过程中,针对SURF特征点提取算法存在的缺陷做了进一步的改进,提高了匹配的精确性。通过对原始采集到的图像进行试验,表明了本文的方法基本可以达到预期匹配结果的要求,从误匹配率和匹配时间上都得到了较好的改善,对三维测量系统,具有重要的理论意义和较高的使用价值。参考文献:

[1]史玉升,李中伟,钟凯,等.结构光三维测量技术在模具设计与制造过程中的应用[J].航空制造技术,2009,48(20):4850.

[2]桑瑞娟,张华,胡旭,等.一种改进的区域双目立体匹配方法[J].传感器与微系统,2012,31(8):5859.

[3]穆绵,刘缠牢.一种光学元件面形三维重建的算法研究[J].光学仪器,2013,35(2):4651.

[4]王月梅.双目立体视觉中图像匹配算法的研究[D].西安:西安电子科技大学,2009:3355.

[5]李云飞.双目立体视觉中的稠密匹配算法研究[D].杭州:浙江大学,2011:3144.

[6]郭铁芹.双目视觉立体匹配致密匹配算法的研究[D].西安:西安电子科技大学,2010:3545.

[7]周秀芝.面向深度提取和形状识别的图像匹配[D].长沙:国防科技大学,2006:1437.

[8]BRADSKI G,KAEBLER A.学习OpenCV[M].于仕琪,刘瑞祯,译.北京:清华大学出版社,2009:129132.

[9]CONZALEZ R C,WOODS R E.Digital image processing[M].2nd ed.New Jersey:Pearson Prentice Hall,2008:280300.

[10]SONKA M,HLAVAC V,BOY R.图像处理、分析与机器视觉[M].北京:人民邮电出版社,2003:1453.

[11]VIOLA P,JONES M.Rapid object detection using a boosted cascade of simple features[C]∥ Proceedings of the 2001 IEEE Computer Society Conference on Computer Vision and Pattern Recognition.Kauai:IEEE,2001:38.

基于双目视觉的目标定位研究 篇3

双目视觉是利用已经标定了的不同位置的两台摄像机 (或者一台摄像机经过移动或旋转) 拍摄同一幅场景得到的两幅二维图像, 应用图像处理、图像匹配、三维重建等方法进行处理, 从而实现从二维图像恢复场景三维图像的一种模拟人的双目视觉的方法。

运动目标的位置确定在机器人视觉导航、公共场景监控、智能交通等领域有着十分广泛的应用背景, 而在上述应用领域, 双目视觉较单目视觉有着显然不可替代的优势, 故文章主要对基于双目视觉的运动目标的定位问题进行研究。

1 双目视觉的基本原理

1.1 线性摄像机模型

在线性摄像机模型中, 定义了三种坐标系[1]:图像坐标系、摄像机坐标系与世界坐标系。通过三种坐标系的相互关系可以得到世界坐标系表示的点P坐标 (Xw, Yw, Zw) 与其投影点p的坐标 (u, v) 间的关系。如图1所示。其代表的线性摄像机模型由式 (1) 表示。

式 (1) 中 (u, v, 1) 是图像上点p的齐次坐标, u0, v0是摄像机光心在图像坐标系上的坐标, dx、dy为每一个像素在x轴与y轴方向上的物理尺寸, f为摄像机焦距, (Xw, Yw, Zw, 1) 为空间中点P在世界坐标系中的齐次坐标, R为3×3的正交单位矩阵, t为二维平移向量。

M1由f、dx、dy、u0、v0决定, 由于这些参数只与摄像机内部结构有关, 故称这些参数为摄像机的内部参数。M2由摄像机相对于世界坐标系的方位而定, 被称为摄像机的外部参数。

1.2 视差原理

标准的双目视觉系统成像关系如图2所示, 实际上不同的系统结构都可以变换为这种简单的标准结构。图2中, Ol、Or分别为左、右两个摄相机的光心, Ol、Or之间的距离为b, 相机焦距为f。点P到OlOr连线间的距离为z。

根据三角形的相似性及推导, 深度可由式 (2) 得到。

式 (2) 中, dw为点P在左右两个图像面上的视差。对于固定的成像系统模型而言, 参数b、f取值己经确定, 仅需要对立体图像对求取对应像素视差即可获得景物的深度信息。

2 摄像机标定

摄像机标定是进行目标定位的必要过程, 通过摄像机标定可以得到摄像机的内外参数。常用标定方法[2]有:传统标定方法、自标定方法等。文章采用传统标定方法对摄像机进行标定。在传统标定方法中, 首先摄像机的前方放置标定参照物, 由摄像机获取标定物的图像。通过图像处理的方法获取标定物上的特征点, 同时对标定物特征点的世界坐标进行精确测定。最后利用一系列标定点在图像像面上成像点的像素坐标与其世界坐标之间的对应关系, 借助非线性优化的方法, 计算出摄像机数学模型中包含的内外参数。

采用传统标定方法的标定过程[3]如下:

(1) 通过改变模板的位置, 从不同的角度和位置来拍摄模板图像, 并检测拍摄的模板图像上的角点, 获取角点坐标。

(2) 根据角点计算单应矩阵, 根据单应矩阵求解摄像机部分参数初值, 计算出摄像机内外参数和畸变参数。

3 基于灰度相关性的立体匹配

立体匹配是寻找同一空间目标在不同视点下投影图像中像素间的一一对应关系。通根据匹配基元的不同, 双目视觉中的立体匹配算法分为[4]:区域匹配、特征匹配、相位匹配。文章选用一种基于灰度相关性的立体匹配算法。

基于灰度相关性的立体匹配步骤如下:首先在图像中选择一点Pl (x, y) 作为待匹配点, 以此点位中心, 选择一个大小为 (2M+1) * (2N+1) 的匹配窗口。然后依据具体的匹配方法在待匹配图像中寻找对应点窗口, 即在待匹配图像中依次对比同一极线上的Pl (x, y) 与Pr (x+i, y) 的相似程度, 依照某种度量标准对比两图像窗口的相似程度, 并认为相似度最高的窗口的中心像素点与点Pl (x, y) 成功匹配。

文中采用灰度差的平方和 (SSD) 和灰度差的绝对值和 (SAD) 结合在一起的算法, 即同时满足两个匹配判据时, 才认定匹配结果是可靠的,

在上面的两种匹配代价下, 差别系数越大, 模板与图像之间的区别就越大。为了在图像匹配到模板的目标, 需要使用一个给定的阈值对相似性图像sad和ssd进行阈值分割, 阈值在试验中获取。

4 实验设计及结果分析

实验采用两个摄像头作为摄录工具, 图像分辨率都为720*480, 两个摄像头间隔24cm平行放置。软件采用基于Open CV的C++语言进行编程。

实验分为两个部分:

4.1 摄像机标定

首先对左右摄像机进行标定, 获取摄像机的内外参数, 采用7*9的国际象棋棋盘作为标定模板, 每个棋盘格规格为25mm×25mm。运用Open CV中提供角点定位函数及双目标定函数编写程序进行标定, 角点提取成功的图像如图3, 标定结果如表1。

从表1中数据可以看出, 相机的主点并不位于图像中心, 两者存在一定的偏差。由于两台摄像机的摆放位置比较理想, 所以标定得到的旋转矩阵接近于单位矩阵, 平移矢量的第二、三个分量远小于第一分量。

4.2 立体匹配及目标定位

标定完成后, 在同样的拍摄环境下拍摄一段视频, 选择视频中的行人为定位目标, 对左摄像机中的行人进行目标跟踪, 并选取跟踪算法中的目标区域为模板, 采用基于灰度相关性的立体匹配算法, 在右摄像机中对同一行人进行目标匹配。同时在匹配正确的情况下, 记录目标在定点的图像坐标值, 并计算其深度信息, 以实现目标定位。

软件平台采用VS2005, 基于C++语言进行编程, 具体算法步骤如下:

(1) 采集左右图像, 对图像进行预处理; (2) 在左图像中对目标进行跟踪, 并确定模板区域, 利用文章算法在右图像中与待测区域进行比较, 比较值满足阈值相似性条件认为是匹配点; (3) 若是比较值不满足阈值相似性条件, 则移动同一极线上的待测区域中心点, 重复步骤 (2) ; (4) 记录在定点处目标的坐标值利用式 (2) , 计算出相应的深度信息。

立体匹配的实验结果如图4所示。

图4中, 为视频中第100帧的立体匹配情况, 其中左图中的的目标区域是由跟踪算法确定的, 右图中的目标区域是由立体匹配算法确定的, 从试验结果可以看出, 右图的立体匹配比较准确。

为了检验文中目标定位的准确性, 在视频拍摄之前选定了若干行走路线上的确定点, 并手工测量了其深度值。在双目视觉的目标定位算法实验中, 以行人到摄像机拍摄平面的距离为实际深度, 算法实验得到的相应确定点的深度数据与手工测量的深度数据如表2所示。

表2中1号数据对应图4。由表2中的数据计算得到的平均相对误差为1.95%, 可以看出采用双目视觉方法的运动目标定位是可以实现的, 定位精度能够满足一般要求。

对实验过程进行分析, 发现误差产生原因主要有以下两个方面:

(1) 在计算深度的过程中使用的某些数据, 如焦距f, 像素点实际对应尺寸等存在误差, 导致深度计算中出现二次误差;

(2) 由于立体匹配算法本身存在缺陷, 导致匹配的图像坐标产生误差, 最终对深度信息造成影响。

针对上述原因造成的误差, 文章提出一些改进的建议:

(1) 对最终的深度计算结果进行参数补偿, 以减小绝对误差;

(2) 在立体匹配过程中, 选取匹配图像前后的多帧图像, 分别进行匹配并及计算深度, 取平均值作为该帧目标的深度;

(3) 改进立体匹配算法, 使之能够更好地应用于运动目标系统。

5 结束语

运动目标的位置确定是计算机视觉领域的重要研究内容, 文章首先对双目视觉的基本原理进行介绍, 然后深入研究了双目视觉关键技术中的摄像机标定和立体匹配方法, 采用传统标定方法及基于灰度相关性的立体匹配算法, 设计了双目标定及目标定位实验, 实验结果表明, 文中采用的算法能够实现一般应用需求中的运动目标的定位问题。

参考文献

[1]马颂德, 张正友.计算机视觉-计算理论与算法基础[M].北京:科学出版社, 1998.

[2]颜卓.基于双目视觉的运动物体检测系统研究[D].沈阳:沈阳大学, 2012.

[3]Gary Bradski, Adrian Kaehler.学习Open CV[M].北京:清华大学出版社, 2009.

[4]时洪光.基于双目视觉的运动目标定位研究[D].青岛:青岛大学, 2010.

基于双目视觉的三维人脸识别算法 篇4

1 新算法整体流程

针对上述问题,本文提出了一种新的三维人脸识别算法,其算法流程图如图1 所示。与传统三维人脸识别算法相比,该算法以结构简单的双目立体视觉系统为基础,通过调整左、右摄像机与人脸的相对位置,完成人脸的二维图像采集,从而能经济、高效地完成图像采集; 识别过程中,利用主动形状模型( Active Shape Model,ASM) 技术对二维图像进行二维特征点自动定位,并结合摄像机的内外参数得出特征点的三维坐标,从而避免了复杂的人脸三维重建; 最后利用反向传播( Back Propagation,BP) 神经网络进行识别,获得了较高的正确识别率。

2 二维特征点标定

在提取特征点之前,先根据肤色等信息对双目视觉系统获得的左右人脸图像进行人脸区域提取,然后利用极线变换[7]对图像进行校正,并对校正后的左、右图像进行特征点定位,将确定好的人脸区域作为初始位置,最后还要利用ASM技术[8]进行特征提取,左右每幅图像上分别提取76 个特征点。双目立体视觉系统获得图像经过上述极线校正、特征定位及特征提取后的图像如图2 所示,其中,特征点用线段连接起来,图2a、图2b分别表示左、右图像提取的特征点。

特征点提取后,可以得到这76 个特征点的图像像素坐标,表1 描述了部分特征点的像素坐标。由表1 可知,经过图像校正后,左右图像中的特征点的纵坐标位置基本一致,也就是说经过极线校正后,特征点的视差信息可以直接由左右图像的横坐标之差求出。

3 三维特征提取

3. 1 特征点三维信息恢复

为了克服二维人脸识别易受环境、姿态、表情等因素影响的缺点,将提取的特征点进行三维信息恢复,由于特征点三维恢复的最终目的是实现三维人脸识别,因而只需对人脸面部关键特征点进行三维信息恢复。根据双目立体视觉原理计算相应的三维空间坐标信息[9],其原理如图3 所示,图中b是基线距离,即摄像机光心Cl与Cr之间的距离,f是摄像机的焦距,P( X,Y,Z) 为空间点,设该空间点在左右摄像机坐标系中的坐标分别为( x1,y1,z1) 和( x2,y2,z2) ,在左右平面上对应的像素坐标为( u1,v1) 和( u2,v2) ,则视差d = u1- u2,根据三角测量原理和2 个摄像机的关系,有

空间点的三维坐标,可表示为

由张正友标定法[10]确定摄像机焦距等参数,并测出基线距离,然后根据式(2),可以计算出空间点三维坐标信息,从而得到所求的人脸面部关键特征点的三维信息。

3.2构造三维特征

通过人脸关键部位的特征点的位置,如鼻尖、眼角等的位置,提取三维人脸上的直线距离特征、角度特征、人脸比例特征、周长特征、曲线特征、体积特征以及表面积特征等几何特征,从而形成一个20 维几何特征向量,用于对三维人脸的识别。下面分别描述这些特征及其构造。

1) 距离特征

距离特征主要包括距离矩阵和局部特征点的曲线距离,选两点的欧氏距离作为其三维特征点之间的直线距离,曲线距离则使用分段计算两点之间的距离,然后求得近似模拟曲线距离。所选取的曲线距离有“鼻根点—鼻尖点—鼻下点”和“左鼻翼点—鼻尖点—右鼻翼点”的曲线距离。具体计算过程为

式中: ( xi,yi,zi) 和( xj,yj,zj) 分别表示参与计算的两个特征点的三维坐标。

2)角度特征的表示与度量

人脸上的一些部位之间的角度特征受外界的影响较小,因此可以提取这些角度特征来进行识别。该计算主要是基于余弦定理,具体计算过程为

式中: p1( x1,y1,z1) ,p2( x2,y2,z2) 和p3( x3,y3,z3) 为所选3 个人脸特征点的三维坐标。这类几何特征可以为眼睛内外、眼角与鼻尖之间的角度,鼻根到鼻尖再到鼻下点的距离等。

3) 比例特征的表示与度量

根据人脸美学得知,面部长度大概是鼻子长度的3. 5倍,面部宽度大概是左右眼角直线距离的5 倍,将面部长度和宽度之比作为人脸的长宽比例。这个几何特征可以度量不同人脸的形状,并应用于人脸的识别。

4) 周长特征的表示与度量

这类特征主要是计算鼻子XY和YZ剖面周长,这里主要是基于两点欧氏距离来计算。

5) 面积特征的表示与度量

面积特征是计算特定人脸区域的表面积,可用海伦公式表示如下

式中: p1,p2,p3分别为p1( x1,y1,z1) ,p2( x2,y2,z2) 和p3( x3,y3,z3) 的简写,表示为3 个特征点的三维坐标; s为这3 个特征点所围成的区域面积。

6) 体积特征的表示与度量

体积特征主要用于计算鼻子的体积,计算式如下

式中: S为鼻子的XY剖面面积; h为鼻子高度。而鼻子的高度的计算则如下,设鼻尖的坐标为( x1,y1,z1) ,鼻根的坐标为( x2,y2,z2) ,鼻下点的坐标为( x3,y3,z3) ,可以建立鼻根点和鼻下点所组成的直线方程

式中: A = z2- z3,B = y3- y2,C = y2( z3- z2) - z2( y3-y2) 。则鼻子的高度可以认为是鼻尖点到式( 8) 所代表的直线距离,则鼻子的高度公式为

4 基于BP神经网络的三维人脸识别

采用“误差反向传播”学习的BP网络,它可以对任意形状的观察向量集合进行正确地分类,其应用十分广泛。BP神经网络结构如图4 所示。假设输入输出对是( xk,yk) ,其中,xk= ( xk1,xk2,…,xkn)T,为第k个输入人脸特征向量; yk= ( yk1,yk2,…,ykn)T为第k个样本的期望输出。

将3. 2 节构造的20 维几何特征向量作为BP神经网络的输入,中间层采样15 个节点,输出层为判决结果。利用梯度下降法,根据已知人脸样本对神经网络中权系数进行训练,训练结果即可对人脸进行识别测试。

5 实验结果及分析

为了检测提出算法的性能,采用本文算法建立的三维人脸数据库与Bosphorus大学提供的3D人脸数据库[11]对算法进行测评。其中,Bosphorus 3D人脸数据库是采用基于结构光的三维扫描仪对人脸进行采集,里面包括表情变化的数据。该库提供了对应的三维人脸的24 个特征点位置,这些位置都是由受过专业培训的人员进行手工标记得到的。在实验中使用了除左右耳垂点两个特征点之外的22 个特征点。Bosphorus 3D人脸数据库部分人脸模型如图5 所示。本文算法自建的三维人脸数据库中包含30 个人脸信息,每个人脸拍摄15 组人脸数据,数据包括部分表情的变化。取其中10 组共300 张人脸数据作为BP神经网络训练样本集,然后取其余5 组共150 张人脸数据作为测试集。图6 描述了本文自建数据库采用的部分二维图像对。

对上面2 个三维人脸数据库,利用相同的特征,采用最近距离分类法和本文的BP神经网络分类法进行识别比较,表2 描述了2 种识别方法对2 种数据库进行识别比较的结果。由表2 可知,对同一数据库利用相同的特征,用本文的BP神经网络识别法比用最近距离识别法正确识别率高。由于Bosphorus数据库是通过结构光三维扫描仪获得的,并用人工标注特征点,三维人脸坐标相对较精确,因此采用相同的识别法对2 个数据库进行识别,Bosphorus数据库正确识别率要高于本文自建的数据库的正确识别率,但该数据库的获取代价大,且工序繁琐; 尽管采用相同的识别法,本文自建人脸数据库正确识别率略低于采用Bosphorus数据库,但其正确识别率达到了90% 左右,能满足实际的需要,且本文算法简单、经济。

6 结论

本文提出了基于双目视觉三维人脸识别算法,该算法以结构简单的双目立体视觉系统对人脸进行采集,使采集过程友好、简单、快捷; 在识别过程中,利用ASM技术对二维图像进行二维特征点自动定位,并结合摄像机的内外参数得出特征点的三维坐标,从而避免了复杂的人脸三维重建; 并利用BP神经网络进行识别,使正确识别率得到了提高。利用相同的特征,用最近距离分类法和本文的BP神经网络分类法,对本文建立的数据库和Bosphorus数据库进行识别比较,发现本文算法简单快捷,是一种经济、实用的三维人脸图像识别算法。

摘要:针对传统三维人脸识别算法的复杂性,提出了一种新的三维人脸识别算法。该算法以双目立体视觉系统为基础,通过调整左、右摄像机与人脸的相对位置,完成人脸二维图像的采集,然后利用主动形状模型(Active Shape Model,ASM)技术对采集的二维图像进行特征点自动定位,并结合摄像机的内外参数得出特征点的三维坐标,从而避免了复杂的人脸三维重建;再利用人脸关键特征点的三维信息计算特征点距离矩阵,提取三维人脸几何特征;最后利用反向传播神经网络进行识别。实验结果表明,该算法简捷、快速,且具有较高的正确识别率,是一种经济、实用的三维人脸识别算法。

基于双目立体视觉的场景分割方法 篇5

关键词:场景分割,立体视觉,聚类,深度图

1 场景分割

场景分割是著名的图像区域识别方法。除了应用于图像识别外,分割作为最基本的步骤,在许多其他计算机视觉任务,如物体识别或立体视觉中也是急需解决的问题。比如,在电视和电影行业中,分割是从视频中将前景与背景分离的重要方法,而在视频中,存在类型多样性和结构复杂性等特点,目前尚没有一种通用而且有效的场景分割方法。但是近十几年来,随着因特网的快速发展,视频的应用越来越广泛,对场景分割方法的研究也逐渐成为了热点。

经典的分割技术有许多不同的方法,但它们大都只是利用单一的从图像场景帧中提取的信息来进行分割[1]。因此,尽管经过大量的努力,但对图像进行场景分割仍然缺乏强大的解决方案。经典方法的局限性在于:图像中包含的颜色信息并不足以去完全代表场景信息的组成。如图1b所示。本文的目标是将婴儿从图像中分割出来,但是当婴儿的肤色和世界地图颜色相似的时候,采用经典的基于颜色的分割方法无法将它们进行分割,如图中婴儿手臂下面部分。此时,利用基于几何的深度信息可以将此问题克服,如图1c所示。但与此同时,又出现了另外的问题:当深度相同而颜色不同的时候又无法分割,如图中书籍和婴儿的脚被关联到相同的部分,由于其具有相似的深度,被分割在一起。因此,采用单一的基于颜色或者几何的方法在很多时候是无法正确分割对象的,如图1b和图1c所示。由此,同时考虑颜色和几何线索,就可以避免上述问题。以图1为例,图1c利用颜色和几何形状,虽然婴儿的脚和图书的几何深度相同,但由于它们有相同的婴儿的皮肤颜色,因此知道婴儿的脚属于“婴儿”这个整体;图1b中尽管婴儿手臂下面地图区域与婴儿的肤色相同,但是它和婴儿的几何深度不同,就不属于“婴儿”这个整体。



立体视觉是计算机视觉领域的一个重要课题[2],特别是模拟人眼的双目立体视觉技术,近年来已经做了相当多的研究,技术比较成熟,能够同时给出颜色和几何深度信息,正好满足前述图像分割的需求。

当前,立体视觉算法主要包括:以Fixed Window(FW)算法为基础的局部算法[3]、以Adaptive Weights(AW)算法[4]为基础的局部算法、对AW进行改进的Segment Support(SS)算法[5]、结合AW和FW算法的Fast Bilateral Stereo(FBS)算法[6]、Semi Global Matching(SGM)算法[7]、全局立体视觉Graph Cut(GC)算法[8]。

最近的场景分割技术是基于图论、聚类技术和许多其他技术(如区域合并,水平集,分水岭变换等)[9]。其中聚类技术应用最为广泛,本文将考虑采用3种聚类方法:K-means聚类[10]、Mean-shift算法[11]、Spectral聚类[12]。

采用双目立体视觉技术获得颜色和几何信息后,利用该技术来进行场景分割就变得更为有效。本文的组织如下:首先介绍本文分割方法的实施方案以及详细步骤,再利用不同组合的立体视觉重建和分割算法,给出各种组合的实验结果,最后得出结论。

2 本文方法实施方案及详细步骤

2.1 实施方案

如引言中的介绍,本文场景分割的目标是通过利用双目立体视觉系统提供的三维几何和彩色信息来进行场景分割。分割方法可分为4个主要步骤,从一个标准的双目立体视觉系统所获得的相同场景的两个视图(左视图和右视图)开始,每一步的详细描述如下:

1)生成深度图,进行三维场景几何重构;

2)构建包含几何和颜色信息的新场景,即构建六维向量;

3)应用基于颜色和几何信息的聚类算法;

4)最后的细化阶段,以消除由于噪声或几何提取中的错误产生的伪影。

图2给出了详细的实施方案。该方案是一个总体框架,其中可以使用不同的立体视觉和分割算法。通过双目视觉系统,由左视图提供颜色信息,左视图加上右视图进行视觉三维几何重建,从而得到几何信息,再将颜色和几何信息组成六维向量给到聚类算法中进行分割并对分割的伪影进行消除,得到最终的分割结果。

2.2 详细步骤

2.2.1 三维几何重构

三维几何重构,即利用二维信息计算帧场景点的三维坐标(x,y,z)。具体实现为:由三维空间点阵图像的背投影的二维失真坐标通过式(1)计算得出。

式中:Ks为整流后的双目立体视觉系统的摄像机内部参数矩阵(这里为左摄像机内部参数)。

如图2所示,双目立体视觉系统所获得的成对图像输入到立体视觉算法中,得到帧场景点的深度信息。这里可以使用前言中提到的立体视觉算法中的任何一种。对于相同的图像输入,不同的立体视觉算法产生不同的深度图,所产生的分割结果也可能就完全不同。图3给出了不同立体视觉算法生成的深度图之间的对比。

2.2.2 六维特征向量构造

上一步中得到的场景的几何信息再结合颜色信息进行分割比使用单一的几何或颜色信息进行分割的效果要好。要想将两种信息结合以便同时利用它们,首先必须建立一个统一的包括颜色和三维几何信息的表示方法。对于给定的场景S,在使用立体视觉算法得到三维几何信息后,这时不管是左视图还是右视图,它们所有的没有被遮挡的帧场景点pi都能够同时获得颜色和几何信息(pi∈S,i=1,z,…,n)。因此,这些点就可以被描述为包含颜色和几何信息的六维向量,如式(2)所示

其中,前三个分量的代表颜色信息,后三个分量代表几何信息。其中颜色分量的建立方法如下:将RGB颜色空间转换到CIELab均匀颜色空间。均匀颜色空间的好处在于能够确保点之间的欧氏距离接近不同颜色之间的感知差异,并允许在3个颜色通道进行距离对比。

现在特征向量Vi还没有被聚类,因为它们是由不同性质(颜色和几何)和大小的数据构成,而分割方法需要均匀的特征向量,而且向量分量必须属于同一个域。此外,为了更好地操作,大多数的方法需要特征值在[0,1]范围内。综上因素,每个场景点pi被其三维坐标x(pi),y(pi),z(pi)以及颜色值L(pi),a(pi),b(pi)表示之后,本文方法需要对这些特征向量进行归一化处理。具体做法是:三维坐标信息由z轴标准偏差σZ进行归一化,颜色信息由颜色空间L分量标准偏差σL进行归一化。颜色信息和几何深度信息之间的权衡比由λ因子控制。最终,每个可见的场景点pi由六维向量Vi,i=1,…,N表示,如式(3)所定义

很明显,从式(3)可以看出,高的λ值更着重于几何信息,而较低的值则偏向于颜色信息.

2.2.3 场景分割

如上节所述,在综合考虑颜色和几何信息后,本文用六维归一化向量Vi,i=1,…,N来描述场景S。假设场景S由不同部分s(K),k=1,…,K,组成,比如不同的物体或感兴趣区域,分割就是寻找不同群体的点代表不同的对象。本文所提的分割方案可以归结为:将各个场景点pi聚类到向量Vi,i=1,…,N以代表不同的对象,即通过使用引言中描述的任何聚类技术,图像各个部分就被关联到某个具体的聚类。显然,由于立体视觉算法的局限性,得到的深度图可能含有伪影。采用不同的立体视觉算法和聚类技术的组合,将导致不同的分割结果,将在实验中给出分析。

场景分割的最后细化阶段主要是为了减少分割伪影的产生。在细化阶段中,常用的方法是寻找相关的分量并删除大小低于某个预先定义阈值的分量。这就可以删除由于图像噪声产生的伪影。

3 实验和结果分析

为了验证本文方法的可行性性,采用立体视觉算法和聚类技术的不同组合对样本场景进行了实验。样本场景来自于Middlebury数据集[13],该数据集提供Ground-truth视差图以供使用。算法包括前言里提到的6中立体视觉算法及3种聚类技术。其中,由MAT-LAB实现聚类技术的执行,用C语言编程实现部分立体视觉算法(FW,AW,SS,FBS),其余两种GC和SGM算法的实现参考OpenCV网站实现方法[14]。

图3展示了采用不同的立体视觉算法对包含Ground-truth视差图的Baby2场景左右视图进行计算所得到的视差图(深度图),不同算法得到的结果有所不同。由图3可以看出,所有的遮挡点都可以被立体视觉算法识别出来并用黑色表示,所以在后续聚类算法中可以不予考虑。每个聚类都有一种颜色表示,所以没有被遮挡的点都用不同于黑色的聚类颜色来表示。



图4显示了Baby2图像的最终分割结果。不同的行对应于不同的分割算法,而列则对应于立体视觉算法。从图可以看出所用到的立体视觉和聚类算法在该场景都有很好的效果,比起图1中采用单一的基于颜色或者几何信息的算法都有明显的改善(例如,对婴儿脚的识别)。当然,也可以从图4看出,FW和GC算法会产生一些伪影(比如靠近手臂的地方)。显然,不同算法产生的错误几何信息点的数量也有所不同,其中FW和AW算法有较大的区域丢失。在这个场景中表现最好的算法是SGM,但是差别不是很大。

实验的目的是评估最有效的立体视觉和聚类算法组合。本文采用像素误分类百分比来进行评估,该百分比是和Middlebury数据集提供的ground truth视差图对比得到。如前所述,在计算过程中无须考虑遮挡像素。所有立体视觉算法和聚类方法的18种组合产生的误分类像素点百分比报告见表1。

由图4可以看出,几乎所有的场景分割,获得的场景鲁棒性和有效性远远好于单一基于颜色或几何信息的场景分割(比如,使用k-means聚类进行的场景分割)。根据分割效果的对比,得出结论:最有效的组合是SS和Spectral的组合,该组合得到的误分类百分比最低。在速度方面,均值漂移聚类的速度比其他两个算法要快些。在所有的聚类算法的MATLAB实现中,所需要的时间都不到7 s,应用于实时性不高的场合没有问题。

最后,λ参数的设置也很重要。图5描述了SS算法使用不同λ得到的分割结果。过高或者过低的λ值将导致图1b和图1c这样的效果。

4 结论

基于双目视觉的目标定位系统设计 篇6

关键词:双目视觉,目标定位,摄像机标定,立体匹配

引言

目标定位融合图像处理、模式识别、人工智能、自动控制等先进技术,在机器人视觉导航、公共场景监控、军事视觉制导、智能交通等领域有着广泛应用[1]。目前对目标定位技术研究多是基于单目视觉展开的,由于在图像投影过程中丢失场景的三维信息,因此得到的目标位置信息只是相对的。双目视觉模拟人类双眼机制,采用2台摄像机从2个视点去观察同一目标,获得不同视角下的一组目标图像,然后通过不同图像中同一目标的视差,推断出场景中目标的空间位置和形状。当需要对目标进行三维测量时,双目视觉有其不可替代的优点[2]。因此,本文基于双目视觉原理进行目标定位系统设计。

1 双目视觉系统工作原理

双目视觉系统的结构(见图1)[3]。P是目标上的一个特征点,Pl是P在左摄像机图像上的投影点,Pr是P在右摄像机图像上的投影点,Ol是左摄像机的光心,Or是右摄像机的光心。P既位于直线OlPl上,又位于直线OrPr上,因此P是OlPl和OrPr两条直线的交点。运用双目视觉原理进行目标定位的目的就是得到目标上特征点位置。首先通过摄像机标定得到摄像机光心Ol和Or坐标,然后通过特征提取和立体匹配得到Pl和Pr,坐标,利用两条空间直线的交点就可以得到P点三维坐标。

2 双目视觉系统关键技术

运用双目视觉原理进行目标定位主要包括图像采集、图像预处理、摄像机标定、特征提取、立体匹配和目标定位6个部分,其中摄像机标定和立体匹配是最难也是最重要的部分,本文对这两项关键技术进行深入研究。

2.1 摄像机标定

摄像机标定是进行目标定位的必要过程,通过摄像机标定可以得到空间点坐标与两幅图像上像点坐标之间的对应关系。此外,每个镜头的畸变程度各不相同,通过摄像机标定就可以求得镜头畸变系数。本文采用改进的平面标定法[4],首先通过线性模型求出摄像机的初始内外参数矩阵,然后引入径向和切向畸变,通过非线性优化算法求出畸变参数。

摄像机标定就是要解决计算机图像坐标(u,v)与世界坐标(xω,yω,zω)之间的转换问题。根据针孔成像原理,它们之间的转换关系如下

式中,S为比例因子;F为内参数矩阵;[R·T]为摄像机的外参数矩阵,R和T分别为摄像机坐标系相对世界坐标系的旋转矩阵和平移向量。F、R和T分别定义为

式中,fx、fy分别表示在x、y方向上的焦距,以像素为单位;Cx、Cy分别表示主光轴与像平面交点的计算机图像坐标。

利用线性模型求得内外参数矩阵初值以后,建立如下优化模型

式中,F、Ri、Ti为第i幅图像的内外参数,li表示选取的第i幅图像中心附近的点数,表示第i幅图像中第j个点的非齐次图像坐标向量,mi,j是相对应的世界坐标向量。k1,k2,p1,p2为本文考虑的畸变系数,由于其一般很小,因此其初始值可置为0。优化模型取初步求出的F、Ri、Ti作为优化函数的初值,约束等式是所有Ri都应满足正交性的6个等式,采用的优化算法是LevenbergMarquardt算法[5]。通过优化得到最终的内外参数矩阵,作为摄像机标定的最终结果。

双目视觉系统除要得到各个摄像机的内外参数外,还要知道两台摄像机之间的相对位置关系,获得系统的结构参数:旋转矩阵R和平移向量T。设双目视觉系统左右摄像机的外部参数分别为Rl、Tl与Rr、Tr,则两台摄像机之间的相对几何关系可由下式求出

2.2 立体匹配

立体匹配的本质就是给定一幅图像中的一点,寻找另一幅图像中的对应点,使得这两点为空间同一点的投影,进而求出二者视差,用以恢复目标的深度信息,并可进一步求得该点三维坐标。本文采用基于外极线约束与灰度相关性的立体匹配算法[6]。

一幅图像中的某一特征点在另一幅图像中可能会有很多候选匹配对象,可真正的匹配点只有一个,因此可能出现误匹配。外极线约束把一个点在另一幅图像上的可能匹配点的分布从二维降到一维,既可以提高特征点搜索速度,也可以减少误匹配的数量。图2中点P1和P2都是世界坐标系中同一点Pω的投影,称这两个点为“同名点”,当在左侧图像中找到一点P1,就应该在右侧图像中找到与之对应的同名点P2,如果全幅图像搜索,计算量是很大的,可实际中并不需要这样做。点PωO1O2P1P2在同一平面上,已知P1,O1和O2点,并且已知Pω点位于P1和O1点定义的连线上,但不知道Pω与摄像机之间的距离。不过已知Pω在由P1,O1和O2三点定义的平面(外极平面)上。因此点P2只可能位于极平面在右侧图像的投影上。由于O2点在外极平面上,因此外极平面在右侧图像上的投影为一条直线,我们称这条直线为外极线。从图2中可以看出一幅图像中所有的外极线相交于同一点E,这个点被称为外极点,外极点是另一个摄像机的投影中心在各自图像中的投影。由于所有外极平面都包含O1和O2点,因此外极点都位于由两个投影中心定义的直线(基线)上,这种约束条件称为外极线约束[7]。

立体匹配的目的是找到图像中对应点的视差值,求视差的过程可看成是模板匹配的过程。在左侧图像中当前点的周围给定一个尺寸为(2n+1)×(2n+1)的矩形窗口,然后必须沿右侧图像中的外极线找到一个最相似的窗口。灰度相关性匹配算法利用图像的灰度计算窗口的相关性,计算量小,速度快。采用归一化互相关算法NCC计算相似度[8],该算法可表示为

式中,mi和si(i=1,2)分别表示左侧图像和右侧图像中窗口部分灰度值的均值和标准差。只有在ncc(r,c)=±1的情况下,模板与图像之间才完全匹配。一般情况下,归一化互相关系数的绝对值越大就表示模板与正在检测的部分图像之间越接近,归一化互相关系数的绝对值越接近于零就表示模板与图像越不一致。设置一个阈值,在它们的相关系数高于NCC某个值时才接受该匹配结果,该阈值在实验中获得。

3 实验系统设计与结果分析

采用两个奥尼(175SH)摄像头连接计算机作为实验工具,利用Visual C++编制双目视觉目标定位程序(见图3)。

实验主要有两部分:(1)摄像机标定,就是在进行目标搭建完成实验系统之后首先要对两个摄像头进行标定,得到摄像机的内外参数,为后续的定位实验做好准备,采用7×7的棋盘格作为标定模板,角点提取成功的标定图像(见图4)。(2)目标定位,按照实验步骤,依次进行图像采集,特征点提取,立体匹配等环节的实验。采用长方体工件作为实验对象,最终提取特征点7个,在右图都找到匹配点(见图5)。

通过上述环节得到目标上7个特征点的三维坐标,反复进行实验得到坐标的平均值,与手工测定的坐标进行对比(见表1),由表1中数据可以看出,采用双目视觉方法运动目标定位是可以实现的,定位精度可以满足一般要求。

4 结论

基于双目视觉的目标定位系统弥补单目视觉定位不能得到深度信息的缺点,应用十分广泛。本文首先给出双目视觉目标定位的原理,然后深入分析双目视觉的关键技术,并对其中的摄像机标定和立体匹配给出解决方法,最后设计系统实验平台,进行多次实验,实验结果验证运用双目视觉系统进行目标定位的准确性。

参考文献

[1] 章毓晋.图像工程下册--图像理解与计算机视觉[M],北京:清华大学出版社,2000

[2] 游素亚,徐光佑.立体视觉研究的现状和进展[J],中国图像图形学报,1997,2(1) :17-24

[3] 马颂德,张正友.计算机视觉-计算理论与算法基础[M],北京:科学出版社,1998

[4] 时洪光,张凤生等.双目视觉中摄像机标定技术的研究[J],青岛大学学报(工程技术版),2009,(4) :43-46

[5] 徐静.基于非线性模型的摄像机标定技术研究[J],现代电子技术,2008,(12) :153-157

[6] D.Scharstein,R.Szeliski.A taxonomy and evaluation of dense two-frame stereo correspondence algorithma[J].International Journal of Computer Vision,2002,47(1-3) :229-246

[7] 王久龙.基于动态实时立体匹配的立体视觉系统[D],浙江大学,2008

双目视觉 篇7

基于计算机视觉理论的视觉测距技术是今后发展的一个重要方向, 它在机器人壁障系统、汽车导航防撞系统等领域有着广泛的应用前景。目前的测距方法主要有主动测距和被动测距两种方法。论文采用的是被动测距法。被动测距法是在自然光照条件下, 根据被测物体本身发出的信号 (如光信号) 来测量距离, 主要包括立体视觉测距法、单目测距法、测角被动测距法等。立体视觉测距法是仿照人类利用双目感知距离信息的一种测距方法, 直接模拟人的双眼处理景物, 简便可靠, 但该方法的难点是选择合理的匹配特征和匹配准则。

双目立体视觉系统采用两台摄像机同时从两个不同视点获取同一景物的多幅图像, 即立体图像对, 通过测量景物在立体图像对中的视差, 再利用双目视觉成像原理就可以计算出目标到摄像机的距离。立体匹配采用Open CV库中的块匹配立体算法, 在得到摄像机参数和匹配点后再利用最小二乘法即可算出三维信息。

(二) 双目立体视觉模型

首先介绍双目视觉所涉及到三个坐标系:世界坐标系、摄像机坐标系和图像坐标系。世界坐标系中的点坐标记为P (XW, YW, ZW) , 摄像机坐标系用 (xc, yc, zc) 表示。图像坐标为摄像机所拍摄到的图像的二维坐标, 一般有两种表示方法: (u, v) 是以像素为单位的图像坐标, (x, y) 是以毫米为单位的图像坐标。建立以毫米为单位的图像坐标是因为 (u, v) 坐标只表示了像素在数字图像中的行数和列数, 并没有表示出该像素在数字图像中的物理位置。

图1为平行双目视觉模型, 即参数相同的两个摄像机平行放置, 两光轴互相平行且都平行于z轴, x轴共线, 两摄像机光心的距离为B (即基线距) 。图中O1、O2为左右两摄像机的焦点, I1、I2为左右摄像机的像平面, P1、P2分别是空间点P (X, Y, Z) 在左右像平面上的成像点, f是摄像机的焦距。若视差d定义为│P 1-P2│, 则点P到立体视觉系统的距离为:

(三) 摄像机标定

摄像机标定是为了建立三维世界坐标与二维图像坐标之间的一种对应关系。系统采用两个摄像机进行图像采集, 设定好两个摄像机之间的距离 (即基线距) , 用摄像机同时采集放在摄像机前的标定物。摄像机标定采用的是张正友的标定方法, 棋盘格大小为30mm×30mm, 角点数为11×7。标定板的规格如图2所示。

张正友的标定方法需要摄像机从不同角度拍摄标定板的多幅图像。由于两个摄像机是向前平行放置的, 且基线距固定, 所以只需摆放标定板的位置变化即可。摄像机为针孔成像模型, 则空间点P (XW, YW, ZW) 与图像点p (u, v) 之间的映射关系为:

为方便计算, 使标定板所在平面的Z坐标均为0, 即Zw=0的平面, 则上式可变为:

其中, A为摄像机的内参矩阵, (R, t) 为摄像机外参矩阵, s为尺度因子。令M~=[XwYw1]T, m~=[uv1]T, 则上式可写为:

ms~=MH~ (3)

其中,

为透视投影矩阵, 它是标定板上的点和其像点之间的映射。在已知空间点和其对应像点后, 可根据最小二乘方程, 采用Levenberg-Marquardt算法求解得到H矩阵, 并求出摄像机的内外参数矩阵。一般摄像机都存在镜头畸变, 且畸变会影响标定结果, 特别是径向畸变, 因此只考虑一阶和二阶的径向畸变。

(四) 立体匹配

1. 立体匹配算法

立体匹配是通过寻找同一空间景物在不同视点下投影图像中像素间的一一对应关系。

立体匹配是匹配两个不同的摄像机拍摄得到图像的三维点。立体匹配采用的是Open CV提供的块匹配立体算法cv Find Stereo Correspondence BM, 该算法使用了一个叫“绝对误差累计”的小窗口 (SAD) 来查找立体校正后左右两幅图像之间的匹配点。这个算法只查找两幅图像之间的强匹配点 (即强纹理) 。

块匹配立体算法有以下三个步骤:

(1) 预过滤, 使图像亮度归一化并加强图像纹理。

(2) 沿着水平极线用SAD窗口进行匹配搜索。

(3) 再过滤, 去除坏的匹配点。

匹配过程通过在整幅图像滑动SAD窗口来完成。对左图像上的每个特征而言, 搜索右图像中的对应行以找到最佳匹配。校正之后, 每一行就是一条极线, 因此右图上的匹配位置就一定会在左图像的相同行上 (即具有相同的y坐标) 。如果特征有足够多的可检测的纹理, 并位于右摄像机的视图内, 就可以找出对应的匹配位置。

2. 视差效果图

视差图是经过左右图像的对应点匹配后得到的, 从视差图可以看出匹配的效果。若图像中的匹配点比较稠密 (即匹配点多) , 则得到的视差图和原图相似度就大;若图像中的匹配点比较稀疏, 则得到的视差图和原图相似度就小。论文采用的匹配方法得到的视差图如图3所示, 图4为原图。

(五) 双目视觉测距

1. 双目立体视觉测距算法

在已知摄像机的内外参数的情况下, 计算得到透视投影矩阵, 根据图像坐标系与世界坐标系的关系, 则可以求出距离信息。在双目视觉中, 摄像机同时拍摄到同一个物体不同角度的两张图像, 由同一点在两幅图像中位置信息可计算出它在世界坐标中的三维坐标。

根据 (4) 式和 (5) 式, 消去比例系数k1和k2, 可得到如下四个方程组:

其中, [XYZ1]是世界坐标系下P点的坐标, [u1v11]和[u2v21]是P点在左右图像上的像点。由于标定误差及图像噪声的存在, 以上四个方程为非线性的, 因此可用最小二乘法求出P点的三维坐标。

2. 实验结果

论文采用一个摄像机进行实验, 按照图一的方法, 现在左位置点拍摄一幅图像, 此时标定板位置保持不变, 然后让摄像机只在X轴方向移动基线的距离, 在Y和Z轴方向都没有移动, 再在右位置点拍摄一幅图像, 在左右拍摄点都拍摄图像后, 再换标定板的摆放方式, 继续在左右拍摄点拍摄得到左右图像, 依此类推。实验采用左右各9幅图像来标定, 图像大小为2304*1728, 得到的标定结果如下:

外参数为:

而实际设置两摄像机之间的距离为200mm, 可见标定得到的T的X方向上的坐标为199.4809mm, 与实际设置的距离200mm很接近, 旋转矩阵R基本接近单位阵, 说明两摄像机之间基本没有旋转, 符合论文所要求的双目视觉模型。

标定好之后, 再进行立体标定, 然后进行立体匹配, 立体匹配后取某些对应的匹配点, 采用前文介绍的测距算法, 得到如下实验数据:

注:单位为毫米

(六) 结论

本文主要研究基于Opencv的双目立体视觉的距离测量, 它在车载摄像机、安全车距、机器人壁障等场景中得到应用广泛, 是目前及将来研究的热点之一。由实验数据可知, 在摄像机标定和立体匹配后, 根据Open CV的测距算法, 在2米的距离内, 误差都是小于1.5%, 可见该算法还是能达到一定的精度。由于标定误差、人为误差及其他因素的影响, 如立体匹配时只查找两幅图像之间的强匹配点 (即强纹理) , 这些因素的影响导致了在距离摄像机越远的地方测量得到的距离信息精度越差。

参考文献

[1]赵勋杰, 高稚允.光电被动测距技术[J].光学技术, 2003, 29 (6) :652-656.

[2]Okutomi M, Kanade T.A multiple-baseline stereo[J].IEEE transactions on Pattern Anal&Mch Intell, 1993, 15 (4) :353-363.

[3]马林.基于双目视觉的图像三维重建[D].山东:山东大学, 2008.

[4]陈胜勇, 刘盛.基于OpenCV的计算机视觉技术实现[M].北京:科学出版社, 2008.

双目立体视觉中特征提取算法研究 篇8

1 经典算法介绍

1.1 Susan算子

SUSAN (Smallest Univalue Segment Assimilating Nucleus) 角点检测法是Smith等在1996年提出来的。该方法把每个像素与包含它的一块局部区域 (模板) 关联起来, 然后判断这块区域里的其它像素与该像素是否具有相似的强度, 最后利用统计特性决定该像素的属性, 即是角点、边上的点还是面上的点。

该方法的优点是具有很好的准确性和可靠性, 检测效果不受物体方向和噪声的限制;无需梯度的计算, 提高了算法的效率。但不足的是在弱边缘上不易检测出正确的角点, 在灰度差不大的情况下, 角点容易被忽略;定位不够精确, 容易出现角点偏移和错误判断的情况, 这方面仍有待进一步的研究。另外, 在运用SUSAN角点检测法的过程中, 有几个参数是需要人为设定的, 参数设定的好坏会直接关系到角点检测的速度和精度。

1.2 Harris算子

Harris算子是Harris和Stephens在1988年提出的。这种算子受信号处理中自相关函数的启发, 给出与自相关函数相联系的矩阵M。M阵的特征值是自相关函数的一阶曲率, 有以下三种情况:两个特征值都很高, 那么在任何方向的偏移都将增加该区域变化值, 所以该点被认为是一个特征点;两个特征值都很小, 那么图像中的变化区域成为近似不变的亮度, 则为面上的点;一个特征值小, 而另一个特征值高, 那么显然这是一条边。

Harris角点探测器可以很有效的提取目标物体的特征点。它对图像中的每个角点都计算其兴趣值, 然后在邻域中选择最优点。该算法有如下特点:由于Harris算子求的是梯度运算, 所以不受图像亮度改变的影响;算法只用到一阶差分及滤波, 故计算简单;再者Harris算子提取的特征点分布均匀而且合理, 可以定量的提取特征点并且因为不涉及阈值而使算法更加稳定;并且该算法具有旋转不变性。

2 Harris和Susan算法分析

从以上两种方法的分析可以看出, 用Susan算法进行角点检测时, 检测时间快, 但在弱边缘上不易检测出正确的角点, 因为仅有一个设定的阈值所以在灰度差不大的情况下, 角点容易被忽略;而且它的定位不够精确, 容易出现角点偏移和错误判断的情况;更重要的是在明显的角点处, 它容易检测到很多伪角点, 组成角点簇, 这会对后续的图像匹配带来很大的麻烦。而用Harris算法进行检测, 角点定位则十分准确, 且分布合理, 但该算法的检测时间不是很令人满意, 这也是目前对该方法提出改进的一个重要方向。

图3.1显示了Susan算法和Harris算法在提取角点的应用中的实际效果以及两者的对比。很明显可以看出, 相较Harris算法, Susan算法对孤立的亮点或者暗点 (图中蓝色椭圆圈中的点) 能够有较好的响应, 但对线线相交的角点 (图中黄色圆圈中的点) 的检测效果却有所不及。另外, 从图3.2的效果容易看出, Susan算法在正确角点处的角点簇效应很严重, 不利于后期的图像匹配。

基于以上认识, 为了快速提取准确的角点, 另外, 角点的提取是为了下一步的图像匹配, 所以为了匹配的方便, 我们还需控制角点分布的均匀合理, 即控制小区域内的角点数量, 杜绝角点簇的出现, 并且针对Harris算法检测速度有待改进的问题, 下面我们综合Susan和Harris算法原理, 介绍一种结合二者优点的改进算法。

3 改进算法原理

在介绍该方法之前, 先引入一个基本概念:类USAN区。类USAN区的大小就是N邻域内与中心像素点相似的像素的个数。而点与点的相似性, 则是通过两点的灰度值之差来衡量的, 如果邻域内某点灰度值与中心点的灰度值之差的绝对值在一个阈值t范围内, 那么就认为这个点与中心点是相似的。然后统计N邻域中与中心点相似的点的个数, 即为该中心点的类USAN区。有了类USAN区这一概念, 受SUSAN算法的启发, 我们就可以根据角点与其邻域内像素点灰度值存在的特定关系初步判断这个中心点是否可能为角点。具体分析如下:

由于本文选择3×3的检测窗口, 所以, 对于中心像素点, 在下面的讨论中只考虑其8邻域内像素点的类USAN区大小g (r0) 。从定义中可以看出:0≤g (r0) ≤8。现在讨论值的含义, 初步确定角点的候选点。

(1) g (r0) =8, 表示该像素和其周围所有像素点灰度值相差不大, 直观上我们可以认为该点为一面上的点。那么在进行角点检测时, 我们直接排除此类像素点。

(2) g (r0) =0, 表示该像素和其周围所有像素点灰度值相差都很大, 直观上我们可以认为该点为一孤立像素点或者是噪声点, 肯定不是角点。那么在进行角点检测时, 也应该排除此类像素点。

(3) g (r0) =7, 可以归结为以下两种情况, 与中心像素灰度差异较大的点要么在角上, 要么在中心点旁边, 如图3.3。我们直观上可以认为, 对于图中两种情况, 可能的角点应该是与中心像素灰度差异较大的那个点 (图中的白色点) , 故这种情况下, 中心像素点也不会是角点。

(4) g (r0) =1, 可以归结为以下两种情况, 与中心像素灰度差异较小的点要么在角上, 要么在中心点旁边, 分析与g (r0) =7类似, 我们直观上同样认为该中心像素点也不可能为角点。

(5) 2≤g (r0) ≤6, 情况比较复杂, 我们无法从直观上确认该中心像素点准确的性质, 故我们先将这些点列入候选角点之中。

通过上述步骤, 我们得到图像候选角点集, 然后对其用Harris思想计算角点响应函数等后续操作, 进而确认出正确的角点。但是这样检测出来的角点, 同样可能会存在严重的角点簇效应, 即有可能在真正的角点附近的小邻域里同时检测到几个伪角点。这样不利于后续需要进行的图像匹配, 所以我们要避免这种效应。我们采用的解决方法, 也即改进算法的最后一步便是, 遍历每一个检测出来的角点, 找出以该点为中心7×7的邻域内的所有角点, 比较他们的角点响应函数值, 取角点响应函数值最大的一个作为最终的正确角点。这样一来最终检测出的角点有可能会忽略掉角点小邻域内别的正确角点, 但这对后续的图像匹配工作没有负面影响, 因此在实际运用中它是一种可行的解决角点簇效应的有效方法。

4 实验结果分析

我们通过Matlab进行实验仿真, 仿真结果如表3.1、表3.2所示。

对于我们所采集的图像, 表3.1给出采用本方法得到的候选角点数占总像素的百分比与相似的判定阈值的关系;表3.2给出采用传统的Harris算法和本文采取的算法在对同一副图像进行角点提取时所耗费的平均计算时间的比较。从图中可以看出改进算法由于候选角点大大减少, 导致乘法运算次数的大量减少, 使得整个角点检测算法的运行时间大大缩减, 大约仅为原算法的50%, 使得该算法在实时处理系统中具有明显优势。

5 结论

这种改进的角点检测算法主要是在用Harris计算像素角点响应函数值之前对像素点做了一个初始选择, 这一部分主要是加法运算, 不涉及乘法运算。所以虽然在此增加了计算量, 但为后续的角点提取剔除了大量的非角点像素点, 而不必计算每个像素点的角点响应函数值, 大大减少了乘法的计算次数, 使得计算效率得到很大程度上的提高, 尤其是在分辨率高的图像中可以很明显地体现出来。

参考文献

[1]Smith S M, Brady J M.SUSAN—A new approach to low level image processing[J].Journal of Vision, 1997, 23 (1) :45—78.

[2]王润生.图像理解[M].湖南省长沙市:国防科技大学出版社, 1995.

[3]Harris C, Stephens M.A combined corner and edge detector[J].Proceedings of the Fourth Alvey Vision Conference, Manchester, 1988.

[4]Liu S T, Tsai W H.Moment-priserving corner detection[J].Pattern Recognition, 1990.

[5]田慧云.基于特征点的立体影像匹配[D].北京建筑工程学院, 2008.

[6]王崴等.一种改进的Harris角点提取算法[J].光学精密工程, 2008, 16 (10) :1995-2001.

上一篇:循环过程论文下一篇:透过现象看本质