天天看点

基于yolov4的航天发动机,如何改进损伤检测方法以及优化设计?

作者:珂垃鉴谈
基于yolov4的航天发动机,如何改进损伤检测方法以及优化设计?

引言:

航空发动机长时间在高温、高压和交变负荷等环境下工作,其零/部件容易出现裂纹、烧蚀和缺失等损伤,及时发现损伤对航空发动机安全运行十分重要。孔探检测是航空发动机检修必不可少的关键环节,但目前孔探仪不能自动识别损伤类型,检修过程依赖人员的专业知识和经验。

基于yolov4的航天发动机,如何改进损伤检测方法以及优化设计?

自动识别损伤类型可提高孔探检测效率,避免外部因素的干扰,给检测人员提供更为客观的判断依据,因此,实现航空发动机损伤的自动、准确检测成为研究热点。近年来,研究人员将图像处理技术和机器学习应用到航空发动机损伤自动检测中。ZHENG等人将Otsu自适应阈值方法与Canny边缘检测方法相结合,对航空发动机涡轮叶片的灰度图像分割。YAN使用随机森林算法对航空发动机故障进行诊断,并通过线性特征变换解决原始随机森林算法在特征评估中没有考虑到特征相互作用的问题。

基于yolov4的航天发动机,如何改进损伤检测方法以及优化设计?

陈果等人设计结构自适应算法,将反向传播(Back Propagation, BP)神经网络和遗传算法结合,实现模型参数自适应选取,解决网络结构设计困难的问题,验证了模型对航空发动机损伤检测的有效性。叶志锋等人将概率神经网络与BP神经网络进行对比,在测量参数噪声较小时。

两者对航空发动机损伤检测准确率都较高;当测量参数噪声较大时,PNN损伤检测的准确率高于BP神经网络,但图像处理技术和传统机器学习存在较大局限性,对噪声和灰度不均匀敏感,需要人工设计特征,提取损伤特征信息有限,模型泛化能力差,并且航空发动机孔探图像背景复杂,包含大量噪声,同种类型损伤形状和尺寸差异较大,上述方法难以满足航空发动机损伤自动检测的需求。随着深度学习的快速发展,越来越多的目标检测模型被提出,给损伤检测提供新的思路。深度卷积神经网络(Deep Convolutional Neural Networks, DCNN)在航空发动机损伤检测领域性能优越,主要有两阶段检测和单阶段检测共2种方法。

基于yolov4的航天发动机,如何改进损伤检测方法以及优化设计?

两阶段检测方法中主要为Faster R-CNN算法[8]及优化方法在孔探损伤检测中得到应用。Faster R-CNN算法由Fast R-CNN算法基础上改进而来,添加区域建议网络(Region Proposal Network, RPN)产生候选区域,再对目标进行分类。JANG等人使用Faster R-CNN算法对涡轮叶片上裂纹和凹痕2种损伤进行了检测,平均准确率为96.1 %。

基于yolov4的航天发动机,如何改进损伤检测方法以及优化设计?

HE等人提出改进的Mask R-CNN算法对航空发动机叶片进行损伤检测,Mask R-CNN算法既能对损伤进行分类,又能实现损伤像素级的分割。虽然两阶段检测方法损伤检测精度高,但检测过程需生成候选区域,导致检测速度慢,不能满足实时检测的工作需求。以YOLO为代表的单阶段检测方法舍弃候选区域生成过程,直接对目标进行定位和分类。CHEN等人使用K-means聚类方法对YOLOv4目标检测算法锚框重新设计,使锚框更接近航空发动机叶片损伤情况,平均精度提高约1 %。BIN等人提出改进的YOLOv4检测算法对航空发动机部件表面缺陷进行检测,在特征提取网络的输出层和空间金字塔池化层添加卷积结构,损伤检测的mAP值提高了4.55 %,但引入额外的参数使模型的检测速度有所降低。

基于yolov4的航天发动机,如何改进损伤检测方法以及优化设计?

