基于深度学习的产品缺陷检测方法综述

2020-11-12 09:28金映谷杨亚宁刘玉婷
大连民族大学学报 2020年5期
关键词:编码器卷积神经网络

金映谷,张 涛,杨亚宁,王 月,刘玉婷

(大连民族大学 a.机电工程学院;b.信息与通信工程学院,辽宁 大连 116605)

在实际生产过程中,由于生产设备、工艺流程、生产环境等各因素的影响,造成产品出现缺陷,如:刹车片的划痕,齿轮表面出现振纹、鱼鳞,磁瓦表面的气孔、断裂等,这些缺陷不仅直接影响产品的外观和质量,甚至在使用过程中会产生安全隐患。因此,在生产加工时,对工业产品表面进行缺陷检测十分必要[1],既可以避免缺陷品流入市场,还可以及时改进工艺流程,提高经济效益。本文以深度学习在工业产品缺陷检测的应用为论述中心,首先对国内外深度学习及各种工业产品检测技术的研究现状进行分析;然后对几种典型的、使用频率较高的应用于工业产品缺陷检测的深度学习模型进行简单介绍;最后对基于深度学习的工业产品缺陷检测技术进行总结和展望。

1 国内外研究现状

1.1 缺陷检测技术研究现状

在加工过程中,工业产品缺陷检测的相关工作越来越受到重视。缺陷检测是指在不影响被检测工件或材料工作性能的前提下,利用光、声、电、热、磁等特性检测工件是否存在缺陷[2]。缺陷检测方法经历了人工检测、利用介质进行检测和利用计算机检测三个阶段。

19世纪中期,第二次世界工业革命期间,当时工业生产规模较小,自动化程度低,缺陷检测主要依赖人工检测完成[3]。检测方法以人工视觉检测为主,只要求相应的人工成本,无需专门的设备,但对于检测人员的数量要求较多。该检测方式有着检测效率低、漏检率高、人工成本高等诸多弊端。20世纪以来,制造业对产品质量的要求越来越高,缺陷检测技术进入利用介质对产品进行缺陷检测的阶段。当前应用最广的介质检测技术包括磁粉检测技术、涡流检测技术、渗透检测技术和超声波检测技术等[4]。最近几年,随着科技的发展,缺陷检测技术进入到计算机图像检测阶段,其中最热门的技术是集图像采集与深度学习于一体的缺陷检测技术,对比于其他检测技术,准确性高,检测效率高,结构简单。

1.2 深度学习研究现状

在深度学习出现之前,大部分数据处理使用机器学习中的浅层学习方法,常见的有:高斯混合模型[5]、支持向量机[6]、逻辑回归、K均值聚类[7]等,浅层机器学习模型早已应用于实际问题,但在处理一些具体的、繁琐的(如图像、语音、视频等领域)问题时,表现效果并不理想。近几年深度学习发展迅速,特别在图像分类、自然语言处理、声音识别等方面表现优异。

1974年,Paul提出了反向传播算法[8],可以很好地解决神经网络模型加深时部分线性分类产生误差的问题。此外,随着神经网络层数的加深,研究人员依然面临着训练结果不稳定或“梯度消失”的问题。1998年,LeCun等[9]提出了著名的Lenet-5卷积神经网络,应用于识别支票上的手写数字,准确率较高。2006年,Geoffery Hinto教授提出了深度信任网络(Deep Belief Network, DBN),成为局部最优、梯度消失的有效解决方法,该模型在MNIST手写数据库上取得了98.8%的识别率。在深度信任网络的启发之下,Bengio等[10]在2007年提出层叠自动编码机(Stacked Auto-encoder, SAE)结构,在MNIST手写数字数据库上取得了98.6%的识别率。以上三种深度学习技术中的经典架构在声音识别、图像分类、文字处理等领域受到广泛关注[11]。

