1. 引言
航空发动机是航空飞行器中的重要组成部件,它的机械结构非常复杂,可以产生强大的动力支持飞行器的运行 [1]。航空发动机的正常运行将直接决定飞行器的安稳运转,因此它直接影响了飞行器的性能,决定了此飞行器是否具有可靠性和安全性。对于航空发动机而言,发动机叶片是其重要的组成部件之一,它直接决定了此发动机叶片能否继续使用、航空发动机能否继续安全地运行,也间接决定了此航空发动机的运行时长和寿命,因此针对叶片损伤的检测研究具有十分重要的现实意义和安全意义,它可以及时预警发动机制造商对发动机叶片进行检修和维护,这有助于保障航空发动机安全地运行,延长其使用寿命 [2]。
2. 研究背景及意义
发动机涡轮叶片转速飞快,服役时间长,工作于高温高压的环境,这样的环境容易导致叶片产生疲劳裂纹,这些发动机叶片上的裂纹损伤会对航空发动机的正常运行构成了潜在的威胁 [3]。资料显示,由于叶片的断裂而造成发动机失效的比例大约占故障率的7.5%左右,且其产生的碎片会对发动机转子系统造成严重的损伤,发动机叶片裂纹对航空飞行器的安全飞行具有重大隐患,只要有裂纹存在,不论其大小,都会危及人员的安全并对机器构成严重的安全隐患,重则机毁人亡 [4]。
传统上对航空发动机叶片损伤检测方法有破坏性检测和非破坏性检测。破坏性测试是指发动机的叶片常常需要被带入实验室进行测试,叶片样品在微晶分析之前被破坏;非破坏性检测也即无损检测 [5] [6],它是指在不损坏发动机叶片的条件下,不损坏其表面结构的条件下对叶片进行分析测试,例如根据发动机叶片对声音、光线、热量、电、磁场等物理属性的变化反应,利用一些常见的物理或化学方法对叶片进行检测,同时需要借助荧光检测仪、X光检测仪等其他设备器材来检测叶片内部的属性性质和表面的结构性质等。
目前国内外针对航空发动机涡轮叶片上的裂纹依旧缺乏高效化、智能化的检测方式,因为在这些上述的实验方法中,实际的检测过程主要还是依靠简单的人工目视方法,以及磁粉、渗透等效率较低的方法。这些方法虽然简单直观,但是有些检测方法实现起来成本较高,人为不确定因素较大,误差率也较高,不能满足批量化的发动机叶片裂纹检测需求。因此现在迫切需要一种更加智能、高效的检测方法来识别航空发动机叶片中可能存在的裂纹,基于深度学习理论的方法就是一种非常智能化,高效率的目标检测方法。
为了实现高效的航空发动机叶片裂纹检测,本实验采用目前最前沿的深度学习检测算法,实现了更加准确、更加快速地识别出航空发动机叶片中的裂纹目标以及检测出其位置。
3. 国内外研究现状
针对于航空发动机叶片裂纹的检测方法,国内和国外的许多研究学者都进行了不同程度的研究。国内的大多数研究学者是围绕一些基于物理属性的研究方法。例如有孔探仪和渗透检测法、X射线和磁粉检测法、涡流和超声检测等方法,这些检测方法都有其相应的应用场景和对应的优缺点。
饶金根等 [7] 通过对比谐波小波包和Daubechies小波包在不同损伤叶片状态写风机发出声音的能量状态特征,将谐波小波包和机器学习中非线性分类器SVM相结合,在风机叶片损伤识别方面获得了较高的准确率。张俊苹等 [8] 基于振动的研究方法,采用主成分分析法对风机叶片的结构损伤进行识别。以上这些都不是基于图像的方法,但是他们的使用的机器学习的方法对研究损伤识别有很大的帮助作用。罗云林等 [9] 运用传统图像处理技术对航空发动机孔探图像进行处理,取“一对一”策略构成支持向量机多类分类器。提出一种基于支持向量机的损伤类型识别方法。孟娇茹等 [10] 针对目前航空发动机孔探检测不能对损伤类型自动识别现状,将支持向量机与孔探检测技术相结合,提出基于支持向量机(SVM)的损伤图像识别方法。
当前世界处于云计算、大数据的时代,计算机的计算能力也在不断地提高,这些领域的飞速发展也为深度学习研究领域提供了无与伦比的机遇与优势。计算机的大幅提高的计算能力可以有效地缓解训练深度神经网络的低效性,并且训练深度神经网络所需的大量的数据也比较容易获取,训练数据的大幅度增加可以有效地降低训练过程中的过拟合风险,因此这使得深度学习在目标检测领域得到了非常重要的关注,其具有重要的实际应用场景和研究意义。
4. 基于Faster R-CNN的叶片损伤识别
快速的基于区域的卷积神经网络(fast Region-based Convolutional Neural Network, fast R-CNN)和空间金字塔池化网络(Spatial Pyramid Pooling Network, SPPnet)等先进的目标检测网络暴露出了关于建议区域计算时间长的瓶颈问题,而这一问题在faster R-CNN中近乎得到了完美的回答。何恺明、Ross Girshick等人创新性的提出区域建议网络(Region Proposal Network, RPN)实现了建议区域(Region Proposal)产生过程时长接近于零的巨大突破。将RPN和fast R-CNN整合为一个网络,所有计算没有重复,完全在GPU中完成,实现了卷积特征的共享机制,有效提高了目标检测网络运行速度。
4.1. RPN网络
与图像分类相比,目标检测是一项更具挑战性的任务,之所以更具挑战性是因为检测目标需要精确定位。首先必须产生众多建议区域的粗略位置,其次是必须对粗略的建议区域进行优化以精确目标位置。但这些问题的解决方法通常也会降低检测系统运行速度、准确性以及简便性。
在faster R-CNN之前的R-CNN和fast R-CNN均使用选择性搜索(Selective Search)提取建议区域,使用基于图的图像分割的方法初始化原始区域,得到小尺度的区域;然后根据颜色、纹理、大小等特征一次次合并相似区域得到大的尺寸。但是该方法会造成候选区域过多,运算成本较大,所以在这样的瓶颈下RPN区域建议网络应运而生。一方面是RPN耗时少,另一方面是RPN可以很容易的结合到fast R-CNN中成为一个整体的检测网络。所谓的区域建议网络就是将一幅任意大小的图像作为输入,并输出一组矩形的待检测区域建议,每个区域建议都会给出一个目标性分值。
RPN使用全卷积神经网络直接产生区域建议,因为它能和fast R-CNN目标检测网络共享全图的卷积特征,使得产生建议区域几乎不花时间,这大大提高了检测速度。其过程就是使用nxn的滑动网络在最后一个共享卷积层得到的特征图上滑动卷积,该滑动网络每次与特征图上的窗口全连接,这样完全连接的层将在所有空间位置上共享;然后映射为一个256维的低维向量;最后该256维向量被送入到两个同级全连接卷积层,大小为1 × 1,即框分类层(Cls Layer)和框回归层(Reg Layer)。在框分类层预测建议区域是目标还是背景的概率;在框回归层预测建议区域的锚框信息,包括锚框的坐标和宽高。
在每个滑动窗口位置可同时预测k个建议区域,位于滑动窗口中心的点叫做锚点,利用该点可对锚框进行参数化编码。每个锚框输出4个有关锚点坐标和锚框宽高的预测值,同时也会输出每个锚框是目标和背景的概率,所以框回归层对k个锚框输出4 k个值,框分类层对k个锚框输出2 k个值。
在每个滑动位置设定3种尺度(分别为128,256,512像素,对于预测微缺陷还需增加64像素的)和3种长宽比(分别为1:1,1:2,2:1)相互匹配的锚框,所以k = 9,那么WxH的特征图总共就有WxHxk个锚框。9种锚框的形状如图1所示。需要注意的是9种尺度和长宽比的锚框并不在卷积图上而是在输入的原图片上,而锚点对应原图上的位置点。当特征图上移动一个点时,对应原图移动16个像素点。

