百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 热门文章 > 正文

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

bigegpt 2024-08-02 10:48 4 浏览

引言:

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

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

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

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

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

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

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

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

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个小残差单元结构。跨阶段部分连接中的小残差单元结构。

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

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

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

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

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

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

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

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

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

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

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

逐通道卷积计算过程,使用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

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

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模块中引入了深度可分离卷积结构,将普通卷积重构为逐通道卷积和逐点卷积的形式。

改进后的卷积模块

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

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

相关推荐

得物可观测平台架构升级:基于GreptimeDB的全新监控体系实践

一、摘要在前端可观测分析场景中,需要实时观测并处理多地、多环境的运行情况,以保障Web应用和移动端的可用性与性能。传统方案往往依赖代理Agent→消息队列→流计算引擎→OLAP存储...

warm-flow新春版:网关直连和流程图重构

本期主要解决了网关直连和流程图重构,可以自此之后可支持各种复杂的网关混合、多网关直连使用。-新增Ruoyi-Vue-Plus优秀开源集成案例更新日志[feat]导入、导出和保存等新增json格式支持...

扣子空间体验报告

在数字化时代,智能工具的应用正不断拓展到我们工作和生活的各个角落。从任务规划到项目执行,再到任务管理,作者深入探讨了这款工具在不同场景下的表现和潜力。通过具体的应用实例,文章展示了扣子空间如何帮助用户...

spider-flow:开源的可视化方式定义爬虫方案

spider-flow简介spider-flow是一个爬虫平台,以可视化推拽方式定义爬取流程,无需代码即可实现一个爬虫服务。spider-flow特性支持css选择器、正则提取支持JSON/XML格式...

solon-flow 你好世界!

solon-flow是一个基础级的流处理引擎(可用于业务规则、决策处理、计算编排、流程审批等......)。提供有“开放式”驱动定制支持,像jdbc有mysql或pgsql等驱动,可...

新一代开源爬虫平台:SpiderFlow

SpiderFlow:新一代爬虫平台,以图形化方式定义爬虫流程,不写代码即可完成爬虫。-精选真开源,释放新价值。概览Spider-Flow是一个开源的、面向所有用户的Web端爬虫构建平台,它使用Ja...

通过 SQL 训练机器学习模型的引擎

关注薪资待遇的同学应该知道,机器学习相关的岗位工资普遍偏高啊。同时随着各种通用机器学习框架的出现,机器学习的门槛也在逐渐降低,训练一个简单的机器学习模型变得不那么难。但是不得不承认对于一些数据相关的工...

鼠须管输入法rime for Mac

鼠须管输入法forMac是一款十分新颖的跨平台输入法软件,全名是中州韵输入法引擎,鼠须管输入法mac版不仅仅是一个输入法,而是一个输入法算法框架。Rime的基础架构十分精良,一套算法支持了拼音、...

Go语言 1.20 版本正式发布:新版详细介绍

Go1.20简介最新的Go版本1.20在Go1.19发布六个月后发布。它的大部分更改都在工具链、运行时和库的实现中。一如既往,该版本保持了Go1的兼容性承诺。我们期望几乎所...

iOS 10平台SpriteKit新特性之Tile Maps(上)

简介苹果公司在WWDC2016大会上向人们展示了一大批新的好东西。其中之一就是SpriteKitTileEditor。这款工具易于上手,而且看起来速度特别快。在本教程中,你将了解关于TileE...

程序员简历例句—范例Java、Python、C++模板

个人简介通用简介:有良好的代码风格,通过添加注释提高代码可读性,注重代码质量,研读过XXX,XXX等多个开源项目源码从而学习增强代码的健壮性与扩展性。具备良好的代码编程习惯及文档编写能力,参与多个高...

Telerik UI for iOS Q3 2015正式发布

近日,TelerikUIforiOS正式发布了Q32015。新版本新增对XCode7、Swift2.0和iOS9的支持,同时还新增了对数轴、不连续的日期时间轴等;改进TKDataPoin...

ios使用ijkplayer+nginx进行视频直播

上两节,我们讲到使用nginx和ngixn的rtmp模块搭建直播的服务器,接着我们讲解了在Android使用ijkplayer来作为我们的视频直播播放器,整个过程中,需要注意的就是ijlplayer编...

IOS技术分享|iOS快速生成开发文档(一)

前言对于开发人员而言,文档的作用不言而喻。文档不仅可以提高软件开发效率,还能便于以后的软件开发、使用和维护。本文主要讲述Objective-C快速生成开发文档工具appledoc。简介apple...

macOS下配置VS Code C++开发环境

本文介绍在苹果macOS操作系统下,配置VisualStudioCode的C/C++开发环境的过程,本环境使用Clang/LLVM编译器和调试器。一、前置条件本文默认前置条件是,您的开发设备已...