基于双目视觉的板材平面测量研究

2023-09-27 08:20王浩猛芮明先马顺喜
计算机测量与控制 2023年9期
关键词:视差双目角点

王浩猛,坎 标,芮明先,马顺喜

(1.常州大学 机械与轨道交通学院,江苏 常州 213164;2.江苏羚羊机械有限公司,江苏 常州 213311)

0 引言

在工业生产中,由于传统的尺寸测量设备操作复杂、效率低下,其接触式的测量方法也可能会损伤被测物体表面,因此已无法满足工业测量智能化、自动化的发展需求。机器视觉通过模仿人类视觉识别物体,实现了对被测物体的测量与控制,而双目视觉技术是其中一种重要方式。与激光视觉等主动式测量方法不同,双目视觉并不需要向外界发送信号,在不对物体进行干扰的情况下就可以实现测量。双目视觉技术采用两个摄像头模拟人类双眼来实现测控,在高精度工业测量、智能导航、虚拟现实、交通路标识别和复杂环境场景重建都受到广泛应用。随着焊接加工朝自动化方向发展,双目视觉技术因其具有非接触、精度高、速度快等优点也越来越受到工业领域的广泛关注。通过计算机处理双目视觉左右图像比人类利用双眼获取信息更为准确,后续图像处理也更为方便。实现双目视觉测量所需要的设备较为简单,仅需要两个相机镜头和相应的固定支架便可以实现,结构简单且易于安装使用,成本较为低廉,因此双目视觉测量法受到广泛应用。双目视觉技术的测量原理能够应用于焊接过程中板材的尺寸测量领域,通过双目相机实现工业板材自动化测量逐渐成为一种提高生产效率的重要手段[1]。

单一的视觉角度只能得到二维图像,并不能获取到物体的三维信息,而双目视觉技术通过采集相机左右图像,对同一目标在左右两个成像平面上的差异进行计算,获得目标物体与相机之间的位置关系,建立起物体在三维空间的坐标信息,具有非常大的发展潜力。双目视觉用于工业板材测量,能够计算出板材上各点的三维坐标,实现板材上各特征点间的尺寸测量[2-4]。肖心远利用搭建出的双目视觉机器人焊缝跟踪系统采集水下对接焊缝图像,对图像进行处理得到焊缝边缘线的特征元素,进而求取出水下对接焊机器人的末端位姿,并根据机器人系统的位姿模型实现焊枪姿态获取[5]。张泽采用双目视觉技术和双驱动运动机构结合获取到飞机蒙皮合金件内部的图像,将光源系统调节和图像融合,解决了同种材料下目标的提取,完成了飞机蒙皮的化学铣削加工区域轮廓三维重建,获得轮廓区域的三维坐标信息[6]。张仕军将多模型级联与双目视觉系统结合获取铸件缺陷图像,利用三角测量法对铸件表面缺陷进行三维定位,建立出工件坐标系与图像坐标系的关系,从而实现了工件平面缺陷位置信息的三维映射[7]。杨皓天针对葡萄采摘自动化设计出基于双目视觉定位的采摘机器人设备进行果柄抓取,通过葡萄采摘关键特征提取逻辑的设计,优化了双目视觉中相机标定和立体匹配的关键过程,识别出采摘目标的典型特征,确定了取景范围和几何形状识别,提高了双目视觉定位精度[8]。但以上都没有考虑到实际待测目标在图像中像素坐标位置的准确性。在板材焊接工艺生产中,板材在进行储藏或运输时可能会与周围物体发生碰撞磨损,导致板材表面和棱角处信息缺失,这对于板材的尺寸测量大为不利。焊接自动化升级的发展需求也对板材测量的方法和精度有了更高的要求。本文以板材尺寸视觉测量为出发点,设计了一种基于亚像素检测的双目视觉尺寸测量系统。该系统能够对板材表面特征点进行亚像素级精度坐标识别,改善了板材测量中板材特征点识别不准确的问题,将目标图像像素点坐标提高到亚像素级,并通过计算板材边缘上各特征点间的距离,实现板材轮廓目标点间的尺寸测量,同时进行三维点云重建,通过点云图像直观显示出物体整体轮廓特征,增强板材轮廓展示效果。