与两阶段检测方法相比,单阶段检测方法网络结构精简,计算量降低,检测速度更快,能够满足实时检测的要求,但由于现有损伤检测模型参数量大,对硬件性能要求高,而孔探检测需移动设备完成,其算力有限,模型不能在移动端部署。为了减少模型参数量和提高检测速度,降低模型对硬件性能的要求,本文提出了一种基于YOLOv4目标检测算法的轻量化航空发动机损伤检测模型。

基于yolov4的航天发动机,如何改进损伤检测方法以及优化设计?

通过引入深度可分离卷积结构,将颈部结构(Neck)中普通卷积重构为逐通道卷积和逐点卷积,实现了特征融合结构的轻量化,减少了网络的冗余参数;使用MobileNetv3作为特征提取网络,进一步降低了模型参数量和提高了检测速度;在路径聚合网络的卷积层中引入注意力卷积模块,从通道和空间两个维度优化特征权重分布,增强有效特征权重,同时抑制无效特征权重,提高了轻量化改进后的模型对航空发动机损伤检测的准确性。轻量、高效的损伤检测模型更好地满足了航空发动机对智能化孔探检测的需求。

YOLOv4基本模型

基于yolov4的航天发动机,如何改进损伤检测方法以及优化设计?

YOLOv4是一种高效快速的单阶段检测算法,分析验证了免费包(Bag-of-Freebies)和特赠包(Bag-of-Specials)2种方法对训练和推理的影响,并引入了跨小型批量连接(Cross mini-Batch Normalization, CmBN)、跨阶段部分连接。(Cross-Stage-Partial-Connections, CSP)和标签平滑(Label Smoothing)等方法对网络结构和训练策略改进。这些改进方法使得YOLOv4的检测精度有了较大的提升。YOLOv4模型整体结构主要由主干(Backbone)、颈部结构(Neck)和检测头(Prediction Head)3部分组成。

YOLOv4的网络结构模型

可知,YOLOv4的主干网络为CSPDarkNet53,其中包含5个CSPX模块,每个CSPX模块中包含X个小残差单元结构。跨阶段部分连接中的小残差单元结构。

基于yolov4的航天发动机,如何改进损伤检测方法以及优化设计?

可知,CSPX将输入特征图分割成两部分,一部分经过包含X个残差单元的路径进行卷积,另一部分通过残差边与上一部分输出经过Concat结合,使特征提取网络的梯度在不同路径中传播,从而使特征提取网络的梯度组合更丰富,同时去除了重复的梯度信息,在精度损失较小的情况下,有效降低了模型计算量。同时,在CSPDarkNet53网络中引入了Mish激活函数,与Leaky ReLU激活函数相比,Mish激活函数非单调,函数曲线平滑,具有下边界,能够保留较小的负值,使特征提取网络梯度更加稳定,提高了网络的准确性和泛化能力。

颈部结构使用了空间金字塔池化结构和PANet。颈部结构将不同尺度和多层次的特征融合,提高了模型的检测精度。

基于yolov4的航天发动机,如何改进损伤检测方法以及优化设计?

SPP结构使用了4种尺度的最大池化对主干网络输出的特征进行处理,有效分离上下文特征,扩大了卷积的感受野;PANet在特征金字塔网络(Feature Pyramid Network, FPN)的基础增加了自下向上的特征融合结构,增强路径充分利用了浅层特征的位置信息,将浅层特征与深层特征融合,进一步提高网络特征提取能力。在颈部结构中,使用了较多的3×3卷积,其中CBL×3卷积块和CBL×5卷积块分布,这些标准卷积引入了较多的参数,不利于模型对损伤的检测和在移动设备上的应用。检测头用来预测目标位置、种类和置信度信息。检测头部分输出3个不同尺度的特征图,利用3×3卷积和1×1卷积分别对特征和通道进行调整。

基于yolov4的航天发动机,如何改进损伤检测方法以及优化设计?

综上可知,在训练过程中,YOLOv4检测方法使用了Mosaic数据增强、CIoU损失函数、学习率余弦退火衰减和Label Smoothing等方法优化了模型的训练过程。

结合注意力机制的轻量化YOLOv4

