APP下载

基于双目立体视觉的小型工件测量系统

2019-12-20江卫华

自动化与仪表 2019年11期
关键词:立体匹配视差双目

赵 琛,江卫华

(武汉工程大学 电气信息学院,武汉 430073)

工业生产中对加工工件精度要求越来越高,但传统测量工件尺寸的技术不仅效率低下,测量误差也很大。双目以及多目立体视觉测量技术的运用已经逐步代替传统的测量技术成为当今的研究热点。这种测量技术借鉴了人眼感知外界事物的特点[1],结合视差原理感知深度信息,随着当今计算机性能与测量算法不断提升与优化,使得这种测量方式更加高效、快速、准确、抗干扰强,由于不用直接接触,可保证测量后被测物无磨损。基于以上特性,这种技术现如今被广泛运用在工业自动化生产测量当中,成为工业生产过程中不可或缺的一部分。本文所述系统目前尚处于试验阶段,以备后期完善获得更高的测量精度。

1 双目立体视觉测量原理及系统组成

1.1 双目立体视觉测量原理

现如今,利用双目立体视觉进行三维测量是当今非接触测量领域最重要的手段之一,其测量原理通过测量系统的两部相机分别对空间同一位置的某点进行采集并被映射到像平面中,两相机光心相连,光心与空间点相连构成三角形,而此三角形与两成像平面的交点(成像点)之间的距离就是视差值,依据相似性原理和已知的视差值我们可以得到被测物体的深度信息,双目立体视觉成像模型如图1所示。

图1 双目立体视觉成像模型Fig.1 Binocular stereo vision imaging model

依据成像模型所示,假设空间任一点P的坐标设为(X,Y,Z),在左右相机坐标系下设为(Xleft,Yleft,Zleft),(Xright,Yright,Zright),在左右相机成像平面坐标系下设为(uL,vL),(uR,vR)。根据三角形相似性原理[2],空间点的三维空间坐标可表示为式(1):

由式(1)可知点P的深度信息Z可由视差(uL-uR)的变化反映出来。

1.2 双目立体视觉系统组成

双目立体视觉三维测量系统由2部Basler-200W工业相机、2个12 mm OPT 500W分辨率镜头、100W散斑点激光器以及设备支架和立体视觉软件平台组成,并且可以选配便携式信号发生器来实现双摄像机同步采集。

测量系统配备2台相同型号参数的工业相机,两相机竖直平行安装并配合2个相同焦距的镜头,实验中两部相机从预先设置的位置对同一被测物体进行采集;其中的基本实验参数如下:相机的工作距离450 mm,两相机间距120 mm,视野大小250*200。测量平台结构如图2所示。

图2 测量平台结构图Fig.2 Measurement platform structure

2 摄像机标定与立体标定

2.1 摄像机标定

本系统采用了著名的张氏标定法,通过对每部相机进行单独标定,分别获取两部相机的内参数和外部位姿。其标定过程通过将一张角点数为7*7,外边框尺寸为40 mm*40 mm的圆点标定板手动摆放在相机的视野内,不断变换摆放位置(摆放的规则是尽量铺满整个视野范围)并让2个相机对每个摆放位置进行采图 (一般每个相机采集15~20张图片),将采集到的图像带入标定算法中执行,在标定算法准确识别标定图像中标定板轮廓和角点的前提下,计算标定结果。

标定的方法通过建立世界坐标系,对已知尺寸标定板上的角点进行坐标提取,并通过提取的角点坐标及与之对应的图像坐标可以求得一个关系矩阵H,如式(2)所示;由于内参数矩阵包含5个未知量,我们通过相机采集至少3张以上的标定图像,获取至少3个关系矩阵,结合式(3)的约束条件可以求出内参数矩阵M,再通过式(2)与矩阵M可以估算出外部位姿,最后通过极大似然法优化结果,获取准确的标定参数。

在实验过程中,由于镜头的品质、工艺及外部环境光线干扰等因素,会导致相机成像存在不同程度的畸变,所以在标定的过程中需要对畸变进行校正,从而得到相机标定的非线性模型,本文所述标定方法仅对径向畸变进行校正。

