APP下载

基于机器视觉的汽车紧固组件检测系统设计

2021-05-05陈宇昊朱良俊

制造业自动化 2021年4期
关键词:卡扣边角灰度

陈宇昊,彭 力,朱良俊

(物联网应用技术教育部工程中心 江南大学物联网工程学院,无锡 214122)

0 引言

机器视觉,是机器通过视觉传感器将目标物体的形状、大小、颜色等信息处理成数字信号,再发送给专用的图像处理系统的过程。在该过程中,视觉传感器担任着信息源的角色,图像处理系统中的算法将图像信息综合并提取出具有应用价值的特征,并能反过来调整视觉传感器的参数以达到更好的图像效果。在中小汽车配件制造企业中,对成品使用人工检测的情况依旧很多,人工检测效率低,准确性差,存在着不小的隐患,本文旨在设计一种针对汽车塑料紧固组件的检测与分拣装置,基于机器视觉,实现对传统人工检测手段的改进甚至取缔。

现代制造业的生产速度快,物流吞吐量大,如果没有机器视觉,那么势必会在产品质量检测这一环节中投入大量的人力,消耗大量的时间。机器视觉能实现实时和非接触式检测,保证每个环节中产品的状态和质量,并及时的将不合格的过程件去除,提高了整体效率,也可以通过研究瑕疵件的共性从而反推出生产流程中的某个不合理的流程,帮助优化生产流程[1]。

另外,由于汽车制造业中塑料组件种类众多,这要求视觉检测程序拥有一定的泛用性,能被用于对不同种类的塑料紧固组件的判断与分拣。

本文的主要工作和贡献如下:

1)本文讨论了目前广泛运用的几种图像处理与定位方法,分析各种方法的优劣。

2)分析所检测汽车塑料紧固组件的外形特点,提出可以追踪其位置的方法。

3)实现对汽车塑料紧固组件上的紧固卡扣的识别,判断其是否有紧固卡扣缺装,并指出缺装的位置与数量。

4)通过理论分析和实验,验证该汽车塑料紧固组件检测程序的可行性与有效性。

1 相关工作

关于机器视觉,文献[1]总结了以下4种视觉检测方法:基于手工特征的检测方法、机器学习方法、改进Feature-Based方法与R-CNN方法。基于手工的特征方法反应的是局部区域的明暗关系,被广泛用于人脸与非人脸的区分中;机器学习方法涵盖多种算法,其在图像处理中的运用多为查找对象并进行分类或判断;改进Featured-Based方法结合Haar特征与AdaBoost算法,可看作是手工特征方法与机器学习方法的结合,提高了面部识别的精度;R-CNN方法受遗传算法启发,使用网格训练方式,用于图片中对象的判断与分类。以上的四种检测方法用于判断检测目标形状时效果良好,但并不适合用于判断检测目标是否存在。本文在文献[2]基础上,使用OPENCV库中的相关函数从图片中提取汽车塑料紧固组件的外围轮廓,由轮廓推导出当前汽车塑料紧固组件的偏转角度、相对大小和所处位置等信息。

本文的研究对象是汽车塑料组合件上的紧固卡扣,紧固卡扣分布在汽车塑料紧固组件上,且位置相对固定,因此可以将紧固卡扣的位置以相对坐标的形式储存在计算机中。紧固卡扣的颜色与汽车塑料紧固组件呈反色差,因此可以准确的与背景区分,为了最大化检测速度使其符合生产线标准,设计了一种计算量较少的紧固卡扣存在判断算法。最后,通过理论分析和实验,验证了紧固卡扣定位策略与紧固卡扣存在判断算法的可行性和有效性。

随着研究的不断深入,程序实现的功能也越来越复杂,由一开始识别固定坐标位置的紧固卡扣是否存在,到追踪紧固卡扣的固定位置并判断,最后可以自定义紧固卡扣在汽车塑料紧固组件上的相对位置。为了能取得更好的识别效果,环境影响与计算量过大导致运行速度偏慢成了需要考虑的因素。文献[3]指出多种提高视觉识别程序运行速度的方法,本文在文献[3]基础上通过设置多个ROI区域的方法来减少整体运算量,使得计算速度在计算普通的设备上也满足需求。

2 问题描述

在中小汽车配件制造企业中,对成品使用人工检测的情况依旧很多,人工检测效率低,准确性差,存在着不小的隐患,人工检测的汽车塑料紧固组件如图1所示。

图1 汽车塑料紧固组件

