基于多尺度特征融合的光伏组件缺陷检测

2024-03-03 11:22贺晨龙
计算机工程与应用 2024年3期
关键词:组件特征模块

田 浩,周 强,贺晨龙

陕西科技大学 电气与控制工程学院,西安 710000

“双碳”目标是我国的重大战略决策,发展清洁低成本的光伏发电是实现这一战略目标的重要途经和技术保障[1]。光伏(photovoltaic,PV)发电是利用光伏组件的光生伏特效应将太阳能辐射直接转变为电能的一种方法[2],光伏组件的工作状态将直接影响发电效率。由于生产、运输和安装过程中的损坏,光伏组件不可避免地会产生一些缺陷,如断栅、隐裂、黑芯等,这些缺陷会导致组件的光伏转换效率降低,使用寿命缩短,甚至可能导致电路板短路,产生安全隐患[3]。因此研究光伏组件的缺陷检测方法是提高光伏发电可靠性和稳定性的关键,对于促进光伏能源的发展具有重要意义。

目前,电致发光[4](electroluminescence,EL)成像因其非接触式、鲁棒性、速度快、成像分辨率高等优点被广泛应用于光伏组件检测领域[5]。EL 成像基本原理是基于硅材料的电致发光效应,通过向晶体硅电池组件施加正向偏置电压,组件中被电场激发的电子在能级间进行跃迁、变化、复合而发射特定波长的光,使用电荷耦合器件(charge coupled device,CCD)图像传感器捕获该波长范围内的光并对其进行成像。通过EL图像的分析可以有效地发现硅片、电池片和组件生产过程中可能存在的缺陷,对改进生产工艺、提高生产效率和提高产品质量有着重要的作用[6]。对于光伏组件的检测来说,以往大多采用肉眼观察EL 图像的方式判断光伏组件状况。然而,光伏组件缺陷大多是一些肉眼难以识别的微裂纹,并且特征不明显、形状不规则,需要大量的经验和积累才能准确识别[7]。而且,人工检测缺陷的方式容易受到主观因素的影响,检测效率低下,难以大规模应用于光伏组件检测中。

随着光伏产业规模的不断扩大和计算机视觉技术的飞速发展,基于机器视觉和深度学习的自动化检测方法已经逐渐取代人工检测[8]。在光伏组件检测领域,Tsai等[9]提出了一种基于傅里叶图像重建方法,用于识别太阳能电池表面裂纹、断栅等缺陷。Anwar等[10]采用各向异性扩散滤波和形状分类的多晶硅太阳能电池微裂纹检测算法,利用支持向量机(support vector machine,SVM)训练分类器进行二分类。Tsai等[11]提出一种基于独立成分分析(independent component analysis,ICA)的监督学习方法,用于识别太阳能电池中是否存在缺陷,但无法识别缺陷的形状和位置。基于机器学习的缺陷检测方法依赖于人工特征提取,需要专业知识且调参过程复杂,算法泛化能力弱、鲁棒性较差。Deitsch 等[12]提出了一种基于CNN 和SVM 的模型,对2 624 张光伏组件EL 图像进行缺陷检测,取得88.24%的准确率。Tang 等[13]结合传统的图像处理方法和生成对抗网络进行数据增强,提出了一种基于CNN的EL图像自动分类模型。Han 等[14]采用区域建议网络(region proposal network,RPN)来生成底层缺陷区域,将生成的图像引入改进的分割网络中检测。

虽然上述算法在光伏组件缺陷检测任务中取得了较好的效果,但是能够检测的缺陷种类较少,且大多只针对裂纹和断栅,并且无法提供缺陷位置,难以进一步评价缺陷对光伏组件发电性能的影响。与此同时,光伏组件缺陷具有形状多样性,尺寸差异较大,易受复杂背景的干扰等特点[15],导致光伏组件缺陷检测问题极具挑战性。为了解决上述问题,本文提出一种基于多尺度特征融合的光伏组件缺陷检测方法。以YOLOv5s 为框架,综合考虑提高小目标召回率,缺陷识别精确率以及模型推理速度对算法进行改进。首先,在主干网络中引入坐标注意力机制[16](coordinate attention,CA),使模型聚焦于目标中的重要信息,忽略无用信息,提高任务处理的效率和准确性;其次,在颈部网络中采用双向特征金字塔网络[17](bidirectional feature pyramid network,BiFPN),以自适应权重方式进行多尺度特征融合,让网络学习每个输入特征的重要性;然后,在预测层将自适应空间特征融合模块[18](adaptively spatial feature fusion,ASFF)和检测头结合,过滤不同检测头间的冲突信息,提高特征尺度的不变性;最后,添加一个微小检测头,提高网络对小目标缺陷的关注度,减少小目标漏检率。

