APP下载

基于改进ZF网络的航空发动机叶片损伤检测

2021-08-04邢志伟李龙浦侯翔开施亚中

中国民航大学学报 2021年3期
关键词:池化层池化卷积

邢志伟,李龙浦,侯翔开,施亚中,王 浩

(1.中国民航大学a.电子信息与自动化学院;b.航空工程学院;c.工程技术训练中心,天津 300300;2.北京飞机维修工程有限公司西南航线中心,成都 610202)

叶片作为航空发动机的关键性部件,其健康状态直接影响飞机的运行安全。航空发动机叶片在工作时面临高温、高压、表面压力分布不均等恶劣环境,极易造成叶片损伤。由于航空发动机自身的结构约束,目前发动机叶片维护主要由基于孔探技术的人工目视检查完成。由于受经验主导、人为忽视等因素影响,误检和漏检时有发生,因此,提高叶片损伤智能检测能力是航空发动机叶片损伤检测的重要研究方向。

Dyrwal 等[1]针对航空发动机涡轮叶片微裂纹检测提出了非线性空气耦合热超声技术,且在检测复杂元件损伤时显示出较高的灵敏度,为非接触式检测航空发动机涡轮叶片损伤提供了热成像系统的有效替代方案;Tiwari 等[2]通过对超声波导波信号进行细化,完成了对风力涡轮机叶片不同位置脱黏性缺陷的识别和表征,具有较好的实验效果;文献[3-6]分别采用涡流检测传感器技术、柔性电磁传感器技术、叶片单元模态应变能分析技术、小波变换及SUSAN 边缘检测技术对叶片表面损伤进行检测,并取得了良好的检测效果。上述研究都是基于传统的损伤检测理论,其应用范围相对较小,无法满足多目标的损伤检测需求。随着人工智能技术的发展,基于卷积神经网络[7-9](CNN,convolutional neural network)的多目标损伤检测方法越来越受到关注,在光纤损伤检测、下水管道缺陷检测、铁路接触网紧固件缺陷检测等领域应用广泛。这得益于CNN 良好的移植性和数据挖掘性,由于其允许新的数据可以随时加入到数据集中,从而不断优化检测效果。文献[10-11]使用卷积神经网络对采集到的风力涡轮机叶片图像进行损伤检测,减少了涡轮机的维护和检查时间,但是该方法仅对损伤进行分类且只检测到部分损伤,无法对叶片损伤的部位进行定位。除了使用卷积神经网络,张维亮等[12-13]分别利用概率神经网络实现了航空发动机叶片损伤图像目标区与背景区的分割,为快速识别损伤提供了有力手段,然而在损伤识别过程中还需将特征参数输入其他识别网络,增加了任务的工作量和复杂度。

针对上述研究存在的不足,提出基于更快区域卷积神经网络(Faster R-CNN,Faster region-based convolutional neural network)模型进行发动机叶片的损伤检测。损伤特征提取方面使用ZF(Zeiler-Fergus)网络对Faster R-CNN 进行改进,不仅可以更加准确地识别损伤类型,还能降低漏检率,极大减轻相关人员工作强度。

1 发动机叶片损伤特征提取

根据实际孔探检测需要,采用Faster R-CNN 模型进行目标检测。Faster R-CNN 模型由两部分组成:区域推荐网络(RPN,region proposal network)候选框提取模块和Fast R-CNN 检测模块,其模型结构如图1 所示。首先,使用ZF 卷积神经网络在原始孔探图像上进行特征提取,通过卷积层、最大池化层、标准化层等层级生成原图像的特征图(feature map);然后将特征图输入区域推荐网络(RPN)模块筛选出建议区域;接着将生成的建议区域和原图像的特征图送到Faster R-CNN 中形成感兴趣区域池化层(ROI pooling layer),经过全连接层后产生感兴趣区域特征向量;最后分别经过Softmax 函数分类和边界框回归进行位置精修产生叶片损伤类别和概率以及损伤所在位置。

