基于改进SSD的风机叶片表面缺陷检测方法*
2023-10-18季利鹏吴世龙杨文威杨迦迤
季利鹏,吴世龙,聂 涛,杨文威,杨迦迤
(1. 上海理工大学 机械工程学院·上海·200093;2. 上海航天控制技术研究所·上海·201109;3. 上海嘉柒智能科技有限公司·上海·201912)
0 引 言
近年来,随着无人机、光学传感器、图像处理等技术的迅猛发展,应用无人机实现复杂环境下工业设备的日常巡检与维护作业越来越引起人们的重视与关注。当前,中国风电装机容量连续多年蝉联世界第一[1],而由于风电资源多集中于山区、近海或戈壁等地理、气候环境相对复杂的地区,作为风力发电机关键部件的叶片,在运行期间暴露在如此高度可变和恶劣的环境条件下,容易发生缺损,甚至断裂的情况,降低风机的风能转化率和机组寿命,严重时会带来重大安全隐患和经济损失[2-3]。因此,定期对叶片部件进行巡检及状态监测,发现破损并及时更换,对维持风力发电机的高效可靠运行至关重要。在此背景下,在风电场内部署无人机装备为实现风机叶片表面的缺陷检测任务提供了新的解决路径。
与传统的风机叶片缺陷检测方式相比,通过部署无人机可以降低高空作业风险,减轻劳动强度;提高检测效率,大大减少停机时间;减少检查盲区,提高精度;避免了安装各种传感器对叶片运行的影响,降低了测试成本;还能有效避免风电场中各种不利因素干扰检测的情况[4]。为了实现风机叶片表面缺陷的无损检测,利用自主规划或人为操控的无人机(Unmanned Aerial Vehicle,UAV)采集风机叶片图像,建立风机叶片表面缺陷图像数据集,进而构建基于深度学习的风电叶片表面视觉损伤识别算法,实现风机叶片表面缺陷的位置定位及类型判定,从而达到典型叶片表面缺陷的安全、高效检测的目的[5-6]。针对无人机获取到的图像数据,传统算法主要从有限的先验数据中进行分析,通过经验设计有效的特征集合或目标匹配模板完成检测任务[7-8],但该方法需要花费大量时间和精力完成特征集合和匹配模板的设计,且检测精度有待提高。
鉴于传统检测算法局限性的存在,出现了基于卷积神经网络(Convolutional Neural Networks,CNN)的深度学习目标视觉检测方法,通过迭代训练,CNN能够自动学习并获取图像的深层特征,进而完成风机叶片表面的缺陷检测。Xu Donghua[9]提出了一种基于无人机采集图像及VGG-16网络模型的缺陷检测方法,可以分别对五种叶片表面缺陷进行精确识别,但该算法无法进行多种缺陷类型的分类及定位。Qiu Zifeng[10]提出了一种基于YOLO算法的微小缺陷检测模型(YOLO-based Small Object Detection Approach,YSODA),可以对微小缺陷进行精确检测,并且检测速度达到了实时性的要求。张超等[11]提出了一种基于改进Mask-RCNN的风机叶片缺陷检测方法,将ResNet-50结合 FPN网络生成的特征图输入到RPN网络中筛选出ROI,通过ROIAlign固定特征图尺寸输入到预测网络进行缺陷类型、边界框及掩膜的预测。朱佳伟等[12]提出一种基于改进单次多边界框检测器(Single Shot MultiBox Detector,SSD)的风机叶片缺陷检测方法,采用霍夫变换对处于倾斜状态的风机叶片进行校正,然后利用两种残差网络作为SSD算法的骨干网络(Backbone)进行特征提取,提升了检测精度和效率。
现在前沿的目标检测算法如Fatser-RCNN[13]、YOLOv3[14]、SSD[15]等,基本都是在VOC[16]等常规数据集上开展实验,但是因为有其特殊性(目标独特性、尺度多样性、视角特殊性),基于常规数据集训练的检测器在风机叶片表面缺陷图像上的识别效果仍需提高。实际应用中,对于风机叶片图像中目标尺度多样性的问题,检测效果差的原因多集中在不同缺陷区域往往随着类型或破损程度等情况具有不同的尺度范围,视觉表现为极小、极大或者极端形状,如细长型、窄高型等,这就导致目标特征信息差异随着尺度的变化而改变,从而影响表面缺陷的准确识别与精准定位。
为了解决上述问题,利用计算机视觉并结合人工智能中的深度学习技术,构建以SSD算法为基础的检测模型。针对叶片表面缺陷多尺度的视觉表现,借助SSD模型的特征金字塔结构进行缺陷目标的多尺度预测,从不同深度、尺寸特征图中学习感兴趣信息。同时,更换残差网络resnet50为其骨干,在多维特征空间内获取不同尺度特征下风机叶片图像的深、浅层信息,进而增强骨干网络的特征提取能力,提高风机叶片图像表面缺陷的识别与定位准确率。之后,利用无人机航拍图像制作数据集,在对无人机航拍风机叶片图像进行分类、标注后,会得到带有类别标签的图像数据集,并按比例对其进行数据划分用于训练与测试,进而对已构建的缺陷检测模型进行内部参数拟合与实验验证。所提算法框架原理图如图1所示。
图1 所提算法框架原理图Fig.1 Schematic diagram of proposed algorithm
1 SSD原理与改进
1.1 SSD原理及基本流程
当前,基于深度学习的目标检测算法主要分为单阶段和双阶段两类,其中SSD作为单阶段目标检测算法中的代表之一,将目标检测任务视为一个回归或分类问题,采用统一的框架直接实现目标的分类与定位[17]。与基于候选区域的双阶段目标检测模型不同,在特定结构的神经网络框架下SSD在不同的特征尺度下直接生成固定大小的边界框集合,并获得这些框中对象类实例的得分,然后通过NMS步骤产生最终的检测结果。
图2所示为本文所提改进SSD算法流程图,该框架主要由特征提取网络和检测头(Prediction Head)组成。在该框架下,输入的风机叶片图像首先通过由残差网络Resnet50和附加块(Addition Blocks)构成的特征提取网络进行图像的初始特征提取,通过将学习机制集成到网络中来加强缺陷目标的信息捕捉能力,有效理解多维特征空间内的浅层空间细节信息与深层语义信息,获得六个不同层次下的特征图集合;之后,将特征图集合在检测头部分分别进行感兴趣区域信息数据的类别概率分类与位置坐标回归,按规则在特征图上生成不同尺度和长宽比的先验框,并利用NMS操作进行筛选关联目标子集,完成缺陷定位与类型确定并输出。
图2 改进SSD算法流程图Fig.2 Improved SSD algorithm flow
1.2 特征提取网络
本文选择残差网络ResNet50替代VGG作为SSD网络的骨干网络,寻找原始图像数据中目标缺陷区域所暗含的具有统计意义的特征信息,旨在从缺陷对象的特征提取方面提升模型整体的检测能力。Kaiming He提出的深度残差网络ResNet首次在网络结构中引入了残差单元,优化了传统神经网络深层堆叠所造成的梯度爆炸与退化问题[18]。ResNet50结合残差(Residual )和跳跃连接(Shortcut Connection)思想,主要由子模块Bottleneck堆叠而成,融合各层内部局部感受野内的空间(Spatial)和通道信息(Channel-Wise)来构建信息特征[19-20],Bottleneck的结构如图3所示,该结构的主路径上为1×1、3×3、1×1的三个卷积块,输入x经过一系列卷积处理得到残差函数F(x),之后与捷径支路进行数据融合,获得待拟合的输出映射结果,其计算过程见式(1)。其中,y为期望输出,Wi和Ws分别为主路径与捷径支路学习到的权重参数。
(a)
(b)图3 Resnet50内部子模块Bottleneck结构Fig.3 Resnet50 internal sub-module Bottleneck structure
(1)
表1所示为本实验所用的ResNet50模型的网络结构,由49个卷积层组成,其中49个卷积层分为五组,卷积核的大小有三种,分别为7×7、3×3和1×1,用于对输入图像进行特征的提取,从理论全局感受野上去捕获图像的特征来进行图像的描述,其中卷积层的激活函数为非线性Relu激活函数。同时,为满足后续附加特征提取部分的输入要求以及特征图集合内指定特征图尺寸的要求,在尾部添加一卷积核为1×1的卷积层进行连接。
表1 Resnet50作为SSD的骨干网络时的结构表Tab.1 Structure table when Resnet50 is used as backbone of SSD
2 数据集构建
2.1 数据集准备
使用无人机设备搭载高清相机在华东某风电场对停机稳定状态下的风力发电机组叶片进行了现场图像采集。经统计,现场采集的风机叶片图像共计1000余张,按照图像表面缺陷的存在与否对风机叶片图像进行初步筛选,各类型风机叶片表面缺陷样本示例见图4。之后,通过LabelImg软件对所有图像内各类型缺陷进行目标标注,标注后的数据集样本缺陷数量情况见表2所示。最后,按照 8∶2的比例划分训练集与测试集,用于训练与评估检测模型对风机叶片表面缺陷的判别能力。
表2 风机叶片图像数据集内缺陷情况Tab.2 Defects within the wind turbine blade image data set
(a)断裂 (b)腐蚀 (c)结构破损
(d)表面裂纹 (e)表皮脱落 (f)雷击图4 数据集内风机叶片缺陷样本示例Fig.4 Example of a sample of wind turbine blade defects in the data set
2.2 数据集分析
通过对数据集内风机叶片图像的收集、筛选及标注,发现所构建的数据集样本存在缺陷目标多尺度的现象,统计结果见图5所示。在对所有图片进行尺度归一化操作至300×300像素大小后,缺陷真值框尺度分布呈现分散,且目标尺寸以中小等级为主。以表面裂纹缺陷类型为例,如图6所示,由于受损程度或受损时间期限等原因,其视觉表现尺寸并不完全相同。
图5 数据集内各缺陷真值框大小分布Fig.5 Size distribution of truth box of each defect in data set
图6 表面裂纹缺陷类型的多尺度表现Fig.6 Multi-scale representation of hide-crush type defect
3 实验及分析
3.1 实验评估指标
在本次风力发电机叶片表面缺陷检测任务中,使用目标检测领域最常用的指标之一的均值平均精度(Mean Average Precision,mAP)来衡量该模型的检测精度,它是模型检测结果中不同类别目标对象平均精度(Average Precision,AP)的平均值。以mAP@.5为例,它表示当预测框与真值框值间的交并比(Intersection of Union,IoU)为0.5时各类型缺陷检测结果的平均精确率。mAP与AP的计算过程如下。
(2)
(3)
其中,C表示缺陷类别总数,(AP)i为第i类的AP值;m,P,R分别表示在特定类别缺陷下的正样本个数、准确率和召回率,其中P,R可由下式得到
(4)
(5)
其中,TP,FP,FN之间的关系及含义可由表3得出。
表3 TP,TN,FP,FN含义及关系Tab.3 TP,TN,FP,FN meaning and relationship
3.2 实验结果及分析
本文在前期建立的风机叶片缺陷数据集上对SSD、YOLOv3和RetainNet三种单阶段目标检测网络在不同的骨干网络下进行训练,以此来验证改进 SSD 算法的有效性及优越性。通过使用交叉熵损失函数和SmoothL1函数实现网络内类别损失和定位损失的计算,并加载骨干部分的预训练权重对网络进行加速训练。
由表4可以看出,对于风机叶片表面的缺陷检测,本文算法的总体平均精确度mAP@.5最高,相比于YOLOv3和RetainNet分别提高了2.92%和8.69%。从各类型缺陷的检测性能来看,本文算法的检测结果基本达到或接近三种检测模型的最佳效果,除表皮脱落、雷击和结构破损缺陷的检测效果略差于YOLOv3外,其余类型的结果均为最高,断裂缺陷的检测精确度甚至达到了97.46%。
表4 不同算法下缺陷预测对比分析Tab.4 Comparative analysis of defect prediction under different algorithms
为了验证对SSD模型特征提取网络等方面的相关改进策略的优越性,对比分析改进前后模型的检测效果,见表5所示。结合表4可以看出,SSD算法因其本身结构对多尺度目标的敏感性,以VGG为骨干网络的SSD模型的检测效果都要优于YOLOv3和RetainNet。在经过更换特征提取网络模块后,改进SSD算法的检测效果提升了2.21%,这表明相比于VGG来说,层数更深的ResNet50残差网络更有利于风机叶片表面的特征信息提取。从各类型缺陷的检测效果来看,除表皮脱落和结构破损缺陷外,本文算法对其余缺陷的检测表现均已达到最优。改进的 SSD 算法一定程度上提升了网络整体的检测能力,各类型缺陷与综合检测准确率均获得最佳效果,因此可选择该网络来完成风机叶片缺陷的检测任务。
表5 SSD模型改进检测效果比较Tab.5 Comparison of SSD model improvement detection effects
利用改进的SSD模型对风机叶片缺陷测试集中的检测结果进行可视化,选取不同类型缺陷的叶片图像的部分检测结果如图7所示。可以看出,在检测模型作用下,风机叶片图像内所包含的表面缺陷位置、类型及其置信度均在图像上得到展示。
图7 模型检测效果示意图Fig.7 Example of model detection effect
4 结 论
本文主要针对无人机巡检场景下风机叶片表面缺陷目标检测中存在的多尺度问题,提出了一种基于改进SSD算法的缺陷图像目标检测方法。该方法通过替换原有网络框架中的特征提取网络VGG为残差网络ResNet50,来完成更深层次的特征信息提取任务,从而达到提高视觉缺陷检测效果的目的。本文方法建立在真实环境下的风机叶片表面缺陷数据集上,其综合平均准确率mAP@.5可以达到84.29%,且在各类型缺陷下均表现出良好的检测性能。研究结果表明,所提出的算法具有较高的精度,识别缺陷类型较为全面,能满足风力发电机叶片缺陷检测的基本要求。结合当前对风机叶片缺陷的视觉检测,可应用于风电场阵列摄像机和无人机等数据采集设备的后期检测系统,通过进一步完善无人机巡检流程与相关检测算法,为风机叶片表面缺陷的快速自动检测提供解决路径。