基于机器视觉的同轴度检测与微调系统设计*
2022-06-28张俊然佃松宜
朱 磊, 张俊然, 佃松宜
(四川大学 电气工程学院,四川 成都 610065)
0 引 言
随着先进制造技术的发展,对精密零件的参数要求越来越高。轭柱作为电磁计时器的重要组成部件,由内、外两部分组件经点胶固化组合而成,其同轴度参数对整个零件来说至关重要,一旦不合格将会造成重大经济损失。传统的组装测量方法为人工使用机械辅助工装将两者重合,再使用卡尺量具对零件进行测量,效率低,精度差,组装结果容易受到人为因素的干扰,轭柱组件的高精度组装测量成为了迫切需要解决的问题。目前,精密组件的高精度测量方法主要有三坐标测量[1,2]、手动影像测量、激光测量[3]等。三坐标测量虽然测量精度高,但为接触式测量,测量时间长,造价昂贵;手动影像测量仪虽然测量功能强大,但需要高精度滑台辅助且难以实现全自动批量检测;激光测量机对光滑金属材料的零件测量精度不高。
机器视觉主要是利用计算机模拟或再现一些与人类视觉相关的智能行为,从客观事物的图像中提取信息进行处理,并加以理解,最后用于实际检测和控制[4]。通过机器视觉辅助技术对工件可以实现非接触、快速、稳定的高精度在线测量。机器视觉技术在测量领域的应用也越来越广泛,彭晶鑫等人利用Canny算法和Zernike矩提取亚像素边缘并求得圆心距[5];谢俊等人研究基于机器视觉孔类零件在线检测系统,精度可达到0.02 mm[6];Zhu G等人设计了一种基于机器视觉的零件同心度测量系统[7]。这表明:基于机器视觉在测量领域有着广阔的应用前景,为有效解决测量问题提供了思路。
为此,针对测量目标尺寸大、精度要求高、背景复杂、要求组装效率高等特点,采用了一种基于机器视觉的方法实现工件的高精度测量组装系统。通过相机标定获得内外参对图像矫正,图像预处理去除噪声,再利用圆形工件特有的轮廓进行匹配定位,找到边缘带的感兴趣区域(region of interest,ROI),弱化复杂背景影响,结合边缘特征筛除毛刺,在ROI内,通过仿射变换进一步使用“分治”思想缩小ROI,建立测量矩形[8]对边界点提取拟合圆心;最后利用找到的外圆圆心为基准,引导机械手调整内圆位置,同二维测量算法对比,鲁棒性更强、检测精度更高、泛化性更好。
1 系统方案设计
本文提出的轭柱同轴度在线检测微调系统是面向先进制造领域精装配组装的方向,主要由硬件部分和软件部分组成,两部分通过网口进行通信。系统包括同轴度视觉在线测量单元和同轴度微调单元。
1.1 系统分析
系统目标对象结构如图1(a)所示,需要检测内外组件的边缘包括内圆和外圆,并计算两者之间的同轴度。其中,内外圆直径分别为12 mm和23 mm,公差为0.02 mm,内圆柱同外组件之间的缝隙为0.5 mm,内外圆高度差为2 mm,要求组装固化后内外圆的同轴度小于15 μm,视觉检测精度为3 μm。微调系统如图1(b),由检测系统和微调电爪组成。工作过程为:将工件放置于气缸夹持的检测平台上,相机镜头光源置于工件正上方固定位置,通过检测在线引导电爪调整内圆柱位置以满足要求。
图1 系统结构
1.2 硬件选型
视觉测量系统主要由相机、镜头和光源组成。由于最小视场边长需要满足大于23 mm,精度要求3 μm,内外圆高低差2 mm;根据式(1)、式(2)经不断地测试分析,能体现较好测量效果的硬件配置为:海康6 500万像素灰度相机,分辨率为6 992×9 280,莱丽特0.96倍率的远心镜头,工作距离为180 mm,景深3 mm,能保证相机获取到完整、清晰的图像。此外,考虑到操作空间的限制,不适合安装背光源,采用同轴光源打光方式提取内外圆边缘轮廓;工件为光滑金属表面,选择短波长的蓝色光,会凸显更多的边缘特征被相机捕获,提高ROI和背景之间的对比度,有助于算法对轮廓的提取
(1)
m=c/v
(2)
式中res为相机分辨率;vx,vy分别为x,y方向上的视野范围;pre为系统精度;m为镜头放大倍率;c为相机芯片尺寸。
为确保整个系统的精度,除了有高精度的检测系统外,还要保证微调单元的高精准度,因此选定的电爪在x,y,z方向精度为0.7 μm,同时采用U-V型结构的抱爪以防止过拟合。
系统首先通过工业相机获取工件图像,采集卡从相机中获取图像传送给PC端,PC端对图像信息进行处理,并以外圆圆心坐标为基准,通过运动控制卡控制电爪移动内圆到达目标位置,并不断实时反馈形成闭环控制,直到满足要求。系统结构如图2所示。
图2 系统硬件框架
1.3 系统软件结构
本文通过HALCON库和VS开发平台进行算法开发,并结合C#中Winform窗体设计模块建立人机交互界面。同轴度检测与微调系统软件算法包括图像采集与显示、内外圆同轴度测量、同轴度的在线调整、检测结果的输出与保存等,系统软件框架如图3所示。
图3 算法框图
基本流程为:首先,检测外圆圆心,控制光源控制器打开同轴光源;调用相机SDK采集工件图像转换为bmp格式;由于噪声干扰利用中值滤波对其平滑处理;利用创建的工件亚像素轮廓对工件进行轮廓匹配粗定位外圆圆心截取边缘带ROI;在ROI内采用Canny算法[8]及边缘特征剔除毛刺、灰尘等干扰;再利用基于一维测量矩形的思想改进的边缘提取算法对边缘点提取;由于成像系统畸变的存在,需要对边缘点坐标矫正得到矫正边缘点。最后采用拟合算法对矫正的边缘点拟合,获取外圆圆心并以此为基准值;其次,以参数不同流程相同的方式检测得到内圆圆心;根据式(3)计算同轴度,判断同轴度是否满足要求,如果不满足,则利用九眼标定算法建立图像坐标与机械坐标对应关系,引导机械电爪移动内圆位置直到满足同轴度要求
(3)
式中 (x0,y0),(x1,y1)分别为内外圆圆心坐标,co为同轴度。
2 同轴度检测关键算法
2.1 模板匹配定位算法
在相机采集到图片后,为快速定位检测区域,将待测区域提取出来,缩小图像处理的区域,采用模板匹配算法。依据图像特征的不同模板匹配算法包括基于点匹配、灰度匹配、相关性匹配、形状匹配等。基本原理包括创建模板和匹配模板两个过程。
本系统设计的同轴度检测算法采用基于形状的模板匹配算法,对于光照和一定大小的尺寸缩放变化不敏感,有较强的鲁棒性。虽然不同工件之间尺寸存在一定差异,但观察可知工件明显的特征是具有圆形轮廓,因此可手动创建如图4所示,直径分别为12 mm和23 mm的圆形亚像素轮廓保存为shm模板文件,通过形状模板匹配可迅速定位内外圆匹配区域,根据匹配坐标创建圆环(宽度为直径公差的两倍)截取图4中初始圆环ROI,极大减少计算量提高算法效率。
图4 匹配定位示意
形状匹配以模板中所有点的方向向量与图像中相应点的方向向量的点积总和为度量估计[9,10],设为S,定义如式(4)。假定在模板描述子中有n个点,每个点为pi,对应的梯度方向向量为di(ti,ui)T,ti,ui为横向梯度和纵向梯度。待检目标图像中每个点(r,c)对应梯度方向向量为er,c=(vr,c,wr,c)T。待测图形的形状描述子的边缘点为q=(r,c)T,边缘点变换向量和变换后的梯度向量设为p′i=Api,d′i(A-1)Tdi,其中,A为旋转矩阵。同时在匹配时,为了提升匹配的成功率和速度采用金字塔分层搜索策略,设置4层金字塔,匹配后得到目标所在的位置参数和匹配的匹配度参数,匹配成功率达到99%。式(4)如下
(4)
2.2 基于一维测量矩形改进边缘检测算法
本文算法中边缘点的提取关键在于测量矩形[11,12]的创建,如图5所示为测量矩形结构,特征参数包括半长、半宽、与水平方向的夹角、矩形中心坐标。在矩形区域内每间隔一个像素建立一条同矩形宽度一样的投影线段,也叫做等距线,整个测量矩形由gen_measure_rectangle 2算子生成。等距线的中点连接形成带有测量方向的剖面线,剖面线方向代表测量矩形的方向,每条等距线上的灰度均值构成剖面线函数值。
图5 测量矩形
为提高检测精度,本文采用基于亚像素边缘检测算法,而双线性插值在速度和精度上都具有较为良好的性能[13],因此,在计算等距线上灰度值时使用双线性插值获取亚像素精度。该插值算法由待插值像素点最近4个像素点通过式(5)计算得到
f(x,y)=w1·p1+w2·p2+w3·p3+w4·p4
(5)
式中pi为对应像素点灰度值,wi为对应权重,f为插入点灰度值。
边缘检测通过计算灰度值变化的导数,提取灰度值空间方向梯度最大的点[14]。将测量矩形应用于圆环边缘带ROI如图6(a),并对测量区域垂直投影到剖面线上的灰度,函数曲线如图6(b)所示;根据式(6)对灰度曲线函数h(x,y)求导,导数曲线如图6(d)所示,将极值点作为边缘候选点,当候选点大于设定阈值时被选为边缘点
(6)
同时,利用高斯平滑对边缘函数的导数平滑处理,当高斯方差设置为2时,如图6(c)所示。
图6 边界灰度变化示意
在实验过程中,每次工件的圆心位置是不同的,检测的边缘区域也会存在一定的差异。为了获得有效的检测区域,根据模板匹配粗定位获得圆心位置并根据经验获取的圆环内外半径R1、R2,截取出包含边缘带的圆环作为待检ROI,并对边缘带创建一维测量矩形提取边缘点,图7为示意图,算法伪代码步骤如下:
1)首先用Canny算法作用于ROI提取边缘轮廓;
2)提取的边缘轮廓包含了灰尘、毛刺等干扰,利用轮廓长度、圆度、最小外接圆半径等轮廓特征将其筛选,最后留下若干光滑工件边缘段li(i=1,…,n);
3)根据匹配定位得到的圆心O(x0,y0)和A1(x0+R2,y0),建立射线OA1,判断是否与li相交,若相交,则以OA1与圆环的两个交点为测量矩形剖面线两端点;
4)根据两个端点可以计算出测量矩形的半长和角度,设定测量矩形宽度固定为20,因此可以创建测量矩形L1;
5)提取边缘导数为负数且幅值大于30的点为边缘;
6)以圆心O为中心,创建仿射旋转变换矩阵,将点A1以角度θ逆时针旋转至A2,并重复步骤(3)~(5),由于电爪遮挡,只能在工件左右两段边界区域提取m个边界点,并保存在数组中。
图7 内圆边缘提取示意
2.3 单相机标定
在图像坐标系下测量参数需要转换到世界坐标系中才能得出真实结果。理想情况下,根据像元尺寸和镜头放大倍率可以计算出每个像素宽度代表的物理距离。但实际工业场景中,相机镜头会产生径向畸变和切向畸变,导致图像坐标与世界坐标之间是非线性关系,因此,为了提高检测精度,进行相机标定获得两个坐标系之间的转换关系[15]
(7)
式中 (Xw,Yw,Zw)为世界坐标点,(u,v)为像素坐标点;相机内参M1包括焦距f,像元尺寸dx,dy以及图像中心像素坐标(u0,v0);Z为工作距离,X为世界坐标系坐标点,相机外参数M2包括平移矩阵T和旋转矩阵R。相机内外参数可通过标定获取,本系统标定后的参数如表1所示。
表1 相机内外参数
2.4 最小二乘算法拟合圆
经标定后得到像素坐标与世界坐标的对应关系,将提取的工件内外圆边界点转换到世界坐标系中,然后采用最小二乘法对边缘点进行圆拟合。最小二乘法原理是利用最小方差法,使得位于圆周上的n个离散点(xi,yi)同理想圆心(x0,y0)距离误差平方和E最小化[16],即
(8)
令E=f(x0,y0,r),f为关于圆心坐标和半径r的函数,为使E最小则需要分别求偏导数并令其为0,求出圆心坐标和半径
(9)
在本系统中检测得到的内外圆边界点分别位于左、右两段圆弧,利用最小二乘法拟合效果如图8所示。
图8 拟合效果示意
3 手眼标定
轭柱工件同轴度在线调整可使用相机引导微型电爪以外圆中心为基准,对内圆中心位置调整以满足同轴度要求,设调整过程中满足小于2 μm即结束。由于整个系统在z轴方向是固定的,只需考虑在x-o-y平面位置关系,因此,在本系统中采用九眼标定算法快速标定机械手坐标系与相机坐标系之间的转换关系。当需要对内圆微调时,将图像坐标系中新的目标位置通过转换矩阵映射到机械坐标系中。为提高微调系统的精准度九眼标定法流程如下:首先,以电爪抱住工件内圆柱在相机视野范围内,以图9所示3×3矩阵形式依次移动并采集图像记录9个点的机械坐标Hi;通过边缘检测算法拟合9个内圆柱的圆心,并保存在图像坐标系下的位置Ti;根据点集Hi,Ti(i=1,…,9)构建矩阵H、矩阵T,最后用vector_to_hom_mat2d算子求得转换矩阵X。
图9 九点示意
4 实验分析
实验中,轭柱外组件由夹持装置固定放置于实验平台上,机械电爪抱住内圆柱;利用所开发的系统对工件同轴度适时调整测量,整体视觉系统界面如图10(a)所示。实验过程中随机选取20组工件测量,并从中选3组工件重复测量20次。将本文算法测量结果同二维测量算法和第三方权威机构检测(三坐标机)结果对比,结果如图10(b),(c)所示。
图10 测试数据对比
对比分析本文算法测量值与第三方测量值,通过计算可知最大绝对误差为2.56 μm,同轴度最大值为13.98 μm;同一组工件测量最大值与最小值之差最大波动为0.6 μm。因此,满足整个系统要求,测量精度达到3 μm,同轴度不超过15 μm。与二维测量算法数据对比可知,二维测量算法绝对误差最大达到12 μm,本文改进的测量算法对测量精度有了巨大的提升,并且本文设计的测量算法除了能测量圆、直线、椭圆外还能测量其他非标准工件。
5 结 论
本文将视觉检测技术运用到同轴度检测中,与传统的测量方式相比,提高了检测效率和精准度,降低了人力成本。系统工作过程中采用的是零件组装过程中实时在线测量并调整,避免了人工接触造成对工件的氧化,且相比传统组装方式缩短了生产周期,合格率大大提高。系统中主要采用了形状匹配定位和基于一维测量思想改进的边缘提取算法实现了对轭柱组件同轴度的高精度测量,完全满足该自动化生产线的要求,同时该测量算法也能很好地应用于其他精密零件的测量,具有较大推广价值。但由于受到系统误差、算法误差、硬件设备等影响,在今后的研究中可以从算法层面和硬件层面进一步优化,以提高检测精度。