1 YOLOv5目标检测算法

YOLOv5是一种单阶段的目标检测算法,根据网络宽度和深度分为s、m、l、x四种网络基本结构,模型架构大小和参数个数依次增加,特征提取能力也逐渐提高,推理速度逐渐减慢。由于光伏组件缺陷检测任务对检测精度和速度都有较高的要求,故本文选择YOLOv5s作为基础网络架构,在此基础上设计一种针对光伏组件缺陷检测的算法。

YOLOv5s 网络由输入端(Input)、主干网络(Backbone)、颈部网络(Neck)、预测层(Prediction)四部分组成。输入端采用Mosaic 数据增强,通过随机选择四张图片,以随机缩放、随机裁剪、随机排布的方式进行拼接,从而增加小目标样本数量。同时,将输入图像自适应缩放成640×640×3,用于提高目标检测推理速度。主干网络主要用于提取图像特征,由Focus 结构、CSP(cross stage partial)结构和SPP(spatial pyramid pooling)结构组成。颈部网络采用路径聚合网络(path aggregation network,PANet),由FPN 和PAN 组成,用于对不同尺度的特征图进行特征融合。FPN 采用自顶向下的结构传达语义特征,得到进行预测的特征图,但FPN 经过多层卷积网络作用后,底层的位置信息减少。因此在FPN基础上添加PAN,加入自底向上的结构,弥补并加强定位特征,从不同的主干层到不同的检测层进行参数聚合。预测层采用CIOU_LOSS作为损失函数和非极大值抑制(non-maximum suppression,NMS)筛选目标检测框,提高检测效率。

2 改进的YOLOv5s光伏组件缺陷检测算法

由于光伏组件缺陷容易受到复杂背景的干扰,同类型缺陷的形状具有多样性,网络持续下采样会导致小目标缺陷特征逐渐消失等问题,使得原始的YOLOv5s 网络不适用于光伏组件缺陷检测任务。图1 给出了光伏组件数据集中各类型缺陷尺寸分布,可以看出黑芯、裂纹缺陷尺寸差异较大,断栅缺陷的形状基本为细长状,星形裂纹、短路和粗线大多为正方形,并且缺陷样本数量较少。

图1 光伏组件数据集各类型缺陷尺寸分布Fig.1 Size distribution of defects in PV module dataset

针对以上问题,本文的主要贡献如下:(1)YOLOv5主干网络第八层的CSP 结构中嵌入坐标注意力机制(CA),将位置信息嵌入通道注意力中,帮助模型准确地定位和识别缺陷目标。(2)在颈部网络中引入双向自适应多尺度特征融合网络,让网络学习不同输入特征对预测的重要性,对不同输入特征进行有差别的融合。(3)ASFF 模块结合预测层的检测头形成ASFF_Head 模块,将不同预测层的特征图进行自适应空间特征融合,提高特征尺度的不变性。(4)在预测层中添加一个由浅层且高分辨特征图生成的微小检测头,加强模型对小目标的敏感性。改进后的YOLOv5网络结构如图2所示。

图2 改进的YOLOv5网络结构图Fig.2 Improved YOLOv5 network structure diagram

2.1 坐标注意力机制

当YOLOv5s网络检测较为密集的光伏组件微小缺陷时,由于图像背景较为复杂并且随着下采样的进行会丢失大量位置信息,对断栅、隐裂等缺陷经常出现漏检或误检。因此,本文在C3 模块中引入CA 机制形成C3CA 模块,加强网络对重要信息的关注,提高网络的性能。C3CA模块的组成如图3所示。

图3 C3CA模块Fig.3 C3CA module

CA 机制将位置信息嵌入到通道注意力中,不仅可以捕获通道信息,还捕获方向感知和位置敏感信息,使得网络能够关注大范围位置信息的同时不会产生过多的计算量。

CA结构如图4所示,首先将全局平均池化沿着X、Y方向分解成两个一维向量编码。使用(H,1)和(1,W)池化核对输入X沿着水平方向和垂直方向编码,因此高度为h的第c个通道输出为:

图4 CA结构Fig.4 CA module

同样,宽度为w的第c个通道输出为:

将两个一维池化的结果拼接起来,使用1×1 的卷积、批量归一化和非线性激励进行特征转化:

随后将f分为两个独立的特征gh、gω,分别使用1×1的卷积和sigmoid 函数进行特征转换,使得维度与输入X一致:

将输出gh、gω合并成权重矩阵并与输入X相加,CA模块输出为:

2.2 多尺度特征融合

卷积神经网络的不同层次能够提取到不同层次的图像特征,网络提取到的浅层特征主要反应图像明暗、边缘等细节,而网络提取到的深层特征则反应更加丰富的图像整体结构。单独使用浅层特征无法包含图像的整体结构信息,会减弱特征的表达能力,而单独使用深层特征会导致提取的位置信息较少,不利于小目标检测。YOLOv5中采用PANet结构,在进行自顶向下的特征融合后,再进行自底向上的特征融合,深层特征和浅层特征相互融合,兼顾细节和整体,使得预测层具有较高的语义信息和位置信息[19]。但PANet 在融合不同尺度特征时是通过简单的、不加区分的特征相加方式。由于不同输入特征的分辨率不同,对融合输出特征的贡献通常也不同,简单地将不同尺度的特征进行相加是不合理的。

针对上述问题,本文采用一种简单高效的加权双向特征金字塔网络(BiFPN),通过融合不同层次的特征信息来提高检测精度,如图5所示。引入可学习的权重来学习不同输入特征层的重要性,同时重复应用自顶向下和自底向上的多尺度特征融合。并且当原始输入节点和输出节点处于同一层时,添加额外的跨层拼接,以融合更多的缺陷特征,从而减少光伏组件复杂背景的干扰。

图5 BiFPN模块Fig.5 BiFPN module

2.3 自适应空间特征融合

YOLOv5 的预测层采用三个检测头分别对大、中、小尺寸的特征进行检测,深层特征检测大目标,浅层检测小目标。然而当某个目标在某一层被当作正类时,相应地该目标区域在其他层被当作负类。如果一幅图像同时包含大小目标,不同特征层之间的冲突往往占据特征金字塔的主要部分。这种不一致性干扰了训练过程中的梯度计算,降低了特征金字塔的有效性。YOLOv5将不同输出特征层分辨率调整成统一尺寸后,进行直接拼接或者相加,但这种方式无法充分利用不同尺寸的特征,甚至可能丢失重要的信息或引入噪声,从而导致检测效率降低。

本文将自适应空间特征融合(ASFF)模块与预测头结合构成ASFF_Head网络,如图6所示。通过引入可学习权重在空间上过滤冲突信息以抑制梯度回归时的不一致,从而提高特征的尺度不变性,并且加快推理速度。

图6 ASFF_Head网络结构Fig.6 ASFF_Head network structure

ASFF_Head模块对于某一特征层,首先将其他特征层分辨率调整到与该层相同并进行融合,然后对其进行训练,寻找最优的融合方式。在每个空间位置,不同的特征层被自适应地融合,即一些特征在该位置携带矛盾信息时可能被滤除,一些特征可能提供更具辨别力的信息以提高检测效率。以ASFF-3为例,由Level1、Level2、Level3 三个不同尺度特征图乘上相应的可学习权重参数、、并相加得到新的特征融合ASFF-3。其中、表示三个不同层到l层特征图的权重参数,并且满足以下关系式:

最终第l层的输出结果为:

在光伏组件缺陷检测任务中,断栅、隐裂等小目标缺陷出现概率较大,并且在大多图像中同时包含多种缺陷,在特征提取过程中,容易被无效信息干扰,造成小目标特征的丢失。本文基于多尺度特征融合方式对YOLOv5 进行改进,添加ASFF_Head 网络,进一步将三种尺度的输出进行自适应特征融合,有效解决了目标特征信息丢失的问题,提高了预测头对小目标的预测效果。

2.4 新增小目标检测头

YOLOv5s的预测层将多尺度特征融合后的特征图按照32、16和8倍下采样分为三个检测头,分别对应大、中、小目标检测。由图1 可以看出,光伏组件中缺陷尺寸分布不均匀,且尺寸主要集中在中、小目标。由于小目标在经过多次下采样之后容易造成特征信息丢失,本文在YOLOv5 基础上增加一个经过四倍下采样的小目标检测头,使用高分辨率的特征图提高小目标的检测精度,使模型对小目标更敏感,从而加强了模型的检测能力,降低了小目标缺陷的漏检、误检率。

3 实验结果与分析

3.1 光伏组件数据集