图1 Faster R-CNN 模型Fig.1 Faster R-CNN model

1.1 ZF 网络结构及参数

ZF 网络是一种深度学习模型,具有可视化不同网络层的功能,且在图像分类方面优于其他主流图像分类模型,因此,选用该网络进行航空发动机叶片损伤图像特征提取。ZF 网络体系结构如图2 所示,其中前5 层均包含卷积层(convolution layer,简称conv),最后两层则包含全连接层、失活层、激活层(rectified linear unit incentive layer,简称relu)和标准化层(normalization layer,简称norm)等(图中省略了失活层、激活层和标准化层)。在第1 层卷积层(conv1)中有96 个尺寸为7×7,步长(卷积核每次移动的像素距离)为2的卷积核,然后是激活层1(relu1)、标准化层1(norm1)和池化层1(pool1),其中池化层的池化窗口为5×5,步长为2;第2 层网络结构类似于第1 层;第3、4、5 层中卷积层后均为激活层,但第5层在激活层后还有1个池化层5(pool5)。ZF 网络各层的参数如表1 所示(全连接层等层除外)。取前5 个卷积层作为RPN和Faster R-CNN 检测模块的共享卷积层,将第5 层最大池化层作为Faster R-CNN 检测模块中感兴趣区域池化层。

图2 ZF 网络体系结构图Fig.2 Architecture diagram of ZF network

表1 ZF 网络各层参数表Tab.1 Parameter table of ZF network layers

1.2 改进的ZF 网络结构及参数

为了更加准确地提取叶片损伤特征,相较于原来的ZF 网络,在conv5 层的末尾添加另外3 个卷积层,接着是池化层,如图3 所示。由于卷积运算的目的是提取输入的不同特征,添加卷积层可以对更多的边缘、角和线条等损伤特征进行更详尽的提取,从而提高模型的识别精度。此外,在添加的3 个卷积层上应用384 个尺寸为3×3 的卷积核,其步长为1。在池化层应用3×3 的池化窗口,其步长为2。对于超参数,在共享网络的conv1 中将卷积核的尺寸由7×7 变为5×5;在conv2 中将卷积核尺寸由5 × 5 变为3 × 3;在pool2 中,将池化窗口的步长变为1,改进网络各层的参数如表2 所示(全连接等层除外)。这里取前8 个卷积层作为RPN 和Faster R-CNN 检测模块的共享卷积层,将第8 层最大池化层作为Faster R-CNN 检测模块中感兴趣区域池化层。

图3 改进的ZF 网络体系结构图Fig.3 Architecture diagram of improved ZF network

表2 改进的ZF 网络各层参数表Tab.2 Parameter table of improved ZF network layers

在卷积层中,卷积核与图像局部阵列做卷积运算,直到顺次遍历完整个图像阵列后完成一次特征提取。卷积后的输出宽度W2、高度H2和深度D2计算如下

式中:W1和H1分别为输入的宽度和高度;K为卷积核的个数;F为卷积核的宽度(等于高度);S为步长;P为0 填充的数量。

卷积操作后为了提取在不同位置和规模上特征的变化,同时聚合不同特征映射的响应往往需要进行池化操作。根据池化方式不同,池化层分为平均池化(mean-pooling)、最大池化(max-pooling)以及随机池化(stochastic-pooling)等。为了更多地保留叶片损伤的纹理信息,选用最大池化。最大池化层具有平移不变性、扩大感受范围等特性。池化后的输出宽度W3、高度H3和深度D3计算如下

式中:D1为输入的深度;R为池化窗口的宽度(等于高度)。

2 Faster R-CNN 的训练

Faster R-CNN 模型根据已有发动机叶片损伤数据集采用端到端(end-to-end)的4 步交替训练,在每个随机梯度下降迭代中,前向传播阶段生成建议区域得到各层参数及损失函数;反向传播阶段通过有监督调优得到权值更新及超参数优化。

