APP下载

基于YOLO 算法的风机叶片损伤检测研究

2022-09-27

设备管理与维修 2022年16期
关键词:梯度风机损失

陈 堃

(华电福新能源发展有限公司江苏分公司,江苏连云港 222227)

0 引言

随着煤炭价格的再创新高和发电成本不断攀升,电量出现供需不平现象。为保证民生和企业生产,我国开始大力发展风力发电,利用风能资源来满足电力需求。而作为风机核心部件的叶片,易受风速、风力等级、叶片位置、叶片材料等影响,导致叶片在风机运行过程中出现故障,进而影响风机发电的效率,因此,如何智能检测风机叶片的运行状态并及时预警,成为亟待解决的难题。

目前,已经有较多的叶片故障检测方式,文献[1]中提出了基于改进的Canny 算法的风机叶片结冰检测,通过将改进Canny 算法与显著物识别算法结合,识别图像边缘像素并计算每一个点的像素梯度,最后利用灰度值分割法确定最优阈值,实现叶片结冰图像识别;文献[2]提出了一种基于全卷积神经网络的风机叶片表面损伤检测,通过全卷积神经网络进行语义分割,然后通过对裂纹像素点提取计算出损伤区域和损伤级别,进而进行风机叶片表面损伤识别;文献[3]提出了基于Mask R-CNN 的风机叶片缺陷分类及定位,以ResNet101 为骨干网络,先在Coco 数据集上对模型进行预训练,后通过迁移学习对模型进行微调,将模型应用在风机叶片的缺陷分类、缺陷区域矩形框回归和缺陷区域MASK 生成等,形成最终的风机叶片缺陷识别模型。

本文提出了一种基于YOLO 模型的风机叶片损伤检测研究,利用公开数据集进行模型预训练,保存模型的网络结构和参数,通过迁移学习对模型进行微调,结合风机叶片数据,提取出叶片损伤的图像特征,并进行叶片损伤判别和叶片损伤定位,为风电现场运维人员提供更为全面的辅助决策信息。

1 方法设计

通过项目研究,风机叶片的数据来源是在机舱顶部安装摄像机平台进行视频采集,考虑到风机不同状态下的视频具有一定规律性、易出现冗余图片,因此需要对视频进行预处理。本文的具体方法设计见图1。

图1 方法设计

1.1 数据预处理

风机叶片存在两种状态,静止或旋转,在叶片静止状态下,视频画面处于静止,只需间隔取图,减少服务器的计算压力,在叶片旋转状态下,视频画面处于闪烁,需过滤不存在风机叶片或叶片不完整的帧。

(1)视频切图。摄像头云台的帧率是50 fps,即每秒钟显示50 个画面,对视频进行切图处理,选取一段时间的风机叶片旋转数据,并在此视频中选取1000 张有效图片进行模型训练。

(2)图片预处理。在计算机视觉中,为了扩大数据集、抑制过拟合,提升模型的泛化能力,需要进行数据增广,随机改变训练样本以降低模型对某些属性的依赖,常见的图像增广方式有随机改变亮暗、对比度和颜色,随机填充,随机裁剪,随机缩放,随机翻转,随机打乱真实框排列顺序等。

1.2 YOLO 模型设计

YOLO 模型是将物体检测作为一个回归问题进行求解,传统的目标检测是分为两步:①通过策略提取候选框确定候选区域;②对候选框进行两个任务,一是对候选区域内容进行图像分类,二是对候选区域和真实框位置进行框回归。YOLO 模型只需要一步:输入图像经过一次网络,便能得到图像中所有物体的位置和其所属类别及相应的置信概率[4]。

YOLO 模型也经过多次迭代,YOLO v1 和YOLO v2 因为模型设计方面存在着小目标检测效果不好,因此选用YOLO v3 作为风机叶片损伤模型的基本算法模型。

1.2.1 网络结构

YOLO v3 的骨干网络选用Darknet53,该结构由52 个卷积层构成,没有全连接层和池化层,保留卷积和残差模块为图像特征提取的基本网络结构[5]。以图片尺寸256×256 为例,Darknet53的结构如图2 所示。

图2 DarkNet53 结构

在确定了Darknet53 之后,再添加检测相关的网络模块(图3)。此外,模型还进行了多尺度检测,建立不同锚框尺寸的多层级特征图:锚框尺寸越大,能捕捉大尺寸目标的信息;锚框尺寸越小,能捕捉小尺寸目标的信息。

