严道森,孙 渊
(上海电机学院机械学院,上海201306)
随着现代工业的快速发展,以注塑成型为基础的塑料注塑件应用越来越广泛,外观质量是影响注塑件品质的一个关键因素[1]。因此,对注塑件表面质量进行直观检测是检测注塑件质量的一个重要环节。人工目视检测仍然是注塑件生产企业主要采用的检测方法,容易受到人为主观因素的限制,检测的准确率难以保证[2]。同时,工人的视觉疲劳和精神疲劳使得检测的效率难以持续,长期在充满刺鼻化工塑料气味的环境工作,也会对工人身体健康产生一定影响。
基于上述问题,机器视觉检测技术可以很好地克服检测任务中人工检测的不足。传统的机器视觉检测技术是人工选取特征作为机器学习的参数,通过特征分类算法实现图像的识别分类,这对人工经验要求极高,也难以推广发展。传统机器视觉检测方法的不足之处在于无法自动提取图像分类特征,但卷积神经网络算法可以很好地实现这些要求。卷积神经网络主要特点是利用卷积操作,逐层提取特征,通过权值变化使得网络可以拟合目标分类函数[3-5]。将卷积神经网络算法应用于注塑件表面缺陷图像的识别当中,一方面可实现注塑件的表面缺陷视觉检测识别,另一方面也能克服传统特征工程算法的局限性等问题。
在国内外,卷积神经网络应用于表面缺陷检测的案例也有很多。Lecun等[6]设计的LeNet-5网络结构,成功实现手写数字的识别。随着人工智能研究的进一步兴起,Krizhevsky等[7]提出了更深层次的AlexNet网络结构模型,且在国际大赛上取得较好效果。随着计算机硬件的不断发展,以VGGNet[8]等网络结构为代表的深层次、大规模的卷积神经网络也不断出现,为卷积神经网络在视觉检测领域的应用提供更多助力。Weimer等[9]通过深度卷积神经网络替代传统工业视觉检测方法,克服了传统方法高度依赖人工经验选取缺陷特征的不足,并验证了卷积神经网络的方法取得了更好的效果。Celik等[10]通过神经网络对织物缺陷进行检测分类,取得了较高的检测准确率和分类准确率。在国内也有许多相关研究成果。庄新卿等[11]将卷积神经网络算法与轮廓提取算法结合,用于钢铁表面缺陷检测,实验取得了较为理想的准确率;王宪保等[12]研究了神经网络在太阳能板缺陷检测中的应用;颜伟鑫[13]以铸造件缺陷检测为研究任务,提出将快速区域卷积神经网络和一种新的锚框设定方案相结合的方法,极大提升了缺陷的检测率;陈隽文[14]以高铁触网中的紧固件为检测对象,提出由3个阶段组成的网络模型,通过实验结果验证了算法的可行性;刘孟轲等[15]针对轨道缺陷检测的研究提出了一种卷积神经网络结构,实验证明了该网络结构在轨道表面缺陷识别中有较高的识别率。
目前,国内外机器视觉检测方面的研究较多,但应用于注塑件表面缺陷检测的研究不多。基于上述众多相关文献的研究案例,以及来自生产中的实际需求,将卷积神经网络算法应用于注塑件表面缺陷检测,具有较强的实际应用意义。
卷积神经网络内部有着大量的参数,在网络训练时,正是由于这些参数的存在,使得卷积神经网络有强大的拟合能力。
(1)卷积层。卷积层是卷积神经网络的主要特征,卷积层主要是进行卷积操作,卷积核进行卷积是卷积层的具体方法。在图像处理的过程中,卷积核与输入图像的像素进行卷积操作,输出结果,形成新的特征图。
卷积过程的计算如下:
(2)池化层。一般在卷积层提取到特征数据后,需要对其进行降采样操作,保留主要特征信息,减少网络运行中的数据量,同时也增加了网络的泛化能力,减少了过拟合问题的发生。池化操作主要分为平均池化和最大池化,平均池化和最大池化分别是指在池化视场内取平均值和最大值。
(3)全连接层。作为神经网络中的常规层,全连接层连接其先前层中的所有神经元。该层的主要功能是创建点积,并在每个神经元的输入中添加偏差。网络中,最后一个池化层之后全连接层将多维特征映射转换为一维特征向量,用于进一步的特征表示。
(4)输出层。输出层主要是根据全连接层整合后的特征信息,利用分类器对输入数据进行分类预测,输出预测分类结果。
(1)LeNet神经网络模型于1998年由Lecun等[6]提出,该网络规模很小,但其结构完整,是一个典型的基础卷积神经网络结构。后续的许多经典网络的出现都参考了该网络的特性。
在网络的输入层,图像大小为32×32,之后是第1个卷积层,拥有6个卷积核,卷积核尺寸大小为5×5,经过卷积运算后,输出6通道的特征图,大小为28×28。下一层为池化层,包含了6个特征图,移动步长为2,经过采样运算后每个特征图的大小缩减为14×14。再往后,同样是一个卷积层加池化层的组合结构,特征图的数量逐渐增多,尺寸则变小。接着连接两个全连接层,将上层的结果进行汇总,并输入Softmax回归层进行分类任务。
(2)AlexNet神经网络模型是在LeNet神经网络模型之后提出的,AlexNet的网络结构依靠5个卷积层提取主要特征。前2层卷积核较大,特征提取能力较强,在第1~3层设有3个池化层,后面由3个全连接层和1个分类器组成完整的网络结构。
某种程度上,AlexNet为后续许多网络提供参考。AlexNet虽然相比LeNet有了更强的能力,但在处理注塑件表面缺陷识别问题时,也存在一些不足。其前两层卷积核大小分别为11×11和5×5,偏大的卷积核容易造成卷积核在提取图像特征时能力不足的问题,效果可能会受到影响。
(3)VGGNet神经网络模型比AlexNet神经网络模型层次更深,有多个不同的版本,采用了5个卷积结构,但每个卷积层内设有多个卷积核。通过小卷积核的组合达到大卷积核的检测效果,且不丢失细节特征。
以VGG-16为例,与AlexNet相比,VGGNet普遍采用了小卷积核和保持输入大小等技巧,目的是在提高网络深度的同时,确保各层输入大小随着深度增加而不会急剧减小。VGGNet所有卷积核的大小均为3×3,最大池化层大小为2×2,使用2个3×3卷积核替代5×5的卷积核。相似的,3个3×3的卷积层串联则相当于1个7×7的卷积层。在处理注塑件表面缺陷识别问题时,虽然其卷积核提取能力足够,但网络结构仍过于复杂。
卷积神经网络适用于图像识别处理,主要是依靠多层卷积层不断提取图像的特征参数图。由于本文所涉及的注塑件缺陷图像的缺陷较小,图像复杂度也相对较低。因此,综合考虑注塑件表面缺陷检测的特性,选定低层的卷积层作为注塑件表面缺陷识别网络算法。
对于上一章所介绍的3个经典卷积神经网络模型进行分析可知:①相对于后续的一些模型,LeNet-5规模很小,但网络结构完整,是较早成功应用于手写数字图像识别的卷积神经网络结构。本文的检测目标是注塑件的表面缺陷检测,缺陷特征多变且细小,LeNet-5网络层数过少,难以实现注塑件表面缺陷的检测。②AlexNet网络结构庞大,网络层数相对较深。但其卷积层中前两层的卷积核较大,不利于提取注塑件表面缺陷中的细节特征,并不适合注塑件表面缺陷检测。③VGG网络可以看作是AlexNet的加深版,优化了卷积核的结构,但其网络结构仍然较为复杂,难以直接应用于注塑件的表面缺陷检测。
针对上述常见经典卷积神经网络在注塑件表面缺陷检测中存在的不足之处,提出了一种注塑件表面缺陷识别基础卷积神经网络结构模型。该模型选取了AlexNet与VGGNet各自的优势,主要设置了5个卷积层,对应5个池化层,在卷积部分的末端,有3层全连接层。根据输出的特征数据,由Softmax层做出分类预测。注塑件表面缺陷识别基础网络模型结构如表1所示,其网络模型结构示意图如图1所示。
由表1和图1可知,输入层为224×224×1的单通道图像,对卷积核大小进行统一,均为3×3,较小的卷积核更有利于提取细小的缺陷特征。第1层卷积中设定有32个卷积核,数据输入后,卷积输出32通道的特征图,大小为224×224;第1层卷积后,由于数据量过大,需要池化层对其进行降采样,池化层大小为2×2,特征图的大小减小一半;经过降采样的特征图进入第2层卷积层,有64个卷积核,对由前一层输入的特征图卷积,得到64通道的特征图,再经第2层池化层进行降采样;特征图数据再进入第3层卷积层,卷积核数为128,输出的特征图通道数为128;第4层和第5层特征通道数均为256,因此,卷积部分最终输出为256通道的特征图。
表1 注塑件表面缺陷识别基础网络模型结构
图1 注塑件表面缺陷识别基础网络模型结构示意图
在注塑件表面缺陷图像检测的任务中,首先要获取高质量的注塑件表面缺陷图像,检测目标主要为中小型的注塑件。因此,需要结合检测目标的特点,搭建一套用于获取注塑件图像的图像采集设备。本文选用海康威视MV-CA030-11GM型号的工业相机用于采集样本图像集,保证图像的清晰度。缺陷图像如图2所示。
图2 缺陷图像
样本图像的清晰度会对卷积神经网络的识别能力产生一定的影响,越清晰的图像越有利于提升识别的准确率。因此,在计算机进行机器视觉学习之前,会对图像进行预处理,强化缺陷图像的一些特征,便于识别。常见的图像增强的方法有对比度拉伸变换、图像锐化、平滑等。本文的检测对象是注塑件,根据注塑件缺陷图像的特征,采用直方图均衡化的方法对图像进行增强处理。
灰度直方图通过统计图像的灰度值来描述图像的特征。对于一张数字图像,统计所有像素的灰度值出现的次数,直观展示了灰度图像的纹理分布特性。原始图像灰度直方图如图3所示。
图3 原始图像灰度直方图
由图3可知,图像灰度值较集中,缺陷的特征难以显现出来。以均衡化灰度直方图的方法对图像的特征信息进行增强,像素数量集中的灰度级适当扩宽,使缺陷图像更清晰。令M(i,j)为原始图像像素,G(i,j)为增强后的图像像素,其中i=1,2,…,m;j=1,2,…,n。具体的直方图均衡化方法如下:
(1)根据原始图像[M(i,j)]m×n的灰度级,求解原始图像的灰度直方图,灰度级统计由向量N(k,l)表示。
(2)求解原始图像灰度分布概率为
式中:NM=n×m为像素总个数;N(k)为灰度级k对应的像素总个数。
(3)通过原始图像的分布概率来求解图像灰度级的累计分布概率为
式中:S(0)=PM(0)。
(4)计算灰度值之间的映射关系,即原始图像灰度级k对应的均衡化后的灰度级为
求解直方图均衡化后的图像像素值为
最后获得均衡化后的图像。
直方图均衡化变换后,注塑件表面缺陷图像中的缺陷特征得到显著的增强,如图4所示。
图4 直方图均衡化
选取4 000幅注塑件图片作为样本数据库,其中无缺陷、划痕、凹坑和黑点的样本数各为1 000张。各选取900张图片作为训练集样本,100张作为测试集样本。对于样本训练集和测试集,分别将它们制作成一个tfrecord格式文件。tfrecord格式文件是tensorflow框架中统一存储的数据格式,训练集和测试集的图像都存在文件里面,并将图像数据和其相应的类别编号相对应。
本文实验的运行环境为64位Win10系统,计算机内存为32 GB,处理器为Intel(R)Core(TM)i7-7800。使用深度学习框架中的tensorflow架构构建网络程序,其作为机器学习和深度神经网络的主流框架之一,具有灵活性,适用于本文的卷积神经网络算法。根据处理器和显卡的版本,选用cuda 10.0和cudn 7作为tensorflow gpu 1.14支持,GPU版本的tensorflow在设备上的运行速度远快于CPU版本。采用Pycharm的集成开发环境,通过第3方函数库安装程序anaconda 3作为开发环境配置工具。程序语言选用Python 3.6进行编写。
卷积神经网络应用于缺陷检测时,需要根据实际情况对一些参数进行选择测试。在注塑件表面缺陷识别基础网络模型训练中,模型结构已经确定,因此需要对学习率、训练批次大小、迭代次数以及优化器进行设定。这些参数对网络的训练效果产生重要影响,根据训练集样本及网络结构的特点,设置学习率为0.000 1,训练批次为16,迭代次数为1 000,选用Adam函数作为误差梯度下降优化函数。
针对常见的经典卷积神经网络模型,选取LeNet-5,AlexNet和VGGNet(16)与本文中注塑件表面缺陷识别基础卷积神经网络模型进行对比实验。使用同一个数据集分别对4个网络进行训练,并对比检测结果。根据实验的特点,上述3个经典网络模型需要作出适当的修改,因本文的实验图像主要有4种分类,所以网络的分类部分应具备4种分类识别能力,全连接层处需要作出相应调整,分类器全部使用Softmax进行分类,分别对应黑点、凹坑、划痕和无缺陷4类。为保证实验的效果,AlexNet和VGGNet(16)选用与注塑件表面缺陷识别网络模型相同尺寸的输入图像,图像大小为224×224像素,将LeNet图像输入进行图像大小变换,使其输入图像大小为32×32像素。选取各网络的最优识别结果统计,测试集识别缺陷个数如表2所示。
表2 识别缺陷个数
实验参数不变,在5次训练后取总体准确率的平均值进行统计,对比结果如表3所示。
通过对比试验可知,传统算法对注塑件表面缺陷检测均无法取得较好效果,特别是对于划痕类缺陷,识别效果较差。主要原因在于划痕缺陷较细,直接使用经典神经网络模型参数无法有效提取缺陷特征。相比之下,本文提出的注塑件表面缺陷识别基础网络模型,在卷积核参数和网络结构上进行了针对性构建。由表3中的数据可知,LeNet取得了48.75%的平均准确率,AlexNet取得了54.4%的平均准确率,VGGNet(16)取得了82.5%的平均准确率,均低于本文所提出的注塑件表面缺陷识别基础网络模型所取得的96.0%的平均准确率。针对注塑件表面缺陷的检测识别,本文提出的网络模型取得了较好的识别效果。
表3 不同分类算法结果对比
注塑件表面缺陷识别检测目前主要依靠人工检测,而人工检测目前存在许多不足之处。机器视觉检测技术可以克服人工检测的不足,但传统机器视觉检测技术主要依靠特征工程和分类器模型结合的方法,对人工经验要求高,且识别精度受人为特征选择的影响。本文提出使用卷积神经网络的方法实现注塑件表面缺陷图像的识别检测,通过对3种经典卷积神经网络的结构进行分析,结合注塑件表面缺陷的特点,提出了注塑件表面缺陷识别网络模型结构。然后,通过工业相机采集缺陷图像,并对图像进行了适当的增强处理。最后,通过数据集训练网络模型,统计在注塑件表面缺陷识别检测中3种经典卷积神经网络模型和本文提出的网络模型的缺陷识别率,对比验证了本文的网络模型取得了更好的识别效果。