APP下载

基于改进YOLOv4 风机叶片缺陷检测方法

2023-08-27高文俊张海峰

农业装备与车辆工程 2023年8期
关键词:风机损失叶片

高文俊,张海峰

(201620 上海市 上海工程技术大学 机械与汽车工程学院)

0 引言

随着国家大力发展清洁能源,风力发电由于动力获取简单、储存容量大,被国家大力扶持。但是由于风力发电机工作往往处于沿海潮湿或者沙漠干旱等恶劣环境,风力发电设备就会出现各种损伤,导致发电效率降低。

风机叶片是风机设备中的重要部件。传统的风机叶片缺陷检测技术主要基于图像处理检测技术和传感器等完成,如阈值分割、边缘提取技术和声传感器、振动传感器、光传感器等。曹庆才等[1]为了提取风机叶片缺陷,采用机器视觉方法,首先对风机叶片图像进行滤波和对比度增强预处理,然后采用OSTU 阈值法进行图像分割,最后使用Canny边缘检测算法提取叶片缺陷特征;严海领[2]为检测不同颜色风机叶片中的缺陷类型,分析传统边缘提取算子的提取效果,得出采用Prewitt 算子提取边缘特征和图像增强处理的方法,对不同颜色风机叶片缺陷特征提取效果较好;邹洁等[3]将光纤光栅传感器布置在风机叶片上,对传感器接收到的冲撞信号进行信号能量分布和中心波长分析来得出风机叶片是否存在表面损伤缺陷。但是这些技术都有不足之处,如基于传统图像处理技术的缺陷检测方法,需要人工设计的算法去提取相对应的缺陷明显特征,人为主观性大,且提取效果受环境因素影响较大,对环境要求比较严格,识别准确度不高。基于传感器检测技术的方法,需要人为在风机叶片表面布置对应的传感器设备,搭建检测传感器信号系统,整体花费费用大,且不能对缺陷类别进行分类。随着机器学习和深度学习的迅速发展,深度学习具有根据标签信息自主学习类别特征的模型能力,使之成为缺陷识别的热门技术。

基于深度学习的缺陷目标检测方法主要分为2 类:一阶段网络和两阶段网络。两阶段网络预测准确度高,但检测速度弱于一阶段网络。Faster R-CNN[4]是典型的两阶段端到端的目标检测网络,其基本原理是利用RPN(Region Proposal Network)组件在卷积网络生成的特征图上提出一组可能位于目标对象的边界框区域,然后将提出的边界框区域传递给ROI 池化层进行同一尺度化,从而构成端到端式的网络模型构建,使其完成目标分类结果和边界框回归输出。由于两阶段网络模型在检测速度方面较弱,因此一阶段网络被提出。SSD[5]和YOLO[6-9]系列为典型的一阶段目标检测算法。该类网络把目标分类任务和检测任务操作过程都集成在一个时间段过程中,不像两阶段网络需要单独提取目标类别特征和目标区域进行目标检测任务,并且一阶段网络训练过程比两阶段网络训练过程简单。

针对传统风机叶片检测方式的不足,本文采用一阶段网络YOLOv4 算法进行风机叶片缺陷检测。为了使该算法达到实际运行需求,将其主干网络更换为Ghost Net[10]。利用k-means 方法处理用于训练的标签数据进行类别锚框大小选取。将Focal loss[11]损失函数代替原算法模型的分类交叉熵损失函数来训练风机叶片缺陷数据集,提高了YOLOv4识别风机叶片缺陷的准确率和速度。

1 YOLOv4 算法

YOLOv4 算法是一种单阶段目标检测算法,在YOLO 系列基本原理上进行了网络架构改进。YOLO 系列基本原理是将输入图片输入所构建的端到端网络模型中,输入图片经过网络模型分割成S×S 个网格区域,然后由每个网格区域所提取的特征预测那些可能落在该网格区域内的目标,每个网格区域会产生多个边界框(Bounding Box)以及边界框的置信度(Confidence Score),每个边界框包含5 个参数,即框的位置坐标(x,y,h,w)和置信度[12]。最后利用设计的损失函数训练网络结构,使模型收敛能够预测这些边界框参数和分类类别。

1.1 YOLOv4 网络架构

如图1 所示,YOLOv4 算法框架由特征提取网络(Backbone)和结合特征融合的颈部模块(Neck)以及进行目标位置回归和分类的检测头(Head)3 部分组成[13]。其中特征提取网络为CSP-Darknet53,是一种全卷积神经网络,结合CSP 基本组件减少传统图像特征提取网络推理计算量大的问题;Neck 模块结合特征融合结构(空间金字塔池化结构(SPP)和特征金字塔结构(PANet))形成路径聚合网络,能够融合深浅层的语义信息特征和空间特征进行多尺度目标检测。检测头采用传统的YOLOv3 检测头,进行分类预测和目标位置回归,置信度预测。

