基于机器视觉的太阳能电池片表面缺陷检测*
2022-08-25张鹏飞王淑青黄剑锋刘逸凡张子言
张鹏飞,王淑青,黄剑锋,刘逸凡,张子言
(1.湖北工业大学电气与电子工程学院,武汉 430068;2.华中科技大学武汉光电国家研究中心,武汉 430074)
0 引言
太阳能光伏产业的大力发展为工业生产提供了基础的能源动力,有效缓解工业电力消耗过大的问题,推动着电力新时代的转型[1-2]。太阳能电池片是光伏产业的主要产品,在使用过程中清洁环保无污染,储量庞大[3]。与此同时,太阳能电池片表面缺陷检测技术[4]也在不断革新,从人工检测法到物理检测法再到目前研究较多的机器视觉和计算机视觉检测方法[5-7],具有非接触,检测缺陷多样化、检测精度高及高实时性的特点。
在多种检测方法中,机器视觉和计算机视觉检测方法更符合当前时代的发展趋势,运用图像处理、计算机技术以及各类深度学习模型,结合工业相机对太阳能电池片表面进行智能化的缺陷检测,如伍李春等[8]提出一种基于模板匹配和HIS空间下的颜色直方图对电池片的外形、颜色等缺陷进行检测,但检测速度较慢。ZHANG等[9]提出了一种多特征区域提议融合网络优化了Faster R-CNN深度学习模型,能够对太阳能电池片表面的多种尺度缺陷进行有效检测,检测速度还可以提升。郭清华等[10]采用U-Net网络结合深度学习中SGDM优化器对太阳能电池片的破损缺陷进行了精准分割,但检测缺陷种类较少。刘怀广等[11]通过电致发光筛选检测区域,并采用卷积神经网络对太阳能电池片的裂纹缺陷进行检测,缺陷类型单一。
针对上述方法中的太阳能电池片表面缺陷检测类型少,同时为提升缺陷的检测精度及速度,以更小巧的检测模型完成工业系统部署,提出了一种基于机器视觉的太阳能电池片表面缺陷检测方法,设计了一种硬件系统模型,并采用轻量化YOLO模型结合采集的太阳能电池片数据集,更加高效的完成工业生产线中太阳能电池片的表面缺陷检测。
1 检测系统组成及数据制备
1.1 检测系统模型
图1 太阳能电池板表面缺陷检测模型结构
太阳能电池片检测系统模型如图1所示,系统由暗箱、LED光源、CCD工业相机以及终端计算机构成,硬件设备架设于太阳能电池片生产线上方,通过串口线将CCD工业相机和终端计算机相连接,构成整个检测系统。其中,暗箱的作用是为了尽可能的防止自然光对检测过程造成的干扰,暗箱在传送带两端各留有10 cm的高度,既可以满足太阳能电池片的传送,又可以达到遮挡光线的效果;再通过LED光源的架设完成检测环境的优化。拟选用能够拍摄分辨率为1280×1280彩色图像的CCD相机,确保完整的将太阳能电池片的表面特征进行提取;最后,通过相应通信指令完成CCD相机和终端计算机的数据传输,以实现在光伏工业生产线中完成太阳能电池片表面缺陷的自动检测。
1.2 数据集准备
图2 太阳能电池片主要缺陷类型
太阳能电池片的表面缺陷主要类型有破损、划痕、脏污、断栅等,如图2所示。出现表面质量问题是由于太阳能电池片的多个生产环节[12],包括:表面制绒及酸洗、IPA脱水、扩散制结、等离子刻蚀及酸洗、去磷硅玻璃、电极丝网印制、快速烧结等,其中的机械压力、生产工艺及人为因素造成的,这是工业生产中不可避免的问题。
图3 图像预处理
数据集的完整性对于深度学习模型的缺陷检测是至关重要的。针对MS COCO、ImageNet等公共数据集中太阳能电池片图像较为缺少的问题,对光伏工厂生产出的太阳能电池片进行了大量拍摄采集,其中包含了表面质量完好以及存在表面缺陷的各个尺寸的太阳能电池片。由于采集的太阳能电池片缺陷图片较少,故采取图像预处理扩充数据集,主要方式为:亮度变换、高斯模糊、随机旋转、切片、锐化等操作,如图3所示。扩充后的太阳能电池片数据集共包括6000张图片,其中破损、划痕、脏污、断栅及无缺陷图像各1200张,同时有的图像会包含多种缺陷类型,优化后的数据集能增强模型训练精度及检测效果。
2 算法模型
2.1 模型原理
YOLOv4是目标检测领域运用较多的单阶段深度学习模型[13],主要由输入端(Input)、主干网络(Backbone)、颈部网络(Neck)以及输出端(Dense Prediction)4个部分构成,如图4所示。
图4 YOLOv4网络模型框架图
本文在保持YOLOv4模型的Input和Dense Prediction不变情况下,对模型的Backbone和Neck进行了改进。首先采用反向线性卷积(MBConv)、深度可分离卷积(DSConv)[14]并结合最大池化(Max Pooling)重新设计Backbone,轻量化模型结构,减少模型过拟合问题,提高训练速度;然后对Neck部分,采用信道增强特征金字塔,移除原有特征金字塔以及路径聚合网络(PAN),增强信道信息的利用率,同时降低混合特征图的混叠效应,增强模型的检测性能,对于太阳能电池片表面缺陷检测系统部署更加高效。
2.2 主干网络轻量化设计
为降低主干网络规模,选取能够替代YOLOv4模型中CBM组件的轻量级卷积模块,即MBConv和DSConv,如图5所示。
图5 常规卷积模块和轻量化卷积模块对比
图5a包含3*3卷积、批量归一化BN层以及Mish激活函数,独立卷积运算非常多,占用内存较大,CBM参数量计算如式(1)所示。
NCBM=k2×Cin×Cout
(1)
式中,k表示核尺寸大小;Cin为输入通道数;Cout为输出通道数。
图5b该结构执行两种类型的卷积操作,即深度卷积和逐点卷积过程,深度卷积将单个滤波器应用到每一个通道,以提高输出通道数;然后逐点卷积用1*1卷积来组合不同深度卷积的输出,不仅在理论上更加高效,这种分解再组合过程可以显著降低网络模型大小和计算成本,DSConv参数量计算如式(2)所示。
NDSC=k2×Cin+1×1×Cin×Cout
(2)
式中,k表示核尺寸大小;Cin为输入通道数;Cout为输出通道数。虽然深度可分离卷积比起普通卷积有更小的参数量,但是需要保存的中间变量比普通卷积要多,部分时间花费在数据读写上。
因此,采用图5c反向线性卷积来解决这一问题,MBConv的结构是由1*1通道扩展卷积,然后连接深度分离卷积和1*1通道缩减层。并在两层之间建立一个分支,由挤压阶段的一个全局平均池化操作和激励阶段的两个全连接层构成。为统一输出通道与输入通道的数量,去掉了MBConv中的残差连接,使MBConv在输入和输出更加紧凑,并将输入扩展到更高维度的特征空间,以增加非线性转换的可表达性。与DSConv相比,MBConv提供了更好的压缩网络,而不会降低训练精度,MBConv参数量计算如式(3)所示。
NMBC=Cin×αCin×1×1+k2×αCin+2×αCin×αCin/β+αCin×Cout
(3)
式中,k表示核尺寸大小;Cin为输入通道数;Cout为输出通道数;α为MBConv块中扩张因子;β为MBConv块中为缩减因子。
为减少相邻卷积层间单个滤波器的参数量,固定输出长度,采用最大池化方式,如图6所示,通过取Max操作避免其他不相关特征的干扰,保留最强特征,保证提取特征的位置与旋转性不变,增大了模型感受野,最大池化公式为:
(4)
图6 最大池化过程
图7 轻量化Backbone
经过轻量化设计后的主干网络共包含5个由大到小的YOLO特征图层,分别为C1(304*304)、C2(152*152)、C3(76*76)、C4(38*38)、C5(19*19),如图7所示。在不影响精度的情况下,前几层采用较小的卷积核,而深卷积层采用较大的卷积核更有利于特征提取。并通过多次重复试验证明,当MBConv模块采取3*3卷积核5*5卷积交替使用的方式,可以更好地提取特征,提高模型检测精度。
2.3 信道增强特征金字塔
为进一步增强颈部网络特征提取能力,采用信道增强特征金字塔替换原始模型中的颈部网络结构,充分利用高层次特征的信道信息。
图8 信道特征金字塔框架
亚像素卷积[15]是一种上采样方法,通过重组像素值增加通道的宽度和高度。如图8所示,信道增强特征金字塔首先引入了亚像素卷积,通过在主干网络输出{C2,C3,C4,C5}中建立亚像素跳跃融合(sub-pixel skip fusion,SSF),结合上采样和信道融合,利用高阶特征的丰富信道信息来增强特征金字塔的表示能力;同时结合1*1卷积获取简化特征图{F2,F3,F4},将低分辨率特征融合为高分辨率特征。再对{F2,F3,F4}执行元素求和以及最邻近上采样产生{P2,P3,P4}。
在轻量化YOLO模型中,去掉了图8中的F2、P2、R2节点,以适配于YOLO模型的3个预测头,并充分利用了最高级特征层C5的信道信息。最高级特征C5仅包含了单一尺度的上下文信息,无法从其他特征中获取,并且太阳能电池片图像分辨率较高,需要更大的接收区域来获得更多的语义特征以判别不同尺度的缺陷类型;为解决此问题,采用集成映射图像I[16],引入亚像素上下文信息增强(sub-pixel context enhancement)挖掘更多的上下文信息,细化I的表征能力。然后,将提取的上下文信息结合{P3,P4}合并到集成图像I中。
然而,跨尺度的混合特征图存在语义差异,可能无法分辨太阳能电池片表面缺陷的大小尺度,造成混叠效应,使缺陷的定位产生不稳定性。为了减轻此问题带来的影响,在CBAM[17]的基础上,构建了一个通道注意力引导模块(channel attention guided module),以降低金字塔的每一层的混叠效应,如图9所示。
图9 通道注意力引导模块
如图9所示,通道注意力引导模块通过使用全局平均池化和最大池化聚合两个不同的空间上下文信息,然后分别传输到全连接层,并将输出的特征向量通过元素求和,接着采用Sigmoid激活函数进行合并;最终生成的结果{R3,R4,R5}分别与3个YOLO输出端一一对应,构成完整的太阳能电池片表面缺陷检测网络模型,如图10所示。
图10 太阳能电池片表面缺陷检测模型
3 实验仿真与结果分析
3.1 实验配置
实验所使用的操作平台为PC机,Windows 10系统,CPU:Intel(R) Core (TM) i7-10700K@3.8 GHz、内存:16 G、GPU:NVIDIA GeForce RTX 3080Ti、显存:12 G,软件为Anaconda3、PyCharm 2020.2.1以及深度学习框架Pytorch 1.7。
通过LableImage对太阳能电池片数据集进行缺陷类型标记,生成相应的标签文件。标签文件中包含了太阳能电池片的破损、划痕、脏污、断栅4种缺陷类型以及标注框的宽、高及位置坐标。标注好太阳能电池片数据集后,对模型训练路径等相关参数执行初始化。设定图像输入尺寸为640×640,batch size设为8,权重衰减系数设为0.000 5,最大迭代次数为8000,次数大于5000时学习速率为0.001,在5000次后逐渐衰减。
3.2 模型评估与分析
图11 轻量化YOLO损失值曲线
模型的损失值曲线(Loss)反映了预测样本与真实样本的误差,越小的损失值,预测效果也更好,将训练完的损失值绘制为曲线,如图11所示。
可以看出,随迭代次数的增多,损失值逐渐变小,最终稳定于0.25~0.18之间,表明轻量化YOLO模型预测效果较好。太阳能电池片各缺陷类别的检测精度AP是衡量检测效果的重要指标,平均精度值均值(mAP)是AP的平均值[9];图像每秒帧数(FPS)表示模型的检测速度,上述3个评价指标数值越大,代表模型性能越好[21]。
为测试轻量化YOLO相比原始YOLOv4网络模型的整体提升效果,使用模型参数量、模型推理速度FLOPs,训练耗时及太阳能电池片表各缺陷类别精度AP进行评估,如表1、表2所示。
表1 模型整体对比
表2 太阳能电池片表面缺陷检测AP/%/对比
可以看出轻量化YOLO比YOLOv4模型的参数量、推理速度及训练耗时分别减少了159.1 MB,21.2 G,11.5 h;破损、划痕、脏污及断栅的检测精度分别提高了3.7%,5.1%,5.6%,6.4%;模型性能较优。
同时,在保持训练平台配置信息及数据集相同的情况下,采用Faster-RCNN,SSD,EfficientDet,YOLOv4深度学习模型[18-21],对各个模型的mAP和FPS进行对比分析。
表3 模型检测性能对比
由表3可知,与Faster-RCNN,SSD,EfficientDet,YOLOv4模型相比,轻量化YOLO的mAP分别提高了12%,15.8%,6.5%,5.2%;检测速度分别提升了24.1,16.4,26.6,10.2帧;模型的检测精度及速度都得到了较大的改善。轻量化YOLO模型的太阳能电池片表面缺陷检测的结果,如图12所示。
图12 轻量化YOLO模型检测结果
由图可知,轻量化YOLO模型能更好的完成各种规格太阳能电池片的表面缺陷检测,并能同时对多种尺度和多种类型的缺陷进行高效识别,检测准确率达97.5%,平均检测速度可达23 ms,满足高速运行过程中的太阳能电池片表面缺陷检测任务。
4 结论
为有效检测太阳能电池片表面缺陷,设计了一种硬件检测系统,并提出一种轻量化YOLO的深度学习模型,自制太阳能电池片数据集以满足缺陷类别的丰富性,采用反向线性卷积、深度可分离卷积并结合最大池化对YOLOv4模型主干网络重新设计,实现模型轻量化;采用信道增强特征金字塔改进Neck部分,增强网络检测性能。通过多项对比试验证明,该方法可以精准高效地对太阳能电池片的多种缺陷进行实时检测,模型规模较小、耗时低,可以更好地部署于检测系统中,对太阳能电池片生产工艺的检测环节有实际应用价值。