该汽车塑料紧固组件除一边略微弯曲大致呈矩形外,其两宽长度也有略微差异。长约110厘米,宽25厘米。其颜色主要呈黑色,上有红色双面胶布涂层与黄色装饰。八个紧固卡扣呈白色,与汽车塑料紧固组件颜色为反色差。

2.1 基本定义

本文符号说明如下:

灰度(Gray scale)用于描述黑白图像中像素点从最黑的黑色到最亮的白色的具体数值,记为字母G,灰度可用于表示像素点能量的大小,由0表示能量最低的黑色,255表示能量最大的白色。

θ0表示作为标准模板的汽车塑料紧固组件的实际偏转角度,θ1表示之后被测件的实际偏转角度,θ表示被测件与标准模板的相对偏差角度,由式(1)可得:

2.2 检测原理

本文的检测过程原理框图如图2所示,具体步骤为:

1)汽车塑料紧固组件的标准模板,放在待检测位置,启动计算机视觉系统,自动识别汽车塑料紧固组件几何中心坐标、组合件偏移θ0角(其识别方法同步骤2),技术人员操作鼠标引导确认各紧固卡扣的中心坐标点,上述的信息将作为该类标准模板组合件的标准信息储存在计算机中。

2)传输带上的接近开关传感器,一旦检测到汽车塑料紧固组件,自动启动计算机视觉识别系统,获取被测汽车塑料紧固组件的外框信息四个边角点坐标、塑料组合件几何中心坐标及组合件偏移θ1角。

3)将步骤1所得的各紧固卡扣的中心坐标点,围绕汽车塑料紧固组件的几何中心旋转θ1-θ0度,与被测件上的紧固卡扣位置重合,接着在紧固卡扣位置上使用计算机视觉识别算法判断是否存在紧固卡扣。

本文致力于设计汽车塑料紧固组件检测与分拣系统,并使该系统在准确稳定的前提下具有较小的性能指标。为此,我们在检测开始前由人工操作鼠标的方式来确认各紧固卡扣的中心坐标点,相比由计算机根据紧固卡扣特征来定位紧固卡扣,这样节省了处理时间,且人工初次定位完成后就不需要后续操作,一切将自动完成。人工定位质量会对检测质量有一定影响,但只要定位时稍加注意,该影响便可降至最低。

图2 检测过程原理框图

3 主要流程

计算机视觉识别算法可分为三大部分:汽车塑料紧固组件的定位;紧固卡扣位置的定位;紧固卡扣是否存在的判断。

3.1 汽车塑料紧固组件的定位

步骤1:灰度与模糊化灰度化是将三通道的RGB图像转换为单通道的灰度图像,其方法为计算一个像素RGB三通道的算术平均值,设RGB三通道值为R、G、B,计算后灰度值为G,使用下面公式计算出灰度值G。

按照该计算方式遍历图像内所有的像素点,便可将一副RGB图像转换为灰度图像。

模糊化顾名思义,建立一个模糊的内核,可对图像进行模糊处理,这样能有利于边缘处理。这里使用高斯模糊内核,内核计算方式如下:

计算得出的高斯内核矩阵需要归一化,归一化后整个矩阵的和为1,这样卷积后的图像与原图像相比就不会出现整体变亮或变暗的情况。σ的大小代表着离散程度的高低,本文中取1.5。

设图像矩阵为h,原图像矩阵为x,结果为Y。卷积的结果发送给中心像素,遍历整幅原图像,便可以得到模糊后图像Y:

i,j,为任何可能的图像坐标点。

图3 灰度化与模糊化处理后

步骤2:二值化二值化作用是大致区分出图像的轮廓。这里使得超过门限的值为最大值,其他值为0。设门限为thresh,输出图片为dst,输入图片为src。

thresh值的大小会影响二值化后的图像质量,一般取60~100。

图4 二值化后图像(thresh=70)

图5 二值化后图像(thresh=40)

步骤3:开运算与fillHole算法开运算其实就是先腐蚀后膨胀的操作。其作用是去除噪声,平滑较大物体的边界的同时并不明显改变其面积。膨胀的数学表达如下:

将结构元素B按照z进行平移,B对A的膨胀是所有位移z的集合。

腐蚀的数学表达如下:

B对A的腐蚀是一个用z平移的B包含在A中所有点z的集合。

fillHole算法[4]用于填充开运算后图像中的孔洞,设原图像为A。

