汪成龙,陈铭泉,孙培宜,王佳洪,黄余凤
(惠州学院 电子科学系,惠州 516007)
从90年代开始,机器视觉逐渐在工业上得到应用。如今,随着工业智能的不断发展和应用,越来越多的机器人等智能设备投入到工业生产中,以大幅度提高生产效率和产品质量,彻底代替繁琐、低效的人工操作和检测。本文主要根据机器视觉的特性,通过机器视觉技术研究继电器品质检测系统,实现继电器品质的智能 检测。
整体思路:本设计通过4台相机同时采集被测继电器产品的图像,利用LabVIEW进行图像处理分析,得到继电器产品上圆的尺寸、角度大小、触点按压间隙大小以及字符匹配等外观参数,然后按照设定好的实际标准对结果进行判断,输出“PASS”或“FAIL”并将参数信息显示,最后将判定结果点传送给PLC或IO板卡。
本文所设计系统采用的图像采集有两种方式,相机采集和图像文件循环读取,图像文件存储格式为PNG格式,相机采集完所需图像后自动保存在应用程序根目录下的文件夹,若实验条件不允许则可以通过文件夹读取图像文件进行循环采集测试。
1)相机采集
相机采集部分主要由“Open”、“ConfigureGrab”、“Grab”、“Close”四个函数所构成,分别为相机连接、采集配置、相机采集、相机断开,具体程序实现如下:
图1 相机连接
图2 相机采集
图3 相机断开
2)当后续重新进行系统测试时若实验条件有限而无法通过相机采集图像时,可利用相机采集保存下来的样本图片来进行测试,支持的图片格式有*.bmp、*.png、*.jpg、*.tiff,默认格式为*png,读取图像文件具体实现如图4所示。
图4 读取文件路径
图5 读取图像文件
如图4所示,首先根据所选图片格式和所选文件夹路径获取文件夹里所有当前符合所选图片格式的图像文件的文件数和路径,获取到的路径以数组的方式存储,然后如图5程序所示,根据获取图像文件数量对路径数组进行索引,索引范围为0到文件数减一,即从第一张图片到最后一张图片,再通过IMAQReadFile函数根据图片路径进行读取,传送到图像缓存,当读取到最后一张图片时,又将索引值重新赋为0,从而实现了图像文件的循环读取。
图像采集设置界面如图6所示。
图6 图像采集设置
以仿真采集为例,勾选仿真采集选项,选择相应的路径,选择对应相机标签,选择相机一时对应加载的图像会显示在第一个图片控件,以次类推,图像采集效果显示如下:
图7 图像采集显示-多图像采集
图像定位过程中获取定位点有模板匹配获取定位中心点和获取直线边缘交点作为定位点两种方式,下面对模板匹配和边缘提取的程序实现作介绍如下:
1)模板匹配
首先在一张产品图像上选取特征比较明显的区域作为图像中的感兴趣区域,再将其作为模板进行创建保存,保存格式有*.bmp、*.jpeg、*.png、*.tiff,由于创建的模板带有视觉信息,而NIVison函数库保存带有视觉信息的模板图片仅支持PNG格式,所以统一将模板以PNG的格式进行保存,函数实现如图8所示。
图8 图像模板保存
保存好模板后,将其重新在系统中根据其文件路径进行读取,在待测物体图像上选择匹配范围,最后进行模板匹配操作,显示结果,匹配函数实现如图9所示。
图9 模板匹配
其中,匹配参数中匹配分数表示寻找到的匹配与模板图像的相似程度,其值为1000时表示要寻找的匹配须和模板图像完全一致,这里需要根据实际情况合理设置最小的匹配分数,数值越大匹配越精确但同时若目标图像变化太大可能会出现找不到目标的情况。
2)边缘提取
利用NIVision里的找直线边缘函数在检测区域ROI内寻找直线边缘,具体函数实现如下:
图10 直线边缘检测函数
其中主要参数如下:搜索方向,边界极性,内核大小,宽度,最小边界强度,迭代方法,数据处理方法,类型,方向,角度范围,角度公差,迭代次数,最小数,步长,最小信躁。以上参数可根据实际情况进行设置,一般情况下,若物体成像质量较高,除搜索方向、边界极性、最小边界强度外,其他一般按默认设置即可,设置完成后,在图像上选择所要检测直线边缘的感兴趣区域,执行边缘获取操作,结果如图11所示。
图11 直线边缘检测结果
获取定位点后,建立基准坐标系,在后续的检测中再建立新的坐标系,根据第二章平移和旋转两种仿射变换的结合,利用仿射变换求出两个坐标系之间变换所对应的变换矩阵,然后通过变换矩阵对检测区域进行校正,实现对被测物体的检测校准,具体函数实现如下:
图12 仿射变换函数
在定位模式选项中选择定位模式,分为模板匹配定位模式和边缘提取定位模式,根据不同定位模式获取不同的定位点,建立基准坐标系,然后检测下一张图像时获取到同一个定位点,建立新坐标系,根据基准坐标系和新坐标的空间关系利用仿射变换,将检测区域ROI进行定位校正,实现效果如下:
图13 模板匹配定位1
图14 模板匹配定位2
图15 边缘提取定位1
图16 边缘提取定位2
图17 软件程序流程图
本文所设计系统针对继电器产品实现的尺寸测量主要为圆形区域直径的测量、间距的测量、角度的测量,下面对以上三个主要测量的程序实现介绍如下:
1)圆形区域直径测量
利用NIVision的IMAQFindCircularEdge 3函数可以实现圆形边界的提取和其直径的测量,其具体函数实现如图18所示。
图18 圆形区域检测函数
这个函数用来定位在一个圆形的区域(圆形ROI)和一组搜索线的交点,提取出最佳的圆形边界特征点,拟合成最佳的圆。
其中主要参数意义解释如下:搜索方向,边界方向,边界类型,最大像素半径。其他参数性质、设置与直线边缘提取参数基本一致,以上参数根据实际情况进行设置,一般情况下,若物体成像质量较高,除搜索方向、边界方向、最小边界强度外,其他一般按默认设置即可,设置完成后,在图像上选择所要检测圆形边缘的感兴趣区域,执行圆形区域检测操作,可获得直径等参数,结果如图19所示。
图19 圆形区域检测结果
2)间距测量
间距测量利用矩形检测区域寻找直线边缘,检测上下间距,其具体函数实现如下:
图20 间距测量函数
这个函数会在图像上所选检测的矩形ROI区域从上到下或从左到右寻找最佳直线边缘,然后测量第一个和最后一个直线边缘之间的距离,即水平边缘或垂直边缘之间的距离,其参数输入如图21所示。
图21 间距测量参数
其中主要参数意义解释如下:扫描轴,对比度,滤波宽度,梯度,采样率。以上参数根据实际情况进行设置,且检测的实际距离不一定是实际最大或最小值,所的检测区域ROI的范围有关,实际测量结果如图22所示。
图22 间距测量结果
图22为继电器触点动作时所检测到的上下触点所连接部分的间距,由于触点在相机拍摄下有明显的反光效果,直接测量触点本身上下间距的数据不够精确,则采用测量如图22所示位置的间距的方式,根据另一个评价标准来判断继电器的装配工艺是否合格。
3)角度测量
为了检验继电器触点动作时的零件部位角度是否符合触点正常动作时的角度值标准,这里利用IMAQGetAngles函数在检测器区域内根据边缘提取流程提取出来的两条直线边缘,计算它们的夹角大小,具体函数实现如图23所示。
图23 角度测量函数
字符匹配为本系统附加功能,一些用户可根据实际需要对与继电器产品检测绑定的字符进行检测,排除掉生产过程中用于继电器产品信息标记的错误字符,这里只是为了检测字符是否印刷错误,所以仅仅用到字符匹配而非字符缺陷,所以检测算法方面可以用模板匹配的方法来进行匹配检测。
首先在标准的样本图像上选定所需要检测的字符区域,将它视为模板进行保存,然后加载待测产品图像进行模板匹配检测,若匹配不出则视为不合格字符印刷,其实现结果如图24、图25所示。
图24 字符匹配-合格
图25 字符匹配-不合格
本文针对继电器的圆形直径、角度、间距等几何外观特征参数进行测量测试,系统测试结果如图25所示,将系统成功测量的参数结果列出如表1所示。
根据测试结果表明,系统能快速准确地检测出圆形区域、间隙以及角度的大小,每检测一次平耗时257ms,且测量重复精度偏差较低。圆形区域直径的重复精度稳定在±0.015的范围内,基本满足精度要求;间距测量重复精度稳定在±0.02之间,在图像质量好的情况下甚至优于0.01mm,基本满足精度要求;角度测量重复精度稳定在±0.5的范围内,基本满足精度要求。综上所述,本系统具有较高的重复测量性能和检测精度,满足实际自动化生产和视觉检测的要求。
表1 系统检测结果表
系统检测提示不合格时显示如下:
图26 角度测量检测不到边缘
图27 间隙测量图像偏移太大,定位失败
图28 间隙测量值超出标准范围
如图26、图27所示,当图像偏移太大或者不是完整的图像的时候,利用之前设定好的参数进行检测会出现部分图像区域无法匹配或检测的情况,这时系统会将其当前检测结果判定为FAIL,需要根据当前情况再修改参数进行检测。如图28所示,当检测外观参数结果超出设定的标准的范围,系统也会当前检测结果判定为FAIL。
本文针对传统的人工外观尺寸测量的不足,基于机器视觉和数字图像检测技术,提出了继电器品质检测系统的整体设计方案,研究了圆形区域的检测方法以及间距、角度的测量方法,完成了继电器品质检测系统的软件检测算法设计,系统检测平均耗时257ms/次,圆形直径和间距测量精度分别稳定在±0.015和±0.02的范围内,角度测量精度稳定在±0.5的范围内,实验表明,系统能够实时、稳定地对采集的图像作出快速、精确的检测处理。
利用LabVIEW开发程序结合NIVision视觉函数库编写了系统软件程序代码,实现了本文中所提到的图像处理关键算法,并验证了检测的快速性、稳定性和有效精度,符合本设计要求。
综上所述,本系统具有较高的重复测量性能和检测精度,满足实际自动化生产和视觉检测的要求。