深度学习框架于2010年前后在中国变得炙手可热,基本上与人工智能行业爆发的节点吻合。近年来,深度学习在中国的工业产品检测、语音识别、文字识别等领域表现突出。2013年,百度公司建立了深度学习研究院,并在语音识别、无人车、人脸识别、语音合成等领域取得了不错的成绩[12-13],其构建的深度网络在图片检索领域表现优异。2018年7月,常海涛等[14]使用Faster R-CNN对工业CT图像进行缺陷检测,该方法对于气泡、夹渣和裂纹的检测准确率高达96%,且单张图片的检测时间达毫秒级。何俊杰等[15]对Faster R-CNN算法进行改进,使用多层的区域提议网络结构生成精确候选区域,根据候选区域的特征和目标分类实现缺陷的识别和定位,使用该方法对6种类别的液晶屏边框电路进行缺陷识别定位,检测速度平均单张0.12 s,准确率94.6%。2019年3月,毛欣翔等[16]使用YOLO v3模型搭建了针对连铸板坯表面的缺陷检测计算平台,实现了从采集数据到输出结果存储的端到端模式,使得检测连铸板坯时更加轻便且能够实时输出结果。2020年1月,田珠等[17]使用Faster R-CNN检测工业火花塞图像焊缝的缺陷,准确率达到93%,误判、漏判率低。2020年6月,吴桐等[18]提出一种采用线阵图像深度学习的电池组焊缝瑕疵检测方法,该方法对焊缝单孔、穿孔、凹槽瑕疵的总识别率可达94%,平均检测速度(4 096×4 000像素的单张工件图像)0.97 s。

2 基于深度学习的缺陷检测技术

深度学习可从狭义与广义两个方面理解,狭义是指具有具体结构和固定训练方法并且包含多个隐层的神经网络[19];广义指具有多个层次结构的机器学习算法[20]。深度学习的流程:输入在网络中逐层训练得到特征,进行反向传播、调整网络的参数,得到最优解后输出。典型的深度学习模型分为卷积神经网络模型、深度信任网络模型和自编码网络模型[21]。

2.1 基于卷积神经网络的缺陷检测技术

卷积神经网络(Convolutional Neural Networks,CNN)是仿照生物的视觉接收和视觉认知机制构建的神经网络,是一种包含卷积运算且具有深度结构的前馈神经网络。目前成为缺陷检测的主要方法,这里将基于卷积神经网络的缺陷检测模型分为两大类:一类是基于分类的卷积神经网络缺陷检测模型;另一类是“端”到“端”的卷积神经网络缺陷检测模型。在缺陷检测应用中常见的部分神经网络模型分类情况如图1。

由于缺陷检测也是目标检测的一种,以下关于模型理解部分均以目标检测过程为主。

2.1.1 基于分类的CNN缺陷检测模型

CNN可用于特征的提取、选择和分类操作,建立滑动窗口,并以一定步长在图像上滑动产生候选区,判断候选区内是否为缺陷区域。在检测时可以简单分为三个步骤:窗口滑动、候选区域的产生及图像分类和后续处理,窗口滑动和后续处理的方法固定。由此,研究的重点应放在如何提升CNN的特征提取、选择及分类能力方面,进而提高图像的准确度。

在R-CNN中,使用简单的区域划分算法将图片划分为很多小区域,按照层级分组方法以一定的相似度合并区域,最后剩下的候选区域被归一化为同一固定大小送入网络模型中提取图像特征,将这些特征向量送入多类别分类器,依据特征向量推断属于某一类别的概率大小,选取概率最大的类别作为结果输出。R-CNN直观地将检测问题转化为分类问题,但R-CNN模型需统一候选区的大小后才可进行特征提取和分类,且提取的候选框会在特征提取时重复计算。

Fast R-CNN解决了R-CNN特征提取时选框重复计算的问题。该模型使用Selective Search找出候选框后,整张图输入CNN中,使用该模型中的核心结构Roi Pooling层,对应候选框的部分做采样,经过两层全连接层之后得到最终的特征。接着同时进行两个操作,一是对特征进行分类,二是回归此特征的候选框偏移。该模型很好地将分类和回归任务融合在一个模型中。

在Faster R-CNN中RPN算法的作用替代了部分Selective Search,产生候选区域的速度更快。其中RPN网络接受整张图片并提取特征图,回归候选框,然后在feature map上对应每个滑窗位置都映射一个特征。而后同Fast R-CNN操作相同,分别进行分类和回归操作。但此模型不能很好地保留和提取小尺度目标的特征[15],且检测速度较慢。

Mask R-CNN在Faster R-CNN基础上进一步扩展,在每个ROI区域加上一个用于预测分隔掩码的掩码层,可以更好地实现像素级别的图像实例分割,将目标检测与目标分割同时处理,可以取得较好的实例分割效果。同时用Roi Align层替代Roi Pooling层解决了misalignment问题,且该模型利用区域候选网络替代滑动窗口的方式提取候选区,因此需要候选区的数量减少[22],使得该方法的准确率和速度都得到了较大提升。但此模型对候选区提取方法的依赖性较强,若背景复杂则会检测失败。

