火花塞端面缺陷自动检测算法设计
2019-02-25杜晓辉倪光明刘娟秀
杜晓辉,刘 霖,张 静,倪光明,刘娟秀,刘 永
(电子科技大学 光电科学与工程学院,四川 成都 610054)
0 引 言
在火花塞的生产线中,火花塞端面表观缺陷的检测常常由人工完成,生产没有真正达到标准化和自动化。基于人眼的检测,人为影响因素大,且长时间目视容易引起视觉疲劳,造成误检或者漏检。此外,人眼的检测并没有一个合理的检测标准,对于缺陷的检测往往通过经验来判断,不符合生产的标准化、规范化的要求。
随着机器视觉的发展,为火花塞端面表观缺陷检测提供了一个可行的解决方案。但是,由于火花塞的生产并非无尘生产,端面常伴有油污、粉尘等类似缺陷的杂质,对于缺陷的提取和检测提出了更高的算法要求。
目前,应用于火花塞的端面缺陷检测算法并未见报道,但应用于金属缺陷检测领域的机器视觉算法却不断在改进。2009年,电子科技大学摩米实验室研制的子弹表观缺陷检测系统,首次将机器视觉引入弹壳表观缺陷检测[1]。2013年,中国地质大学实现了应用在钢铁领域的带钢板表观缺陷检测系统[2];同年,电子科技大学实现了PCB的表观缺陷检测,该算法的实现为复杂环境下目标缺陷的提取提供了很大的借鉴意义[3];2014年,北京交通大学通信和信息系统重点实验室研制了地铁隧道自动裂缝检测和分类系统[4];江南大学实现了金属制罐焊缝缺陷检测系统[5]。尽管这些算法对于火花塞端面的缺陷检测具有借鉴意义,但是,由于检测需求的不同,在一定程度上并不适用。首先,火花塞端面缺陷检测的主要对象是火花塞端面的凹坑及划痕缺陷;其次,缺陷的判定条件不同,由于火花塞端面为一环形,缺陷大小的判定需要增加计算缺陷在径向方向的长度;再次,火花塞生产线工艺较多,生产线环境恶劣,其上面的油污极易附着灰尘等杂质。综上这些因素都对检测算法提出了更高的要求。
因此,文中提出了一种面向火花塞端面缺陷检测的算法。算法首先对端面的圆环区域进行提取,之后根据其缺陷特征进行了坐标变换,然后利用形态学方法进行滤波提取缺陷及类缺陷杂质区域,最后对提取的凹坑缺陷和杂质进行特征提取并用机器视觉方法进行识别。
1 基本原理
1.1 检测系统概述
火花塞端面缺陷检测系统采用在线检测的方式,在原生产工位加装检测装置,对存在缺陷的次品进行在线式剔除。检测速度和生产线的前进速度严格保持一致。该检测系统光学部分由五百万像素工业相机、远心镜头以及定制的同轴光源组成。由于壳体环形端面在火花塞的中部,端面上方有一段长约35 mm,直径约13 mm的螺纹轴,故初步设计采用远心镜头。如果采用普通工业镜头,由于普通工业镜头存在一定的视场角,壳体端面上方的螺纹轴会对端面的检测造成影响,会使得端面在CCD上的成像变得模糊且面积缩小。而远心镜头却不存在视场角,这对端面在CCD上的成像非常有利。
1.2 检测算法
由光学系统采得的图像如图1所示。
其端面检测区域如图1中圆环所在区域,检测时圆环的提取为第一步。由于端面缺陷的判定标准为缺陷大小在径向方向长度大于某个阈值,因此,将圆环进行坐标变换,转换为矩形,即将圆环展开,这样在环向方向尽管有拉伸,但并不影响缺陷的提取。经过一次滤波后,通过形态学方法提取缺陷及类缺陷杂质区域,最后通过提取特征值及人工智能的方式进行识别区分。
图1 火花塞端面检测光线成像系统所采图像
1.2.1 感兴趣区域提取
由图1可知,相机采得的图像具有一定的杂质背景,只有圆环为检测的感兴趣区域。圆环提取常用的方法是霍夫变换,但是由于霍夫变换提取的效率低,文中采用了一种改进的霍夫变换用来提取圆环。
首先,对灰度图像进行二值化[6-9]。由于系统的打光方式是采用过饱和方式,因而二值化采用固定阈值二值化方法,如式1:
(1)
其中,T为分割阈值;fT(x)为分割结果。
在用面积过滤掉部分杂质点后,采用下述方法求取圆心:
(1)扫描图像,寻找图像每行像素的左右端点;
(2)求取每行像素左右端点的中心,并对所有行中心求均值即为圆心行坐标;
(3)同理,扫描每列,对所有列的中心求均值即为圆心纵坐标。
为了求取外圆的半径,采用霍夫变换方法[10]:
(1)对图1中的图像用Sobel算子进行边缘检测;
(2)设定外圆半径范围rmin和rmax;
(3)求取边缘图像中每个亮点到圆心的距离,并对距离位于rmin和rmax之间的数值进行统计;
(4)统计数值中最大为圆环的外圆半径。
由于圆环宽度固定,因而可以根据外圆半径求得内圆半径:
(2)
其中,R为外圆半径;r为内圆半径;L为圆环宽度;d为边缘图像中各亮点到圆心(cx,cy)的距离;Nd为距离的统计。
最后,可根据圆心及半径信息对圆环进行提取。
1.2.2 坐标变换
为提取符合缺陷条件(长度沿径向方向过长)的凹坑或者杂质,通过极坐标变换将圆环展开,展开方法如下式所示:
(3)
其中,x和y分别为展开后矩形图像的位置信息;x'和y'分别为展开前圆环的坐标信息。
1.2.3 缺陷及类缺陷杂质提取
由于图像中黑点杂质的存在,故在进行缺陷提取前需要对图像进行滤波[11-14]。文中采用中值滤波的方式,如下式所示:
f'(x)=med{xn|xn∈W}
(4)
其中,xn为所要进行处理的像素点;W为以xn为中心的窗口;f'(x)为W窗口中所有像素的中值。
展开后的矩形图像中的主背景为亮色,文中采用了局部阈值分割法对其进行二值化,如下所示:
(5)
其中,f(x)为分割前的像素值;W为以xn为中心的窗口;s(x)为分割后结果;H和L分别为极端阈值;h和l为相对阈值。当满足上述四个条件时分割为1,否则为0。
二值化的图像中存在许多杂质点及杂质条纹,文中采用形态学方法对其进行滤除。
首先,对图像进行横向膨胀,使得断开的凹坑可以连在一起;其次,对图像进行纵向腐蚀,腐蚀大小根据缺陷大小的判定来确定,通过腐蚀可以滤除条纹杂质;然后,对图像进行横向腐蚀;最后,对图像进行纵向膨胀,以完成前两步的闭合操作。
经过上述滤波,图像中剩下了凹坑缺陷以及类缺陷杂质。
通过对上图进行联通域标记,可以在矩形图中得到其对应的缺陷位置及形态,如图2所示。
图2 火花塞端面检测缺陷提取效果图(1)
1.2.4 缺陷特征提取及识别
缺陷及类缺陷杂质经上述步骤后提取如图3所示。
图3 火花塞端面检测缺陷提取效果图(2)
其中,图(2)、(3)、(4)、(6)、(9)为缺陷,(1)、(5)、(7)、(8)、(10)为类缺陷杂质。从图中对比可以发现,缺陷凹坑和类缺陷杂质具有明显的梯度差异。缺陷凹坑的边缘信息比较多,因而梯度较大的点多,梯度信息在梯度较大时统计数目多,如图4中(b)、(d)、(e)所示。类缺陷杂质一般是由于油污等杂质造成,其图像上表现为不均匀,反映到梯度信息上是梯度较光滑,如图4中(a)、(c)所示(统计横坐标范围为梯度最大值的一半到梯度最大值)。
在数据处理之前,对数据进行归一化,归一化方法如下:
首先,选取梯度统计的后100个数据进行特征识别;
其次,利用下述公式进行归一化[15]:
(6)
文中选取了其中4个较为明显的特征[15]:
(1)梯度直方图三阶矩,用于描述直方图的偏斜性度量:
(7)
其中,zi为数据;m为数据均值;p(zi)为该数据值的概率。
(2)数据之和,由于统计图中缺陷统计图包含信息量小,而杂质的信息量大,故选取该度量:
(8)
(3)非极大均值,即去除极大值后其余数据均值:
(9)
(3)极大值位置:
pos(max(zi))=POS(zi=max(zi))
(10)
图4 火花塞端面检测缺陷及缺陷梯度统计图
表1给出了上述5幅图像中的4个特征值。
表1 5幅图像的特征值
从表1可以发现,对于缺陷其梯度直方图三阶矩较类缺陷类杂质的数值绝对值大一个数量级,数据之和通常较小,非极大均值较大。此外,类缺陷类杂质通常具有多个极大值,而缺陷只有一个。
对于缺陷与类缺陷杂质的分类方法,文中采用了逻辑回归模型。逻辑回归模型[16-17]是一种二分类的分类器,是机器学习领域监督学习的一种分类算法,用于估计事物的可能性。其本质是一组权值w0,w1,…,wm。当测试样本数据到来时,这组权值按照线性加权求和的方式得到一个z值:
z=w0+w1*x1+w2*x2+…+wm*xm
(11)
其中,x1,x2,…,xm是某样本数据的各个特征,维度为m。
之后按照sigmoid函数的形式求出:
(12)
由于sigmoid函数的定义域是(-INF,+INF),而值域为(0,1)。因此最基本的LR分类器适合于对两类目标进行分类。逻辑回归分类器训练的过程就是求权值的过程,使得期望输出与实际输出的差值最小。文中采用极大似然估计法(MLE)求得迭代关系式:
(13)
2 检测结果与分析
根据上述理论,选取了50个缺陷及类缺陷杂质作为样本进行训练,其中31个样本为缺陷样本,其余19个样本为类缺陷样本,每个样本具有梯度直方图三阶矩、数据和、非极大均值等三个特征值,并取学习率为0.5。将样本输入训练器,经过6 059次迭代后,权值的损失小于设定的阈值0.001,即
(14)
此时,计算得出权值如下:
(15)
故得到逻辑回归模型为:
(16)
当σ(z)的值大于等于0.5时,判定为缺陷,否则判定为杂质。文中选取了5组测试样本,每组有100个测试样本进行测试。检测结果如表2所示。
表2 样本检测结果
从表2可知,将杂质检测为缺陷的样本共有5个,误检率为1%,漏检缺陷样本有1个。完全达到了检测需求。
由于杂质背景的存在,这些杂质背景主要为油污所致,具有不规律性,因而导致其梯度统计直方图与实际缺陷的梯度统计直方图类似,可能会导致误检。
导致漏检的原因是由于缺陷融合在杂质背景中,其梯度变化不明显,导致梯度统计直方图不具有缺陷的特性。
3 结束语
火花塞端面缺陷检测一直是机器实现自动化过程中从未涉猎的课题。文中基于火花塞端面的缺陷检测需要,设计了一种基于机器视觉的火花塞端面缺陷检测算法。该算法从采图开始,逐步进行了感兴趣区域提取、坐标变换、图像中值滤波、局部阈值分割、形态学滤波等处理,提取了缺陷以及类缺陷杂质。最后,通过分析样本图像的梯度信息,构建梯度统计直方图,提取了样本的主要显著特征,然后利用人工智能的机器学习算法——逻辑回归模型进行了分类。结果表明分类结果很好,完全达到了工业生产的需求。然而,对于误检和漏检的样本,仍需进一步分析其特性,改进算法,以更好地降低误检率和漏检率。