图1 YOLOv4 整体网络结构图Fig.1 YOLOv4Network diagram

1.2 YOLOv4 损失函数

损失函数是一个网络模型训练时的重要部分。YOLOv4 损失函数由分类损失函数(Classificition loss)和回归损失函数(Bounding Box Regeression Loss)以及置信度函数(Confiden loss)3 部分组成,其关系式为

式中:λ1,λ2,λ3——平衡系数,Lconf——置信度损失,Lcla——分类损失,Lloc——回归损失函数。

YOLOv4 置信度损失和分类损失均延续YOLOv3 二值交叉熵损失函数,回归损失则采用了CIoU 损失函数。其中CIoU 损失函数公式为

式中:IoU——真实框面积和预测框面积之间交集与并集的比值;b、bgt——预测框、真实框的中心坐标;p2(b,bgt)——预测框和真实框中心点坐标之间的欧式距离;c2——预测框和真实框之间的对角线距离;wgt,w,hgt,h——真实框和预测框的宽和高;v——衡量长宽比一致性的参数[14];a——用于权衡的参数。

2 改进的YOLOv4

本文主要从目标检测模型的主干网络和分类损失函数2 个方面对YOLOv4 算法进行改进。

2.1 主干网络

Ghost net 是由华为诺亚方舟实验室提出的一种新的提取图像特征的卷积神经网络,提出一种新的卷积结构方式,称为Ghost module,如图2 所示。该卷积结构利用类似深度分离卷积方式将一个传统卷积形式分解成3 个步骤,先利用传统卷积提取部分原始特征,然后利用少量的线性计算操作生成额外Ghost 特征,最后将原始特征和额外Ghost 特征进行拼接并输出,这样减少了一半的卷积核数目,且保证特征图中变化的冗余特征不减少,并减少了一半的卷积计算,有助于模型主干轻量化。

图2 The Ghost ModuleFig.2 The Ghost Module

识别要求在边缘设备上达到实时性,而原有YOLOv4 算法采用的是CSPDarek net 主干网络框架,模型参数量相对较大,且其推理速度和识别精确度需要大量的计算机硬件资源。为了达到满足识别硬件要求,需对CSPDark net 主干网络进行轻量化,故更换原有主干网络为Ghost net,在大幅降低主干网络参数量的同时保证特征提取效果基本不变。改进的YOLOv4 算法结构如图3 所示

图3 改进后的YOLOv4Fig.3 Improved YOLOv4

图3 中Ghos_bot 全称为Ghost_bottleneck,针对不同卷积步长参数对应2 种结构形式:步长为1时,输入和输出的特征图尺度保持不变,只进行特征图数量的伸缩;步长为2 时,对输入特征图尺度进行压缩,利用底层特征图信息获取更高级的特征信息。有效组合2 种结构方式使主干网络模型能够输出对应的PAN 三层特征图尺度,实现Ghost net与PAN 的之间的结合。

2.2 损失函数

由于风机叶片数据集类别分布不均匀,且缺陷形式大部分为小型缺陷,若采用原有损失函数进行目标检测模型训练,训练出的模型识别精度不佳易导致缺陷种类误检或漏检情况,不利于实际应用场景。产生原因主要是YOLO 系统算法层面的问题,一般来说一张图片中需要检测的目标像素所占整张图片分辨率比例较小,而YOLO 系统算法又是基于回归框进行目标位置回归,在产生回归框的过程中会因为背景信息占据图片比例大产生许多与所需要检测的目标无关的负样本信息,使得正负样本分布不均衡且当多类别样本分布不均匀时大量样本的类别相当于少量样本的类别而言就会产生大量的负样本,会使得模型倾向于负样本样本训练,因此采用Focal loss 代替原有YOLOv4 中的分类交叉熵函数,提高了不平衡样本识别率。

损失函数计算为

式中:p——正样本概率;α,γ——控制样本损失比例超参数,控制这2 个超参数可降低易分样本损失占损失比例,提升难分样本损失比例,使得模型更加考虑难分样本损失,解决类别之间不平衡问题。

3 实验结果与分析

3.1 实验环境

本文实验在Win10 系统、pytorch 框架下进行,计算机处理单元为E5-2680 V4,内存容量16 GB,显卡RTX 3060 显存12 GB,Conda 软件4.10.3,python3.6.5,pytorch1.7.1,使用cuda11.0进行训练加速。

3.2 数据集