1 双目视觉测量原理

双目视觉测量通过将两镜头处于不同位置和角度拍摄同一物体,对所获两张左右图像进行像素点间的匹配得到两幅左右图像间的视差,利用物体与相机之间的距离与视差成反比,建立两者相对位置关系,获取到图像的深度信息,并根据三角测量原理转换成物体目标点的三维空间坐标,从而实现尺寸测量的[9-10]。三维空间目标点的信息处理是双目视觉最重要的研究内容。针对三维空间某目标物体,以双目相机镜头光心Ocl和Ocr为中心,相机两镜头之间的光心距离为基线b,选取其上任意一点作为目标点P,点P在相机成像平面O1和O2上的投影点分别为Pl和Pr,相机焦距为f,建立理想状态下的平行光轴双目视觉系统模型。双目视觉相机模型如图1所示。

图1 双目视觉相机模型

在物体三维空间实际位置与物体左右图像像素坐标进行转换时包含了4个坐标系,分别是世界坐标系、相机坐标系、图像坐标系和像素坐标系。4个坐标系相互联系变换,实现同一目标物体在图像像素坐标系与世界坐标系之间的坐标转换。在世界坐标系下的目标点P的空间坐标为(Xw,Yw,Zw),点P在相机成像平面的左右投影点像素坐标为Pl(ul,vl)、Pr(ur,vr),由此建立起目标点的三维坐标与图像像素坐标之间的转换关系:

(1)

(2)

式中,(ul,vl,1)与(ur,vr,1)为点P在左右成像平面上的投影点Pl,Pr的齐次坐标,Zl与Zr是点P在左右相机坐标系中平行光轴方向的坐标值,Ml与Mr为左右相机的投影矩阵,通过相机标定实验获得,而(Xw,Yw,Zw,1)是在世界坐标系下点P的齐次坐标,mij则是Ml与Mr这两矩阵的第i行、第j列元素。

通过最小二乘法对公式进行联立求解,可得点P的空间坐标(Xw,Yw,Zw)。因此当双目相机的内外参数通过标定实验获得后,只需对目标点在相机左右图像上的像素坐标进行代入计算便可求得其三维空间坐标。

2 相机标定

利用相机标定获取相机参数是双目视觉系统中的基础环节,其标定结果的精度直接影响了后续测量结果的准确性,因此在进行双目视觉测量之前有必要进行相机标定[11-12]。相机标定能够建立起被测物体表面任意点的空间位置与其图像对应点间的关系。进行双目测量需要通过相机标定来获取到相机的内参数,如相机的焦距等,也要获得相机的外参数,如相机的位置和旋转方向等,同时还需要得到畸变参数便于后续图像处理[13-14]。相机标定方式主要有两种,分别是相机自标定法和传统标定法。自标定法不需要参照物就能实现标定,但标定所得精度较低,难以满足工业测量需要。传统标定法利用参照物实现标定,主要分为3D立体标定法、基于径向约束的标定法和张正友标定法[15]。3D立体标定需要高精度的标定物,成本很高,基于径向约束的标定法也需要高精度的设备支撑。针对上述各种方法优缺点和双目系统测量需求,张正友标定法因其标定物易于制作且成本低,标定精度也很高,故采用张正友标定法对双目测量系统的左右镜头进行标定。相机标定实验通过将边长为18 mm的7×10的黑白正方形组合绘制而成的棋盘格标定板作为标定参照物放置于双目相机前方,在相机保持不动的情况下,调整棋盘格与相机平面的方向和角度,拍摄位姿和角度各不相同的板材左右图像18对,采用MATLAB的标定工具箱对相机拍摄出的棋盘格左右图像进行标定,计算出相机的内外参数。确定重投影误差整体平均在0.20个像素,满足实验测量需求。重投影误差如图2所示。

图2 重投影误差

3 图像校正