2.1 前向传播阶段

通过若干个输入特征图Yl-1,i分别和卷积核进行运算并组合得到第l个卷积层的第j个特征图Yl,j,即

式中:f(·)为ReLu 激活函数,即f(x)=max(0,x);bl,j为Yl,j的偏置;wl,i为Yl,j第i个输入特征图的权重。

由于卷积过程中存在相互重叠的部分,从而造成了信息的冗余,而池化层进行下采样可以减少输入数据的空间大小。因此,采用在激活之后通过最大池化操作,即取来自输入像素阵列的子阵列的最大值,这可以在减少计算负荷的同时防止过拟合以及保留有用信息。最大池化操作为

2.2 反向传播阶段

在反向传播学习过程中进行超参数的更新,卷积层神经元权值由第t次到t+1 次的更新为

最大池化层更新神经元权值为

式中:λ 为学习速率;E表示有C种类别、训练样本为N个的网络模型整体样本方差代价函数,表示为

式中tn,k和yn,k为第n个训练图像对应的第k维真实标签和实际输出标签。

损失函数通常为

2.3 RPN 网络部分

如果建议区域与实际区域之间的交并比(IoU,intersection of union)超过阈值0.7,则认为该建议区域是正训练样本;如果建议区域与实际区域之间的重叠率低于阈值0.3,则认为该建议区域是负训练样本。使用多任务损失函数训练建议区域,具体公式为

式中:i为锚框的索引;pi为锚框i预测为某种发动机叶片缺陷的概率;pi*为锚框i为实际叶片缺陷的标签,当锚框标识出真实的叶片损伤时,pi*=1,否则pi*= 0;ti=(tx,ty,tw,th)表示预测边界框中心坐标及宽高值的向量;ti*为真实边界框对应的向量;Ncls和Nreg为两个标准化因子,由平衡参数θ 加权,令Ncls=256,Nreg=2 400,平衡参数[14]θ=10;Lcls(pi,pi*)=-log[pi pi*+(1-pi*)(1-pi)]表示两个类别(目标与非目标)的对数分类损失函数;Lreg(ti,ti*)=smoothL1(ti-ti*)表示回归损失,其中为鲁棒损失函数。

在训练过程中RPN 采用反向传播(BP,back-propagation)和随机梯度下降(SGD,stochastic gradient descent)进行端到端训练,设置动量为0.9、权值衰减为0.000 5、学习速率λ 为0.001,虽然衰减权值很小,但可以有效减小模型的训练错误概率。

3 仿真结果分析

3.1 数据集及运行平台

选取某航空公司机务维修孔探数据作为数据集,数据集中出现频次最多的4 种典型损伤类型如图4所示。初始数据集为500 张分辨率为640×480 的发动机叶片图像,经过数据增强操作后容量扩大到2 000张。实验基于Ubuntu 16.04 LTS 系统,采用Pytorch 深度学习框架构建航空发动机叶片损伤检测网络。

图4 孔探数据集中4 种典型损伤类型Fig.4 Four typical damage types in borescope dataset

3.2 两种网络结构性能对比

为了对比改进ZF 网络与原始ZF 网络的性能,从已有数据集分别随机抽取1 000、1 500、2 000 张图片组成子数据集A、B、C。在选取数据集时以尽量满足各种损伤类型数量基本一致的原则,其中在子数据集中选取75%的图片作为训练集、10%作为验证集、15%作为测试集,然后在各测试集上分别使用两种模型进行训练及验证,ZF 网络改进前后识别结果对比如图5所示。

图5 ZF 网络改进前后识别结果对比Fig.5 Comparison of recognition results before and after ZF network improvement

图5 中左侧为原始ZF 网络的识别结果,右侧为改进ZF 网络后的识别结果。从图5 中可以看出,改进后在识别准确性、识别数量和识别精度方面有较大提高,但也存在误检情况。