现有的目标检测模型通过加深网络和增加分支等方法提升检测精度,以极大的运算代价换来微小的性能提升。在实际航空发动机损伤检测场景中,模型计算量是评估模型的重要指标。减少模型参数可以提高模型的检测速度,使模型用更少的计算时间对目标进行特征提取,降低对硬件的算力要求。

基于yolov4的航天发动机,如何改进损伤检测方法以及优化设计?

航空发动机孔探检测通常在室外进行,含有大量参数的模型很难在移动端部署,不能满足实际工作需求,因此,为了满足移动设备的要求,需要对目标检测模型进行轻量化改进。

基于深度可分离卷积的Neck轻量化改进

普通卷积输出通道与所有输入通道有关,在卷积过程中会产生大量冗余参数。深度可分离卷积对特征图的每个通道设置一个卷积核,使输出通道数与输入通道数保持一致,然后使用1×1的卷积对通道数进行调整,有效减少了模型的参数量。深度可分离卷积包含逐通道卷积和逐点卷积共2个过程,普通卷积和深度可分离卷积计算过程。

基于yolov4的航天发动机,如何改进损伤检测方法以及优化设计?

可知,输入特征大小为DF×DF×M,输出特征大小为DH×DH×N,其中M为输入通道数,N为输出通道数,DF和DH均为特征映射边长,DK为卷积核边长。普通卷积计算过程所示,使用DK×DK×M大小的卷积核和相应特征图相乘,再将结果相加。在普通卷积计算过程中,乘法计算量远大于加法,因此加法的计算量忽略不计,普通卷积计算量U1为:

U1=M×DK×DK×DF×DF×N

基于yolov4的航天发动机,如何改进损伤检测方法以及优化设计?

逐通道卷积计算过程,使用DK×DK×1大小的卷积核与特征映射进行点乘求和,输出特征图为DH×DH×M,该过程计算量为DK×DK×M×DF×DF。为逐点卷积计算过程,负责对通道进行调整,使用的卷积核大小为1×1×M,该过程计算量为 DF×DF×M×N。综上所述,可知,深度可分离卷积总的计算量U2为:

U2=DK×DK×M×DF×DF+DF×DF×M×N

基于yolov4的航天发动机,如何改进损伤检测方法以及优化设计?

则深度可分离卷积和普通卷积计算量比值为:

U2U1=DK×DK×M×DF×DF+DF×DF×M×NM×DK×DK×DF×DF×N=1N+1DK2      

U2U1=DΚ×DΚ×Μ×DF×DF+DF×DF×Μ×ΝΜ×DΚ×DΚ×DF×DF×Ν=1Ν+1DΚ2       

YOLOv4检测算法的Neck结构使用了较多的3×3普通卷积,为降低模型参数量,本文设计了轻量化的特征融合结构,在CBL×3模块和CBL×5模块中引入了深度可分离卷积结构,将普通卷积重构为逐通道卷积和逐点卷积的形式。

基于yolov4的航天发动机,如何改进损伤检测方法以及优化设计?

改进后的卷积模块

Conv3和Conv5为轻量化改进后的卷积模块,Conv-dw为深度可分离卷积过程。CBR卷积结构是由ReLU6激活函数替换原CBL卷积结构中的LeakyReLU激活函数而来。ReLU6激活函数限制了最大输出值,使设备在低精度的情况下有很好的数值分辨率,减少精度损失。假设卷积过程采用3×3的卷积核,输出通道数为512,通过上述公式计算可得深度可分离卷积计算量约为普通卷积的1/9,因此,在Neck结构中使用深度可分离卷积重构普通卷积可有效降低模型参数量和计算量。

基于yolov4的航天发动机,如何改进损伤检测方法以及优化设计?

基于MobileNetv3的主干网络轻量化改进YOLOv4检测算法的主干网络在DarkNet53的基础上引入了跨阶段部分连接,降低了模型计算量,但CSP DarkNet53网络中包含了72个卷积层,并使用了大量3×3普通卷积,对设备的算力要求较高,损伤检测模型难以在移动端部署。为进一步降低模型计算量,对YOLOv4的主干网络进行改进。

继续阅读