双目系统测量公式是在理想状态下推导的,在理想状态下双目相机的两个摄像头的光轴平行,而在实际中,由于出现生产制造误差和安装偏差导致两相机镜头光轴并不平行,使得双目相机拍摄物体时会发生图像畸变现象,双目相机左右成像平面也无法实现面与面之间互相平行的状态,干扰立体匹配求取视差,致使双目测量系统误差较大影响板材尺寸测量结果的准确性,因此为了获得理想的双目视觉系统需要对图像进行校正[16]。双目视觉测量系统中的图像校正主要是畸变矫正和立体校正两种。畸变矫正能消除因透镜透视失真和镜头安装误差引起的径向畸变和切向畸变,而立体校正通过极线约束的方法可以实现两幅图像共面行对准,保证两个成像平面上的同名投影点在两像素坐标系中处于同一行,从而降低下一步立体匹配中对应像素点一一匹配的计算量。采用MATLAB的RectifyStereoImages函数对图像进行校正,输入上述相机标定获取到的相机内外参数,处理后得到校正后左右图像,如图3(a)和图3(b)所示。

图3 双目相机校正后左右图像

4 基于HARRIS的亚像素角点提取

在板材进行储藏和运输时,板材易受到碰撞和挤压,导致板材表面和棱角处产生磨损和断裂现象,特征点信息不明显,准确识别与提取出特征点对于尺寸测量精度的提高具有重要作用。传统HARRIS算子基于灰度图像实现角点检测,在图像的光照变化方面有较好的稳定性,用于板材检测角点具有较为优越的效果。针对校正后双目视觉左右图像,利用HARRIS角点检测法提取图像目标特征角点的像素坐标[17]。HARRIS角点检测法通过在目标点周围设置一个可以任意移动的局部窗口,在滑动小窗口时,计算窗口朝着多个方向移动时的灰度变化,采用角点响应函数结合设定阈值进行判定该像素点是否为角点。角点响应函数公式如下:

R=det(M)-k[trace2(M)]

(3)

式中,M为图像的自相关函数的矩阵,det(M)为矩阵M的行列式,trace(M)为矩阵的迹,k为经验常数。由于k取值范围在0.04到0.06之间,k减小时,角点响应值R增大,其他条件不变时,检测到的角点会变多,为了尽可能的获取更多的特征角点信息,本文k取值为0.04。计算图像的响应值R,设定阈值T,当像素点的响应值R大于阈值T时,该像素点认定为角点。

由于HARRIS特征角点检测是像素级别的,精度不高,也容易产生特征角点的误检。实际环境中图像的特征角点并非一定位于像素正中心,而是位于像素内部,将像素划分成更小的单位,建立亚像素坐标,精确角点位置坐标到亚像素级[18]。利用亚像素可以满足精度要求较高的工业测量领域需求,实现进一步的更高精度的尺寸测量。对HARRIS特征角点进行亚像素坐标提取,还可以消除误差角点,增加坐标数据可靠性。在角点O周围像素点有两种,一种不在边缘,如点A,另一种却位于边缘,如点B。A点处的灰度梯度为0,B点到角点O的矢量方向垂直于B点处的灰度梯度,Hi为B点处的灰度梯度方向,如图4所示。针对任意角点坐标,将其邻域内所有点分别代入下列公式,通过求解可获得角点亚像素级像素坐标,公式如下所示:

图4 亚像素位置特征示意图

(4)

5 双目立体匹配和三维重建

5.1 弱纹理区域检测

在板材拍摄图像中,板材平面属于弱纹理区域,区域内的像素点具有十分相似的特性,板材轮廓尺寸测量需要精准的测量板材的轮廓部位,对轮廓进行准确提取便于后续测量步骤。针对板材平面弱纹理区域,采用区域生长算法进行板材区域提取[19]。区域生长算法是根据图像像素的灰度连续相似性对性质相似的区域进行合并提取,能分割出目标区域与背景,保留住板材轮廓信息,并增强板材轮廓显示效果。算法通过将板材弱纹理区域中心上的一点作为种子像素点,检测种子点周围邻域8个像素点,将与种子点灰度值相似的像素点集合,不相似像素点则略过,形成更大的弱纹理区域,依次检测判定,直至遍历所有像素点,将板材所有像素点聚合在一起,划分出板材与背景两处不同区域。由于板材平面噪声与灰度并不均一,区域生长算法处理后的弱纹理区域图像中存在内部空洞区域与过分切割,采用膨胀和腐蚀操作加强区域边界。通过将膨胀和腐蚀操作与区域生长算法进行结合,实现左右图像内板材弱纹理区域的确定,也获取到板材表面弱纹理区域的轮廓信息。板材图像的弱纹理区域如图5(a)和图5(b)所示,其中板材平面弱纹理区域位于白色部分,而背景区域位于黑色部分。