通过上述的方法对两相机分别进行了标定,标定结果中左相机的内参数据为[0.0109279,-437.392,4.405×10-6,4.4×10-6,825.436,600.342,1624,1236],右相机的内参数据为[0.0124898,-376.887,4.39702×10-6,4.4×10-6,817.598,609.284,1624,1236],左相机外部位姿参数为[-71.5355,-54.7897,549.886,2.48714,354.032,0.557989], 右相机外部位姿参数为[-106.874,-59.3956,712.651,3.38924,3.59601,359.922], 标定精度为0.0290,标定结果可视化如图3所示,图中左右相机对标定板的轮廓和各角点都能准确匹配识别。

图3 左右摄像机标定图Fig.3 Right camera calibration diagram

2.2 立体标定

立体标定表示了从任一相机坐标系通过平移、旋转变换到另一相机坐标系的过程。假设空间一点P,在左右相机坐标系中空间点可以表示为Pl,Pr,左右相机的位姿参数分别设为Rl,Tl;Rr,Tr, 两相机的相对位姿关系设为R,T,立体标定的过程可由式(4)表示:

经标定得到相对旋转向量R为[0.143022,0.000707243,-0.0695999],相对平移向量T为[359.603,350.824,0.138127]。

3 立体校正

双目立体视觉系统实现的前提,是为让同一空间点在两相机成像平面中能搜索到相互对应的点对,在没有进行校正的情况下,两相机由于安装等原因使得两相机像平面并非处于同一平面内,这就使得搜索对应点对的工作将在三维空间环境中进行,此方法计算量大且消耗大量的时间,如果有一种方法可以将搜索点对的工作从三维空间降维到一维度平面上进行,将可以大幅度提升搜索效率,这便涉及到立体校正。本系统采用文献[3]算法对两成像平面进行重投影以此来达到校正目的。

通过Bouguet算法,实现了如图4所示的立体校正,由图中可以观察到两个标定板位于同一平面且行对齐。

图4 立体校正Fig.4 Stereo correction

4 立体匹配

4.1 特征立体匹配算法

特征立体匹配算法是一种局部立体匹配算法,以待匹配像素点u(m,n)为中心并确定一定的范围,此范围内的像素作为支持像素建立窗口,其中窗口中的支持像素设为v(i,j),考虑到支持像素与中心像素空间距离关系和与中心像素灰度及颜色特征之间的显著相关性,为窗口内每一个支持像素赋予权重,权重可以表示为式(5):

式中:yc,yp,yk,ysa为不同特征差异性参数。 考虑到算法对低灰度值敏感,对高灰度值不敏感的特性,引入表示待匹配像素之间表示相关度的式子。

式中:M为窗口大小;ud为待匹配像素点。结合权重与相关度可以得到代价聚合函数。

根据WTA局部最优准则,计算每个像素最终视差。

最后考虑到左右相机视角拍出来的图像会存在一定偏差,造成匹配后视差图出现遮挡问题,提出了如下的解决方法:首先固定左图像,使右图像作为待匹配对象,利用上述特征权重立体匹配算法得到以右图像为匹配对象的视差图,接着将右图像固定,让左图像为待匹配对象,同样利用上述算法得到以左图像为匹配对象的视差图,最后依据WTA局部最优准则,通过比较左右视差图,获取使得代价函数较大的那个视差图视差值作为最终视差值,遍历并比较所有点以获得完整的视差图。

4.2 基于超限学习机的立体匹配加速算法

超限学习机(ELM)使用的是单层前馈神经网络,由图5可知,其由输入层,隐含层和输出层所组成[4],与后向传输算法不断通过迭代调整隐含层权重来优化价值函数使其收敛相比,ELM中隐含层的权重通常都是基于某种分布随机分配或人为给定且权值固定,我们只需计算隐含层到输出层之间的权重即可,单层前馈神经网络的超限学习机ELM算法模型[5]在训练效率上提升明显且误匹配率与后向传输算法相当。对于一个含有L个隐含层,N个训练样本的ELM训练模型,其ELM网络的输出可以表示为式(9):

