郑晓玲
(黎明职业大学 智能制造学院,福建 泉州 362000)
目前,在生产过程中检测管的缺陷较多地是采用人工目视检测法,当管在传送带上移动时,操作者必须逐个仔细检查。因此,当产品数量略有增加时,生产率就会大大降低。利用机器视觉技术正确检测出表面缺陷,是提高管材的生产效率和产品质量的关键。国内外在利用机器视觉技术自动检测表面缺陷上已取得一定的研究成果。孙雪晨等[1]通过邻域加权分割和标记投影来实现凸轮轴表面的缺陷识别。马凤春[2]提出一种核函数的组合方法, 并且研究主成分分析对图像特征提取后进行训练的识别率, 结果显示分类器的识别率达到了91.55%。但该研究没有进行目标区域的分割提取, 而是直接将目标区域与背景一起作为特征进行训练, 不仅训练速度较慢, 准确率也会受到影响。Choi等[3]使用Gabor-flter组合方法检测钢板中的接头裂纹,分类准确率为94.46%。Kuo等[4]研究图像处理技术和神经网络在LCD面板彩色荧光粉表面缺陷检测中的应用,显示分类神经网络适用于表面缺陷的检测。由于缺陷的表面特性、缺陷区域特征、产品材料类型、制造条件等原因,利用机器视觉技术自动检测表面缺陷在管材制造中的应用仍然存在局限性,目前国内外该方面的研究成果较少。课题组在上述研究的基础之上提出一种基于特征向量和神经网络的管缺陷自动检测系统,有效实现对管表面缺陷的自动识别。但管缺陷自动检测的一个难点是区别图像中尺寸较小的缺陷和噪点,尤其是边缘缺陷。基于此,本文提出一种改进的缺陷检测算法,引入基于曲率分析的标志点定位方法,拟提供更准确的缺陷轮廓检测,并且利用照明系统提高图像质量,对算法进行辅助,以减少环境噪声的影响。
环境中的噪点是干扰检测结果的重要因素之一[5]。利用照明系统提高图像质量、减少噪点干扰一直是机器视觉检测领域的研究热点。Jeon等[6]提出一种结合滤波技术的光照法进行钢表面的缺陷检测,但这种方法对其他类型的缺陷并不适用。缺陷区域的表面特征因各种因素而异,如材料的类型和制造条件,因此,每种缺陷都具有各自的特征。用于检验的照明系统应能做到最大限度地突出感兴趣的缺陷区域,弱化其他区域之间的对比度[7]。
选择圆顶灯作为检测系统的光源。圆顶照明或全亮现场照明通常用于高亮度或混合反射的待检测表面,也可用于多向照明。双保险丝圆顶灯在弯曲表面和汽车工业中常见的反射表面都有较好的效果。所选照明系统的示意如图1所示。
当光线照射到待检测件表面时,由于缺陷的表面凹凸不平,部分光线被散射,而其余的光线被反射回相机。在采集到的图像中,只有在检测区域可以观察到低强度和高强度。低强度区域是表示缺陷区域的黑色图案,而与缺陷的大小、方向或形状无关;高强度区域为代表背景的白色图案。
因此,使用圆顶灯可以较容易地检测出各种受尺寸、方向限制而产生的缺陷,并可以通过观察这些黑白图案来确定形状。然而,在某些实际情况下,检测区域会产生黑色图案,原因是环境亮度的差异和检测区域的粉尘。因此,在获取图像过程中防止不必要的光照变化,对于一个健壮的检测系统至关重要。
管缺陷检测算法流程如图2所示。
检测结果示意如图3所示。
在算法的第一步中,根据相机获取的管表面图像图3(a),对管道和外围区域进行分析。在检测区域,黑色图案代表缺陷和噪声,白色图案代表正常管背景。对相机获取的图像应用一个高斯差(DOG)滤波器来去除噪声和改进错误字符。DOG是通过将图像与不同尺度的高斯滤波器进行卷积来实现的。因此,基于DOG的最大值或最小值,从多个尺度中提取关键点。
通过对滤波后的图3(b)进行形态学处理,生成二值图像。基于二值图像图3(c)对表面缺陷进行分类。在这一步中,提取缺陷的边缘,对缺陷的特征进行综合分析,提取特征(面积、长度、主力矩的比值)后将特征输入到分类器,可以识别出划痕100、划痕50、深纹、损伤凹痕这4种类型的表面缺陷。
基于二值图像图3(d),使用数据约简算法和地标点检测适当地实现关键点定位,如图4所示。
在此阶段,提取特征(面积、长度、标志点)并输入分类器。利用该技术可以识别重划痕、点蚀≥3、点蚀≤2和划痕≤50这4种类型的边缘缺陷。
在训练阶段,特征存储在数据库中识别并根据类进行选择。由于数据库已经明确建立起来,训练阶段则从使用人工神经网络阶段开始。当训练完成后,预处理步骤中按特征对缺陷特征进行排序,输出模块显示结果。
局部特征提取与表示是系统分类的关键。为了提高模型的性能,对各种轮廓去除函数进行了严格的测试,以确定这些轮廓是否存在缺陷。详细研究并选取缺陷的面积、周长、标志点K的个数、主力矩比值4个特征为描述缺陷的特征向量,作为分类器的输入。
2.1.1 面积
在计算机图像学中,所谓轮廓面积,具体是指在此范围之内图像的像素点总数量,一般情况下,可通过下式求出面积值
(1)
其中,(x,y)为像素相对于坐标像素的位置。
2.1.2 周长
区域周长的定义是该连通的区域最小外包围轮廓线的长度值,可以用链码跟踪搜索的方法来计算。当链码值Ne为2n时, 搜索的方向为水平方向的 (45+k×90)°夹角;当链码值Ne为2n+1时,搜索方向为水平方向的k×90°夹角。在这个过程中,每一次向前搜索一个像素点,周长的值累加1,即周长可表示为
(2)
2.1.3 标志点K的个数
标志点作为缺陷边界上的一个关键点,可以用来表示缺陷形状。利用这些关键点来识别形状作为关键特征,对缺陷进行比较。通过对数据集的曲率函数分析,准确计算出管材缺陷的标志点。曲率函数中顶点位置的最大值/最小值计算公式
(3)
式(3)中,Xt,Yt和Xtt,Ytt是X和Y的第一阶导数和第二阶导数。曲率函数对凸顶点产生正的结果,对凹顶点产生负的结果。这两个顶点都能很好地用于描述标志点。
λmin和λmax为协方差矩阵C的最小和最大特征值
C=E(p-mp)(p-mp)Tmp=Ep。
(4)
其中:E为期望算子;p为封闭区域的像点;特征值λmin和λmax测量形状的主、副轴的点分布;主力矩的比值表示这些点沿主轴的密集程度。期望特征选择方法的目的是在面积、长度和主矩比之间找到最佳的候选特征。
神经网络是目前机器学习中最好的近似函数。利用线性神经网络进行多类分类是二元分类结构的逻辑扩展。Yang等[8]提出一种求解多类分类问题的二元方法,对三分类问题有较好的结果。基于此,提出一个神经网络四类分类问题的解决方案用于管缺陷检测。
使用一个三层的前馈神经网络来处理每种类型的缺陷,给定输入x= (x1,…,xn)T∈Rn,输出向量o= (o1,…,on)T∈Rn
ok=f(Wky-b) =f(∑mj=1Wkjyj-b),k= 1, … ,p。
(5)
其中,y= (y1,…,yn)T∈Rm是隐含层的输出。距离误差采用均方误差法测量
(6)
其中,zn= (z1,…,zn)T∈Rn是数据集的期望输出,V=(Vj1T,Vj2T, … ,VjmT)是j=1,2,…,m时连接输入层和隐含层的权值矩阵。Wk= (Wk1,Wk2,…,Wkm)是k= 1,2,…,p时隐含层与输出层之间的权值矩阵。基于梯度下降的权向量更新规则为
(7)
(8)
式(7)和(8)中,l=0,1,2,…;k=1,2,…,p;j= 1,2,…,m;i= 1,2,…,n。
通过对采集的数据集进行试验,检验该管缺陷检测算法在管材边缘缺陷和表面缺陷检测中的准确性。
从工厂收集124个样本,随机选取70%(86个样本)的数据集值进行神经网络的训练,15%(19个样本)的数据集值进行验证。神经网络的性能是根据神经网络的实际输出与期望输出之间的MSE(均方误差)来确定的。训练目的是使MSE降低,MSE最好为10×e-5。
为满足质量控制,将缺陷类型分为良、不良两类,不良组缺陷的状态和位置由软件显示在屏幕上。图5为样本及部分试验结果。
其中,图5(a)为良品,图5(b)~(f)为有缺陷的不良样品。红色和绿色的圆圈分别表示边缘和表面缺陷。
在实际测试之前,先进行神经网络分类器的训练。对训练数据集中的边缘缺陷提取面积、长度、标志点3个特征向量作为神经网络系统的输入向量;对表面缺陷提取面积、长度、主力矩比值3个特征向量作为神经网络系统的输入向量。计算实际输出和期望输出的误差,将误差反向传播,循环训练过程,直至误差等于或者小于10×e-5。训练结束后,对边缘缺陷和表面缺陷各测试19个样品。基于特征向量和神经网络学习的对重划痕、点蚀≥3、点蚀≤2、划痕≤50这4种边缘缺陷识别性能,如表1所示。
表1 边缘缺陷识别结果%
结果显示,算法对前两组(重划痕组,点蚀≥3组)具有很好的分辨力,测试样本中所有的这两类缺陷都被成功地检测出来。而其余两组(点蚀≤2,划痕≤50)的识别性能相对较低。其原因是对这两类缺陷的形态和噪点的形态较为相似,识别结果易受到噪点和环境照明的影响,存在一部分缺陷被误识别为噪点的现象。
同样,算法对划痕100、划痕50、深纹、损伤凹陷这4类表面缺陷的检测结果如表2所示。
表2 表面缺陷识别结果%
表面缺陷神经网络检测系统由3个特征向量(面积、长度、主力矩的比值)作为输入,10个神经元作为隐层,4个神经元作为输出层,分别代表表面缺陷的4种类型。试验结果显示,对划痕100的缺陷类型达到100%的识别率,而其他类型缺陷因尺寸较小,所以较易受到工作区域噪音、污物和灰尘的影响,存在一定的误识率。
本文提出一种基于特征向量和神经网络的管材表面缺陷自动检测算法,在有限的数据集和照明条件不稳定的情况下,研究几种常见缺陷的特点。通过不同特征向量表示来描述它们在图像中的特征,并将这些特征向量作为神经网络的输入,成功地对缺陷进行了检测和分类。该算法可以很好地工作在精细和粗糙纹理的表面,在实际测试中的平均准确率达到95%。