改进的YOLOv5s太阳能电池片缺陷检测算法

2024-03-05 08:15彭雪玲林珊玲林志贤郭太良
液晶与显示 2024年2期
关键词:算子注意力太阳能

彭雪玲, 林珊玲*, 林志贤, 郭太良

(1.福州大学 先进制造学院, 福建 泉州 362252;2.中国福建光电信息科学与技术实验室, 福建 福州 350116)

1 引言

随着太阳能技术的不断发展,太阳能电池片已成为一种广泛应用的清洁能源。然而,随着生产规模的不断扩大,电池片制造过程中可能出现的划伤、损坏等缺陷问题也越来越严重[1]。这些缺陷不仅影响了电池片的性能和寿命,还可能导致设备故障和安全隐患。因此,快速、准确地检测太阳能电池片缺陷成为保障太阳能电池片生产质量和提高能源利用率的重要问题。许多学者对太阳能电池片缺陷检测进行了研究分析。Su等[2]利用电致发光(Electro Luminescence,EL)方法对太阳能电池片进行自动缺陷检测。EL方法可以检测出缺陷的存在,但对于缺陷的具体位置和精确定位能力有限。EL图像显示的是整个电池片的发光情况,很难直接确定缺陷所在具体区域。Demant等[3]提出了一种基于局部描述符和支持向量机的分类识别方法,实现了对小晶粒硅片光致发光(Photo Luminescence,PL)图像和红外(InfaredRay,IR)图像的有效检测。该方法需要人工设计和选择适当的局部描述符来提取太阳能电池片图像的特征,导致特征提取的鲁棒性和通用性有限。Tsai等[4]提出一种基于傅里叶图像重建技术的多晶硅太阳能电池缺陷检测方法,通过将带缺陷的频率分量设置为0来去除EL图像中可能的缺陷。傅立叶图像重建技术主要用于图像重建和频域分析,对于准确的目标定位和位置信息提取能力有限,它更适用于整体图像的分析和特征提取,而不是具体目标的定位和定量分析。Sezen等[5]通过设计一种基于新型深度卷积神经网络(Convolution Neural Network,CNN)的视觉缺陷检测方法计算太阳能电池片表面质量损失,并通过表面检测对这些损失进行分类。深度CNN方法在目标定位精度方面存在一定的限制,它通常更适用于图像分类和特征提取[6],而准确的目标定位和边界框回归能力可能不如目标检测算法。

近年来,深度学习技术在图像识别领域得到了广泛应用[7]。然而,这些方法仍然存在一些问题和挑战,首先,电池片图像数据通常非常复杂和多变,包括不同光照条件、角度、背景等干扰因素。传统的卷积神经网络在对这些变化进行建模时存在一定的局限性,导致检测准确率降低。其次,深度学习模型的解释性较差[8],难以解释模型对于太阳能电池片缺陷的判别依据。这对于生产质量控制以及对缺陷原因分析等方面的需求带来了一定困扰。此外,由于深度学习模型的训练要求极其苛刻[9],因此计算资源和耗费的时间会受到一定的影响,从而阻碍了一些实际的应用。综上所述,尽管深度学习和卷积神经网络在太阳能电池片检测方面取得了一些进展[10],但仍然存在一些问题和挑战,包括对复杂图像的建模能力、解释性不足以及计算资源需求较高等方面的限制[11]。YOLOv5是一种高效、精度较高的目标检测算法[12],已被广泛应用于物体检测领域,但应用于太阳能电池片检测仍存在准确率不高和检测速度偏慢等问题。本文旨在解决太阳能电池片缺陷检测问题,提出了一种改进的太阳能电池片缺陷检测算法。该算法基于YOLOv5s,通过对太阳能电池片图像的处理和训练,实现了对太阳能电池片缺陷的检测。实验结果显示,该算法在缺陷检测的准确性和速度方面都取得了显著提升,为太阳能电池片的生产和质量控制提供了高效可靠的解决方案。

