钟佩思,夏 强,刘 梅,孙雪颜,陈修龙,曹爱霞
(1.山东科技大学机械电子工程学院,青岛 266590;2.山东科技大学先进制造技术研究中心,青岛 266590;3.青岛黄海学院智能制造学院,青岛 266427)
基于机器视觉的工件定位是自动化生产线的重要过程,通过图像处理与模式识别技术准确、实时地识别出工件特征与位置,对提高工业生产率有重要的现实意义[1-2]。双目视觉在视觉导航、目标匹配等领域有不可替代的优势,在工件识别与定位中也得到了广泛的应用[3]。
基于双目视觉的工件定位一般是通过相机标定、特征提取、三维重建实现工件定位。相机标定依据约束条件大致分为三类:传统标定方法、自标定方法和主动视觉标定方法。传统标定方法适用于各种相机模型,借助制作精度较高的标定板求取参数,标定精度较高,但标定过程烦琐,典型方法有直接线性变换方法[4]、张正友标定法[5]。自标定方法由Maybank等[6]提出,借助图像之间的对应关系实现标定,不需要任何标定物,但算法精度不高,典型方法有分层自标定方法、基于Kruppa方程组的标定方法和基于绝对二次曲面的标定方法。主动视觉标定方法是相机做定量运动,通过线性方程求相机参数,但系统成本高,典型方法有Ma[7]提出的两组三正交运动的线性方法、吴福朝等[8]提出的基于外极点和单应矩阵的正交运动方法。
相机的标定方法很多,但存在过程烦琐、精度不高、系统成本高等问题。生产线上工件定位的实质是寻找工件所在平面与图像平面的映射关系,没必要求得相机的全部参数[9],因此提出了基于双目视觉的正交函数局部拟合的工件定位方法。通过双目相机采集的一张拟合板图像获取样本点,采用正交函数局部拟合和双目重构获取工件空间位置,用于后续的机器人抓取和装配等。
基于双目视觉的正交函数局部拟合的工件定位系统框图如图1所示。该系统包括图像采集、图像预处理、形心计算、正交函数局部拟合和双目重构等模块,采用平行光轴的双目相机采集工件图像,选用螺母和垫圈作为定位的目标工件。工件定位之前,用双目相机采集一张拟合板的图像,进行图像预处理、形心计算,将拟合板中实心圆的位置信息作为正交函数局部拟合的样本点。在该工件定位系统中,首先采集待定位的工件图像,分别对左图像和右图像进行图像预处理,采用矩的形心算法计算形心,获得工件在左图像和右图像的形心像素值;然后对左图像和右图像中形心像素周围的4×4样本点进行正交函数局部拟合,求得拟合系数,把形心像素代入拟合公式可获得工件形心的平面坐标;最后完成双目重构,获得工件形心的空间坐标。
图1 系统框图
采用正交函数局部拟合的工件定位方法,需要在工件定位之前采集一张拟合板图像,拟合板中实心圆的平面位置是已知的,如图2所示。对采集的拟合板图像进行二值化、边缘检测、提取实心圆的轮廓、最后求得每个实心圆的形心像素值。实心圆在图像中和平面中的位置信息即为拟合的样本点,用于后续的正交函数局部拟合。
图2 拟合板
在工件图像的采集、数字化与传输过程中,由于周边环境问题、设备性能优劣等原因,得到的原始图像可能会出现对比度不足、模糊、混入噪声等问题,需要对图像进行预处理。采用直方图均衡化方法,增强图像对比度,便于后续的边缘检测、特征提取等操作的进行。采用高斯滤波方法,能够较好地保持零件图像的边缘特性,并且保留较多的相关细节。采用最大类间方差法(又称大津法)进行二值化,可以将图像与背景分离,去掉不需要的颜色特征和纹理特征。采用闭操作去除二值化后的边缘锯齿化及不必要的细节[10]。采用Canny算子对图像进行边缘检测,提取图像的边缘,便于工件特征提取与定位。
对图像预处理之后,计算图像中工件形心像素值。提取工件外轮廓,采用基于矩的形心算法计算形心[11]。
综合考虑拟合精度与定位速度,选用二次正交函数局部拟合。定义{pn(x)}是关于点集(xi)(i=0,2,…,m)的多项式:
(1)
式(1)中:pk(x)为首项系数为1的k次多项式,根据pk(x)正交性的约束条件,αk、βk表达式为
(2)
对工件形心像素周围4×4的样本点进二次正交函数拟合,取权函数ω(xi,yj)=1,(m,n)为像素点对应的平面坐标,拟合公式为
(3)
式(3)中:aklx表示在x方向k阶和l阶的拟合系数;akly表示在y方向k阶和l阶的拟合系数,其表达式为
(4)
式(4)中:X(xi,yj)表示像素点(xi,yj)对应的空间点的横坐标;Y(xi,yj)表示像素点(xi,yj)对应的空间点的纵坐标。
拟合系数得到之后,即可将工件形心像素代入拟合公式,求得工件形心的平面坐标。
如图3所示,在理想状态下,点Q在左相机和右相机的成像点分别为q和q′,两者分别于左光心和右光心的连线应该相交于Q。但是在实际中由于特征定位等的误差,经过光心与拟合得到的平面坐标可能永远不会相交。图3中点P在左相机和右相机的成像点分别为p和p′,两者分别于左光心和右光心的连线没有交点。面对不相交的情况,双目重构比较常用的方法是建立一条线段同时垂直两条射线并与其相交,线段的中心点P是最靠近两条射线的点,可以将这个点作为原像点,即可求得工件形心的实际位置。但是采用此方法计算比较复杂,影响工件定位的实时性,并且拟合的形心坐标误差是比较小的,可以简化为空间相交直线求交点。设左光心为O(x1,y1,z1)、右光心为O′(x2,y2,z2),左图像拟合的工件形心坐标为R(m1,n1,0),右图像拟合的工件形心坐标为R′(m2,n2,0),重构的工件形心空间坐标为P(x0,y0,z0),基线长度为b。相机基线与x轴平行,因此y1=y2,z1=z2。
图3 双目重构
(5)
(1)实验采用的拟合板由156个直径为11 mm的实心圆组成,沿X轴方向的实心圆有13列,间距为28 mm,沿Y轴方向的实心圆有12行,间距为22 mm,如图2所示。用双目相机采集拟合板图像,进行预处理和形心计算,求得每个实心圆形心的像素值,如图4所示,即可把这些点作为拟合的已知样本点。
图4 实心圆形心
(2)选取螺母和垫圈作为定位工件,将其放在待测平面上,用双目相机采集图像,得到采集的左图像和右图像,如图5所示。进行图像预处理和形心计算,获得左图像和右图像中工件形心的像素值,如图6所示。
图5 采集的图像
图6 工件形心
(3)选择工件形心像素值周围的4×4的样本点进行正交函数局部最小二乘拟合,求得该区域的拟合系数,并将形心像素代入拟合公式,得到工件形心的平面坐标。
(4)双目重构。将求得的左右形心平面坐标点与左右相机的镜头光心坐标点相连,交点即是工件上表面的形心点。在实际中由于特征定位等的误差,经过光心与拟合得到的平面坐标可能永远不会相交。对问题进行简化,利用式(5)求得工件形心空间坐标。
传统的基于双目视觉的工件定位方法是通过相机标定、特征提取、三维重建获得工件形心的空间坐标,实现工件的定位。
首先进行相机标定,采用的标定板是方格大小为28.5 mm×28.5 mm,方格个数为9×7的棋盘格标定板。利用MATLAB标定工具箱,采用应用最广泛的张正友标定法进行双目系统标定,采集的标定图像如图7所示。
图7 标定图像
其次,采用基于矩的形心算法计算形心,得到左图像和右图像中工件形心的像素,如图6所示。
最后,对工件形心进行三维重建,利用三角测量原理获取物体的深度信息[12]。如图8所示,建立左相机和右相机的坐标系分别为Olc-XlcYlcZlc、Or-XrYrZr,设工件形心在左图像和右图像中的像素值分别为plc(ulc,vlc)、pr(ur,vr),左相机和右相机的焦距分别为flc、fr,双目相机的基线矩为b,以左相机所在的坐标系规定为世界坐标系,工件形心的空间坐标为P(X,Y,Z),根据标定结果,能得到工件形心的空间坐标:
图8 三维重建
(6)
式(6)中,(u0,v0)为投影点在相机坐标系下的主点坐标;fx为相机的内参数。
根据上述对比实验,得到9个工件的相关位置信息,包括每个工件在左图像中的形心像素、右图像中的形心像素、工件测量获得的实际形心、传统的相机标定和三维重建的工件定位方法获得的工件形心和提出的正交函数局部拟合的工件定位方法获得的工件形心,如表1所示。
表1 工件定位实验数据
由表1可知,采用正交函数局部拟合的工件定位方法,平均定位误差是0.61 mm,最大定位误差是1.22 mm。采用传统的工件定位方法,平均定位误差是2.01 mm,最大定位误差是4.19 mm。数据表明采用正交函数局部拟合方法对工件的定位准确性更高。
基于双目视觉的正交函数局部拟合的工件定位方法误差分析如下。
(1)拟合板的误差及拟合误差:拟合板制作存在误差,实心圆直径和间距存在偏差,影响拟合样本点采集;拟合本身存在误差,但可以通过更密集的拟合板降低拟合误差。
(2)形心计算误差:对拟合板形心及工件形心的提取存在误差,影响拟合过程及三维重建。
(3)工件测量的误差:工件的实际形心位置作为两种方法的精度比较的参考,测量结果存在误差,但是在实际应用中不会存在这个误差。
传统的基于双目相机的工件定位方法存在定位不够准确、标定过程繁琐的问题,提出了基于正交函数的局部最小二乘拟合的工件定位方法,得到以下结论。
(1)工件定位实验结果表明,提出的正交函数局部拟合的方法的定位精度相比传统的定位方法有了较大提高。
(2)正交函数局部拟合的工件定位方法避免了标定的过程,不需要采集大量图片去获得相机参数,只需要一个图像即可提取样本点,用于正交函数拟合,实现工件定位。
基于双目视觉的正交函数局部拟合的工件定位方法可以实现工件准确定位,避免了标定过程,对提高工业自动化水平具有较高的应用价值。