基于机器视觉的玻璃缺陷检测
2020-04-21亓宁宁刘雨翰
亓宁宁,常 敏,刘雨翰
(上海理工大学 光电信息与计算机工程学院,上海 200093)
引 言
平板玻璃的成型方法主要有压延、平拉和浮法等,由于生产技术、加工机械甚至是后期人为包装运输的不完美,平板玻璃成品中会出现各种各样的缺陷[1]。不合格的产品应用在高端仪器中,一方面使其价值大打折扣,另一方面严重影响生产效率,浪费劳动力。机器视觉作为一种非接触性检测技术,用计算机来模拟人的视觉系统,已经成为未来检测领域的一个重要发展方向[2]。这种检测技术具有检测速率高、精度高等优点,可广泛应用于工厂缺陷的在线、自动化检测中。近年来,关于机器视觉的表面缺陷检测技术已经逐步发展起来。Raafat等[3]在1996年提出了一种基于机器视觉系统的玻璃或塑料表面质量检测方法,主要检测目标是划痕和气泡等表面缺陷。此外,Peng等[4]研究了基于机器视觉的浮法玻璃在线检测方法,借助缺陷图像的灰度级变化来测量缺陷,并对图像分析和检测系统的实时性和精确性进行了讨论。
机器视觉检测技术通过设计高性能的光学成像系统并采用图像传感器对待测物体进行图像采集,采集的图像经过处理和分析,可提取出有用的信息。一般基于机器视觉技术的检测系统由以下几部分组成:光源、待测物体、CCD相机、图像采集卡、图像处理软件和计算机等[5]。玻璃检测的原理是玻璃缺陷的光学性能和正常玻璃不同,缺陷会导致进入相机的光强发生改变,这种改变会引起图像灰度值的变化,通过图像灰度值化[6]、滤波降噪[7-8]、阈值分割[9]等一系列的算法处理,可提取出缺陷的各种特征信息从而达到玻璃质量检测的目的。
1 检测系统
图1是本文设计的基于机器视觉技术的玻璃质量检测示意图,可分为两部分。图1(a)是图像获取单元,LED红光垂直入射待检测玻璃后,若玻璃中存在缺陷,CCD相机的靶面检测到不均匀的出射光,然后图像采集卡对输出的信号进行实时采集并将数字化处理后的图像传输至计算机中。图1(a)中入射光源上方的遮光板是为了避免外界光源使采集到的图像产生噪声。图1(b)是图像处理和缺陷识别模块,用MATLAB对采集到的图像进行预处理、阈值分割和特征提取[10-11]操作。完成样本缺陷的特征参数提取后建立数据库,设计一个反向传播(BP)神经网络模型[12-13]对缺陷图像进行训练和分类,最终达到玻璃智能检测的目的。
图1 检测系统示意图Fig. 1 Schematic of the inspection system
2 图像预处理
图像预处理是指对捕捉到的图像进行灰度化处理、滤波平滑、边缘检测和阈值分割等多种操作,其主要目的是消除图像中无关的信息或噪声,使图像更加清晰真实,确保高质量玻璃图像的输出,为下一步特征信息的提取提供必要的条件。根据具体要求选择不同的图像预处理方法,预处理结果的好坏直接影响后续图像分割和特征提取过程的准确率。
2.1 灰度值变换
在预处理之前,图像的获取过程容易受到光照等因素的影响,这可能使得同一个物体在不同的光照情况下形成颜色有差异的图像信息。然而对于一个识别系统,其关键信息是图像的梯度特征而不是颜色。像素点是图像中最小的图像单元,一个图像中每个像素点的颜色由红(R)、绿(G)、蓝(B)三个颜色分量决定,每个分量可取255个值。图像的灰度化处理就是让像素点矩阵中的每一个像素点的三个分量相等,从而忽略颜色信息并获取梯度特征。这种处理方法也可以减少后续的图像处理计算量,提高处理效率。灰度值处理的方法通常有分量法、平均值法、最大值法和加权平均法。本文采用加权平均法处理原始图像,该方法的原理是根据人眼对红、绿、蓝色光的敏感程度不同,赋予每一个像素点不同的权重,从而得到该点的灰度值,公式为
2.2 图像滤波
在图像采集、传输和量化过程后,各种各样的噪声往往会出现并影响图像的质量,如高斯噪声、椒盐噪声和乘性噪声等。为了提高后续特征识别的准确度,图像需要先进行滤波平滑操作。高斯噪声是指服从正态分布的一类噪声,通常是由不适当的光照系统和高温所引起的。设X(p)为真实图像,Y(p)是被高斯噪声污染后的图像,均值为μ、方差为σ2的高斯噪声分布表示则 Y(p)可表示为
椒盐噪声是图像中经常见到的另一类噪声,是一种随机出现的黑白相间的亮暗点噪声。为了研究不同滤波器对不同噪声的降噪能力,选取均值为0、方差为0.01的高斯噪声和噪声强度为0.2的椒盐噪声分别去污染原始灰度图像,然后采用3×3和5×5的均值滤波器以及同样尺寸的中值滤波器分别处理被噪声污染后的图像。经过对比后发现,均值滤波器可以有效去除高斯噪声,而中值滤波器是去除椒盐噪声最好的选择。另外,3×3尺寸的滤波器最适合去除本文中添加的噪声,而5×5尺寸的滤波器会使图像的模糊度降低。结果如图2所示,从左到右的图像(上)分别是灰度值化、添加高斯噪声污染后、均值滤波去除高斯噪声、添加椒盐噪声以及中值滤波去除椒盐噪声后的图像,图2(下)是每张图所对应的直方图,从直方图可以直接看出噪声对原图像的破坏程度及滤波器的复原效果。因此,在滤波平滑的过程中,需要根据图像中具体的噪声类型选择最适合的滤波器。
3 图像分割和特征提取
3.1 图像的阈值分割
图像分割是指将图像中的目标与背景分离,使图像只含有黑和白两种颜色。图像分割主要有阈值、边缘、区域等分割类型,本文采用基于阈值的图像分割方法来提取玻璃表面的缺陷信息。阈值分割法的原理是根据图像的灰度直方图选取用于分割的阈值fth,将图像中每个像素的灰度值与阈值相比较,最后根据比较结果将像素分到合适的类别中。将目标区域的灰度值设为0,背景中的灰度值设为1,则表示阈值分割:
图2 处理后的图像(上)及其对应的灰度直方图(下)Fig. 2 The images after processing(top)and their grayscale histograms(bottom)
阈值分割方法有双峰法、迭代法[12]、大津法等。迭代法是指通过不断迭代来获取图像的最佳阈值。本文首先采用迭代法对图像进行分割,其算法步骤如下:
1)根据灰度直方图找出图像中的最大灰度值和最小灰度值,分别记为Zmax和Zmin,并设初始阈值
迭代分割法的图像结果如图3(b)所示,虽然这种分割方法已经具有较高的准确度,满足大部分缺陷识别的要求,但是与原始灰度值图像[图3(a)]相比,仍然可以看出图中圆圈内一些小的点状缺陷在迭代阈值分割后丢失。为了减小阈值分割的误差,可以通过观察图2中直方图的峰谷位置人工选择最佳阈值。根据式(3),最终选取的阈值大小为70。优化后的阈值分割如图3(c)所示,可以看出圈内区域的缺陷在阈值分割后被成功保留。
图3 阈值分割Fig. 3 Image threshold segmentation
3.2 特征提取
在MATLAB中,“regionprops”函数是一个可以度量图像目标区域属性的函数,本文用它来提取玻璃图像中每个缺陷的特征参数,如面积、最小外接矩形、周长、质心等。该函数在MATLAB中的语法表示为
矩阵L中不同的正整数元素对应不同的区域;返回值 stats是一个长度为 max(L(:))的结构数组,结构数组的相应域定义了每一个区域相应属性下的度量;properties可以选择默认值,即只计算出每个缺陷区域的面积、质心和外接矩形,也可以选择计算所有的特征值。图4(a)中的矩形是每个缺陷区域的最小外接矩形,这种特征提取方法可以找到图像中最大的缺陷区域并标记。此外,MATLAB中的“bwboundaries”函数可用来获取图像中目标区域的边缘轮廓信息,如图4(b)所示。从放大后的某一个缺陷图可以清晰地看出这两种提取方式可以准确描绘出缺陷的特征,提取的各种特征参数值以像素为单位存储在结构数组中。
图4 特征提取结果Fig. 4 The results of feature extraction
4 BP 神经网络分类器
BP神经网络是一种按误差反向传播训练的多层前馈神经网络,简单来说就是信号从输入层经由隐含层向输出层传输,而误差是从输出层传到隐含层,最后才到输入层。通过输入训练样本到神经网络进行训练,得到权值文件后对缺陷进行智能分类。基于前述图像处理和特征提取步骤,可获取图像中玻璃缺陷的各种特征参数,选取面积、周长和圆形度这三个特征量作为区分缺陷类型的指标,即BP神经网络的输入参数有三个。玻璃缺陷的种类多种多样,本文选择的缺陷类型是麻点、异物和划痕,如图5所示。为了数据处理的可行性和便利性,将这三种缺陷量化为种类1、2、3,即输出神经元数为3。
图5 玻璃缺陷Fig. 5 The glass defects
表1是提取特征值的50组缺陷样本,将样本数据平均分成两组,一组为训练样本,另一组为测试样本。确定该BP神经网络的输入和输出后,隐含层节点的设置由下列公式确定:式中:h为隐藏层节点数目;m为输入神经元数;n为输出神经元数;a是0~10之间的调节常数。
表1 缺陷特征提取数据Tab. 1 The parameters of the defect feature extraction
本文设计的BP神经网络的训练过程主要包括以下几个重要步骤:
1)为避免因为输入输出数据数量级差别较大造成网络预测误差较大,调用MATLAB内部函数对数据作归一化处理,将每个特征值归一化为[−1,1]之间的数值;
2)创建3-2-1结构的BP神经网络,隐含层节点数的设置参考式(5);
3)选择激活函数,设置训练次数、学习速率、目标误差等参数;
4)开始训练并调用训练结果;
5)输入测试样本组数据,进行仿真测试;
6)对仿真输出值进行反归一化操作并计算误差率。
表2是重复不同次数后的误差率,重复11次后计算出的平均误差率为9.84%。图6是输入测试样本后预测结果与实际结果的对比图,结果表明预测值与实际值的曲线大致相同,说明该模型能很好地预测未知缺陷的种类。
表2 误差率Tab. 2 The error rate
图6 真实输出结果与预测输出结果的对比Fig. 6 The real results and predicted results
5 结 论
基于机器视觉系统的玻璃缺陷检测和自动识别是当前的研究热点。研究了图像预处理和阈值分割的方法,提取缺陷的面积、周长和圆形度为特征向量,设计了一个BP神经网络模型对麻点、异物和划痕这三种缺陷进行识别和分类。实验证明该模型具有很高的识别准确率,对玻璃行业的检测技术具有一定的应用价值。但是在未来的工作中,为了完善这个识别系统,对玻璃中其他更多的缺陷种类进行检测和识别,应增加特征向量的个数,如缺陷外接矩形尺寸、缺陷灰度值等。