图5 弱纹理区域图像

5.2 立体匹配

双目视觉中立体匹配利用对应左右图像间的视差值,实现左右图像逐像素点的匹配,因此视差值的精准获取对于匹配的准确性十分重要。立体匹配通过比较左图像与右图像中的像素之间的相似度,获取对应像素点之间的X坐标之差,从而计算出任意对应点间的视差值,进一步处理能获取到左右图像的深度信息,确定目标物体的空间坐标,为图像的三维重建提供数据支撑。两个对应的像素点就是同名点,两个同名点间的X坐标之差就是视差值。立体匹配分别有代价计算、代价聚合、视差计算、视差优化4个步骤[20]。立体匹配按照种类来划分,可以分为全局立体匹配,局部立体匹配和半全局立体匹配。划分立体匹配不同种类主要依靠代价聚合来实现。实验基于半全局立体匹配算法(SGM,semi global matching)实现立体匹配[21]。SGM算法具有匹配效果好和速度快的优点,能满足板材尺寸的快速测量需求。立体匹配需要先定义出像素间的匹配代价,确定好像素的相关性。利用SOBEL算子处理板材原始左右图像,对处理后图像和原始图像分别计算其BT代价,将两个代价值直接相加实现代价融合,采用成块计算将任意像素点的代价值用其邻域代价值替换,通过比较代价值的大小可寻找到左右图像中的同名像素点,从而实现初始视差图的较好获取。采用SGM算法通过构建能量函数实现代价聚合,并利用赢家通吃算法(WTA,winner takes all),通过建立邻接像素的关系,优化代价矩阵,保证每个像素的代价值根据相邻点的代价值重新计算,确定最小聚合代价对应的视差值,并将该视差作为最佳视差,从而确定所有像素点对应的最优视差值并得到视差图。能量函数如下:

(5)

式中,E(d)为视差图d的能量函数,第一项C(p,dp)是像素点在d的代价值,dp、dq则是像素点p和像素点q的视差值,Np为像素点p的邻域像素点,p1、p2为惩罚系数,T为判断函数,赋值为0或1,根据判断条件决定。第二项对像素点p邻域像素中和p的视差相差为1情况下施加惩罚来平滑,第三项为像素点p邻域像素中和p的视差相差大于1时施加惩罚进行平滑。

在获得视差图之后,需要对视差图进行优化,对其中的错误视差进行删除,保证像素点两幅图像中对应像素点间的准确匹配,提高视差图的质量和显示效果。对于错误视差的删除,采用左右一致性法,对左图任意像素点获取其在右图的匹配像素点,确保该匹配像素点在左图中的匹配像素点仍是原像素点。主要通过计算对应像素点的视差值进行求差,允许误差在1个像素,若是差值小于1个像素,则认为这对像素点为正确匹配,否则视为误匹配并对其进行剔除,从而实现每个像素点有且只有一个对应点,即每个像素点最多只存在一个正确视差。生成的视差图如图6所示。

图6 视差图

5.3 三维重建

利用立体匹配获取到的视差图信息,通过MATLAB程序的ReconstructScene函数,进行深度信息提取和三维空间坐标计算,同时建立点云数据的坐标系,进行板材图像的三维点云模型重建,并将板材三维点云图像单独提取出来,增强了展示效果。生成的三维点云图像如图7所示。三维点云图像较好的显示出板材轮廓特征和板材的弱纹理区域特征,板材轮廓四周的关键特征角点信息得到很好地保留,点云图较为直观的展示出板材的信息,也为板材的尺寸测量可行性提供侧面支撑。

图7 三维点云图

6 实验结果与分析

6.1 亚像素方法与像素级方法对比分析