1)将图像A的外边缘向四周扩展1或2个像素,如100×100的图片延展后为102×102或104×104,对扩展出的额外像素赋值,其值大小与背景色保持一致,本文研究的背景色为白色,故将额外像素值赋值为0,为之后取反相加操作做铺垫,标记为B。

2)使用Opencv中自带的floodFill函数,该函数类似画图工具中的油漆桶,可将颜色相近的区域填充为指定颜色或标识出该区域,填充的起始点选为(0,0)即可,由于第一步步骤,该(0,0)点为扩展出的新像素,填充灰度值为前景色灰度值,即白色(255),标记为C。

3)将floodFill后的图像进行裁剪处理,裁剪回原来的大小,标记为D。

4)将D整体取反,此时原先的白色区域便反为黑色,黑色反为白色,取反后图像记为~D,将~D与原图像A的每个像素值对应相加,即E=A|(~D)。

图6 fillHole算法后二值化图像

步骤4:提取边缘首先使用Canny算法提取二值化图像的边缘,其算法逻辑为:

1)设置两个阈值,分别命名为阈值1与阈值2,其中阈值1的值小于阈值2;

2)遍历图像中的所有像素,低于阈值1的像素不会被标记为可能的边缘,高于阈值2的值会被标记为边缘。

3)若检测到1像素点大小在阈值1与阈值2之间,则对该像素周围的像素点进行判断,若该像素点与大于阈值2的像素点相邻,则被认定为边缘,否则不被标记为可能的边缘。

图7 Canny算法提取轮廓

接着使用FindContour算法与DrawContour算法,前者用于寻找闭合的边缘,后者用于绘制出寻找到的边缘图像,FindContour用来对数字二值图像进行拓扑分析。该算法是在确定二值图像边界的围绕关系,即确定外边界、孔边界以及他们的层次关系,由于这些边界和原图的区域具有一一对应关系(外边界对应像素值为1的连通区域,孔边界对应像素值为0的区域),因此我们就可以用边界来表示原图。该算法可以选择性的绘制图像的轮廓,将一些不符合条件(不闭合,或不是最外侧轮廓)的轮廓剔除。

3.2 紧固卡扣位置的定位

步骤1:对紧固组件位置的定位需要从轮廓中提取两个位置相关的信息,汽车塑料紧固组件的几何中心点与偏转角度。

使用空间矩的一阶矩来计算二值化后轮廓的几何中心点,图像由一个个像素构成,这一个个像素组成的图像可看成是一个大矩阵,矩阵中每一个元素也可视作一个二维变量,令该二维变量为(x,y),若图像为灰度图像,其灰度图可抽象为二维灰度密度函数来表示,因此可以用矩来描述灰度图像的特征,当该灰度图像经过二值化处理,其密度处处相等。

大小为M×N的数字图像f(x,y)的二维(p+1)阶定义为:

对应的中心矩为:

空间矩的实质为面积或者质量,可以通过一阶矩计算重心:

重心:

由于该图像已经被二值化过,所以计算所得的重心(x,y)就是组合件几何中心点。

图8 组合件几何中心点(红色圆点)

步骤2:计算紧固组件的偏转角度为计算汽车塑料紧固组件的偏转角度,需要获取4个边角点的位置信息,findHarris算法[5]:该算法用于寻找轮廓的特征边角点,根据该组合件的特征,选择它的四个边角作为特征点,拥有了这四个边角的坐标数据,就可以继续下一步计算。

关于边角点的具体描述可以有几种:

1)对图像边缘做偏导的一阶导数的极大值点所对应的像素点。

2)边角点处的一阶导数极大,二阶导数为0,说明物体的边缘变化方向不连续。

3)两条及以上边缘的交点。

4)图像中一阶偏导变化速率很快的点。

图像像素点上值的变化,即图像灰度梯度的变化与边角点的判断息息相关,考虑到一个灰度图像I。划动窗口w(x,y)计算像素灰度变化。

其中,w(x,y)是窗口所在坐标,I(x,y)是图像上坐标点的灰度强度,I(x+u,y+v)是窗口上变化的坐标点上的灰度强度。

为了在图像中精准的识别出边缘图像的边角点,需要对像素灰度值梯度较大的窗口进行定位,于是有以下期望最大化公式:

使用泰勒展开式:

式子展开为:

将上式表达为矩阵的形式,表达式写为:

表示为:

可得等式:

每个窗口中计算一个值,这个值决定了这个窗口中是否包含了边角点。

其中:

一个窗口,它的分数R大于一个特定值,这个窗口就可以被认为是“边角点”。上面E(u,v)可以看出,无论u,v取何值,我们需要E尽可能的大。