2 YOLOv5s目标检测模型

YOLOv5的发布引起了学术界和工业界的广泛关注,并且在实践中取得了显著的成就。YOLOv5s是一种轻量级的目标检测网络模型[13],拥有最少的参数和计算量,使其在资源受限的环境下表现出色,可以满足太阳能电池片缺陷检测的实际需求。此外,该模型占用的内存较少,方便移植到移动设备中。基于上述原因,本研究采取YOLOv5s作为基础模型。YOLOv5的架构由3个关键组件组成:主干特征提取网络(Backbone)、增强特征融合网络(Neck)和检测头(Head)。主干特征提取网络由4个模块构成:Focus、CBS、C3和SPP[14]。首先,采用Focus模块,使用快速下采样技术对输入数据进行处理。随后,经过卷积层的叠加,CBS模块和C3模块提取不同尺度的特征信息。最后,SPP模块不仅规范了特征的尺度,还扩大了特征的感受范围。

增强特征融合网络结合了特征金字塔网络(Feature Pyramid Network,FPN)和路径聚合网络(Path Aggregation Network,PANet)。FPN结构将深层特征图中的粗粒度语义信息传递给浅层特征图。PANet结构将浅层特征图中的细粒度位置信息传递给深层特征图。这两种结构的联合应用实现了多尺度特征融合,使网络能够同时融合不同尺度的特征图,从而充分利用丰富的位置信息和语义信息。这样的设计显著增强了网络的特征融合能力,提高了目标检测的精度和鲁棒性。

检测层包含了3个尺度的预测头,分别对应对原始图像进行不同倍数下采样后提取的特征图。不同尺度的预测头基于预先设定的锚框在相应的特征图上进行目标检测。

尽管YOLOv5s目标检测算法在通用目标检测数据集MSCOCO和VOC上已经达到了很高的检测精度,但它并非专门针对太阳能电池片缺陷检测而设计。因此,对于有划痕、轻微损坏等小目标的电池片缺陷检测精度仍有待提升。为此,本文以YOLOv5s-6.0版本为基准模型,通过相应的改进和优化,最终得到更适用于太阳能电池片缺陷检测的检测模型。

3 改进的YOLOv5s模型

3.1 主干网络的改进

YOLOv5s在小目标检测方面存在效率低下的问题,主要原因是其过大的下采样倍数以及一些池化操作导致高层次特征图的分辨率过低。这导致在高层次特征图上仅有极少像素用于表示具有划痕和损坏等小缺陷的电池片,从而影响了模型的检测能力。

针对上述问题,本文引入了上下文转换模块(Contextual Transformer Block,CoT)[15](图1)。引入上下文编码和动态多头注意力机制的CoT模块,可以有效收集相邻像素之间的丰富上下文信息,进而提升了对小缺陷的检测精度。相比传统的C3模块,CoT模块能够更细致地感知和利用局部邻域键之间的静态上下文信息,使模型能够更准确地定位和分类划痕和损坏等类型的小缺陷。

图1 上下文转换模块Fig.1 Contextual Transformer (CoT) block

CoT模块在处理太阳能电池片数据集中的目标时,能够有效建模目标与相邻区域的物体、背景以及远距离目标之间的复杂关联。相较于传统的自注意力机制(图2),CoT模块结合了静态和动态上下文表示,充分利用输入键间的上下文信息,从而提升了模型对背景复杂的电池片的全局信息检测能力。这一特性使模型能够更好地理解整体背景和目标之间的关系,为小缺陷的检测提供更准确的上下文支持。

图2 传统自注意模块Fig.2 Conventional self-attention block

此外,CoT模块的计算复杂性较低,在实际应用中具备了优势。CoT模块不仅提升了模型的性能,还减少了计算资源的使用,提高了算法的效率,使CoT模块成为在太阳能电池片缺陷工业检测中的理想选择。