式中:g(x)为激活函数;ai为第 i个隐含层单元的输入权值;bi为第i个隐含层的偏置单元;f(xj)为第j个隐含层单元的输出权值;β为输出权重,是我们待求解的目标,即隐含层到输出层的权值。

其训练过程可以表述为首先使用缩小一定比例的原始左右图像数据作为训练样本xi与使用同样比例缩小的立体匹配算法得到的真实视差值集作为的标签集ti共同组成训练集,然后对图像信息进行归一化处理,需保证数据在0~1的范围内。为了无限逼近训练数据的真实结果,我们希望分类结果oj与真实结果tj一致,那么也就是让输出误差最小,即式(10)所示:

图5 ELM原理图Fig.5 ELM schematic

矩阵表示为式(11):

式中:H为输出层的输入;β为输出权重;T为预测视差值。在设定好权重和偏置ai,bi之后,可以根据最小二乘法得到β:

确定β之后,就可以使用我们所建立的ELM预测模型进行测试,预测过程是通过使用归一化的原始尺寸的左右图像上所有像素点及各点对应的真实视差值作为测试集合;通过式(11)向输出层的输入H中添加测试样本数据通过计算获得预测结果,比对其与实际视差值之间的差异,以待进一步优化。

需要注意的是,为了降低计算量优化系统性能并且满足实时预测,在训练过程与预测过程都采用逐行匹配的方法,即在立体校正后处于共面与共线的左右图像平面上,寻找匹配点对的工作将在同一直线进行。

5 实验与结果分析

在完成以上工作的前提下,物体的三维坐标可由式(1)计算出来,通过点云将三维坐标在显示设备上直观的绘制出来,至此完成物体的三维重建,通过三维重建获得的三维点云图像如图6所示。

图6 三维点云重建图Fig.6 3D point cloud reconstruction

本实验对普遍使用的SAD算法与本文中所述的基于超限学习机的特征匹配算法在进行立体匹配时的匹配精度与算法运行效率进行了比较,并通过采用像素点误匹配百分比法(PBM)来作为误匹配的指标,其表达方式如式(13):

式中:∂为错误阀值;dp为匹配得到的视差;dt为真实视差。评价结果如表1所示。

表1 评价结果Tab.1 Evaluation results

通过比较可以发现采用了ELM的算法相比于SAD算法在运行效率上得到了明显的提升且匹配的精度有所提高。

实验也对系统应用在实际测量中的测量精度进行了验证,本实验以工件为被测对象,在三维重建获取三维图的基础上,通过视差原理获取被测物三维坐标并对工件的尺寸进行测量,测量结果与通过精密仪器测量后的结果进行比对,测量数据对比如表2所示。

测量实验可知,由10次的测量数据可以计算出其平均的测量精度为0.34 mm,最终的测量数据与真实测量数据之间符合预期但还是存在一定程度的误差,而造成误差的原因经分析主要由于匹配过程中各种噪声干扰,前景与背景对比度不足造成的点云数据缺失,工件表面的低纹理高反光等因素的影响使得测量精度还有进一步提升的空间。

表2 系统测量数据对比Tab.2 System measurement data comparison

6 结语

本文对双目立体视觉三维测量系统设计过程中所经历的几个关键的步骤进行了详细阐述。因为立体匹配对于系统的重要性,验证了一种基于超限学习机的立体匹配算法,超限学习机可以自我学习并进行预测,相比于传统的立体匹配算法运行匹配的过程更加高效。系统通过视觉手段获取被测物体三维信息的方法避免了直接测量手段中因直接接触所造成的测量仪器或被测物体的磨损问题。经优化,系统具有较强的抗干扰性能,比传统三维测量系统有更高的效率和较高的精确度。

猜你喜欢

立体匹配视差双目
霜 降 苏美玲
基于双目视觉的机器人定位与导航算法
基于自适应窗的立体相机视差图优化方法研究
视差边缘优化的SGM 密集深度估计算法∗
Kobe—one of the greatest basketball players
基于双目测距的卡尔曼滤波船舶轨迹跟踪
双目立体视觉系统的旋转轴方位计算与特征点立体匹配
基于分割树的视差图修复算法研究
基于SIFT算法的图像匹配技术在测量系统中的应用
一种改进自适应权重稀疏区域立体匹配算法