刘瑞媛 茅 健 陆文超
(上海工程技术大学机械与汽车工程学院 上海 201620)
零件在制造过程中不可避免地会产生各种缺陷,如尺寸偏差、磕伤、裂纹、划痕、表面污染等,这些缺陷是导致系统运行故障的重要因素,在高精密系统中更为严重,如汽车发动机内部分精密部件,外观缺陷检测是不可缺少的环节[1]。传统的检测依赖人工的手段,检测精度不高且影响因素较多,因此,提高精密零件检测精度势在必行。
机器视觉检测因其自身稳定性好、适用范围广、非接触测量等优点,被广泛应用于检测领域[2~4]。目前,已有研究将机器视觉系统用于汽车精密零件缺陷检测过程,厉晓飞[5]设计了一套完整的基于机器视觉的汽车零件缺陷检测系统,包括光源、相机等硬件设备的选择和布置,以及图像处理技术的研究和基于LabVIEW 的软件系统的编写,实现了汽车零件的在线检测;刘艳雄等[6]针对汽车精冲零件断面缺陷,设计了基于机器视觉的检测硬件设施和图像处理技术,通过二值化处理分离缺陷,计算缺陷面积来判断零件是否合格。俞晓明等[7]针对精密零件,选取OTSU 算法进行图像分割,采用像素级和亚像素级边缘检测,以汽车圆孔零件为实验,实现了精密零件缺陷的完整检测。
本文提出了利用Otsu 改进Canny 算子来分割缺陷图像,Hu 矩提取缺陷及运用SVM 进行缺陷分类,实现对汽车精密零件缺陷的识别方法。搭建了精密零件外观缺陷检测平台,选取了合适的相机及光源等硬件设备,并且利用汽车精密零件进行仿真实验。实验结果表明该方法可有效识别精密零件外观缺陷图像,并对其进行分类,且具有较高的检测率和准确率。
针对汽车精密零件的外观缺陷检测方法的主要步骤如下。
1)利用CCD 相机及机械结构部分协同工作获取缺陷图像;
2)利用小波变换进行图像预处理,去除图像噪声;
3)利用改进的Canny 算法分割图像缺陷,其中,Otsu算法用于确定Canny算子中的最佳阈值;
4)利用Hu 矩进行特征提取,得到缺陷特征的长度及面积参数;
5)将样本参数用于训练SVM 分类器,使其可以对缺陷进行识别分类。
流程图如图1所示。
图1 缺陷检测方法流程图
图像在生成、传输或者变换的过程中不可避免地会与原始物体产生一定的差异,尤其在工业环境下,外界环境中光线、噪声带来的影响会导致图像质量的下降、特征比较模糊。因此,对于使用CCD相机采集到的图像需要进行降噪处理。相比于传统的中值滤波和均值滤波[8],小波变换由于其特有的可变分辨率特性,可以更好的根据图像特征进行降噪[9~11]。本算法采用Haar 小波,选择的分解层数为两次。以汽车转向器内部套筒缺陷图像为例,通过Matlab软件进行仿真,可以得到三种不同滤波效果,如图2 所示,均值滤波和中值滤波会造成零件图像边缘的损失,如图中标注位置,小波降噪后对图像边缘保有性更好。
图2 降噪对比图
图像分割依赖于边缘检测算子来提取图像边缘,传统的边缘检测算子一般有Roberts算子、Sobel算子等[12],但是它们对噪声敏感,难以直接应用。因此,选择最佳边缘检测算子Canny 算子,但是考虑到Canny 算子中阈值的设定复杂[13],本算法中采用Ostu算法替代传统的双阈值算法求出最佳阈值,对算法进行优化改进。
改进的Canny算法的步骤如下。
1)高斯滤波平滑图像
在小波去噪的图像基础上,采用Canny 算法中的高斯滤波对图像进行进一步平滑处理,其中,高斯滤波的函数公式如(1)所示。
用高斯函数处理后的图像的原理公式可得:
2)计算梯度的幅值及方向(利用一阶偏导的有限差分)
采用2×2 邻域内求有限差分均值来计算平滑后的数据阵列,梯度算子为一阶导数。设图像函数为f(x,y),则它的梯度定义为
幅度值和方向角分别为
3)进行梯度非极大值抑制
给定梯度幅度图像矩阵之后,利用梯度模式的门限操作来得到边缘像素点的轮廓。边缘点在Canny 算法中定义为在梯度方向上局部强度最大的点,这个较强的约束,可以使通过门限法进行操作得到的目标边缘细化。非最大抑制的目的是找到所有可能存在的边缘点,基本思想是通过计算当前点相邻周围方向上像素的梯度值来判断该点是否具有局部最大梯度值,如果是,那么该点判为可能的边缘点,否则为非边缘点。
4)双阈值选取
传统的Canny 算子中,应用预先设定的高低阈值来进行图像分割,而实际图像因受到外界因素的影响,导致图像边缘的变换,以至于预先设定的阈值不能更好的实现图像分割。为了实现阈值自适应且最优的选取,在改进Canny 算子中,利用Otsu算法,根据所给图像,求出最大类间方差,来确定高阈值的选取,并利用公式算出低阈值。
设q1、q2分别为目标、背景占图像像素总数的百分比,u1、u2分别为对应的灰度均值,ut为总的均值。则:
最大类间方差为
将最优阈值作为Canny 算法的高阈值,由式(8)计算出低阈值。
为便于缺陷进行分类,需要进行特征提取来获得缺陷的特征数据,包括图形特征,颜色特征等。根据常见精密零件缺陷特征,划痕、油污等,选择Hu矩[14]的特征提取方法对缺陷进行提取。在笛卡尔坐标系下,Hu 矩利用二阶和三阶归一化中心矩阵构造了七个不变矩,其中图像p+q 的几何矩、中心矩和归一化的中心矩为
机器视觉检测的目的在于对缺陷进行分类识别,通过样本的特征数据对分类器进行训练即可实现。相比于BP、MLP、KNN 等一些分类算法,支持向量机SVM 是一个有监督的学习模型[15],其主要思想为通过非线性映射算法将低维不可分样本转化为高维特征空间使得线性可分。即将低维不可分问题上升为高维线性可分问题。SVM 分类器[15]利用结构风险最小化原理,构建特征空间中的最优分割面,从而得到全局的最优化效果。其分类示意图如图2所示。
图3 分类示意图
具体分类过程描述如下:设有N 个样本为(x1,y1),(x2,y2),…(xN,yN),SVM 分类的线性判别函数的表达式为(14),根据式(15)来确定一个超平面,该超平面距离最为接近。利用几何关系计算距离M,M的最大值即为L(w)的最小值,如式(17),采用拉格朗日优化方法,得到最优超平面w 和b 的偏差[11]。
针对汽车精密零件缺陷检测,搭建了外观缺陷视觉检测平台,如图4所示,该平台采用CCD 相机、LED光源前向照明、零件放置台及计算机等。平台中主要设备及参数如表1 所示。工作原理如下:当零件到达检测区域时,触发光电开关信号,同时触发CCD 相机进行拍照。之后根据工件转动的角度度计算出工件每转动90°所需的时间,并根据计算所得时间触发相机进行拍摄。对于每一个零件,检测系统可获得四张图像,对获取的图像进行算法处理及分析,最终得出零件的检测结果。
表1 主要设备及其参数
图4 汽车精密零件外观缺陷视觉检测平台
基于上述检测平台,选择汽车转向器内部套筒零件为检测对象,从同一批零件中随机选取300 个有缺陷的零件得到作为样本进行缺陷识别,图5 为样本缺陷分割结果。
对汽车精密零件缺陷的面积、周长、Hu 矩这些特征进行提取,通过数据可以观察出不同缺陷的数据特征差距较大,利用数据特征可以明显地区分出缺陷类别。表2 所示为针对油污缺陷、划痕、压痕和加工缺陷的样本所进行的缺陷的几何特征和Hu不变矩的特征数据实验结果。
图5 缺陷分割结果
表2 特征提取结果
由表2 可知,划痕、压痕面积、周长和Hu 矩较小,且其面积和周长相差较小;但是油污和加工缺陷的面积、周长及Hu 矩较大。并且其周长和面积相差也比较大。所以,特征提取的实验结果与实际情况相符,实验分组设计方案有效,能充分的验证四类缺陷的缺陷特征。
表3 缺陷分类结果
在得到缺陷特征之后,通过SVM 分类器进行缺陷的样本训练,便可对该零件进行缺陷分类。使用SVM 作为分类器,进行缺陷的训练和分类。分类结果如表3 所示,SVM 的分类结果与人工分类结果基本相符。
本文基于机器视觉系统研究了汽车精密零件外观缺陷检测方法,该方法利用小波去噪进行图像预处理,改善了图像质量。采用Otsu 算法改进Canny 算子,实现Cany 算子中阈值的最优选择,对图像缺陷进行分割。利用Hu矩实现了缺陷特征提取并进行SVM 分类。搭建汽车精密零件外观缺陷检测平台进行实验,结果表明,该算法性能稳定,且检测结果与实际结果相差不大,检出率较高。