综上所述,CoT模块在太阳能电池片缺陷检测中展现了明显的优势。它通过充分利用上下文信息和动态多头注意力机制,提高了对小缺陷的检测精度。同时,它具备较低的计算复杂性,适用于实际的工业检测场景。这一改进为太阳能电池片缺陷工业检测提供了更可靠、高效的解决方案。

3.2 CBAM注意力机制

在进行太阳能电池片缺陷检测时往往会受到光照、污染物、温度变化等因素的影响,造成识别率低和误报率高的问题。为了提高检测的准确性并降低干扰,本文将卷积注意力模块[16](Convolutional Block Attention Module,CBAM)引入Head部分以增强模型的特征表达能力。

CBAM(图3)是一种将通道注意力(图4)与空间注意力(图5)有机结合的技术,它可以有效提升注意力的效率,从而实现更高效的学习。这些模块的作用是自适应地调整特征图的通道权重和空间分布,以提取更具区分性的特征。在太阳能电池片缺陷检测中,CBAM注意力机制能够对关键特征进行加强,同时抑制背景信息等干扰因素的影响。这种注意力机制能够学习到太阳能电池片缺陷的上下文信息,使模型更加关注缺陷区域,并提高模型对不同类型缺陷的识别能力。

图3 卷积注意力模块Fig.3 Convolution attention module

图4 通道注意力模块Fig.4 Channel attention module

图5 空间注意力模块Fig.5 Spatial attention module

引入CBAM注意力机制可以提升太阳能电池片缺陷检测的准确性,并降低环境干扰因素对检测结果的影响。通过增强关键特征的表达能力,CBAM注意力机制将有助于提高缺陷的识别率和减少漏检率,从而为太阳能电池片生产过程中的质量控制提供更可靠的支持。

3.3 上采样方式的改进

YOLOv5s在其特征融合网络中使用了最近邻插值来进行上采样。然而,这种简单的方式仅根据像素点的位置来确定上采样核,未充分利用特征图中的丰富语义信息。最近邻插值上采样所有特征点,忽略了周围特征对结果的影响,导致上采样后特征图质量降低。这可能对太阳能电池片缺陷检测的准确性和鲁棒性产生负面影响,增加检测结果的误判和漏检的可能性。

为了解决该问题,本文采用CARAFE[17]这一轻量级通用上采样算子,具体示意图见图6。CARAFE算子主要包括两部分:上采样核心预测模块和特征重组模块。上采样核预测模块分析编码输入特征图,以推断不同位置的特征点所需的上采样核。特征重组模块充分利用上采样核预测模块生成的上采样核,实现高效的上采样操作。相对于最近邻插值上采样,CARAFE算子在目标检测任务中显示出更好的性能,并在太阳能电池片缺陷检测方面具有明显优势。通过利用语义信息和周围特征点的影响,CARAFE算子在上采样过程中能够实现更精确的特征重建,从而提高上采样后特征图的质量和表达能力。

图6 CARAFE模块结构Fig.6 CARAFE module structure

与传统的最近邻插值上采样相比[18],CARAFE算子在整合背景语义信息时,考虑了更大的感受野范围,能够更好地融合局部和全局的语义信息。此外,CARAFE算子利用自适应生成的上采样核,实现了对不同特征点的精细上采样操作,减少了特征信息的丢失,确保了特征信息的完整性。

CARAFE算子中的特征重组模块起到至关重要的作用,它专注于提取相关特征点在局部区域内的信息,并使得通过重组后的特征图更加丰富,蕴含更多的语义信息。在太阳能电池片数据集上的实验结果表明,使用CARAFE算子进行上采样可以提高特征图质量,实现更准确的缺陷检测和识别。尤其在太阳能电池片中存在微小且复杂的缺陷纹理和形态特征,CARAFE算子能够更好地捕捉这些细节信息,为定位和分类提供更可靠的结果。