为验证基于HARRIS的亚像素检测方法对于提高板材平面尺寸视觉测量精度的有效性,比较其与传统HARRIS像素级检测方法的优劣,通过计算出两种方法检测到的板材角点像素坐标对应的三维坐标,利用两种方法检测到的角点三维坐标间距与实际测量值进行比较,根据测量误差进行验证。实验的硬件设备主要有彩色工业双目相机、99 mm×99 mm×2 mm的金属板材、相机支架、棋盘格、刻度尺条贴、游标卡尺、数据线、笔记本电脑和自行搭建的X型材工作台。测量实验具体通过将彩色工业双目相机固定在工作台上,利用双目相机拍摄出位于X型材工作台上的板材图像。对板材正面轮廓上4个角点从左上角按顺时针命名为A、B、C、D,4个角点间的距离作为测量目标,采用传统HARRIS检测方法检测出两角点像素级坐标,基于HARRIS的亚像素检测方法提取出两角点的亚像素坐标,根据三角测距原理计算出两种方法检测到的角点对应的三维空间坐标,并分别计算出对应三维间距,同时利用游标卡尺进行实际测量作为真实距离,得到两种方法的测量误差进行比较。测量结果如表1所示。

表1 亚像素测量结果

由表1中两种方法获取的测量结果的角点间距和误差可以看出,通过亚像素角点检测方法获取到的板材目标点间的尺寸比传统HARRIS角点检测法测量的尺寸更接近于真实尺寸,亚像素法测量的相对误差整体小于传统HARRIS测量相对误差,亚像素法测量的相对尺寸误差在2.6%以内,准确性较高。亚像素角点检测法在板材尺寸视觉测量上具有实际的应用价值,尺寸测量精度优于像素级测量方法。

6.2 测量目标与相机相对位置差异影响分析

选取板材轮廓上两个角点A和B,将板材与相机的相对水平位置进行改变,利用基于HARRIS的亚像素方法检测不同相对水平位置上的板材角点坐标,验证板材角点与双目相机的相对水平位置差异对双目视觉测量精度的影响。具体通过每次在工作台水平方向上背向板材移动相机,改变相机与板材之间的相对水平距离,获取在不同相对水平位置下的板材轮廓上两角点间的双目视觉亚像素测量距离。实验以双目相机拍摄的图像中板材轮廓能完整显示时的相机与板材最接近处作为初始实验测量对象,此时双目相机与板材在水平方向相对距离为330 mm。保持板材位置不动,在水平方向上背向移动双目相机,每次水平方向上背向移动100 mm并进行计算该处亚像素视觉测量间距和测量误差,测量结果如表2所示。

表2 不同相对位置下的测量结果

由表2中不同相对位置下的尺寸测量结果可知,在板材与双目相机间的水平方向相对距离较小时,双目视觉尺寸测量结果更接近目标真实尺寸,误差较小,测量精度较高。当相机与板材之间的水平方向相对距离逐渐增大时,双目视觉测量出的尺寸与实际尺寸差距逐渐增大,双目视觉测量尺寸误差整体逐渐增大,但误差整体均小于5%,说明双目视觉亚像素测量方法有一定的适用性,在实际工程测量中具有较好的应用价值。测量数据结果也说明本文设计的基于双目视觉技术的板材尺寸亚像素测量系统获取的目标空间坐标数据较准确,板材尺寸测量方案合理可行,其测量结果可为自动化焊接过程提供板材尺寸数据参考。

7 结束语

本文构建了对板材的非接触式尺寸测量系统,采用双目视觉技术实现了板材平面轮廓尺寸测量,利用亚像素技术获得板材特征角点信息,提高了板材尺寸测量精度。通过实验数据可知,基于HARRIS的亚像素检测法提高了角点像素坐标获取的准确性,对板材测量尺寸精度的提高具有较好的效果,不同深度下的板材测量整体误差在5%以下,具有很好的应用前景,满足工业自动化测量需要。

猜你喜欢
视差双目角点
基于自适应窗的立体相机视差图优化方法研究
基于双目测距的卡尔曼滤波船舶轨迹跟踪
基于FAST角点检测算法上对Y型与X型角点的检测
基于梯度域引导滤波的视差精炼迭代算法
基于边缘的角点分类和描述算法
基于分割树的视差图修复算法研究
基于圆环模板的改进Harris角点检测算法
基于双目视觉图像的长度测量方法
立体视差对瞳孔直径影响的研究
基于双目视觉的接触线几何参数测量方法