图9 边角点(蓝色圆点)

由4个边角点的坐标确定组合件的水平偏移角度,图10中水平线段的端点为短边两侧的两个边角点的中点。

如图,蓝色的线便是相对于组合件的水平线,设其左侧点为(xl,yl),右侧点为(xr,yr)。

图10 移角度为9°

斜率计算:

图片中组合件实际偏移角度计算:θ1=tan-1k。

要注意的是,相对偏移θ角度是当前被测组合件的角度θ1减去标准件所测角度θ1,即:

(在实际工程中,汽车塑料组合件的偏移θ1角度不会过大,最多为15°)。

计算机视觉系统自动计算被测汽车塑料组合件与标准位置的偏移θ角,θ=θ1-θ0。

步骤3:追踪紧固卡扣位置设标准汽车塑料组合件紧固卡扣坐标为(x',y'),变换后坐标为(x,y),旋转中心为(x0,y0),旋转角度为θ,标准模板几何中心与被测组合件几何中心的坐标差值为(xa,ya)。

通过以上变换,紧固卡扣坐标便能跟着组合件一起偏移,实现了对组合件紧固卡扣位置的重新定位。

3.3 紧固卡扣存在判断

步骤1:构建正方形检测区域以旋转偏移θ角后的各紧固卡扣的位置坐标作为中心点,计算该中心点周围正方形小区域的图像像素累加和。通过所求得的各紧固卡扣的中心位置周围正方形小区域的图像像素累加和的值,判断紧固卡扣是否缺装。

设正方形小区域边长为L,紧固卡扣的中心位置为(x0,y0),则正方形左上角坐标P为:

步骤2:在正方形区域中进行判断由左上角坐标P和边长L,便可构建此正方形小区域。该正方形小区域可看作L×L的矩阵,并计算所有像素点累加和S:

S≥Thresh,则该区城有紧固卡扣;S<Thresh,则该区城无紧固卡扣;

如图11所示,分别是安装了卡扣的与未安装卡扣处理后的对比图。

图11 卡扣有无对比图

判断后,有卡扣的位置用绿框表示,无卡扣的位置变成红框。

图12 有卡扣无卡扣

3.4 算法总结

该算法主要内容集中在对汽车塑料紧固组件上紧固卡扣位置的定位上,计算机会将第一个检测的紧固组件作为标准模板,标准模板的信息将一直保存在计算机中,通过旋转、平移标准模板的紧固卡扣位置坐标,就可以使之与之后被测件的紧固卡扣位置重合,然后在被测件的紧固卡扣位置上进行紧固卡扣的存在判断,图片在算法运行中的流程图如图13所示。

4 运行示例与结果分析

为了验证检测方法的有效性,本小节给出相应的运行实例与结果分析。

图14展示了视觉程序对3个汽车塑料紧固组件的检测,其中第一幅图片为标准模板。

图13 检测流程图

首先用蓝色方框框选需要检测的范围,这个步骤可以减少运算总量,提高程序的运行速度,接着用鼠标点击白色紧固卡扣的所在位置,确保紧固卡扣在生成的方框内,就可对接下来的被测件进行检测。

图14 运行示例图

该检测方法在实际应用中表现出色,在光照不稳定的非工厂条件下也能完成对紧固卡扣的识别。

图15 测试时画面

表1为总数为100次的检测实验,将现有的几个被测件乱序循环放入检测区域检测。

表1 检测结果

其中两次不准确的原因为光照条件不足导致的定位不准确,该检测方法在光照良好情况下将有最好表现。

目前该检测方法已被相关企业采用,检测速度与精度都满足生产要求。

5 结语

本文设计了对汽车塑料紧固组件上紧固卡扣的一种检测方法,通过比较各种检测策略,选择适合本文的最优检测方法,设计出紧固卡扣位置追踪算法。最后通过理论分析和实际测试,验证了本文检测方法的有效性,该检测方法最终被采用。

猜你喜欢

卡扣边角灰度
基于仿真分析的墙壁插座侧边缺口面板非对称卡扣同时脱扣研究
采用改进导重法的拓扑结构灰度单元过滤技术
应用旋转的性质求边角
边角双核互相转,环环相扣不变心——解三角形经典题突破
一种新型连接器卡扣
公交车逃生窗为什么要砸边角处
车用塑料卡扣巧拆装
基于力学分析的汽车车灯卡扣结构优化设计
别样风景“边边角”
基于最大加权投影求解的彩色图像灰度化对比度保留算法