此外,CARAFE算子作为一种轻量级的通用上采样算子,具有较低的计算复杂度和参数量。相比于其他复杂的上采样方法,如双线性插值或反卷积,CARAFE算子在保持模型轻巧和高效的同时,能够有效提升特征融合性能。对于太阳能电池片缺陷检测任务而言,尤其在资源受限的环境下,CARAFE算子能够满足实际应用的需求,保证检测模型的准确性和实用性。

综上所述,CARAFE算子相对于最近邻插值上采样在目标检测任务中的优势显而易见。通过更好地利用语义信息和周围特征点的影响,CARAFE算子改进了特征图的质量,为太阳能电池片缺陷检测带来更准确的结果。同时,CARAFE算子具有轻量级、高效性和实用性的特点,适用于资源受限环境下的应用。因此,CARAFE算子在目标检测任务和太阳能电池片缺陷检测中具备广阔的应用前景。

3.4 损失函数的改进

在太阳能电池片缺陷检测任务中,YOLOv5s的损失函数包含3个部分,分别是分类损失、置信度损失和回归损失[19]。传统的完整交并比(Complete Intersection over Union,CIoU)损失函数仅考虑了重叠区域的大小,未充分考虑边界框的位置和形状信息。然而,边界框的位置和形状信息对于太阳能电池片缺陷检测是至关重要的,它们能够准确描述缺陷的位置和形状,并评估缺陷的严重程度。为解决这一问题,本文采用了一种改进的损失函数,即加权交并比[20](Weighted Intersection over Union,WIoU)损失函数。

WIoU损失函数在计算边界框之间的重叠度时,考虑了边界框的尺寸和位置信息,不仅关注重叠区域的大小,还考虑了边界框的相对位置和形状。这使得WIoU对边界框的完整性更加敏感,能够更准确地衡量预测框和真实框之间的匹配程度。此外,WIoU引入了一个权重因子,根据不同区域的重要性进行调整。对于重要区域,如太阳能电池片缺陷的关键部位,WIoU会赋予更高的权重,以提高对关键区域的检测准确性,减少对次要区域的过度关注。

相较于传统的CIoU损失函数,WIoU具有以下优势。首先,WIoU能够更好地适应太阳能电池片缺陷检测任务的需求。通过考虑不同区域的重要性和边界框的完整性,WIoU能够更准确地评估预测框和真实框之间的匹配程度,从而提高检测的准确性和鲁棒性。其次,WIoU在处理小目标时表现更好。小目标的边界框通常具有较小的重叠区域[21],传统的CIoU在计算时容易受到边界框尺寸的影响,可能导致误判。而WIoU通过引入权重因子,能够更好地平衡小目标的重叠度计算,提高对小目标的检测精度。

综上所述,WIoU损失函数相比于CIoU在太阳能电池片缺陷检测中具有更好的适应性和准确性。它考虑了不同区域的重要性、对边界框的完整性更敏感,并在处理小目标时表现更好,能够提高缺陷检测的精度和鲁棒性。

3.5 改进后的网络模型

基于以上描述,改进后的YOLOv5s网络结构如图7所示。

图7 改进的YOLOv5s网络结构图Fig.7 Improved YOLOv5s network structure

4 实验结果与分析

4.1 实验配置

所有实验的环境配置如表1所示。训练过程中使用PVdatasets数据集初始化参数,涵盖了类别初始设定、类别名称定义以及训练路径等要素。同时,图像输入尺寸被设定为640×640,迭代轮次设置为300,学习率设置为0.001。这样的配置旨在优化模型性能并提高目标检测的准确率。

表1 实验环境配置Tab.1 Experimental environment configuration

4.2 数据集介绍