风机叶片数据集采用Kaggle 官网数据集[15]。将数据集按8(训练集)∶2(测试集)进行训练,其中训练集2 395 张,测试集599 张,总共2 995张图片,部分标注图片数据如图4 所示。

图4 风机叶片Fig.4 Wind turbine blade

3.3 实验结果分析

训练过程中,设置学习率初值为0.001,之后在前300 次迭代训练中学习率线性增加,当到达第8 个epoch 迭代时,学习率衰减到0.02;之后第9,10,11 个epoch 学习率设置为0.002,第12 个epoch 设置为0.000 2,进行模型收敛,模型训练过程中的损失函数图如图5 所示。

图5 训练损失变化Fig.5 Variation of training loss

由图5 可知,改进的YOLOv4 采用迁移学习策略、学习率策略和训练策略后,模型逐渐收敛,总损失收敛于0.050 6,分类损失收敛于0.015 1,回归损失收敛于0.030 5,收敛情况较好,验证了这种算法方案可行。

通过控制有无采用Ghsot Module 或 Focal loss策略,进行消融实验,验证改进算法的有效性,并采用COCO 数据集map 指标和检测推理时间判断网络性能。如表1 所示。

表1 消融实验指标对比Tab.1 Comparison of ablation test indexes

由表1 可知:(1)原有YOLOv4 的map 预测值为79.32%,YOLO-F 在更换原有交叉熵分类损失为focal loss 后map 值达到82.33%,相比于原YOLOv4 的map 值提高了3.01%;dirt 缺陷的AP 值由原有的70.78%提到76.71%,但模型检测damage 缺陷能力并没有下降,总的map 值进行了提升,也说明加入focal loss 在处理类别不均衡方面具有一定效果。

(2)YOLO-G 在只更换网络模型主干网络为Ghost net 的情况下,模型参数量由246.19 MB 减少到134.27 MB,推理时间由0.204 s 减少到0.172 s,且提升了dirt 缺陷AP,说明更换的Ghost net 提取图像特征神经网络不仅能大大降低网络训练计算量,而且可以提取更有效的分类特征,即在增加网络性能的同时保证相应的准确率。

(3)融 合Focal loss 和Ghost net 的YOLOGF 策略模型的map 预测值为82.98%,比原有YOLOv4 预测值高了3.66%,且推理时间由原有的0.204 s 减少到0.166 s,在准确率和网络性能方面都比原有的YOLOv4 算法检测效果好,参见图6,说明本文的改进YOLOv4 算法能在保证实时性的情况下提高了叶片缺陷检测准确率。

图6 风机叶片检测效果Fig.6 Wind turbine blade detection effect

4 结论

(1)针对目前风机叶片传统检测技术的不足,提出一种基于改进YOLOv4 的风机叶片缺陷检测方法(YOLO-GF),实验结果表明YOLO-GF 的检测精度达到82.98%,参数量134.27 MB,检测速度约7 f/s,模型能在保持风机叶片缺陷检测准确率的同时,达到实时性检测。

(2)采用Ghost net 的特征提取网络更换原有YOLOv4 的CSP-Darknet 主干网络,模型参数量由246.19 MB 降到134.27 MB,使得模型参数量相对减少,提高风机叶片缺陷检测效率。

(3)利用Focal loss 损失函数代替原有YOLOv4 的分类交叉熵损失函数,解决数据集类别分布不平衡问题,使dirt 的类别AP 提高了5.93%,提高模型整体类别识别准确率。

(4)将本文改进YOLOv4 检测方法(YOLOGF)与原有YOLOv4 模型分别在同一风机叶片数据集上进行实验测试,得出YOLO-GF 检测方法比原YOLOv4 方法平均类别识别准确率提高了3.66%,且能达到实时性需求。

本文提出的风机叶片缺陷方法YOLO-GF,在准确率和检测速度上都有较好的性能表现,但由于数据集缺陷种类较少,模型检测其它类型的风机叶片缺陷能力不佳,如裂纹,腐蚀,沙眼等,因此为了提高模型检测其它缺陷能力,后续采取更多类别的风机叶片缺陷图片进行模型训练,并研究模型对沙眼等小类型缺陷的检测能力。

猜你喜欢

风机损失叶片
月季叶片“雕刻师”
胖胖损失了多少元
两种喷涂方法在TRT叶片上的对比应用及研究
玉米抽穗前倒伏怎么办?怎么减少损失?
风机折翼“倒春寒”
风机倒塔事故为何频发?
节能技术EPU在AV71风机上的应用
一般自由碰撞的最大动能损失
TS3000系统防喘振控制在 AV80-14风机中的应用
损失