文献标识码:A
DOI:10.16157/j.issn.0258-7998.2015.12.032
中文引用格式:刘念,邹湘军,叶敏,等. 复杂环境下的多工件定位研究究[J].电子技术应用,2015,41(12):120-123,128.
英文引用格式:Liu Nian,Zou Xiangjun,Ye Min,et al. Research of multiple workpieces positioning under complex environment[J].Application of Electronic Technique,2015,41(12):120-123,128.
0 引言
机器视觉技术具有非接触、工作稳定、实时性高等优点[1]。单目视觉作为机器视觉中的重要组成部分,多被应用于目标的检测和测量中,且能获得较高的精度[2-4]。然而在工业生产中,常常需要视觉系统在复杂作业环境下为抓取机器人提供精确的工件位姿信息,即为单目视觉下的工件定位问题。文献[5]中给出了一种单目视觉下的机器人定位系统,但该系统需要对每个工件进行人为标记,无法满足实时性要求。文献[6]中设计了一种处理简单、计算准确的单目视觉定位系统,该系统只针对单一目标且无法适应多目标、光线变化等复杂环境。文献[7]则提出基于共面两点一线特征的单目视觉定位,由于需要给定共面特征点和直线特征,因此对定位工件要求特殊,无法满足通用性。以上研究的工作对象多为单一目标且定位环境较为适宜。但是,在实际车间作业中,工件往往处在多目标杂乱分布、光照不均匀及部分遮挡等条件下。鉴于工业生产环境的复杂性,本文首先讨论了杂乱背景、部分遮挡及非线性光照条件下鲁棒的多目标识别方法,在张正友棋盘标定法确定摄像机内参数的基础上,结合最小二乘法将目标在图像坐标系下的位置转换到世界坐标系中,完成目标的精确定位。
1 多目标的定位系统构成及工作原理
多目标的平面定位系统主要由图像采集、照明光源、机械支架及计算机软件4部分构成,图像采集由维视公司型号MV120SC定焦工业摄像机完成,照明光源由LED环形光源构成,机械支架上的竖直导轨确保CCD摄像机视场可调,计算机软件部分则由OpenCV开源视觉库开发,其具体结构示意图如图1所示。
图2为该定位系统的主要工作流程图,系统的工作原理为:CCD摄像机获取目标图像,经过图像预处理后与离线生成的模板边缘图像进行匹配,确定目标所在的图像像素坐标(u,v)。借助精度为0.2 mm的标定板通过最小二乘法获取摄像机坐标系与世界坐标系之间的转换矩阵,结合单目摄像机标定结果及目标的像素坐标(u,v),经过坐标转换完成目标在世界坐标系下的位姿定位。
2 基于边缘梯度的模板匹配
传统的模板匹配算法,对噪点、光照变化、遮挡及小角度旋转等因素干扰的适应性和鲁棒性不高[8],很难满足工业生产中恶劣环境的要求。本文采用一种基于边缘梯度的模板匹配算法,先利用边缘检测算子获取模板图像精确的边缘信息,然后计算对应边缘点的梯度,最后根据定义的相似度度量计算匹配得分[8-10],完成匹配过程。其中,采用图像金字塔和边缘点采样减少计算量并加快算法运行时间。
2.1 相似性度量函数
设目标模板图像的所有边缘像素点组成点集pi=(xi,yi)T,与之对应的梯度为di=(ti,ui)T,i=1,…,n。其中,边缘点的梯度可由Sobel边缘检测算子滤波得到。对于待搜索图像,也通过Sobel边缘检测算子滤波,计算出图像中每个点(x,y)的梯度为ex,y=(vx,y,wx,y)T。在待搜索图像的某一点q=(x,y)T处,模板图像与待搜索图像进行匹配,计算模板中所有边缘点的归一化梯度和待搜索图像对应点处的归一化梯度点积的总和,作为匹配得分。变换后的模板在待搜索图像点q处的相似性度量表示如下:
2.2 算法的加速策略
2.2.1 图像金字塔分层搜索
采用图像金字塔搜索策略,可以指数级地减少计算量,加快算法运行时间[11-12]。分别创建待搜索图像和模板的图像金字塔,为尽可能获得匹配目标,通常在金字塔的顶层需要进行遍历搜索。每个潜在的匹配位置的得分都必须要大于smin,并且需要确定该位置的匹配分值为局部最大值。在图像金字塔顶层获得了潜在的匹配位置后,图像金字塔的下一层在一个5×5×5的邻域内进行搜索,寻找得分最大值并筛选误匹配点,直至图像金字塔最底层。
2.2.2 边缘点采样
在图像的底层搜索时,由于模板图像逐渐变大而使边缘点个数显著增加,会带来更多的算法时间消耗。故提出一种边缘点采样的方法,即:在底层搜素时,首先运用canny边缘检测算子确定初始边缘点,然后选取图像中偶数行和偶数列的边缘点作为最终的边缘点,代入算法中进行计算。
3 坐标系转换
在图像的模板匹配完成后,可以得到目标在图像坐标系下的像素坐标(u,v)。结合摄像机标定的结果,可以将(u,v)转换到摄像机坐标系下。由于相机制造工艺的影响,摄像机坐标系Oc-xyz无法准确测定,因此还需将目标位置信息转换到可见的世界坐标系Ow-xyz下。各坐标系之间关系如图3所示。
3.1 摄像机标定
摄像机想要精确地获得主点、焦距及畸变等内部参数,只能通过摄像机标定来获得。张正友等人提出的棋盘平面靶标的标定方法[13]简单易行,只需将相机从不同角度拍摄棋盘的多幅图像进行运算即可。本文采用张正友棋盘标定法,结合OpenCV2.3.1库中的函数在VS2008平台上运行自行编写的标定程序,求解出相机的内参数矩阵M及镜头畸变系数d。其中:
式中:fx、fy分别为图像轴X、Y轴上的像素焦距,(cx,cy)为光轴中心点的像素坐标。k1、k2为径向畸变参数,p1、p2为切向畸变参数。
3.2 世界坐标系设定
以目标所在的棋盘格平面为世界坐标系的x-o-y平面,世界坐标系的z轴垂直x-o-y平面向上。选取棋盘上左上角的角点为坐标系原点,如图4所示。
3.3 摄像机外参数描述
结合摄像机标定的结果式(2)、式(3),可以将目标的像素坐标(u,v)转换成摄像机坐标系下的三维坐标。其转换过程如下:
式中,(u′,v′)为矫正后的像素坐标,f为矫正函数,M为摄像机内参数矩阵,(xc,yc,zc)为目标在摄像机坐标系下的三维坐标。
摄像机外参数模型描述了摄像机坐标系在世界坐标系中的空间位置信息,设目标点P在摄像机坐标系下的坐标为(xc,yc,zc),在世界坐标系下的坐标为(xw,yw,zw),则摄像机外参数矩阵可以表示为[15]:
式中,r1=[r1xr1yr1z]T、r2=[r2xr2yr2z]T、r3=[r3xr3yr3z]T分别为xw、yw、zw轴在摄像机坐标系下的旋转向量,t=[txtytz]T为世界坐标系原点在摄像机坐标系下的平移向量。
由于目标点落在棋盘格平面上,故zw=0,结合式(4)、式(5)有:
由式(7)可知,tz≠0,故求出m中的8个未知数即可确定世界坐标系与图像坐标系的转换关系。棋盘格上的每个角点提供两个方程,至少需要4个角点便可以求出m。将式(6)记为:A·m=B,对于整幅棋盘上的77个角点,采用最小二乘法求解参数矩阵m:
4 实验结果与分析
摄像机采集到4种不同环境下的200张图片,通过Opencv库中的函数结合C++编程实现算法编程并对图片进行分析处理,实验环境为VS2008,实验目标为工业用矩形工件,实验平台如图4所示。将会以3个标准来评价多目标复杂环境下的工件定位结果:多目标复杂环境下的工件识别率、完成单个目标定位所需的时间和工件的位姿定位误差。
4.1 工件识别的准确率
图5给出4组实验图像来验证工件识别的正确性和鲁棒性:图5(a)为正常条件下的工件识别匹配结果,图5(b)为非线性光照条件下的工件识别匹配结果,图5(c)为遮挡条件下的工件识别匹配结果,图5(d)为杂乱背景下的工件识别匹配结果。4种不同场景下的实验图片各有50张,每张图片中的目标随机分布、工件个数为4到10个不等。运行本文的工件识别算法,并依次统计算法识别率,不同环境下的结果如图5和表1所示。
上述实验结果表明,对于部分遮挡、杂乱背景及非线性光照等条件下,该方法对多目标进行识别匹配具有较强的鲁棒性。通过调节匹配阈值,可以提高多目标条件下识别目标的数量,但同时会存在误匹配。在多目标、复杂环境下,工件正确匹配的识别率均达到80%以上。
4.2 定位单个工件的时间及定位误差
工件完成识别定位的时间与获取图像的大小与计算机硬件处理速度有关。本文中选取的模板大小为50×50,待搜索图像大小为1 280×960。在不同计算机硬件平台下的算法运行时间见表2。由表2可知,本文算法与计算机处理器类型密切相关;在正常背景、杂乱背景和非线性光照下,算法的平均匹配时间相差不大;部分遮挡条件下,算法运算时间最长,这是由于遮挡条件下识别的准确率较其他3种条件下低;算法的运行时间均在0.5 s以内。
4.3 工件的位姿定位误差
对于工件的姿态角度定位精度,由于实现条件的限制,故采用仿真图像进行验证。随机截取10幅工件目标图像,分别将该工件目标图像旋转25°、55°、75°、105°、135°后,运行本文算法求解工件姿态角度并与实际旋转角度比较,计算姿态角度的定位误差。
本实验中,由于工件呈规则的中心对称,因此目标的定位误差基准为工件的几何中心点,即孔的中心。工件几何中心的像素坐标,在式(3)中由算法给出,经过式(4)转换成世界坐标系下平面坐标。经过实验统计,得到200组实验数据,根据测量所得工件实际平面坐标,求出工件目标的定位误差如表3所示。
由表3可知:均方根误差衡量了观测值与真值之间的偏差,故工件的定位误差小于1 mm,姿态角度的定位精度小于1°。误差的主要来源包括:算法的定位误差及实验过程中工件中心的测量误差等。由于实验中摄像机的光轴垂直于x-o-y平面,因此x、y方向上的误差虽略有差别,但差别较小。由于识别算法的旋转角度搜索步长设置为1°,而仿真实验的结果也验证了该算法的姿态角度定位精度小于1°。
5 结论
本文研究了多目标复杂环境下的工件定位方法,通过快速、鲁棒性高的基于边缘梯度的模板匹配方法识别目标,并确定目标在图像中的位置。结合单目摄像机标定结果,获取图像坐标到实际世界坐标系的投影转换关系,最终得到目标在三维空间中的精确平面位置信息。实验表明,该方法在复杂背景、非线性光照等恶劣环境下,能够稳定地识别多个目标,目标定位的平均时间为0.5 s以内,目标在x-o-y平面的定位精度小于1 mm,姿态角度定位精度小于1°,能满足实际应用要求。
参考文献
[1] 张兴华.基于机器视觉的目标识别与测量算法的研究[D].济南:山东大学,2012.
[2] 赵连军.单目三点位置测量精度分析[J].光学精密工程,2014,22(5):1192-1197.
[3] 惠鹏飞,苗凤娟,陶佰睿,等.一种适用于PCB检测的彩色图像分割算法[J].电子技术应用,2013,36(03):138-143.
[4] 张宇.一种基于机器视觉的圆型零件检测技术[J].计算机工程,2008,34(19):185-187.
[5] 梁利嘉.基于单目视觉的机器人定位技术研究[D].秦皇岛:燕山大学,2014.
[6] 李星云.基于单目视觉的工业机器人定位系统的设计[J].机床与液压,2015,43(9):35-38.
[7] 刘昶.基于共面二点一线特征的单目视觉定位[J].计算机应用研究,2012,29(8):3145-3147.
[8] CARSTEN S.Similarity measures for occlusion,clutter,and illumination invariant object recognition[J].Lecture Notes in Computer Science,2001,2191:148-154.
[9] CARSTEN S.Occlusion,clutter,and illumination invariant object recognition[J].International Archives of Photogrammetry and Remote Sensing,2002:345-350.
[10] 赵振民,彭国华,符立梅.基于形状模板的快速高精度可靠图像匹配[J].计算机应用,2010,30(2):441-444.
[11] TANIMOTO S L.Template matching in pyramids[J].Computer Graphics and Image Processing,1981,16(4):356-369.
[12] Rafael C.Gonzalez,Richard E.Wood.数字图像处理(第三版)[M].北京:电子工业出版社,2013.
[13] ZHANG Z Y.A flexible new technique for camera calibration[J].IEEE Transaction on Pattern Analysis and Machine Intelligence,2000,22(11):1330-1334.
[14] 刘瑞祯,于仕琪.OpenCV教程[M].北京:北京航空航天大学出版社,2007.