PVdatasets数据集[22]是包含5个类别的开放性数据集,包括损坏(broken)、亮点(hot-spot)、黑边(black_border)、划痕(scratch)、断电(no_electricity)5种类型的缺陷,如图8所示,共分为3列对缺陷类型进行描述,左边图是含有缺陷的PV数据集图片;右边是对这个缺陷细节放大的图片,共标注3 981个感兴趣目标区域。数据集中的图像大小为600像素×600像素,本文按照训练集与验证集9∶1的比例进行拆分。

图8 数据集缺陷类型。 (a) 有破损区域的电池片; (b) 有明显的亮点区域的电池片; (c) 具有黑色或灰色边界区域的电池片; (d) 有划痕的电池片 ; (e)不导电,显示黑色区域的电池片。Fig.8 Dataset defect type. (a) Cell with broken areas; (b) Cell with obvious bright areas; (c) Cell with black or gray border areas; (d) Scratchy cell; (e) No-electricity, showing the black area of the cell.

4.3 模型性能评估指标

为了验证所提方法的性能,采用平均值精度(mean Averrage Precision,mAP)指标验证多类别的检测精度,mAP是所有类别平均精度(Averrage Precision,AP)的平均值,其计算公式如式(1)~(3)所示:

其中:AP表示平均精度,TP表示真正例,FP表示假正例,FN表示假反例,TN表示真反例。

4.4 消融实验和对比实验

4.4.1 消融实验

为了分析各模块改动以及模块组合对算法性能优化的影响程度,进行了一系列消融实验,共设计了8个实验方案,这些实验在所述实验环境中按序进行训练,并取各训练输出的最佳权重文件在验证集上进行实验,实验的epoch都设置为300,所得的实验数据如表2所示。其中√表示加入该模块,×表示没有加入该模块,检测耗时是在batchsize设置成1的情况下单张图片预测所需要的时间。由表2可知,主干网络使用CoT后,mAP值提升了2.7%,而检测耗时仅增加了1.2 ms;加入CBAM注意力机制后,可以更好地进行特征融合,总体性能都有提升;上采样方式采用CARAFE后,提升了特征提取能力,mAP值提升了1.7%;损失函数采用WIoU后,解决了原损失函数出现的问题,使得Recall和mAP值分别提升了2.5%和0.5%。综合多种改进,相比于原模型,检测耗时虽然增加了1.2%,但Precision、Recall、mAP@0.5分别提高了5.5%、4.1%、3.3%。可见,本文改进算法满足改进需求,优于原算法。为了能更加清楚地观测到改进后的有效性,根据训练过程保存的结果,绘制如图9所示的改进前后两个模型训练的mAP@0.5对比曲线。

表2 消融实验Tab.2 Ablation experiments

图9 mAP@0.5的对比Fig.9 Comparison of mAP@0.5

4.4.2 对比实验

在特征提取网络中引入不同类型的注意力机制对性能进行评估,结果见表3。评估指标包括mAP@0.5、Precision、Recall和参数量。更高的mAP@0.5、Precision、Recall数值代表更出色的检测性能,而更小的模型参数对于轻量化检测更为有利。对比表3的数据可以看出,在原始网络的基础上引入CBAM注意力机制后,mAP@0.5提高了1.7%。此外,CBAM注意力机制具有最小的模型尺寸。尽管引入NWD注意力机制后,mAP@0.5有所提升,但其他性能指标表现不够理想。综合来看,CBAM注意力机制更适合于轻量化太阳能电池片缺陷检测任务。

表3 不同注意力机制检测性能对比Tab.3 Comparison of detection performance of different attention mechanisms

为了进一步验证本文算法改进的有效性,并验证改进算法在精度、检测速度和参数量方面的提升,进行了一系列实验对比。在PV-Multi-Defect数据集上对比了经典目标检测算法,如Faster RCNN、SSD和YOLOv3的检测效果,并对比了YOLOv7、YOLOv7_tiny,和本文算法的检测效果,实验结果见表4。

表4 对比实验Tab.4 Comparison experiments