本文采用数据集由两部分组成,一部分是由河北工业大学和北京航空航天大学联合发布的PVEL-AD数据集[20],一共包含12 个不同类别的缺陷图像,图像的分辨率为1 024×1 024×3。由于部分类别缺陷在光伏组件制造过程中极少出现,导致样本数量较少而不利于进行模型训练,因此本文采用其中的裂纹、断栅、黑芯、粗线、星形裂纹、短路六种缺陷类别共4 193 张图片进行实验。另一部分是由Buerhop-Lutz 等[21]创建的ELPV 数据集,通过将44 张太阳能电池板按照电池单元进行裁剪,得到2 624 张光伏组件图像[22],选择其中具有上述六种缺陷的EL图像作为训练样本。图7给出了部分光伏组件缺陷的图像,包含黑芯、断栅和裂纹等缺陷。

图7 光伏组件缺陷图像Fig.7 Defect image of photovoltaic module

由于数据集中缺陷类别分布极为不均衡,训练时模型会忽略数量较少的缺陷类别,而关注其他类别缺陷,导致检测精度大幅降低。图8 给出了数据增强前数据集中各类别缺陷的占比。由图可知,不同类别缺陷数量严重不平衡,短路和星形裂纹缺陷数量太少,断栅缺陷数量太多。因此本文在进行模型训练前通过翻转、平移、添加噪声等离线数据增强方式扩充了短路和星形裂纹缺陷图像的数量,从而保证了数据集的均衡性。经过数据扩充后数据集共有5 200 张图像,按照8∶1∶1 的比例划分成训练集、验证集和测试集。

图8 数据集各类别缺陷占比Fig.8 Defect proportion of each category in dataset

3.2 实验环境

本文实验采用的操作系统为Windows10,CPU型号为Intel®Core™i5-8500,GPU 型号为NVIDIA GeForce RTX 1060,显存为6 GB,使用深度学习框架为PyTorch 1.10.0,CUDA为11.3进行加速训练。

网络训练参数如下所示:输入图像尺寸为640×640×3,初始学习率为0.01,动量系数为0.937,批量大小为16,迭代次数为200 次,优化器为随机梯度下降(stochastic gradient descent,SGD),采用余弦退火策略动态调整学习率。

3.3 实验评价指标

为了客观全面地检验模型性能,本实验使用精确率(precision,P)、召回率(recall,R)、各类别精度的平均值(mean average precision,mAP)作为评价指标,具体的计算公式如下:

其中,TP(true positive)表示正样本被预测为正的数量,FP(false positive)表示负样本被预测为正的数量,FN(false negative)表示负样本被预测为负的数量,C表示数据集缺陷类别个数。

3.4 实验结果与分析

3.4.1 注意力机制对比实验

为验证CA机制在本文改进的光伏组件缺陷检测模型中的有效性,将CA 机制和SE[23]、CBAM[24]、GAM[25]注意力机制进行对比实验。实验采用YOLOv5s,将模型的第八层的CSP 结构分别替换成C3CA、C3SE、C3CBAM和C3GAM模块进行测试,实验结果如表1所示。

表1 不同注意力模块结果对比Table 1 Comparison of results of different attention modules 单位:%

由表1 可知,原YOLOv5s 模型的精确率为87.3%,召回率为86.3%,mAP 为88.7%。引入不同注意力机制后,各种指标均有提升,其中C3CA效果最好,精确率提高了1.8个百分点,召回率提高1.2个百分点。虽然添加C3CBAM后mAP提升最大,但精确率和召回率较低,且增加的计算量较大。CBAM 注意力机制由通道注意力和空间注意力两个模块组成,其中空间注意力模块需要进行最大池化、平均池化和卷积等操作,增加了计算复杂度。相比之下,CA 注意力机制只需要进行全局平均池化和全连接层操作,计算效率高,可以更高效地进行特征加权,更有效地捕捉光伏组件中与缺陷相关的重要通道特征。因此本文选择在主干网络中插入CA 注意力机制进行改进,以提高光伏组件缺陷检测的准确性和效率。

3.4.2 消融实验

本文通过消融实验,验证改进的YOLOv5s 模型对光伏组件缺陷检测的性能提升。以YOLOv5s 为基线,组合上述不同模块在光伏组件数据集中训练,验证各模块对网络模型性能的影响。消融实验结果如表2 所示。图9 为不同模型在光伏组件缺陷数据集上mAP 的比较。

表2 消融实验结果对比Table 2 Comparison of ablation results 单位:%

图9 不同模型训练mAP对比Fig.9 Comparison of training mAP of different models