Figure 1. Anchor frames of different sizes and aspect ratios
图1. 不同尺寸和长宽比的锚框
4.2. Faster R-CNN检测模块
如图2所示为fast R-CNN的结构图。给网络输入整张图像和一组目标建议区域(通过选择性搜索为每张图像提取约2000个目标建议区域)后,网络首先通过卷积层和最大池化层提取整个图像的特征图;然后通过感兴趣区域池化层从特征图中为每个目标建议提取固定长度的特征向量,这样可以加快计算效率;之后将特征向量送入一系列全连接层(Fully Connected Layers, FCs)中;最后输出到两个同级分支层:一个是对(k + l)个分类给出概率值的softmax层(k个目标类加一个背景类),另一个是对k个目标类的每一个对象给出4个表征边界框位置实数值的边界框回归层。
使用预训练的ImageNet网络初始化fast R-CNN网络时,首先,最后一个最大池化层被感兴趣区域池化层代替,同时通过将T和G设置为与网络的第一个全连接层兼容来配置感兴趣区域池化层;其次,将网络的最后一个全连接层和softmax替换为前面描述的两个同级层(softmax层以及边界框回归层);最后,修改网络以获取图像列表和这些图像中的感兴趣区域。
感兴趣区域池化层目的是将感兴趣区域(即卷积特征图中的矩形窗口)内的任何有效区域特征利用最大池化层转换为一个具有固定空间范围的小特征图,该空间大小为TxG,其中T和G是超参数并且独立于任何特定感兴趣区域。