通过比较表4中不同算法模型的实验结果,可以明显观察到本文提出的改进版YOLOv5s算法在检测精度、召回率以及mAP值方面明显优于其他算法。与检测精度最接近的EfficientDet相比,本文所提算法的参数量减少了62.8M,mAP@0.5提升了18.7%。YOLOv7_tiny的精度和参数量相较于YOLOv5s略好,但是相较于FPS,YOLOv5s有明显优势。YOLO旨在实现实时目标检测,因此FPS是一个关键的性能指标。更高的FPS意味着网络能够在更短的时间内处理更多的图像帧,从而提供更快的实时检测能力。因此,本文选择原始YOLOv5s作为基准网络进行改进,表4清晰地显示出原始YOLOv5s在参数量和检测精度方面的显著优势。

总之,本研究提出的改进版YOLOv5s算法具有最佳的检测精度和显著的整体表现,从而论证了该算法的优势。为了更直观地评估改进效果,在图10中对比了改进前后的检测结果。在图10(a)中的第二张图中,原始的YOLOv5s算法误将原始标注为“scratch”的区域识别为“broken”,导致存在误检现象。而在图10(a)的第4张图中,原始的YOLOv5s算法在最初标注为3个“sc5ratch”的情况下,仅检测到了其中两个。通过观察图10(c)可以清晰地看到,改进后的YOLOv5s算法不再存在漏检和误检的问题。在PV-Multi-Defect数据集检测任务中,本研究对YOLOv5s算法进行了改进,有效解决了原算法的漏检和误检问题,同时显著提高了对太阳能电池片表面缺陷的平均识别精度。这些结果表明,改进版YOLOv5s算法在太阳能电池片缺陷检测领域具有极大的潜力和实际应用价值。

图10 改进前后的检测效果对比。 (a) 原图; (b) YOLOv5s检测效果图; (c) 改进后的YOLOv5s检测效果图。Fig.10 Comparison of detection results before and after improvement. (a) Original drawing; (b) YOLOv5s detection effect drawing; (c) Improved YOLOv5s detection effect drawing.

5 结论

本文提出了一种改进的YOLOv5s太阳能电池片缺陷检测算法。通过一系列改进,提高了模型的检测精度、轻量化和实时性能。首先,在主干部分引入CoT模块以增强特征的表达能力和感受野范围,从而更准确地捕捉太阳能电池片缺陷的细节和上下文信息。其次,使用CARAFE算子作为轻量级的通用上采样方法代替了原本的最近邻插值方式。这样的变化不仅提高了上采样后特征图的质量和表达能力,还为目标检测任务带来了更精确的结果。另外,在模型的Head部分还引入了CBAM注意力机制。CBAM的应用使模型能够自动调整特征图的通道和空间维度,从而提高了对关键信息的关注能力,进而提高了缺陷检测的准确性。采用WIoU作为边界框的损失函数也是一种改进方法。WIoU考虑了边界框的位置和形状信息,使预测框和真实框能够更好地匹配,从而提高了缺陷检测的精度和鲁棒性。实验结果表明,改进后的模型在太阳能电池片缺陷检测任务中性能有很高的提升,平均精度达到了90.1%,模型的参数量仅为7.8M,检测速度达到了76 FPS。实验结果充分展示了改进方法的有效性和实际可行性,为太阳能电池片缺陷检测提供了一种可靠且高效的解决方案。

猜你喜欢
算子注意力太阳能
应用广泛的太阳能无人机
让注意力“飞”回来
拟微分算子在Hp(ω)上的有界性
各向异性次Laplace算子和拟p-次Laplace算子的Picone恒等式及其应用
一类Markov模算子半群与相应的算子值Dirichlet型刻画
太阳能可以这样玩
“扬眼”APP:让注意力“变现”
Roper-Suffridge延拓算子与Loewner链
A Beautiful Way Of Looking At Things
太阳能虚拟窗