深度学习在超声检测缺陷识别中的应用与发展∗
2019-07-25廉国选
李 萍 宋 波 毛 捷 廉国选
(1中国科学院声学研究所 声场声信息国家重点实验室 北京 100190)
(2中国科学院大学 北京 100049)
0 引言
超声检测是一种应用范围较广的无损检测方法[1],对缺陷进行定性和定量分析是超声检测的关键内容。仅通过超声检测信号对缺陷进行人工识别,鲁棒性差,长时间的检测强度可能会引起缺陷的漏判错判,准确率受到限制。超声检测原始结果多用A扫信号表示[2],随着阵列检测技术的发展,超声检测结果也越来越多地通过图像表示,如扫描超声成像、相控阵成像、超声CT、合成孔径聚焦技术(Synthetic aperture focusing technique SAFT)成像等。相应的,基于长期以来对超声缺陷自动判别的发展需要,借鉴于模式识别中深度学习(Deep learning)的应用,即通过搭建多层的网络结构来建立输入与输出的关系,得到识别的结果,发展了很多方法用于超声检测缺陷识别。由最初的超声检测A扫波形做信号处理提取特征,通过浅层神经网络进行识别,到现在尝试直接使用深度学习模型处理超声检测图像得到识别结果。
深度学习用于缺陷识别的主要步骤为将原始数据处理为适用的范围,再提取特征来表征信号,最后将不同特征信号进行分类[3]。深度学习从早期的浅层神经网络发展到了深层神经网络也就是深度学习,而相比于手动提取低层次的特征,卷积神经网络(Convolutional neural network,CNN)能自动提取信号的深层次特征[4]。
本文综述了深度学习在超声检测缺陷识别中的应用,包括从早期浅层神经网络的应用到如今深度学习的使用,探讨了基于CNN框架的深度学习方法在超声检测图像识别存在的问题,并归纳了其可行的应对策略。
1 深度学习的发展
深度学习作为机器学习的一个分支,意在建立能模拟人脑进行分析学习的神经网络,通过构建多隐藏层模型对海量数据进行训练。在深度学习之前,发展了浅层神经网络,随着计算机辅助能力的提升,多层网络的理论研究加强,逐渐发展成为深层神经网络,也就是深度学习。
1.1 浅层神经网络
早期神经网络模型在1943年提出[5],提供输入后,使用线性加权和来模拟变换,然后经过一个阈值函数得到0或1的结果,具有若干个输入和一个输出的模型。最早期是手动设置权重,1958年提出单层感知机模型,是首个根据样本数据来学习权重的模型,但其只能解决线性可分问题。1986年提出反向传播(Back propagation,BP)算法及多层感知机(Multilayer perceptron,MLP)。BP算法降低了训练神经网络所需要的时间,多层感知机在输入和输出层之间加入隐藏层,且在单个神经元中的线性加权和后引入了激活函数,带来非线性变换,解决非线性问题。只使用一层隐藏层称为浅层神经网络,浅层神经网络在20世纪80年代末迎来了发展高峰期。
90年代末,其他浅层机器学习算法相继提出,有突破性的进展,如支持向量机(Support vector machine,SVM)、线性回归、决策树等,这些方法在理论分析和应用都获得了成功[6]。深层神经网络[7]也就是深度学习主要指具有多层变换对复杂性数据建模算法的神经网络,多层网络对输入信号提取不同的特征,相比于浅层,其表征能力更强,但其多层的变换理论分析较难,训练需要很多经验和技巧,在当时的计算性能下很难训练深层的神经网络,而且当时的数据量相对较小,不能满足深层神经网络训练的需求,因此浅层神经网络在向深层神经网络发展时比较缓慢。
1.2 深层神经网络——深度学习
随着计算机性能的提高以及云计算、GPU的出现,计算量已经不再是问题。随着互联网的发展,通过网上保存数据、共享数据,使得获取海量数据不再困难。2006年,机器学习领域的泰斗Hinton等[4]在学术刊物《Neural Computation》上的一篇文章,开启了学术界和工业界的深层神经网络也就是深度学习浪潮,深度学习理论研究渐入佳境,且在应用领域显示出巨大潜力。在2012年迎来了历史性突破后,深度学习已经扩展到机器学习的所有领域。
深层神经网络通过组合低级特征形成抽象的高级特征,以表征数据的分布式特征[7],最典型的模型有递归神经网络(Recurrent neural networks,RNN)、长短期记忆网络(Long short-term memory,LSTM)/门控递归单元网络(Gated recurrent unit,GRU)、卷积神经网络(CNN)、深度置信网络(Deep belief networks,DBN),这些模型广泛用于各种领域,表1列出了它们的典型应用。
表1 深度学习的典型模型Table 1 The typical models of deep learning
其中,CNN模型多用于图像识别,通过卷积操作、参数共享、多个卷积核、池化降采样以及多层卷积提取图像的局部特征得到全局特征。图1为最早的卷积网络LeNet-5[8],它有3个卷积层、2个池化降采样层、1个全连接层和1个输出层。卷积层是卷积核与上一层图像逐一进行卷积计算得到,其作用是提取图像的特征,不同卷积核能得到图像在不同映射下的特征。池化降采样层对图像进行子抽样,可以减少数据处理量同时保留有用的信息,从而减少训练参数。全连接层出现在最后,对特征做加权和,将提取的特征映射到输出的样本空间,起到分类的作用,连接到输出层,得到图像识别的结果。
随后出现了基于CNN的不同卷积网络架构,如AlexNet、VGG、GoogleNet、ResNet、DenseNet等。CNN架构在朝着网络更深、分类结果更准确发展,也朝着网络更简化更灵活的训练努力,目的是得到更好的特征表示且减少计算复杂度。
图1 LeNet-5,卷积神经网络Fig.1 LeNet-5,a convolutional neural network
2 浅层神经网络用于超声检测缺陷识别
超声检测数据自动化分析的创新性工作始于20世纪70年代末,Rose等[9−10]提出选取超声信号傅里叶变换特征使用神经网络方法进行分类的可行性,1986年,Burch等[11]验证了时域信号峰值、幅度比等作为特征使用神经网络可用于对焊接件的缺陷进行分类。
1991年,Thomsen等[12]针对复合材料玻璃钢制作中存在的几种缺陷,利用神经网络实现了对其缺陷的判别。1993年,Lorenz等[13]将钢板中得到的回波信号在时域加窗后进行傅里叶变换,再在空间域进行傅里叶变换作为输入,利用BP算法训练神经网络后可以利用这一神经网络对钢板未知类型缺陷进行识别。
90年代末,陈彦华等[14]分别以缺陷回波去卷积和自适应滤波求得缺陷特征响应作为特征量,又验证了在给定条件下,用回波幅度值也能实现缺陷类型和大小的评价。刘镇清等[15]提出对粗晶奥氏体不锈钢的检测信号做傅里叶变换、Wigner变换、谱分析等处理,提取其特征,输入到神经网络,而后改进了BP算法,修正学习率,识别缺陷有无准确率接近90%。
20世纪初,Simone等[16]使用离散Gabor变换、小波变换及小波聚类算法对焊接件的超声检测信号进行特征提取,并输入到神经网络进行识别,结果表明小波聚类算法对焊接件的缺陷分类效果最佳;卢超等[17]用此方法对高温合金棒材的平底孔、横孔等人工缺陷进行识别,准确率达96.4%。2005年,Veiga等[18]对超声自动检测系统得到的超声波衍射时差法(Time of flight diffraction,TOFD)缺陷使用神经网络信号进行缺陷分类,节省了在线检测的处理时间,也保证了准确率。
在当时的情况下,超声检测主要是基于反射回波的时域信息进行缺陷识别,而神经网络相比于人工判定方法有很大的优势,一是检测效率高;二是神经网络具有高度容错性,信噪比较差的情况下也能使用;三是神经网络适用于关系无法用确定的表达式表示的情况;四是神经网络训练完成后,可以离线用于识别未知缺陷。
而当时用于超声检测缺陷识别的神经网络也存在以下问题:网络训练时间长;靠经验选择来选取神经元;选取特征量时,需要用典型缺陷的模型,根据理论和实验确定能反映缺陷特征的量。因此提出了很多信号处理方法用于提取缺陷特征。随着神经网络进入低潮期,发展了很多其他机器学习方法用于超声检测缺陷识别,如最常用的支持向量机方法。
3 深度学习用于超声检测缺陷识别
3.1 基于深度学习的超声检测缺陷识别
深度学习在2006年掀起浪潮并在2012年取得突破性进展后广泛应用于各个领域,在超声检测缺陷识别上,同样也有大量的应用。
2011年,Sambath等[19]选取回波信号小波表示后的12个系数作为信号的特征,如平均值、方差、能量、幅度等,输入到含两个隐藏层的神经网络进行训练识别4类缺陷,准确率达到94%。Wang等[20−21]对深度学习用于超声检测进行了研究,基于现场可编程门阵列(Field-programmable gate array,FPGA)硬件平台搭建了用于超声目标检测的系统,先后提出基于时域处理、分频处理方法提取信号特征量,设计了含3个隐藏层的神经网络,分频处理后训练得到99.1%的准确率远高于时域处理结果。
施成龙等[22]将采取的A扫信号进行小波包分析,提取其缺陷回波信号的能量分布特征,输入到多隐层深度信念网络,缺陷识别率提高到了98.33%。Meng等[3]提出基于CNN的深度学习框架对碳纤维聚合物缺陷分类,选用小波包系数作为CNN的输入,分类准确率达到99.87%。
3.2 深度学习在检测图像识别的发展
随着深度学习在图像的智能识别和理解上取得显著进展,在目标检测方面,开始使用深度学习方法。将其引入到超声检测缺陷识别中,可以免去复杂的手工特征提取步骤,在这方面,医学影像识别与射线图像缺陷识别的相关工作值得借鉴。
在医学影像识别领域,深度学习方法已经广泛并成熟应用于医学图像识别、检测和分割等。如采用CNN自动提取特征,对乳腺癌、结肠癌等疾病进行分类[23−24],利用三维CNN框架在CT序列中检测肺结节[25],采用基于图像块的CNN算法从X光血管造影图像中提取血管达到血管分割目的[26]等众多应用。而已公开的医学图像数据库[27]和医学图像挑战赛数据集[28]使得深度学习方法在医学上得到了很好的训练和验证,其结果越来越可靠。
在射线工业检测中,2014年,余永维等[29]提出一种基于深度学习的射线图像缺陷识别方法,提出不同于传统“人工特征提取+机器学习”的方法,采用深度学习网络,使可疑区域的像素灰度信号直接通过网络模型,卷积神经网络提取其可疑缺陷区域的特征实现识别,为视觉缺陷检测领域提供了新的思路和方法。颜伟鑫等[30]提出采用Faster R-CNN网络模型对工件射线图像进行缺陷区域检测,通过实验对比验证了该网络结构模型性能优于传统的方法。
超声成像技术不断发展,其成像质量也在不断改进,越来越多的用超声图像来表征缺陷检测结果。结合以上方法,在超声检测领域,2017年,郑志远[31]深入分析了焊缝各类典型缺陷的超声TOFD-D扫描成像图的特征,根据分析得到的特征设计了基于Faster R-CNN算法的缺陷自动识别分类网络,通过改变实验参数获得更多的样本对网络进行自动识别试验,分析了该方法应用于超声TOFD-D成像的可行性、准确性及效率。Khumaidi等[32]提出图像处理方法对焊接件缺陷进行识别,采集了焊接件4类缺陷的超声检测图像作为输入,该文献使用的CNN模型如图2所示。使用CNN实现特征提取和分类的功能,卷积层的卷积核函数使用的是高斯核函数,能减少提取图像过程中丢失的原图像主要信息,也能减少干扰或噪声的出现,其分类给出了95.83%的准确率。
图2 卷积神经网络结构[32]Fig.2 CNN Architecture
超声检测图像并没有统一的特征量来表征,而CNN通过图像卷积能自动寻找特征。上述例子表明,在数据量不大且通过一个简单的CNN网络,便能达到一定的准确率,可见深度学习中的CNN方法在超声检测图像识别方面具有很大潜力。在提高检测效率和保证判别准确率方面,将深度学习算法与超声检测图像识别结合有相当大的意义。
4 深度学习用于超声检测缺陷识别面临的问题和应对策略
基于CNN框架的深度学习通过训练提取数据的特征,实现其识别功能,在自然图像处理中展示了卓越的性能,将其应用到超声检测图像识别领域具有很大的潜力,但仍有很大挑战性。
4.1 面临的问题
主要表现在以下几个方面:
(1)传统图像识别分类,自然图像建立了超大规模的样本数据集,如MNIST、CIFAR、ImageNet,在医学图像上,也在逐步建立起数据库。而在超声检测中,获取大规模的样本数据集非常困难,因为其种类多、差异大,且不同行业之间是独立的,因此,可用的标注数据规模相对很小。
(2)大多超声检测图像只有信号的强度值,特别是信噪比较低的情况,缺陷和干扰区别不明显,有时候还因为缺陷差异而成像不同,因此,超声缺陷识别分析比较困难。
(3)超声检测不同的成像方法反映工件内部的不同信息,各有优缺点,通常会使用多种不同的成像方法来确定结果,许多图像处理的深度学习算法不能直接用于超声检测缺陷分析。
4.2 应对策略
为了提高缺陷特征表示能力和分类准确率,应对以上问题,可以考虑如下应对策略。
4.2.1 迁移学习
CNN的主要潜力在于能够在多层抽象中提取具区分性的特征,CNN是监督学习模型,从零开始训练CNN是一大挑战。CNN需要大量标记的训练样本数据,而超声检测领域并没有大型的缺陷标记样本库。针对这一问题,可以采用迁移学习方法,迁移学习作为使用其他领域的数据集以监督方式预训练CNN网络,再使用超声检测数据来微调预训练网络作为超声缺陷的分类器。
医学图像识别研究发现,用ImageNet自然图像训练得到的CNN模型可用于医学图像识别[33],可使用预先训练好的网络模型进行超声检测缺陷识别。将预训练CNN作为监督学习网络初始值,利用超声检测有限的标注数据集对网络参数进行微调,调整网络中的几个或全部层。Tajbakhsh等[34]分析表明深层网络进行微调性能有所提高,且训练集规模减少时,使用微调网络的重要性提高了。
4.2.2 网络泛化及结合图像空间连续信息
由于超声检测受现场条件影响大,虽然监督学习在使用标准化成像的有限实验中表现出很大的潜力,但在稍微不同的条件下获取的新图像,性能可能会不一样。因此适当使用深度学习通用的数据处理方式如规范化、正则化、Dropout层以提高网络的泛化能力,减少过拟合[35]。
超声检测图像模糊,缺陷显示微弱且形式多样,在特征提取阶段,可先进行图像像素点索引,利用区域中央和周边的差值来进行图像分割,得到可疑的区域[36],而在超声检测成像过程中会带来噪声,可采用缺陷区域动态跟踪来识别缺陷和区分噪声信号,通过处理该图像空间连续信息来检查和所得可疑区域是否匹配,以消除噪声影响和误检,而不同图像之间缺陷是否匹配可以以深度学习特征矢量的相似度来判别,即为该特征矢量之间的欧式距离。若可疑缺陷区域两两匹配,可判断为同一个区域且存在缺陷。
4.2.3 多图像信息融合及三维图像处理
当缺陷需要用多个成像方法得到不同的检测图像或者三维成像结果来表征时,可采用多处理流CNN方法、三维CNN方法、多个网络模型结合使用等方法进行超声检测图像识别。
多处理流或多通道流CNN方法取缺陷多个成像结果[37]或三维图像转换成多个视角的二维图像[38]作为输入,整合多个通道缺陷信息,提高缺陷准确率,最后在全连接层合并这些特征,得到最终分类结果。三维CNN借助三维卷积提取特征,可以处理超声检测三维成像结果,该方法分类准确率更高,但计算效率较低[39]。多个网络模型的叠加如RNN和CNN结合使用[40],RNN网络模型对序列信号提取不同时刻的关联度,CNN网络模型主要对单张图片进行特征提取,可以对超声检测三维立体成像结果进行识别。
5 讨论和结论
综上所述,深度学习具有自动地从数据中学习深层次特征的能力,已应用于图像分析的多个研究领域。在大多数文献中,使用深度学习相关的方法都表现出高性能,而云计算和多GPU高性能并行计算技术的发展,深度学习可以从大数据中学习深层特征。从现有文献梳理中可看出,目前代表领先水平的深度学习用于图像识别的方法大多是基于CNN的框架。
超声检测直接使用基于CNN框架的深度学习方法对检测图像进行识别的研究还较少,获得用于训练的标注数据是深度学习方法应用于超声检测图像识别的一大挑战。在目前已标记训练数据有限情况下,充分利用超声检测中的非标注图像,通过迁移学习,并结合图像三维信息,使用多个网络模型,达到泛化的目的,使其具有通用性将成为超声检测缺陷识别的一个重要发展方向。
上述挑战为超声检测缺陷识别领域提供了机会,通过深度学习算法的不断改进,借助高性能并行计算技术和日益改善的超声检测成像质量与不断增长的检测数据标记样本集,基于深度学习的超声检测图像识别将大有所为。