Figure 2. Faster R-CNN structure diagram
图2. Faster R-CNN结构图
4.3. Faster RCNN训练与识别
Faster R-CNN的训练,是在已经训练好的model (如mobilenet,resnet50,ZF)的基础上继续进行训练,如图3所示。实际中训练过程分为6个步骤:
在已经训练好的model上,训练RPN网络,对应stage1_rpn_train.pt
利用步训练好的RPN网络,收集proposals,对应rpn_test.pt
第一次训练Fast R-CNN网络,对应stage1_fast_rcnn_train.pt
第二训练RPN网络,对应stage2_rpn_train.pt
再次利用训练好的RPN网络,收集proposals,对应rpn_test.pt
第二次训练Fast R-CNN网络,对应stage2_fast_rcnn_train.pt
可以看到训练过程类似于一种“迭代”的过程,不过只循环了2次。至于只循环了2次的原因是循环更多次没有提升了。
RPN可以通过反向传播(Back Propagation, BP)和随机梯度下降端到端(End-to-End)的训练,共享卷积层通过预先训练ImageNet分类模型来初始化,设置动量为0.9,权值衰减为0.0005,学习速率为0.001,虽然衰减权值很小,但是可以有效减小模型的训练错误概率。
为使RPN和fast R-CNN共享卷积特征,在训练的过程中采取四步交替训练的方法:首先,RPN初始化需要用ImageNet的预训练模型对建议窗口进行端到端的微调;然后fast R-CNN利用RPN产生的建议区域训练一个单独的检测网络,接着该检测网络将由ImageNet预训练模型再次初始化;将上步得到的检测网络再次初始化RPN,此外修复了共享卷积层,并微调了RPN的独有部分;最后在保持共享卷积层固定不变的情况下对fast R-CNN的独有部分进行微调,这样就使得RPN和fast R-CNN共享卷积特征而形成统一的网络。
5. 实验结果与讨论
一般而言,分类模型的任务的查准率和召回率越高越好,但是差准率和召回率是一对比较矛盾的指标,查准率较高的时候召回率就会偏低。本文的为多目标检测任务,任务中图片的标签不止一个,因此评价不能用普通单标签图像二分类的标准,多分类的目标该任务采用的是和信息检索中类似的方法—mAP (mean Average Precision),mAP值对每一个类别都计算出AP然后再计算AP平均值就可以完成mAP的计算。
鉴于mAP是目标检测领域认可度比较高的通用性评价指标,本文将采用mAP值作为评价模型优劣的指标。同时在实际生产环境中,模型如果占用大量的磁盘空间,或者模型的计算速度达不到实际场景的要求,这样的模型在实际的应用中是没有实际意义的,所以本文在使用mAP作为评价模型分类能力外将同时使用模型大小(占用磁盘空间),模型推理运行时间作为衡量模型优劣的综合考量指标。
本文的网络模型得到的最终的模型效果见表1。mAP为73.3%,实验表明,本文基于FasterR-CNN的航空发动机叶片损伤识别网络模型具有较高识别精度,同时能减少模型磁盘的占用空间,提升模型推理速度。模型检测结果如图4~6所示。

Figure 6. Foreign body picture prediction
图6. 异物图片预测

Table 1. Algorithm detection results
表1. 算法检测结果
6. 总结
本文基于航空发动机叶片损伤的数据集,针对现有孔探检测需要耗费大量人力财力的问题,基于卷积神经网络的理论,对发动机叶片的损伤图片的识别进行了深入的研究。本文提出了一种基于Faster R-CNN模型的发动机叶片损伤识别算法,该算法模型可以以较高精度识别出数据集中的叶片损伤类别和叶片损伤区域,算法具有较强的鲁棒性。
致谢
本论文研究的内容是依托中国航发上海商用航空发动机制造有限责任公司的《航空发动机叶片装配状态下智能孔探技术研究》项目开展的,论文的完成是整个项目组所有成员共同努力的成果。
首先感谢部门领导的支持,在曹玮部长的领导和支持下,除了本部门的资源外,还协调了公司其他多个相关部门的资源,共同为本论文的完成提供了坚实的保障。
其次感谢常诚老师、陈静荣老师、李泽老师等,你们的专业经验及配合提供的测试验证环境是本论文完成的关键。
最后,感谢本项目的外协单位上海新物科技有限公司,贵公司在智能视觉识别领域的成功经验使得本论文的相关内容的完成少走了很多弯路,再次一并感谢!