基于PSO改进BP神经网络算法的金属表面缺陷分类
2018-07-21杨彩霞陶志勇
杨彩霞,张 锦,陶志勇,王 莹
(1.湖南机电职业技术学院,长沙 410151;2.湖南师范大学,长沙 410000;3.长沙民政职业技术学院,长沙 410000;4.湖南中医药大学人文与管理学院,长沙 410208)
0 引言
零件质量检测技术是机械装备生产与制造过程的重要环节,目前,国内主要还处于以人眼结合测量仪器对产品加工质量进行抽检的阶段,而据科学统计,人目检测的稳定性只有80%,同时存在效率低下、成本大等问题,因此开发合理的金属表面缺陷在线检测与分类系统可以提高机械装备业的整体生产力水平。
金属表面缺陷分类具有复杂多变、非线性因素高等特性,国内外学者较多的采用神经网络分类法,Mohammad Reza Yazdchi、Ge-Wen Kang等研究者将神经网络运用于轧钢表面缺陷检测,获得了一定的检测效果[1,2];东北大学韩英莉、颜云辉[3]以及苏州大学仲兆准、谢光伟[4]提出了基于BP神经网络带钢表面缺陷识别和分类法。BP神经网络算法属于局部寻优算法,训练学习时间较长,容易陷入局部极小值;粒子群算法从随机解出发,通过不断更新例子的位置和速度,寻找网络的全局最优解,可以防止BP网络陷入局部极值,提高网络收敛速度和计算效率[5,6]。为了验证模型准确性,采用自适应阈值分割法实现工件缺陷分割,获得了较好的分割效果,计算缺陷纹理特征向量,利用MATLAB软件和计算的样本数据计算并验证缺陷分类模型,结果表明提出的缺陷分类方法合理有效。
图1 PSO-BP算法寻优流程
1 基于PSO改进BP神经网络算法的缺陷分类
1.1 金属工件缺陷分类BP神经网络建模
本系统主要研究金属工件表面孔洞、划伤、壳状凸起等典型缺陷。由于BP神经网络算法具有较强的非线性逼近能力,利用该算法可以建立特征向量与缺陷分类结果之间的3层网络数学模型:将图像的缺陷特征向量Xi作为为输入层,将缺陷分类结果划伤(Y1)、孔洞(Y2)、壳状凸起(Y3)3类缺陷作为网络输出层,网络输出层有3个神经元,Y1的理想输出结果为001,Y2的理想输出结果为010,Y3的理想输出结果为100。
1.2 PSO优化BP神经网络模型
为了获得更精确的网络模型,将PSO算法和BP算法结合起来,采用PSO算法改进BP网络。PSO-BP算法是通过PSO算法按照一定的规律不断改变BP网络的权值参数,找到全局最优解,计算过程如图1所示。
2 缺陷样本采集过程
2.1 试验过程
为获得缺陷的试验样本数据,采用照明装置、CCD传感器、计算机等设备构成检测系统。为了最终获得图像缺陷特征向量,需要经过如下试验过程:
Step 1:利用CCD传感器实时获取原始图像;
Step 2:对原始图像进行预处理;
Step 3:对预处理图像进行图像分割处理;
Step 4:根据图像分割结果计算缺陷特征向量。
2.2 图像预处理
在金属工件图像采集过程中,由于环境等因素会对采集的图片产生噪声干扰,需对原始图像进行预处理——一方面过滤图像噪声,另一方面可以弱化缺陷图像的背景纹理,以便剔除伪缺陷,达到更好的检测效果[7]。采用灰度化和中值滤波方法对原始图像预处理,如图2所示。
图2 图像预处理
2.3 缺陷图像分割
由于金属零件的标准件图像灰度值较均一,变化度小,因此可以考虑灰度阈值分割法分割缺陷[8],但是不同缺陷的灰度值分布范围不同,不能对所有的缺陷都统一采用同一个阈值来分割缺陷。采用自适应迭代阈值分割法对预处理图像分割处理,分割结果如图3所示,由图可见分割效果较好。
图3 自适应阈值分割结果图像
2.4 缺陷特征值的选择与计算
对于金属工件缺陷图像而言,颜色特征通常对其分类影响不明显,因此选取图像的纹理特征来实现缺陷分类,先计算图像的灰度共生矩阵GLCM,根据矩阵计算其特征向量:能量E、相关性En、熵Cor和对比度值Con,由以上四个特征值作为图像的缺陷分类依据,同时该计算结果为神经网络的输入层数据。图3中的3种缺陷特征值计算结果如表1所示。
表1 图2缺陷特征值计算结果
3 试验验证与分析
3.1 试验验证
在划伤、孔洞、壳状凸起三类缺陷样本数据中各选择30组数据作为建模样本,对其进行BP神经网络训练和PSO-BP网络训练,训练过程如图1所示,分别计算出BP和PSO-BP数学模型。
为了验证算法的准确性,在三类缺陷样本中各选取20组作为测试样本,根据所建立的BP模型和PSO-BP模型,计算其分类结果(Y1、Y2、Y3的值),每一类缺陷的理想输出值为1,以0.5为匹配分界线,当实际计算结果大于0.5则认定为存在该类缺陷,当结果小于0.5则认定为不存在该类缺陷:以划伤缺陷的20组测试样本计算结果为例,对比分析BP分类结果和PSO-BP分类结果,如图4所示。
图4 BP分类和PSO-BP划伤缺陷分类结果对比
3.2 试验结果分析
从图4可看出,BP算法划伤缺陷分类准确率为85%,而PSO-BP算法划伤缺陷分类准确率为90%,同时PSO-BP分类相对误差明显低于BP分类的平均误差,可见PSO-BP模型准确度更高。三类缺陷测试样本共60个数据的分类计算结果如表2所示。
表2 缺陷分类结果
从分类结果可看出,PSO-BP缺陷分类准确率在85%以上,且分类准确率明显高于BP分类法,分拣率总体能满足工业缺陷检测分类要求。
4 结论
本文设计了一种金属工件表面缺陷检测线检测与分类系统,利用中值滤波、阈值分割、特征提取、图像分类等图像处理方法,对金属工件表面的缺陷图像实现机器视觉检测与识别,建立了特征向量和缺陷结果之间的BP和PSO-BP网络数学模型,试验对比分析了BP分类和PSO-BP分类结果,验证结果表明PSO-BP算法缺陷分类可靠性更高,能满足工业生产需求。