基于生成对抗网络的叶片表面缺陷图像数据增强*
2022-07-27卢文壮袁志响
丁 鹏,卢文壮,刘 杰,袁志响
(南京航空航天大学机电学院,南京 210016)
0 引言
近年来,国产各型航空发动机在使用中暴露的质量问题十分突出,其中叶片的质量问题占了相当大的比例[1],对叶片表面缺陷的检测就显得至关重要。随着电荷耦合器件的发展,以及计算机技术中图像处理、人工智能等算法的深入研究,机器视觉技术在工业质检中得到越来越广泛的应用[2-4]。
AlexNet在拥有1400万幅图像,涵盖20000多种类别的ImageNet数据集的分类竞赛中取得了冠军[5],自此卷积神经网络得到了众多研究人员的关注。近年来,新的网络模型如VGG16Net[6]、GoogLeNet[7]、ResNet[8]等也受到广泛关注,在图像分类领域获得了不俗的成绩。然而,这些模型依托的数据集是MNIST[9],ImageNet等大型数据集,当样本数据集较小时,模型容易出现过拟合等问题导致分类准确率明显降低。在实际情况下,受到记录条件的限制,收集大量带标签的叶片表面缺陷图像困难,仅能获得少量的数据样本。
针对小型数据集中训练样本小导致的过拟合或者泛化能力不强的问题,数据增强成为解决该问题的有效方法之一。GOODFELLOW等[10]提出了生成对抗网络(GAN),这种致力于数据生成的模型为数据增强带来了启发。MIRZA等[11]提出条件生成对抗网络(CGAN),在生成器的输入中加入条件变量c对生成结果进行约束,提高了模型生成图像的效率。ODENA[12]提出了一种半监督的生成对抗网络模型(SGAN),该模型同时训练生成器和半监督分类器,优化了生成模型,提高了生成图像的质量。大量的实践证明[13-15]基于生成对抗网络的数据增强方法能够有效地解决小样本学习问题,提高生成数据的多样性和训练器的分类精度。
本文对条件生成对抗网络(CGAN)进行改进并将其应用于小样本条件下的叶片表面缺陷数据增强,经过增强的叶片表面缺陷数据通过卷积神经网络进行分类,分类准确度有明显地提高。
1 面向叶片表面缺陷数据生成的网络架构
生成对抗网络(GAN)是GOODFELLOW等[10]提出的一种新的深度学习算法。最初GAN包括一个生成器G(generator)和一个判别器D(discriminator),该网络的生成器G和判别器D均为全连接网络。GAN的核心思想便是生成器与判别器在训练过程中的相互博弈,通过相互博弈可以使生成器G和判别器D均达到最优状态,生成器可以根据输入生成以假乱真的图像。近年来,基于生成对抗网络的数据增强方法取得了许多成果,但是训练数据量不足的问题同样制约着GAN生成样本的多样性,使网络难以生成有效的增强数据以提高分类效果。本文从小样本叶片表面缺陷数据出发对GAN网络结构进行改进,搭建叶片表面缺陷数据生成对抗网络结构。
1.1 生成器和判别器结构
为保证叶片表面缺陷图片的纹理和结构特征以及训练的效率,设置生成器的输出和判别器的输入图片大小为(128,128),并设置随机噪声z的维度200。生成器网络结构有1个噪声输入模块,4个反卷积模块和1个图像输出模块。输入模块使用随机噪声z和类型标签y映射并重塑成(4,4,512)的向量,再通过神经网络的批量标准化处理和使用ReLU激活函数进入反卷积模块;反卷积模块通过4层反卷积降低通道数,并且每层反卷积模块包括一次批量标准化处理和ReLU激活函数激活,最后使用通道数为3的反卷积层将生成的叶片表面缺陷图像输出。生成器网络详细参数如表1所示,生成器结构如图1所示。
表1 生成器网络结构参数
图1 生成器结构
判别器结构为1个图像输入模块,5个卷积模块,1个分类模块。图像通过输入模块输入,然后通过5层卷积模块提高通道数,每层卷积模块包括一次批量标准化处理和LeakyReLU激活函数激活,最后通过两个全连接层输出图像真假信息和分类信息。
由于叶片表面缺陷样本数据量小,为降低网络的过拟合性和避免网络过早的达到平衡点,使用神经元随机失活(dropout正则化)[16],以提高生成叶片表面缺陷图像的多样性。在判别器的卷积层的前两层加入dropout层,随机失活率为0.5,保证梯度下降速率的同时也缓和了网络的过拟合性。判别器网络详细参数如表2所示,判别器结构如图2所示。
表2 判别器网络结构参数
图2 判别器结构
1.2 损失函数
从原始GAN到CGAN,网络输入加入类别标签控制生成器的生成图像的模式,但是判别器仍然停留在只判断图像真假的阶段。ACGAN网络的出现继承了CGAN网络中监督生成数据的特点,还在判别器中加入了辅助分类器判断输入图像的类别。对于生成器G,不断通过模拟真实图像x的分布使判别器的输出趋向于1,另外在辅助分类器中达到正确的分类输出。对于判别器D,厘清输入的图像是生成的图像还是真实的图像,对于真实的图像达到正确的分类输出。式(1)中LS为图像的真假损失,式(2)中LC为图像的分类损失,判别器的训练将LS+LC最大化,生成器的训练将LC-LS最大化。
LS=E[logP(S=real|Xreal)]+E[logP(S=fake|Xfake)]
(1)
LC=E[logP(C=c|Xreal)]+E[logP(C=c|Xfake)]
(2)
2 实验与分析
2.1 叶片表面缺陷数据集建立
本文使用的数据集是在航空叶片加工现场采集获得。叶片表面缺陷采集系统主要包括:工业相机,支架,穹顶光源等。缺陷图像的质量受到光照强度的影响,由于叶片表面是不规则曲面,使用穹顶光源保证各处受光均匀。使用高斯滤波[17]或双边滤波[18]对图像进行处理,可以在一定程度上消除噪声对图像特征提取的影响,但是同时也弱化了图像的边缘信息;使用Laplacian高通滤波[19]对图像进行锐化处理,突出缺陷的边缘和轮廓特征如刻痕的刻痕边,去噪和增强后的叶片表面缺陷图像如图3所示。
图3 预处理后图像
现场收集的叶片表面缺陷图像有300张,其中缺陷类型有4种,分别为刻痕、烧伤、缺口和刮蹭,图像样本集70%划分为训练集,30%划分为验证集。
图像在进行生成对抗网络训练时,由于图像样本过少,很容易发生过拟合导致生成的缺陷图像过于单一,所以在此进行图像的预增强。预增强主要分为两个步骤:①将图像进行仿射变换,使用图像的随机翻转、镜像等操作增加训练数据;②确定缺陷的特征中心区域进行随机滑移采样。
先对训练数据进行随机仿射变换,变换后的图像为800×800,图像中缺陷特征的大小约为400×400,采集图像的窗口大小为600×600,围绕缺陷特征中心进行多次随机滑移裁剪,最终获得的叶片表面缺陷图像约为6000张,其中训练图像为4220张,验证图像为1780张。具体数据集如表3所示。
表3 预增强数据集
2.2 对抗网络训练
综上所述,叶片表面缺陷数据已经通过预处理获得新的样本数据集,将训练样本集导入网络进行训练。判别器的训练:叶片图像以及其标签信息通过判别器时,可以判断出是由对抗网络生成的假图像还是真实输入的图像,同时对于输入的真实图像都能判断出正确的类别。生成器的训练:一定维度随机噪声和标签信息融合后通过生成器生成假图像和对应的标签信息,生成的假图像能够骗过判别器以及假图像对应的标签和判别器的判定的标签一致。
在实际训练过程中,学习率直接控制着对抗网络的梯度下降的效率,是网络训练中最重要的参数之一。学习率过高时,虽然梯度下降速度快但是很难达到最优解,导致网络无法收敛;学习率过低时,容易陷入局部最优解导致图像生成的效果不佳。经过多次训练对比后,设置学习率为0.000 1,并设置训练批次大小为64,迭代次数为10 000次,所使用的梯度优化算法为Adam优化算法[20]。表4为训练好的生成器生成的图像与原样本的对比。
表4 ACGAN生成图像
2.3 卷积神经网络参数设置
使用ACGAN模型的主要目的是增强叶片表面缺陷数据集,由训练好的生成器生成叶片表面缺陷数据,再将生成数据和原来的训练数据集整合作为卷积神经网络的训练集,大大提升了训练的数据量,显著地提高分类网络的准确率。近年来,多种高效的卷积神经网络模型被提出如VGG16Net、GoogLeNet、ResNet等,这里使用GoogLeNet对增强后的数据集进行分类。由于叶片初始数据集较小,GoogLeNet中特殊的模块(Inception模块)可以在一定程度上缓和过拟合性,图4为Inception模块的结构图。Inception模块的出现打破了传统卷积神经网络的串联结构,将特征矩阵同时输入到多个分支进行处理,再将输出的矩阵按照深度进行拼接,既增加了网络深度的同时减少了参数的个数,一定程度上提升网络训练的效率。
图4 Inception模块的结构图
将增强后的数据集输入GoogLeNet进行训练,输入图片的大小为224×224,设置训练的批次大小为64,最大迭代次数为300,激活函数为ReLu,损失函数为交叉熵,梯度优化算法为Adam优化算法,学习率为0.003。
2.4 结果分析
本文基于生成对抗网络对小样本叶片表面缺陷数据进行扩充,并用卷积神经网络对扩充后的数据进行分类。实验的硬件环境为:CPU是AMD 3700X,内存为32 GB,GPU显卡为NVIDIA 3070。软件环境为:操作系统为Windows10 64bit版本,实现平台为tensorflow2.4以及python3.8。为了体现生成对抗网络的性能,从生成叶片表面缺陷图像的多样性和数据增强后叶片表面缺陷的平均分类准确率这两个方面进行评价。
实验中使用生成对抗网络的目的是生成具有多样性的图像以期达到数据增强的效果,而非生成与原图像一模一样的图像。通过计算结构相似度这个客观指标,来评价两幅叶片表面缺陷图像之间视觉上的差异。在一定范围内,生成叶片表面缺陷图像和原叶片表面缺陷图像的结构相似度越低表示生成叶片表面缺陷图像的多样性越好,生成网络的泛化性越好。结构相似度定义如下:
(3)
式中,μx和μy分别表示两张叶片表面缺陷图像x和y的平均值;σx和σy则表示两张叶片表面缺陷图像的方差;σxy表示叶片表面缺陷图像的协方差;C1和C2为常数。SSIM的取值在0~1之间,值越小,相似度越低;值越接近1表示两幅叶片表面缺陷图像越相似。
对于某类缺陷有n组叶片表面缺陷图像,定义平均结构相似度:
(4)
式中,SSIMi为第i组叶片表面缺陷图像的结构相似度。
为了体现生成对抗网络算法的数据增强效果,设计对比实验,对小样本叶片表面缺陷数据分别使用仿射变换和本文提出的数据增强算法增强数据,输入到CNN网络进行训练,对比各个数据集的平均分类准确率。平均分类准确率定义如下:
(5)
式中,Ai为数据集中第i类的分类准确率;n为类别数。
表5展示了各类缺陷对应的平均结构相似度,表现了各类生成图像与对应原图像在人眼视觉上有一定的差异,体现生成数据的多样性。图5描述了3个数据集在GoogLeNet网络训练中的平均准确率和迭代次数的趋势图。随着迭代次数的增加,平均准确率不断提高,最终曲线趋于平衡。使用生成对抗网络进行数据增强的数据集,平均分类准确率最高,并且曲线收敛的速度也明显较快。图6为交叉熵损失随迭代次数的下降趋势图,增强数据集的损失曲线在迭代100次后较其他两条曲线更平缓稳定,损失值最低。综上所述,使用ACGAN网络进行数据增强可以在一定程度上加快CNN分类收敛速度,稳定损失曲线,提高分类准确率。表6为3次实验的平均准确率。
表5 平均结构相似度
表6 实验结果
图5 平均分类准确率迭代曲线图 图6 分类损失迭代曲线图
3 总结
本文通过AGGAN网络模型,在原有叶片表面缺陷样本数据不足的情况下,对样本数据集进行数据增强,解决了叶片表面缺陷样本数据不足导致分类效果不佳的问题。ACGAN方法基于生成对抗网络,通过随机噪声信号生成增强数据,保证了生成图像的质量和多样性,实现了对小样本叶片表面缺陷数据集的有效扩充。实验结果表明,相比传统的数据增强方法,使用ACGAN方法所训练的CNN网络其泛化能力和收敛速度得到提高,平均分类准确率由86.2%提高至94.5%,体现了该数据增强方法的可靠性。