图3 检测网络模块结构

1.2.2 损失函数

YOLO v3 是建立3 种类型的损失函数:①目标性损失Lobj,表征是否包含目标物体的损失函数;②框位置损失Lloc,表征物体位置的损失函数;③分类损失Lcls,表征物体类别的损失函数。

然后将3 种类型的损失函数相加,形成总损失函数Loss总=Lobj+Lloc+Lcls。

在多尺度检测中,不同层级的损失函数也是通过累加计算,形成最终得损失函数。其中,i 是设置的层级数,默认i=3。

1.2.3 激活函数

激活函数是在深度学习模型中加入非线性因素,使得避免在优化过程中出现梯度消失和梯度爆炸。在YOLO v3 模型中,激活函数是用的Leaky Relu,虽然Relu 函数在一定程度上解决了梯度消失的问题,但是在梯度为负值时直接将值修正为0,导致在神经网络中出现无效神经元。为解决这一问题,Leaky Relu给负值给予一个较小的线性分量来调整负值的零梯度:

其中,x 是YOLO v3 模型里边的梯度值,a 是线性分量、默认值为0.01[6]。

1.2.4 非最大抑制

YOLO 是将图片分割成S×S 个格子,经过骨干网络之后,预测每个格是否存在目标、目标的边界框、目标的类别,并用非最大抑制筛选出最好的边界框。其基本原则是,如果有多个预测框都对应同一个物体,则只选出得分最高的预测框。

1.3 识别叶片异常

(1)模型评估。作为目标检测衡量检测精度的指标,mAP(Mean Average Precision,均值平均精度)是对多个验证集个体求平均AP(Average Precision,平均精确度)值。以召回率和准确率为行纵坐标,得到二维曲线(即PR 曲线),将曲线下的面积当作衡量尺度,得到AP 值其中,QR是验证集的个数,AP 是每个验证集PR 曲线下的面积。PR(Precision Recall)曲线是指用横轴表示召回率、纵轴表示精确率,将数据绘制成图表的形式所得到的曲线。

(2)模型优化。在进行损失函数优化时,Adam 优化器能利用梯度一阶矩估计和二阶矩估计动态调整每个参数的学习率。

2 实验与结果分析

本文选用某风场10 台风机的视频数据进行预处理,并以YOLO v3 算法为检测算法,进行风机叶片损伤识别。

通过Colabeler 进行图像标注,生成包含图片路径、图片大小、真实框位置、叶片损伤类别等关键性信息的xml 文件,记录模型训练需要的各项信息。

2.1 模型配置

神经网络模型需要用超参数来初始化模型,YOLO v3 模型的超参数设置见表1。

表1 超参数配置

2.2 训练

首先固定好在Coco 数据集上训练好的模型参数,只微调最后一层,用新的YOLO 预测函数替换预先训练好的预测函数,并将风机叶片数据集按照6、2、2 划分训练集、验证集和测试集,最后加入到模型中训练。

2.3 预测结果分析

为表现出YOLO v3 算法模型的优势,特意选用YOLO v1,YOLO v2,YOLO v3 三个版本的模型形成对照组,则模型在数据集上的表现如图4 所示。

图4 3 种模型的mAP 曲线

从图4 可以看出,YOLO v3 的迭代40 次时mAP 的表现性最优,因此,选用YOLO v3 为最终的风机叶片损伤判别模型[7]。

3 结束语

本文通过视频采集风机叶片有效图片并对图片进行增强处理,随机进行旋转、裁剪、缩放、翻转等,然后固定YOLO 在Coco数据集中的网络参数,微调最后一层,对风机叶片进行损伤判别。另外还选取YOLO 模型的3 种变体进行综合训练分析,将结果最好的模型作为最终的风机叶片损伤判别模型。

模型训练结束后,将模型部署并进行实时叶片图像识别,能及时发现风机叶片在运行过程中的异常,并上传工单及时告警,替代传统的人工检测方式,从而减少运维成本和经济损失[8]。

猜你喜欢

梯度风机损失
少问一句,损失千金
一个改进的WYL型三项共轭梯度法
胖胖损失了多少元
一种自适应Dai-Liao共轭梯度法
一类扭积形式的梯度近Ricci孤立子
玉米抽穗前倒伏怎么办?怎么减少损失?
风机折翼“倒春寒”
风机倒塔事故为何频发?
节能技术EPU在AV71风机上的应用
一般自由碰撞的最大动能损失