基于深度学习的发动机叶片故障检测技术
2022-03-11农昌瑞张海兵张亚周
张 静 ,农昌瑞 张海兵 ,张亚周
(海军航空大学航空基础学院1,岸防兵学院2:山东 烟台 264001,青岛校区3:山东 青岛 266041)
0 引言
航空发动机叶片的工作环境非常恶劣,在工作过程中极易产生裂纹,在飞行过程中易因外来物撞击而被打伤,导致缺口损伤(缺损)等故障,因此,发动机叶片的状态在很大程度上影响着航空发动机的整体性能。
航空发动机叶片的故障检测常采用无损检测技术。李华等针对航空发动机的自主检测技术,利用样条插值方法实现对特征点的精确提取;江海军等针对传统故障检测的效率以及精度问题,设计研发了超声波裂纹检测系统;李浩针对裂纹的识别与定位精度问题,建立了新型图像识别方法,在识别能力与定位精度方面均取得较大进步;张治衡针对裂纹的识别监测技术,探索了一种声发射技术,开辟了裂纹监测与识别的新途径,并且提高了识别精度;宋强等针对裂纹检测算法的效率以及精度问题,提出了一种渗透检测算法,在裂纹检测的精度以及收敛速度上均取得很大进展。以上方法相比于传统的检测方法均取得了较好的检测效果,但在高效化、智能化等方面存在不足,发动机叶片裂纹检测难以批量化。而基于深度学习理论的检测方法,如基于卷积神经网络的目标检测方法是一种高效、智能化的检测方法。
目前,深度学习是人工智能领域的研究热点,特别是在目标检测识别等任务中取得了非常显著的成果。但是深度学习在目标检测中需要依赖大样本数据集才能获得较好的检测效果,而在实际应用中收集到的发动机叶片故障图像数据十分有限,训练效果不太理想。此外,为提高目标检测的精度,一般的目标检测算法都采用较深的网络结构,但是在精度提高的同时,训练与检测过程耗时也有所增加。所以迫切需要一种针对小样本数据集的深度学习检测方法。
为此,本文通过引入Res2Net多层级残差单元并集成到ResNet-50 结构中,提出一种多尺度残差网络结构Res2Net-50,并将其作为主干特征提取网络集成到Faster R-CNN 目标检测算法中;同时,利用多次余弦退火衰减法对训练过程中学习率进行调整。
1 Faster R-CNN算法原理
Faster R-CNN 是任 少卿等在Fast R-CNN 基础上改进的目标检测算法,网络结构主要包括特征提取网络、区域推荐网络(Region Proposal Network,RPN)和Fast R-CNN 目标检测网络3 部分,算法检测流程如图1所示。
图1 Faster R-CNN算法检测流程
1.1 特征提取网络
特征提取网络主要通过卷积神经网络实现图像的特征提取。其中,卷积层通过权值共享的方法实现对网络训练参数与训练时间的优化,降低了网络的训练成本。针对小样本数据集,在图像输入网络之前,采用拉伸变换、加噪声、增加对比度等图像增强手段对数据集进行样本扩充,保证网络的训练效果。
为提升网络的训练效果,在输入网络前需要对不同尺寸的图像进行尺寸调整,随后进入多层卷积层与池化层进行卷积与池化操作,提取输入图像的深度特征并输出特征图,后续的RPN 网络与Fast R-CNN 网络均共享该特征图。特征提取网络是Faster R-CNN的主干网络,常用的有VGG、ResNet、Xception等。
本文对ResNet-50 残差网络结构进行改进,通过Conv Block 和Identity Block 2 个基本块来改变网络的维度和深度,在一定程度上克服了传统网络深度加大导致学习效率降低的问题。
1.2 区域推荐网络
RPN 网络结构如图2 所示。RPN 网络主要用于推荐候选区域,其输入是特征提取网络输出的特征图,经过卷积层与全连接层的操作,输出1 组区域推荐候选框(建议框)。
图2 RPN网络结构
RPN在输入的特征图映射上滑动窗口,每个滑动窗口分别对应9 个先验框(Anchors),这些先验框由3种尺寸(128×128、256×256、512×512)和3种比例(1∶1、1∶2、2∶1)的长宽比组成。滑动窗口在滑动过程中实现对特征图的降维,将其映射成相应的低维特征向量,作为边界框分类层(cls)和边界框回归层(reg)的输入。cls通过softmax函数实现背景区域与目标区域判定,reg用于计算并返回坐标参数(相对于真实框的偏移)。
在RPN 网络训练过程中,依据先验框与真实边界框区域的交并比(Intersection over Union,IoU)给每个先验框分配标签,遵循以下原则:
(1)IoU 最大值或者IoU 值超过0.7 对应的先验框,定义为正标签。
(2)IoU值低于0.3的先验框,定义为负标签。
对先验框定义正负标签的目的是为了提高网络的训练效果。对定义之后的先验框,需要最小化目标函数的任务损失,图像的损失函数定义为
式中:为先验框的索引序号;p为第个先验框判断为目标的预测概率;若标签为正,p=1,反之p=0;t为预测边界框的4 个坐标参数;t为标签为正的先验框对应真实框的4 个坐标参数;和为损失函数的归一化参数;和分别为分类损失函数和回归损失函数
式中:为鲁棒性的损失函数
4 维向量(,,,)表示边界框,一般采用以下4个坐标参数
式中:(,)、、为预测边界框的坐标、宽和高;(x,y),w,h为先验框的坐标、宽和高;(,)、、为真实框的坐标、宽和高。
1.3 Fast R-CNN目标检测网络
Fast R-CNN 目标检测网络包括1 个感兴趣区域(Regions of Interest,ROI)池化层、2 个全连接层,其结构如图3所示。
图3 Fast-RCNN结构
ROI 池化层的作用是对公共特征图和候选框进行固定大小的特征提取,并将输出的特征向量分类回归。利用分类层对预测框进行分类并对最终的预测框进行位置调整得到目标检测的结果。RPN 网络与Fast R-CNN 网络共享特征提取网络的输出,可以减少卷积层的运算次数,加快网络的训练速度。
2 Faster R-CNN算法优化
针对小样本数据集训练,本文对特征提取网络结构进行了优化,通过引入更细粒级的多尺度特征融合方法来提高模型的特征提取能力;同时,对学习率的衰减方法进行改进,采用多次余弦退火衰减法对网络进行训练,提高模型的训练与检测速度。
2.1 ResNet50网络结构优化
ResNet 残差网络将短连接引入神经网络,既能加深网络结构,也能缓解梯度消失问题。在特征提取过程中,短连接允许卷积核的不同组合,从而产生大量等价的特征尺度。ResNet 的残差网络单元如图4 所示。对输入向量分别进行1 次1×1 卷积、3×3卷积、1×1 卷积,最后与输入直接进行堆叠相加得到输出。
图4 ResNet 残差网络单元
小样本数据集虽然本身数据量较小,但是图像中目标的特征信息十分丰富,如果能够充分利用可以有效提高网络对于小样本数据集的检测识别能力,而传统的残差结构对于细节特征的提取还可以作进一步的优化,为此,本文引入了一种多层级制的残差连接优化结构Res2Net,用多层级的3×3 卷积核取代通用的3×3 卷积核,单个残差块内的分层残差类连接,使得单元的输出在更细粒度的水平上提取细节和全局特征,Res2Net 残差网络单元如图5所示。
图5 Res2Net残差网络单元(s=4)
Res2Net 的网络单元在第1 个1×1 卷积核后,将输入划分为个子集,定义为x,∈{1,2,…,},每一特征都具有相同的尺度,除了之外的其他子特征都有相应的3×3 卷积核并定义为KO,KO的输出表示为y,每个子特征x都与K的输出相加,然后进行KO卷积,为了减少参数量,结构省略了的3×3 卷积核,y可以表示为
Res2Net模块输出的感受野在数量与尺寸上的不同组合,构成了多尺度特征。在Res2Net 模块中,对输入进行多尺度处理,有利于全局和局部信息的提取。为了更好地融合不同尺度上的信息,将所有的分割集连接起来并通过1×1 卷积。分割和串联策略可以强化卷积以更有效地处理特征。特征重用可以减少参数量,为此省略了第1 次分割的卷积。使用作为尺度尺寸的控制参数,较大的可能允许学习具有更丰富感受野大小的特征,而由串联引入的内存开销可以忽略不计。
Res2Net 模块的多尺度表示能力与CNNs 的分层特征聚合模型是正交的,可以很容易地将Res2Net 模块集成到先进的特征提取网络中,本文将Res2Net 集成到ResNet-50模型中,得到Res2Net-50模型。采用优化后的网络结构可以提取出发动机叶片故障图像中更有效的特征信息,从而提高模型的识别能力。
ResNet-50 主干提取网络改进前后框架的变化如图6 所示。为了便于展示,省略了一些重复的残差模块,模型共分为4大卷积板块,共有48个卷积层,加上前面1 个7×7 卷积与最后1 个FC 全连接层,一共有50 层,故称ResNet-50。其中原框图为ResNet-50 的组成部分,而改进后的Res2Net-50 是将红色虚线中的单个3×3 卷积替换成3×3 卷积组,其中的数量由尺度尺寸参数控制,进而实现细粒级特征的提取。
图6 Resnet-50主干提取网络改进前后框架的变化
2.2 学习率优化
在深度学习的模型训练过程中,学习率的调整非常重要,较高的学习率可以加快学习速率,同时帮助跳出局部最优值;较低的学习率可以细化模型,提高模型的精度。适当调整学习率可以提高模型的训练性能。
目前常用的学习率衰减方式有阶层性衰减、指数型衰减、余弦退火衰减等。阶层性衰减是指训练过程中loss 值不再继续降低后,学习率调整为原来的1/2或者1/10,该方法需要较高的初始学习率,否则训练效果不佳。指数型衰减是指学习率会以指数函数形式降低
余弦退火衰减如图7 所示。学习率会先升高再降低,升高时为线性升高,降低时模拟余弦函数衰减。对余弦函数进行改进,采用多次余弦退火衰减,前期调整的周期较短,后期调整的周期较长,如图8所示。
图7 余弦退火衰减
图8 改进的余弦退火衰减
优化后的学习率在训练初期变化速度较快,在后期进行精细化训练,提高训练精度,因此变化速度相对较慢。多次余弦退火衰减能够有效避免陷入局部最优值的情形,使模型的训练速度有一定的提升。
3 试验过程
3.1 试验运行环境
试验运行的硬件环境配置见表1。软件环境为:Python、OPENCV、CUDA-10.0.130、Cudnn-7.6.5等,框架使用基于TensorFlow-1.13.0的Keras-2.1.6框架。
表1 试验硬件环境配置
3.2 数据集的构建
数据集为采集的某型航空发动机叶片故障图像,共计110 张,包括裂纹与缺损2 种不同的故障类型。在110 张图像中随机选取10 张用于测试模型的训练效果,其余的100张图像制作成VOC格式的数据集用于网络训练。
将制作好的VOC 格式的故障数据集(100 张图像)按比例进行划分,选取90%(90 张图像)的数据作为训练集,剩余的10%(10张图像)作为验证集。
3.3 训练过程
在训练过程中载入预先下载好的预训练权重文件,通过迁移学习的方式提高网络训练的效果。将数据集输入到网络后,设置迭代次数(epoch)为100,每一步输入的图像数据数量(epoch_length)为200。为了提高模型的训练速度,强化迁移学习能力,将训练过程分为2个阶段:第1阶段的epoch 为20个,将特征提取网络后的结构冰冻,主要对特征提取网络进行迁移训练,快速提升特征提取能力;第2阶段的epoch 为80 个,此阶段进行解冻后模型的细化训练,以提高模型的训练精度。
模型训练主要分为分类训练和回归训练,训练的损失主要包括RPN网络和Fast R-CNN 网络的分类与回归损失,损失曲线如图9所示。
图9 损失曲线对比
从图中可见,2 个模型的损失(loss)值降低趋势相似,在前20 个epoch 中,loss 值降低速度很快;在后80个epoch中,loss值降低较慢。基于ResNet-50的模型在训练过程中loss 值降低的过程浮动比较大,且经过100 个epoch 后降低到1.1 附近。而基于Res2Net-50 模型的loss 值降低的过程明显比优化前稳定,且loss值降低到0.9附近。通过对比可知,模型loss值降低了18.18%,说明优化后的模型收敛效果更好。
训练过程中模型准确率曲线对比如图10 所示。从图中可见,准确率在提高过程中存在明显的波动,这是由于数据集中某些图像的目标特征不突出,导致识别出现偏差,在第20 个epoch 后,准确率得到了很大提高,此后基本保持较小的提高速度,说明模型的精细化训练确实能够提高模型的识别能力。从图中还可见,基于ResNet-50的模型准确率为90.2%,优化的Res2Net-50模型准确率提高到90.9%,提高了0.7%。
图10 训练过程中模型准确率曲线对比
4 结果分析
4.1 评估标准
在深度学习中,针对不同的学习任务有不同的评价标准,常用的评价指标有准确率和召回率,合适的评估标准可以有效提高模型的训练效率。计算出每个类别的精确度(Precision)和召回率(Recall),得到1 条P-R 曲线,曲线下的面积就是检测精度(Av⁃erage Precision,AP)。AP值结果如图11所示。
图11 AP值结果
对所有类别的AP 值求平均得到平均检测精度(mean Average Precision,mAP),mAP 是衡量模型精度的重要指标,能够反映目标分类与预测框的位置是否准确
式中:为模型的mAP 值;为每一类别的AP 值;为类别数量。
4.2 试验结果对比分析
模型训练结束后,分别对10 张测试图像进行检测,以ResNet-50、Res2Net-50 为特征提取网络的模型检测结果分别如图12、13所示。
图12 以ResNet-50为特征提取网络的模型检测结果
从图12 中可见,不同故障类型的检测效果也有所不同,从图12(a)中可见,2条裂纹只检测出1条,且检测结果的置信度较低,同时,检测的真实框的长度偏长,不能很好地拟合裂纹的边框;对于缺损故障的检测效果较好,但是检测结果的置信度还不足0.90。从图13 中可见,能够检测出图中所有的裂纹,且裂纹与缺损故障的检测置信度均优于ResNet-50模型的。
图13 以Res2Net-50为特征提取网络的模型检测结果
模型改进前后的检测精度与训练时间的数据对比见表2。基于ResNet-50 模型的缺损故障的值为88.0%,裂纹的值为78.0%,模型的为83.0%,而基于Res2Net 模型的缺损故障的值为90.0%,裂 纹 的值 为79.0%,模 型 的值 为84.5%,优化后的模型值提高了1.8%,训练时间缩短了5.56%。
表2 模型改进前后指标数据对比
将本文采用的Faster R-CNN 目标检测算法与现在流行的YOLOv3、SSD目标检测算法进行比较,其结果见表3。从表中可见,对于裂纹故障,其他2种模型的检测精度均低于本文模型的;对于缺损故障,3种模型的检测效果则相差无几。本文模型在平均检测精度上也优于其他2 种模型的,验证了本文模型更适用于发动机叶片的故障检测。
表3 不同检测算法的检测精度对比 %
5 结论
(1)针对小样本数据集训练效果不佳和训练速度慢等问题,引入更具细粒度的多尺度残差结构Res2Net模型,明显提高了模型的检测效果,优化后模型的平均检测精度提高了1.8%。
(2)改进学习率衰减方法,采用多次余弦衰减,使训练过程明显加快,训练时间缩短了5.56%。
试验结果证明,改进后的模型在检测性能上得到了一定的提高。