Inception系列网络也是CNN分类网络中比较常用的一种,Inception网络起源于2014年的GoogLeNet,经过不断演化,现在已经迭代到Inception-v4版本[23]。Inception模型很好地解决了增加网络深度和宽度的同时减少参数的问题。Inception v1[24]通过将1×1,3×3,5×5的卷积核和3×3的池化卷积核堆叠在一起,增加了网络宽度,降低了feature map的厚度,在ImageNet分类结果中测试误差为6.67%。在此基础上又提出了Inception v2[25],在v1基础上加入了BN层,标准化每一层的输出结果,另外为了降低参数量,使用2个3×3的卷积核代替了5×5,提升运算速度。Inception v2的测试误差降低到4.8%。Inception v3[26]加入了降维思想,例如将一个3×3的卷积核拆成1×3和3×1的卷积核,这使得网络深度进一步加深,同时增加网络的非线性,测试误差降低至3.5%。Inception v4则是将Inception模块与残差网络相结合,极大地提升了训练的速度,测试误差降低至3.08%。由于Inception v3作为一个已经预训练好的图像分类模型,使用简单方便,准确率高,被更多地应用。

2.1.2 “端”到“端”的卷积神经网络缺陷检测模型

对比于上述几种模型,YOLO算法和SSD算法可以实现“端”到“端”的目标检测,输入被测图像,输出目标图像。YOLO可实现在一个CNN中进行检测操作,算法简洁,检测速度快,不易对背景误判,泛化能力强,在做迁移学习时鲁棒性好。YOLO还经常与Inception一起使用,YOLO作为图像分类算法,Inception作为目标检测算法,两者结合使用表现优异。但YOLO在定位细长的物体时无法很好地泛化。SSD算法使用一个C+1类分类器判断锚框里包含的是物体或是背景,若包含物体则进一步判断物体种类。且SSD可以将CNN输出的特征进一步通过卷积和池化处理,实现多尺度预测。

2.2 基于深度信任网络的缺陷检测技术

深度信任网络(Deep Belief Networks,DBN)算法[27]是典型的深度学习神经网络模型之一,既可用于非监督学习,也可以用于监督学习。DBN的组成元件是受限玻尔兹曼机(Restricted Boltzmann Machines, RBM),RBM[28-29]由可视层和隐含层构成,分别作为输入训练数据和特征检测器使用,DBN算法的本质是如何更好地进行特征表达。由于DBN由多个RBM组成,在训练中第一个RBM进行充分训练后固定权重和偏移量,将第一个RBM的隐含层作为第二个RBM的可视层,将数据输入第二个RBM继续训练,第二个RBM充分训练后,重复一、二间的过程直至得到较为理想的数据,DBN结构的最后一层为微调,使用BP算法对判别性能做一个标签集并被附加到顶层,给从下而上的学习设置BP网络用以调优,因为BP算法对权值参数空间仅是一个局部的搜索,相较于前向神经网络训练较快,而且收敛的时间也少。

2.3 基于自编码器的缺陷检测技术

自编码器(Autoencoder, AE)是一类在半监督学习和非监督学习中使用的人工神经网络,其功能是通过将输入信息作为学习目标,对输入信息进行表征学习[30-31],包含编码器和解码器两部分。自编码器可按学习范式和构筑类型分类,如图2。

进行缺陷检测时常由于数据量过大,包含的冗余信息及噪音信息会对识别产生影响,降低准确率,又或者想通过数据降维寻找数据内部的本质结构特征,提升模型训练速度,因此数据降维是提升检测准确率的方法之一。自编码器接收输入将其转换成高效的内部表示,这一过程称为编码,由于其维度一般远小于输入数据,自编码器应用于降维方面表现很好,在输出结果之前,经过解码函数将高效的内部表示重构为类似输入的结构输出。另一方面,自编码器可作为强大的特征检测器,可应用于深度神经网络的预训练,在样本数据不充足的情况下,对网络进行预训练会提升检测的准确率。

现有的基于自编码器的缺陷检测方法大致分为三类:第一类是将自编码器用于特征提取,结合分类器或深度网络进行分类,最后输出检测结果;第二类是使用去噪自编码器将缺陷视为噪声去除,得到无缺陷的图片样本,将无缺陷检测样本和原图进行求差操作得到残差图,并使用阈值分割方法,分割出缺陷区域,实现检测;第三类是将自编码器用于深度网络的预训练,以弥补样本不足对深度网络模型带来的影响。

2.4 深度学习缺陷检测技术的应用研究

在进行产品缺陷检测时,通过对缺陷检测技术应用不同深度学习网络模型面对不同工业制品的应用情况研究,分析检测网络模型在实验中存在的问题,有目的地优化现有算法,从而提高缺陷检测的准确率和速度。深度学习中各典型网络应用于工业产品缺陷检测的优缺点见表1。