由表2 和图9 可以看出,本文改进的网络模型与原YOLOv5s相比,精确率和召回率均有所提升,其中精确率提高了3.8个百分点,召回率提高了4.5个百分点,mAP提高了3.2个百分点。仅添加微小目标检测头对网络识别准确率提升并不明显,但是召回率提高了2.9 个百分点,光伏组件缺陷检测中的小目标漏检问题得到了改善。仅添加CA注意力机制,使模型侧重于提取图像中的关键信息,精确率提高了1.8个百分点;添加BiFPN和ASFF_Head为模型引入了多尺度特征融合能力,提高了模型对不同尺寸目标的检测能力。本文提出的改进方法在少量增加计算量的同时,使得精确率和召回率都有了较大的提升,并且在本文实验设备上可达到31 FPS的运行速度,能够满足检测的实时性要求。

3.4.3 单阶段目标检测算法对比

为了验证本文所提的改进算法对光伏组件缺陷检测的有效性,在光伏组件数据集上,训练了几种主流的单阶段目标检测算法进行对比。实验均使用采用相同配置,从精确率(P),召回率(R)、精度(mAP)、检测速度(FPS)几个方面衡量算法的性能。实验结果如表3所示。

表3 主流单阶段目标检测算法检测结果对比Table 3 Comparison of detection results of mainstream single-stage target detection algorithms

由表3 可以看出,与YOLO 系列其他算法相比,YOLOv5s 更适用于光伏组件缺陷检测任务,在满足实时检测的前提下,召回率和各类别检测平均精度均为最高。YOLOv7s 虽然精度和召回率略高于YOLOv5s,但是由于算法较为复杂且参数量巨大,使得检测速度大大降低,无法满足光伏组件实时检测的需求。而本文提出的算法相较于YOLOv5s,对主干网络、颈部网络、预测层分别进行改进,引入注意力机制和多尺度特征融合,提高了算法特征融合能力,在检测精度和鲁棒性方面均有较大提升。虽然检测速度有所下降,但依然可以满足工业实时检测要求。相比于SSD和EfficientDet,本文算法在计算资源的使用上更加高效,同时可以实现更高的检测精度。综合考虑检测速度和检测精度,本文提出的算法在光伏组件缺陷检测任务中有着最优的表现,对光伏组件缺陷的识别和定位更加精准,对小目标缺陷更加敏感。

3.5 算法效果与分析

为了进一步验证本文算法对光伏组件缺陷检测效果,从测试集中选取光伏缺陷检测中较为复杂的场景图,分别使用YOLOv5s和改进后算法进行检测,效果图如图10所示。

图10 检测效果图Fig.10 Detection effect drawing

由图10 可以看出,YOLOv5s 在缺陷种类较为单一且干扰较少的场景,可以检测出大部分缺陷但检测精度不高,置信度低。而光伏组件缺陷的产生通常是多种因素的综合结果,导致组件的缺陷通常是成对出现的,且具有多样性和复杂性。针对这种复杂场景,YOLOv5s算法检测效果不佳,小尺寸断栅和大尺寸裂缝存在漏检的情况,而改进后算法可以精准地识别出各类别缺陷种类和位置,没有出现漏检和误检,同时检测精度均高于YOLOv5s算法。

4 结束语

由于光伏组件缺陷检测具有多样性和复杂性、易受外部环境影响以及自动化和智能化需求等特点,需要针对性地开发适应性强、高效准确的缺陷检测方法,以提高光伏组件地质量、性能和可靠性。本文针对光伏组件中六种常见缺陷,提出一种基于YOLOv5s 的多尺度特征融合网络结构。通过在主干网络的CSP 结构中嵌入CA机制形成C3CA模块,提高了网络特征提取能力;将原始YOLOv5 颈部网络的PANet 更改为双向特征金字塔网络BiFPN,提高了网络多尺度特征融合能力;在预测层中采用ASFF_Head模块进一步加强了多尺度的特征融合,有效改善了由于光伏组件图像中同时含有不同尺寸缺陷造成的预测冲突,解决了检测效率低的问题;通过添加一个微小目标检测头,提高了模型对小目标缺陷的检测能力。改进后的算法相比于原始YOLOv5s算法,在计算量略微增加的前提下,精确率、召回率和mAP 三项指标分别上涨了3.8、4.5 和3.2 个百分点。相比主流的目标检测模型,本文提出的模型更加适合解决复杂背景下的光伏组件缺陷检测问题,且运行速度能够满足工业检测的实时性要求,对研究缺陷对光伏组件性能的影响具有较高的实用价值。

猜你喜欢
组件特征模块
28通道收发处理模块设计
“选修3—3”模块的复习备考
无人机智能巡检在光伏电站组件诊断中的应用
新型碎边剪刀盘组件
U盾外壳组件注塑模具设计
如何表达“特征”
不忠诚的四个特征
抓住特征巧观察
风起新一代光伏组件膜层:SSG纳米自清洁膜层
线性代数的应用特征