机器学习中常用的衡量目标分类的评价指标有:PR(precision-recall)曲线、丢失率(MR,missing rate)、平均精度(AP,average precision)、平均精度均值(MAP,mean average precision)。

精确度P 越高表示检测结果的正确性越高,召回率R 越高表示在检测的正样本中假的负样本比例越小,其计算公式表示为

式中:TP为真的正样本,表示正确检测为损伤的数量;FP为假的正样本,表示将非损伤检测为损伤的数量;FN为假的负样本,表示将损伤检测为非损伤的数量。

丢失率MR 越低表示检测过程中丢失的检测目标越少,计算公式表示为

平均精度和平均精度均值计算公式分别为

将数据集A、B、C 基于原始与改进ZF 网络建立模型并进行性能评估,结果如表3 所示。采用改进ZF网络较原始ZF 网络在每个数据集模型得到的PMAP均有一定程度提升,最高可达5.5%。检测的平均精度PAP也得到了相应增加,最高可达11.2%。可能是由于额外添加的卷积层可从输入图像提取更准确的特征信息,更小的卷积核可以在卷积过程中保留更多的有用特征,更小的步长可以在池化过程中防止重要特征信息的丢失。

表3 原始ZF 网络与改进ZF 网络性能评估Tab.3 Performance evaluation on original and improved ZF models

各种损伤的PR 曲线如图6 所示,从图6 中可以看出,随着召回率的增加,精确度在递减,可能是由于随着置信度阈值的增加,模型预测假的负样本越来越少,而假的正样本越来越多。由于航空发动机叶片损伤识别的目的在于识别和定位叶片上的缺陷以了解叶片健康状况,所以希望有更少的缺陷被忽略,因此,精确度相对召回率更重要。此外,从图6 中还可以发现改进ZF 网络的PR 曲线高于使用相同数据集训练的原始网络的PR 曲线,这就说明改进ZF 网络在检测航空发动机叶片损伤方面有更高的检测精度。但在某些情况下也存在一些准确性波动,如图5(d)中改进ZF 网络识别结果也出现明显错误,这是因为目标的形状、颜色以及明暗对比强度都会影响模型的检测精度。

图6 原始与改进ZF 网络检测不同损伤的PR 曲线Fig.6 PR curves of original and improved ZF networks for detecting different damages

不同损伤的丢失率曲线如图7 所示。从图7 可看出,丢失率随着每张图片中假的正样本所占比例的增加而降低,且每个损伤类型使用相同数据集训练的改进网络丢失率曲线通常低于原始网络的丢失率曲线,表明使用改进ZF 网络相比原始ZF 网络发现更多的缺陷。

图7 原始与改进ZF 网络检测不同损伤的丢失率曲线Fig.7 Missing rate curves of original and improved ZF networks for detecting different damages

4 结语

针对航空发动机叶片损伤识别,提出了基于Faster R-CNN 模型的改进ZF 网络以实现孔探图像中损伤目标的精准检测,改进ZF 网络相较于原始ZF 网络的平均精度均值有明显提高。但改进ZF 网络在提高检测精度的同时会降低检测速度,影响检测效率。

为了能够实现叶片损伤的近似实时检测及增加对微缺陷的召回率,在后续工作中将考虑对网络结构作优化调整,同时在RPN 检测模块考虑增加尺度为64 px 的锚框,并进一步通过优化非极大值抑制机制减少区域推荐的数量。

猜你喜欢

池化层池化卷积
基于高斯函数的池化算法
卷积神经网络中的自适应加权池化
基于3D-Winograd的快速卷积算法设计及FPGA实现
卷积神经网络模型研究分析*
基于卷积神经网络的纸币分类与点钞
基于深度学习卷积神经网络的人体行为识别研究
卷积神经网络的分析与设计
从滤波器理解卷积
基于卷积神经网络和池化算法的表情识别研究
基于全卷积神经网络的SAR图像目标分类*