通过检测方法、被检对象、检测精度三方面对近五年相关应用研究进行总结见表2。

表1 基于深度学习缺陷检测方法的比较

表2 基于深度学习工业产品缺陷检测的应用研究

续表2 基于深度学习工业产品缺陷检测的应用研究

3 存在问题和发展趋势

3.1 存在问题

基于深度学习的缺陷检测技术在理论层面和实际应用层面都取得了较好成绩,但依旧存在以下问题:

(1)采集图像时,光照环境、背景复杂度等外界因素会影响缺陷特征的提取进而影响检测精度,同时硬件设备带来的图像畸变及噪声等因素也会在一定程度上影响图像的质量、检测的性能。如何高质量地采集图像,减少外界因素的干扰是目前需要解决的问题之一;

(2)在实际采集数据的过程中,除了需要避免外界因素影响,数据本身的全面性也是需要考虑的因素。在一些检测项目中,缺陷样本的数量不够充分,种类不够丰富,会导致网络模型不能完整、准确地学习缺陷的特征,无法正确检测。如何快速、准确、全面地获取缺陷特征,保证实际应用时检测的准确率是目前需要解决的另一个问题;

(3)基于卷积神经网络的缺陷检测系统很大程度上依赖于候选框的回归,候选框回归产生偏差,或因目标属于小尺寸目标,导致无法生成候选框,无法精准定位缺陷位置等问题,急需优化候选框生成和校正回归误差的算法,优化提取小尺寸目标特征时的算法;

(4)现有的算法应用到实际生产过程中会产生一些实时性问题。在保证检测系统精度和效率的情况下,如何提高系统的准确性与实时性也是目前需要考虑的问题。

3.2 发展趋势

在目前工业产品缺陷检测中,深度学习已应用到机械零件(如火花塞、轴承、锚杆等)、汽车零件、芯片、半导体晶圆等各种产品的缺陷检测上。基于深度学习的缺陷检测将成为未来的发展趋势,具体有如下几个研究方面:

(1)基于上述存在的问题,如何优化图像采集的质量,提高候选框的精度,更加全面、准确地提取特征进行学习,对于小尺寸目标的特征提取,都是未来需要研究的方向;

(2)如今涌现大量的神经网络(包括针对某一问题进行改进的神经网络)各有优缺点,这些网络都是基于大量数据实现的,如何使用较少的图片样本训练出表现优异的识别模型是一大难点;

(3)目前的缺陷检测技术大多是基于二维平面的,只能单一检测某一平面,如何对某一物体进行全方位的缺陷检测(如利用三维建模等)也是未来研究的方向;

(4)在产品衍生物越来越多的今天,如何将一个已经训练好的模型迁移到另一个类似产品上,并保证其准确率和检测效率,也有待研究;

(5)在检测出缺陷并明确是何种缺陷后,对该物体的信息善后及处理是十分重要的,同时将缺陷产品与无缺陷产品分离也是十分必要的。缺陷检测系统可以与预警系统结合,在检测出缺陷产品后及时示警,工作人员可以及时剔除缺陷产品;或与分拣系统结合,由机械手剔除缺陷产品,另外还可建立溯源系统,排查生产工艺中会使产品产生缺陷的步骤,并及时优化生产工艺,从而降低生产成本。

4 结 语

产品的质量和外表的完整度对于产品的评价十分重要,缺陷检测的应用具有极其重要的实际意义,广大科研工作者和企业都热衷于缺陷检测的研究。本文针对基于深度学习的工业产品缺陷检测方法进行综述,对基于卷积神经网络、深度信任网络及自编码器的缺陷检测技术进行了介绍,总结近五年国内外的相关研究成果,同时结合实际指出当前基于深度学习的工业产品缺陷检测技术存在的问题,并给出该技术未来的发展方向,以辅助相关研究人员、企业等有针对性地进行知识重用及设计创新。

猜你喜欢
编码器卷积神经网络
融合CNN和Transformer编码器的变声语音鉴别与还原
基于神经网络的船舶电力系统故障诊断方法
MIV-PSO-BP神经网络用户热负荷预测
设定多圈绝对值编码器当前圈数的方法
基于3D-Winograd的快速卷积算法设计及FPGA实现
一种并行不对称空洞卷积模块①
转炉系统常用编码器选型及调试
舞台机械技术与设备系列谈(二)
——编码器
从滤波器理解卷积
基于神经网络的中小学生情感分析