基于改进Mask R-CNN 的风机叶片缺陷检测
2020-09-17文传博
张 超, 文传博
(上海电机学院, 上海 201306)
0 引言
叶片是风电机组的关键部件之一,但是在风电机组发电的过程中,由于叶片处在各种自然环境的情况下,其表面可能会出现胶衣脱落、砂眼、剥皮等常见问题,从而直接影响风电机组发电的效率与安全[1]。
传统风电机组的叶片缺陷检测方法主要基于各种传感器,如振动传感器、声发射传感器和应变传感器等。Dutton A G[2]研究了使用声发射技术的叶片结构健康状态监测系统,利用传感器监测叶片情况,通过声发射技术来评估叶片状态和探测损伤。Walle G[3]研究了高频超声技术,利用超声波热成像检测材料中较深的裂纹缺陷。 然而,这些技术成本较高、鲁棒性较差,无法直观的从图片中得到检测结果。
近年来,深度学习的发展,给风机叶片的缺陷检测提供了一种全新的思路。 Girshick R[4]设计了基于区域的卷积神经网络(R-CNN)算法,使用候选区域(Region Proposal)和分类卷积神经网络训练模型用于图像检测,掀起了基于深度学习的目标检测与识别的热潮。 R-CNN 算法采用提取框、对每个框提取特征、图像分类、非极大值抑制4 个步骤进行目标检测。 在提取特征这一步,将传统的特征,如HOG[5],SIFT[6]等换成了深度卷积网络提取的特征。 在R-CNN 的基础之上建立了Fast R-CNN[7],Faster R-CNN[8]等深度网络框架。
随着深度学习网络框架的成熟, 如何将深度学习应用在风机叶片缺陷检测上将成为一个新的挑战。风机叶片的缺陷多数是不规则形状,由无人机拍摄的叶片图片大多是倾斜状, 使用传统的目标检测框架(Faster R-CNN,YOLO,SSD 等)仅能以绘制边界框的方式将缺陷框出而无法直观地表达缺陷具体位置(图1)。
图1 目标检测Fig.1 Object detection
因此, 需要一种适用于风机叶片缺陷的检测方法。Mask R-CNN 是He K 基于Faster R-CNN 提出的一种改进算法[9], 除了分类和边界框回归之外,Mask R-CNN 还为每个感兴趣区域(ROI)添加并行分支以进行实例分割,并进行联合训练,在目标检测数据集中取得了良好的实现效果。 在以上研究工作的基础上, 本文提出了一种基于改进Mask R-CNN 的风机叶片缺陷检测方法, 在缺陷检测的同时实现了缺陷与背景的分割。
1 算法描述
Mask R-CNN 网络框架分为特征图提取网络、 区域推荐网络、ROIAlign 和预测网络4 个部分(图2)。 首先,图片经过特征图提取网络得到对应的特征图,之后利用区域推荐网络(RPN)在特征图上生成候选区域ROI,再通过ROIAlign 层得到固定的特征图尺寸输入到预测网络中,对类型、边界框、掩膜进行预测。
图2 Mask R-CNN 网络框架Fig.2 Mask R-CNN Network
1.1 特征图网络
特征图网络是Mask R-CNN 的骨干网络,该网络分为两个阶段。首先对图片进行特征提取,之后对提取后的特征进行融合, 输出结果为特征图(Feature Map)。Mask R-CNN 使用ResNet-101 网络进行特征提取,之后使用FPN 网络进行特征融合,算法流程如图3 所示。
图3 特征图网络Fig.3 Feature maps Network
ResNet-101 分为C1~C5 5 个阶段,每个阶段的输出称为底层特征层,P2~P6 为FPN 网络融合底层特征层通过高层上采样的方式输出的5 种不同尺度的特征图。 例如C3 层经过1×1 卷积得到与P4 相同的通道,P4 经过上采样后得到与C3 相同的长和宽,再将两者相加,得到了融合层P4,其他以此类推。
1.2 区域推荐网络
RPN 是一个轻量级的神经网络,其作用是从上一步得到的特征图中找出可能存在目标的区域。输入为上一阶段得到的特征图P2~P5,并产生一系列的锚框, 各个锚框的大小由像素点个数和长宽比两个参数决定。 像素点个数为(8,16,32),长宽比为(0.5,1,2)的锚框如图4 所示。
图4 锚框Fig.4 Anchors
RPN 利用上述3 种像素点大小和3 种比例的共9 种尺度锚框的方法对特征图进行滑窗,当交并比(IOU)大于0.5 时,认为其为前景,对其类别和边框进行第一次修正。
式中:ROIP,ROIT分别为锚框面积和实际面积;area (ROIP∩ROIT) 为ROIP和ROIT的重叠面积;area(ROIP∪ROIT)为ROIP和ROIT的并集面积。
1.3 ROIAlign
ROIAlign 的作用是对上一步得到的ROI 进行池化操作,实现将不同尺度的ROI 池化为固定的尺度以满足全连接层的输入需求。 为了满足输出固定尺寸特征图,传统的方法使用ROIPooling,在选择滑窗大小时进行取整操作, 这种做法在预测边界框时不会有太大影响, 但是进行逐像素的预测时会使得从ROI 取出的特征无法与ROI 对齐, 从而造成掩膜预测的偏离。 针对上述问题,Mask R-CNN 在选择滑窗大小时不进行取整操作,保留浮点坐标,并使用双线性插值计算每个采样点的像素值, 之后对滑窗中的采样点取最大值得到固定尺寸的特征图(图5)[10]。
图5 RoIAlignFig.5 ROIAlign
1.4 预测网络
通过ROIAlign 得到了固定尺寸的ROI 特征图(一般为7×7),将其送入预测网络进行分类。预测网络如图6 所示。 相比于Faster R-CNN,Mask R-CNN 在预测阶段添加了第三条分支来预测掩膜,其中的“Head”部分是由一定数量的神经元个数组成的隐藏层,主要作用是将ROIAlign 的输出维度扩大,在预测掩膜时会更加精确,之后送入全连接层(Fully Convolution Nets)[11]进行掩膜预测。
图6 预测网络Fig.6 Prediction network
1.5 损失函数定义
本文的Mask R-CNN 模型完成了3 个任务,即缺陷与背景的分类、 缺陷的检测定位以及缺陷与背景的分割。因此,损失函数的定义包括了分类损失、定位损失以及分割损失3 部分。
分类损失定义为
分割损失为掩码的损失, 若锚框检测出为某一类别, 则使用该类别的交叉熵损失作为误差值进行计算,其他类别损失值不计入,从而避免了类间的竞争。
2 Mask R-CNN 的改进
Mask R-CNN 沿用了Faster R-CNN 和语义分割算法FCN, 不但可以获得目标的边界框,还可以对目标进行像素级的分割, 但同时也面临着需求数据量大, 训练时间长的问题。 针对上述问题,本文在继承Mask R-CNN 算法的同时考虑到风机叶片缺陷特点,做出以下两点调整与改进。
①使用ResNet-50 网络特征提取
传统Mask R-CNN 算法使用ResNet-101 网络, 提取特征精细且对小目标物体提取效果非常好, 但同时面临着计算量大, 训练时间较长的问题。 实际问题中,风机叶片缺陷检测目标大,特征明显,使用ResNet-101 网络容易产生不必要的冗余计算, 增加了训练成本。 因此, 本文提出使用ResNet-50 网络进行特征提取,ResNet-50 和ResNet-101 对大目标检测特征提取效果近似,但ResNet-50 计算量小,训练成本低,更适用于风机叶片缺陷检测。
②“Head”部分减少神经元个数
传统Mask R-CNN 算法在“Head”部分采用神经元个数为1 024 的隐藏层扩大输出维度,针对风机叶片缺陷,为了提高训练效率和解算速度,本文使用的隐藏层神经元个数为512 个。 图7 所示为改进Mask R-CNN 网络。
图7 改进Mask R-CNN 网络Fig.7 Improved Mask R-CNN Network
3 实验结果及分析
3.1 数据集准备
使用无人机拍摄华东某风电场风机叶片共1 500 张, 选取其中有明显缺陷的图片大约350张,并使用labelme 软件进行掩膜标注。 为了防止模型在训练过程中出现过拟合的现象,本文采用了平移变换和色彩抖动的方式进行数据增强,得到最终数据集为700 张,随机选取其中620 张为训练集,80 张为测试集。
3.2 实验环境配置
本次实验环境在Windows10 操作系统下,使用NVIDIA GeForce GTX1070(8G)进行GPU 加速,基于Pytorch 的深度学习框架,并加载官方训练好的预权重对620 张风机叶片缺陷图片进行迁移学习。 实验超参数如表1 所示。
3.3 实验结果
通过训练得到的3 种模型Faster R-CNN,Mask R-CNN 和Mask R-CNN-512, 使用相同测试集进行测试对比,结果如图8 所示。 由图8 可知:在风机叶片缺陷目标大且形状不规则的情况下,Mask R-CNN-512 可以将缺陷的掩膜完整地分割出来, 实现了对叶片缺陷的目标检测和实例分割的效果; 与Mask R-CNN-512 相比,Faster R-CNN 仅绘出了边界框, 分割效果不够直观;在大目标的情况下,Mask R-CNN 与Mask R-CNN-512 的分割效果近似。
3.4 实验分析
为了定量分析网络结构的性能, 本文使用COCO 数据集评价指标来评价算法精度, 并根据检测时间来判断算法的效率,其含义如表2 所示。
表2 COCO 数据集评价指标Table 2 COCO detection evaluation
为证明所提算法的先进性, 与时下主流目标检测框架Faster R-CNN,Mask R-CNN 以及采用不同“Head” 部分的神经元个数的Mask R-CNN进行对比分析,结果如表3,4,5 所示。
表3 不同算法下边界框预测的对比分析Table 3 Comparative analysis of bounding box under different algorithms
从表中数据可知:由于风机叶片缺陷目标大,在训练过程中没有筛选出像素值小于32×32 的缺陷,因此APs 值恒为0;使用ResNet-50 进行特征提取之后,检测速度大幅减小;在边界框预测方面, 各算法的各类准确率指标大都在80%以上,相比于Mask R-CNN-512,Faster R-CNN 在检测边界框上准确率高且检测速度较快,具有明显优势; 而在掩膜预测上, 取0.5 时的准确率普遍最高,且Mask R-CNN-512 表现最优秀;由APM,APL可知,相较于Mask R-CNN,Mask R-CNN-512 在中等目标物体检测上准确率提高了8.2%,在大目标物体检测上准确率提高了9.2%,且在检测时间上提高了162 ms。
表4 不同算法下掩膜预测的对比分析Table 4 Comparative analysis of mask prediction under different algorithms
表5 不同算法下检测时间的对比Table 5 Comparison of detection time under different algorithms
综上,使用Mask R-CNN-512 算法进行叶片缺陷检测时,能同时实现目标检测和实例分割,并且在检测速度上有非常大的提高, 在同类检测算法上性能最优, 能够满足风机叶片缺陷检测的需求。
4 结束语
本文针对风机叶片缺陷具有目标大、 形状不规则的特点,通过简化特征提取网络和“Head”部分神经元个数, 提出了Mask R-CNN-512 算法。经过测试集的验证以及与同类算法的对比, 在检测叶片缺陷面积像素大于32×32 时,该算法的表现明显优于同类算法,在IOU 为0.5 时,准确率达到了98.7%,检测单张图片所需时间为139 ms,可以同时实现目标检测和实例分割, 能够很好地胜任风力发电机的叶片缺陷检测任务。 但是由于叶片缺陷的种类较多,且数据集容量不足,当前阶段对缺陷种类的分割效果欠佳, 下一步将增大数据集容量,在检测缺陷的基础上对缺陷进行分类,将优化算法结构作为日后的研究重点。