本文针对风电叶片轻微裂纹难于检测的问题,提出一种基于改进YOLOv5s模型的检测方法:通过在主干网络部分使用空洞空间金字塔池化(ASPP)代替空间金字塔池化(SPP)以适应不同大小和比例的目标,将注意力机制模块(squeeze and excitation,SE)插入主干网络中以增加网络对微小缺陷的敏感度,使用结构化交并比损失(SIoU-Loss)代替完全交并比损失(CIoU-Loss),以进一步提高新网络的准确性和训练速度。
风电叶片是风力发电机组的核心部件,对风电叶片及时、准确的检测可以避免叶片在运行过程中出现故障,降低因突发事故产生的不必要损失及停机维护检修带来的发电损失,减少叶片维修维护成本,从而保障发电机组整体可靠稳定运行。
在风电叶片检测中,内腔是否存在缺陷是实际作业中的检测重点,检测难度也较大。
风机叶片内腔缺陷识别是典型的弱特征识别技术,叶片内腔表面裂纹较轻微,很容易与污渍混淆,此外,长时间运行的叶片由于内部胶粒掉落且叶片内部常存在人工标记符号,使得检测环境更加复杂,给模型带来不可忽略的噪声。
为提高风电叶片内腔缺陷检测的效率和精度,近年来许多研究人员采用了基于图像处理和机器学习的方法。
其中卷积神经网络(convolutional neural network,CNN)作为一种较强的目标检测算法,在风电叶片内腔缺陷检测中得到了广泛应用。
该算法可有效提取图像特征,实现对叶片内部裂纹、鼓包、褶皱、脱胶等缺陷的定位和识别。
基于深度学习的目标检测算法主要有2种类型,单阶段算法和二阶段算法。
单阶段算法的特点在于不需要生成候选框,直接用区域回归提取特征,检测速度快,但定位精度偏低,例如,单次多边框检测器(single shot multibox detector,SSD)和YOLO(you only look once)系列算法;二阶段算法的特点在于先生成候选框,再用分类网络进行分类,如R-CNN(region with CNN feature)、Faster-R-CNN、Cascade R-CNN等分类方式,这类方法可提高定位精度,但检测速度较慢。
风电叶片缺陷检测是风电运维的重要环节,对于保证风电机组的安全运行和提高风电场的经济效益具有重要意义。
目前,国内外关于风电叶片缺陷检测的研究成果主要涉及以下4方面:一是基于物理信号的结构感知和健康监测技术,如声学、振动、应变等;二是基于图像信号的目标检测和识别技术,如可见光、红外、X射线等;三是基于智能设备的自动化巡检和数据采集技术,如无人机、机器人等;四是基于信息技术的数据分析和寿命评估技术,如大数据、云计算等。
这些研究成果为风电叶片缺陷检测提供了多种手段和方法,但也存在一些不足和挑战,如信号干扰、图像质量、检测速度、识别精度等方面的问题。
为解决这些问题,本研究选择以YOLOv5s框架模型为基础,通过引入注意力机制模块,选取空洞空间金字塔池化及使用更优的损失函数进行改进,从而提升模型对风电叶片内腔微小缺陷的检测能力。
1 YOLO算法YOLO系列是一种基于深度学习的单阶段目标检测算法,其特点是检测速度快、精度较高,能够实现实时目标检测。
YOLO系列算法的核心思想是将整张图像作为神经网络的输入,将图像划分为多个网格,每个网格负责预测一个目标的位置和类别,从而将目标检测转化为一个回归问题。
YOLOv5使用Focus网络作为主干网络的第1层,能够对图像进行下采样和通道扩张,减少计算量和提高速度,同时保留图像信息;此外YOLOv5还使用了多先验框匹配策略,以增加正样本数量,加快模型训练效率。
YOLOv5s网络结构如图1所示,其模型小、速度快、精度较高的优点,适用于风电叶片内腔缺陷检测等场景。
图1 YOLOv5s网络结构YOLOv5s是YOLOv5系列中最小的模型,具有速度快、精度高的特点。
YOLOv5s采用PyTorch框架实现,可通过PyTorch Hub载入预训练的模型,也可以在自定义数据集上进行训练。
YOLOv5s网络结构由Focus网络和跨阶段局部网络(cross stage partial network,CSPNet)组成,Focus网络负责对输入图像进行下采样和通道扩张,CSPNet负责提取多尺度特征。
YOLOv5s检测使用多先验框匹配策略,以增加正样本数量,提高检测效率。
2 改进YOLOv5s的缺陷检测模型为提升对小目标和微小缺陷的检测效果,本研究对YOLOv5s网络进行了改进:一是在主干网络部分使用空洞空间金字塔池化(atrous spatial pyramid pooling,ASPP)代替空间金字塔池化(spatial pyramid pooling,SPP),以适应不同大小和比例的目标;二是将注意力机制模块(squeeze-and-excitation block,SE)插入主干网络中以增加网络对微小缺陷的敏感度;三是使用结构化交并比损失(structured intersection over union loss,SIoU-Loss)代替完全交并比损失(complete intersection over union loss,CIoU-Loss),进一步提高新网络的准确性和训练速度。
改进后的网络结构如图2所示。
图2 改进后YOLOv5s网络结构2.1主干网络改进目前,消除网络对固定尺寸输入图像的要求,从而提高对任意大小或比例的图像或子图像识别精度的常规方式是使用池化层SPP,其原理是将最后一个卷积层输出的特征图划分为不同尺度的网格,然后在每个网格中进行最大池化或平均池化,得到一个固定长度的特征向量。
SPP能够保留多尺度的特征信息,减少计算量和参数量,增强对目标形变的识别鲁棒性。
然而,它仅能处理单个感兴趣区域,这一特性在一定程度上限制了其在目标检测等任务中的应用效果。
此外,SPP主要提取局部区域特征,因此在充分利用全局上下文信息方面存在不足。
为克服以上局限性,本研究采用ASPP代替SPP。
ASPP是一种扩张卷积(dilated convolution)的变形,可在不增加计算量和参数量的情况下,增加感受域的大小,从而捕捉更多的上下文信息。
ASPP可通过使用不同扩张率(dilation rate)的卷积核来实现多尺度特征提取。
ASPP由一个1×1的卷积层、池化金字塔层、ASPP池化层组成,结构如图3所示。
池化金字塔层是指使用不同尺度的网格来划分最后一个卷积层输出的特征图,然后在每个网格中进行最大池化或平均池化,得到一个固定长度的特征向量。
ASPP池化层是指使用自适应平均池化将特征图降维为单个像素,然后再进行点卷积和上采样,得到一个与原始特征图相同尺寸的特征向量。
最后将所有特征向量在通道维度上进行拼接,得到一个更丰富和多样化的特征表示。
图3 ASPP结构ASPP的优点是可有效利用全局和局部上下文信息,提高对目标边界和细节的识别能力。
该方法因其可捕捉不同空间位置和尺度的特征,所以也可适用于不同大小和比例的目标。
2.2注意力机制改进研究表明,优化空间维度信息可以提高网络的性能。
SE layer是一个注意力机制模块,结构如图4所示,它可提升模型对不同通道特征的敏感性和重要性,因此本模型中引入SE layer注意力机制模块。
SE Net是Hu等提出的一种网络结构,主要关注主干网络中卷积操作的信道间的特征融合,基本思想是通过压缩(squeeze)和激励(excitation)2个步骤(图5),学习到与特征图中每个通道对应的权重系数向量,然后用该向量对特征图进行加权(scale)。
压缩步骤是将特征图中每个通道进行全局平均池化,得到一个长度为通道数的向量,该向量反映了每个通道的全局信息。
激励步骤是将压缩得到的向量通过2个全连接层分别进行降维和升维,然后通过Sigmoid函数得到与通道数相同的权重向量,该向量反映了每个通道的重要性。
压缩和激励操作计算过程如下压缩操作得到信道信息后,通过2个全连接层构建一个闸门机制,并用Sigmoid函数激活。
式(1)中,Zn表示一个特征通道信息,其中n代表通道号,H和W分别表示特征图的高度和宽度,un(i,j)表示n号通道特征图第i行第j列的元素,式(2)中σ是Sigmoid函数,δ是ReLu激活函数,式(3)和式(4)中的W1和W2是全连接层权重,分别通过左乘和右乘通道权重矩阵C进行降维和升维,r是比例参数(用于控制模型的复杂度和提高模型的性能),s是一个特征通道通过全连接层和非线性层后得到的特征映射的权重矩阵。
最终该运算将输出的权重分配给原始特征,计算过程如下式中,是一个特征通道的特征映射向量,sn是n通道的权重系数向量,un是二维矩阵。
2.3损失函数改进YOLOv5s的损失函数包括3种类型:置信度损失、分类损失和定位损失函数。
式中,损失函数L用BCE(binary cross entropy)Loss二值交叉熵损失表示,根据经验,各损失权重分别设置为w1=1,w2=1,w3=0.05,置信损失函数可以由目标置信损失Lobj、分类损失函数Lcls定义,计算方式如下式(7)和(8)中,i为单元格,j为GroundTruth box,为物体或者背景Ground Truth标签(0或1),为预测概率值,c为目标类别,为第i个网格中JTH预测框中的目标属于某一类别的真实值的概率,为属于某一类别的预测值的概率。
为进一步提升新网络的性能和训练速度,在目标定位损失函数L_loc中将YOLOv5s原有的CIoU损失函数替换为SIoU,由SIoU重新定义惩罚指数,以考虑所需回归之间的向量角。
该损失函数通过增加一个角度惩罚项,有效降低了自由度数量。
该损失函数在一些传统神经网络数据集上的应用已证明其可提高训练速度和推理精度。
SIoU损失函数的计算包括:角度计算、距离计算和形状计算3部分式(9)为IoU值的计算过程,A为预测标注框的面积,AGT为标记的真实框的面积。
式中,Δ包含SIoU的角度计算量和距离计算量,是角度计算的最终结果。
x,y为待检测图中真实框和预测框的中心点的角度正弦值,ρ为实框的相对距离相对于其最小外部矩形的宽度和高度之比的平方,e为欧拉常数。
式中,Ω为形状计算量,其中w,h分别为预测帧的宽度和高度,θ为形状计算公式中的注意系数。
SIoU损失函数由上述3部分组成,目标定位损失函数计算方式为3 实验结果与分析3.1实验平台为验证改进后的YOLOv5s模型在风电叶片内腔缺陷检测的应用效果,采用实验平台对本检测方法进行模拟测试,平台软硬件配置如表1所示。
表1 实验平台软硬件配置3.2数据集准备为更好地训练风电叶片内部缺陷识别模型,需获得尽量多的高清巡检照片、视频等数据。
在数据采集过程中需尽量保持环境亮度、拍摄角度等条件一致,以便提高识别的准确度;此外还需根据不同类型的缺陷准备足够数量的照片作为模型训练数据,缺陷种类包括叶片内部的鼓包、褶皱、脱胶、裂痕、发白等(图6);最后需根据缺陷特征显著程度来确定这些数据的数量。
图6 某叶片内部缺陷照片由于采集叶片图像数据的设备所得到的分辨率较高,根据分割结果裁剪后的图像长边有几千像素(叶片形状狭长),然而目前基于YOLO框架开发的目标检测模型输入尺寸一般小于1200像素,若要用产线数据训练和测试深度模型,则必须改变输入图像的尺寸。
此外,叶片内部表面鼓包、褶皱、脱胶、裂痕等缺陷框大部分尺寸偏小,若直接对图像缩放,会导致缺陷分辨率不足,从而使模型无法学习到足够的特征进而分辨缺陷。
因此,本研究采用Image Crop工具裁剪图像,将裁剪后的图像输入模型,使缺陷保持较大分辨率,从而保证模型精度不受损失(图7)。
图7 采用ImageCrop工具裁剪图像效果3.3模型训练模型训练采用部分权重迁移学习策略,即主干网络继承了ImageNet数据集上预训练的权重,而连接层和输出层采用了何凯明初始化的方法(kaiming initialization),根据输入和输出的特征图尺寸确定权重的初始值。
模型训练过程中,使用了预热(warmup)和余弦学习率下降法来调节学习率,即学习率从0逐渐增加到0.01,然后按照余弦函数的规律逐步降低。
为防止过拟合,模型训练采用了L2正则化,即在损失函数中加入了模型权重的平方和项,以控制模型的复杂度。
为了更新参数,模型训练采用了小批量梯度下降法,即每次使用部分数据来计算梯度,并且使用了动量和Nesterov方法加快收敛,即在更新参数时结合了历史梯度方向和当前梯度方向。
为增强模型对不同大小目标的检测能力,模型训练采用了多尺度训练方法,即每次随机选择一个尺度,将输入图片按照该尺度进行缩放训练。
为提高GPU(图形处理单元)的运算速度和内存利用率,模型训练采用了混合精度训练方法,即在正向传播时使用16位浮点数,在反向传播时使用32位浮点数。
目的是16位浮点数可以降低内存占用和计算时间,而32位浮点数可以保证权重的精度和梯度的稳定性。
通过混合精度训练,可以在不降低模型精度的前提下,提升训练效率和增加批量大小。
3.4评价指标在数据分析阶段选用模型大小、参数量、每秒传输帧数FPS(frames per second)和平均精度均值mAP(mean average percision)4个指标对模型效果进行评价。
模型大小反映了模型的存储空间,越小越轻量化;参数量反映了模型的复杂度,越少越简单;FPS反映了模型的检测速度,数值越高越快;mAP反映了模型的检测精度,数值越高精度越好,计算过程如下式(13)中,P表示准确率(precision),式(14)中R表示召回率(recall),TP(true positive)表示正确判定为正样本数量,FP(false positive)表示错误判定为正样本的数量(实际应为负),FN(false negative)表示错误判定为负样本数量(实际应为正),式(15)中AP(average precision)表示每一个类别的平均精确度,式(16)中的N为分类的数量。
3.5实验结果与分析为验证ASPP特征提取、SE注意力模块、SIoU-Loss损失函数对改进YOLOv5s模型识别精度的影响,本研究采取了消融实验,如表2所示。
表2 消融实验结果对比为验证对YOLOv5s改进带来的检测效果,设置了5组实验,每组实验都选用相同的训练参数和训练数据。
其中,实验一采用YOLOv5s算法;实验二在空间金字塔池化层用ASPP代替了SPP;实验三引入了SE注意力模块;实验四将损失函数由CIoU-Ioss改进为SIoU-Loss;实验五融合了3种改进方法进行实验。
通过实验二的结果可分析出,在空间金字塔池化层采用ASPP相比于原来采用SPP检测精度有小幅提升,mAP上升了2.28个百分点,检测速度方面基本与原方法持平;实验三结果表明,引入SE注意力模块对检测精度有大幅提升,mAP上升了5.45个百分点,但检测速度有所下降;由实验四可看出,损失函数更换为SIoU-Loss,模型的检测精度和检测速度都有提升,检测精度方面mAP提升了3.39个百分点,检测速度增长了3.08FPS。
实验五融合了3种改进方法,改进后的模型在检测精度上达到了最佳,相比原YOLOv5s方法在mAP上提升了7.03个百分点,检测速度相比原方法只有轻微下降,但仍可满足风电叶片巡检任务需要。
为验证本文改进算法的检测优势,将当前流行的单阶段和二阶段算法与本文改进算法进行对比实验,选择的现有算法包括经典的Faster-RCNN和SSD,YOLO系列的v3、v4、v5s算法和轻量级的YOLOv4-mobileNetv2、YOLOv4-tiny、YOLOv5-mobileNet算法。
对比实验选用相同的训练参数和训练数据,实验结果如表3所示。
表3 不同算法对比实验结果从表3中可以看出,本研究提出的YOLOv5s改进方案在检测精度上明显高于其他的主流算法,且对小缺陷的识别准确率更高。
在本实验所用的数据集中检测准确率都达到了最优,但也损失了部分检测速度,帧率相比于YOLOv4-tiny、YOLOv5s及YOLOv5-mobileNet略有下降。
在风电叶片内腔缺陷检测实际作业场景中,提出的改进YOLOv5s方法完全可以胜任叶片缺陷检测任务,同时检测速度足以支持部署在资源有限的终端设备上。
为直观展现本研究提出的改进YOLOv5s算法与原算法在实际应用中的检测表现对比,从自制数据集中选取了2种场景的图片,分别用改进后YOLOv5s算法与原算法进行对比测试,效果如图8所示。
由图8可以看出,原YOLOv5s方法只能检测出1个较大的缺陷区域,并且目标框不够紧致,而改进方法能够检测出2个较小的缺陷区域,并且目标框更加贴合缺陷边缘,改进方法相比原YOLOv5s方法在叶片小缺陷识别及整体检测准确度方面均有明显提升。
图8 检测结果对比4 结论提出了基于特征增强处理、引入注意力模块及改进损失函数的YOLOv5s风电叶片内腔缺陷检测方法,通过改进空间金字塔池化层方法ASPP对图像特征进行增强处理,以提高模型识别不同尺寸与比例目标的能力,使模型对风电叶片的大小缺陷都可进行准确检测;通过引入SE注意力机制模块增强特征图的表达能力,并使模型能够识别空间不同像素点之间权重,以增强模型对叶片小缺陷的敏感度;通过改进回归损失函数为SIoU-Loss,在提升模型目标检测准确率的同时加快损失函数的收敛速度,缩短模型训练时间。
测试实验结果表明,改进后的模型相较于原YOLOv5s模型提升了检测准确率,使用ASPP后,模型的mAP值提升了2.28个百分点;使用SE注意力模块后,模型的mAP值提升了5.45个百分点;使用SIoU-Loss后,模型的mAP值提升了3.39个百分点,训练速度提高了7%。
总体看,改进YOLOv5s模型的mAP值为94.29%,与YOLOv5s模型相比提升了7.03个百分点,检测精度与其他主流模型相比同样具有优势,检测速度为42.78f/s。
作者简介:张成义,上海发电设备成套设计研究院有限责任公司,高级工程师,研究方向为风电提质增效、智慧运维技术等。
原文发表于《科技导报》2024年第9期,欢迎订阅查看。