艾上美,周剑峰,张必朝,张 涛,王红斌
(1.云南电网有限责任公司楚雄供电局,云南楚雄 675000;2.昆明理工大学信息工程与自动化学院,云南昆明 650000)
当前太阳能电池发展迅速、应用广泛,其中光伏电站常见缺陷包括热斑、组件低电流、零电流、组件缺失、组件碎裂、二极管故障,以及组件外表异常(遮挡物、表面灰尘、泥垢和脏污等)等,不仅严重影响了电厂发电效率,甚至危及电站安全。
常规的人工巡检方式不仅效率低,而且存在对缺陷现象判断不客观、容易产生漏检的问题。无人机光伏电站巡检不仅大幅降低了人工巡检的工作量、提高工作效率,而且可以依据准确的缺陷定位便捷且高效地对电站进行维护和保养,其中无人机光伏电站巡检的关键步骤是缺陷自动检测技术。
近年来很多学者对光伏组件缺陷进行了研究,柳扬[1]等人提出了使用图像预处理结合聚类算法对缺陷进行检测。张翔[2]提出了使用大数据和机器学习算法对硅片缺陷进行识别。刘铖铖[3]等人提出了使用改进的边缘算法进行检测。刘敏[4]等人提出了使用超声扫描技术结合小波变换技术对光伏电池片噪声进行识别。张鹏飞[5]等人提出使用改进的YOLOv3(You Only Look Once Version 3)检测框架,准确率达到了97.5%,检测时间为0.023 s。张瑞珍[6]等人提出了使用数字化热成像技术结合降维技术实现热斑和裂缝的检测。王亚丽[7]等人提出了使用大津法结合几何定位对缺陷进行识别分类。时亚涛[8]等人提出了使用数据分析方法结合图像处理技术进行检测,准确率达到了96.77%。赵洋[9]等人提出了使用改进的MaskR-CNN 网络,准确率达到了96.1%。周全民[10]等人提出了使用暗网结构的主干特征提取网络和YOLO-V3 检测算法对缺陷进行检测。钟泳松[11]等人提出了使用改进的单次多边框检测(Single Shot MultiBox Detector,SSD)网络进行检测,通过增加注意力机制提高检测的准确率。刘怀广[12]等人提出了使用轻量型卷积网络,准确率达到了87.5%。尹欣桐[13]提出了使用改进的FasterR-CNN(Faster Region-based Convolutional Neural Networks)网络对缺陷进行识别,准确率达到了87.25%。周得永[14]提出了使用聚类算法结合YOLO-V3 框架对缺陷进行检测,准确率达到了81.8%。王浩[15]等人提出了使用图像增强结合自动阈值算法对缺陷进行检测。林剑春[16]等人研发了检测评估装置对缺陷进行检测。刘斌辉[17]等人提出了使用GoogLe 网络进行检测,准确率达到了85%。
现有的光伏组件缺陷检测算法主要采用了高光谱成像技术[18]、声波法[19]、多特征区域融合方法[20]、基于频域的方法[21]和深度学习的方法[22-24]等。利用声波、激光扫描等方法可有效地检测出太阳能电池片的裂纹,但对于污渍和轻微划痕等缺陷不具有较高的准确性。基于均值漂移技术的检测方法简单、易于实现,但对于小目标缺陷识别率不高。基于频域的检测方法则适用于分布较为分散的缺陷,对于划痕则无法识别。因此,本文提出了基于超分辨率和双池化融合的光伏组件缺陷检测算法,首先使用生成对抗网络(Generative Adversarial Networks,GAN)技术对训练数据进行扩充,然后构建图像超分辨网络,提取局部细节特征,最后将SSD 检测框架的主干网络替换为双池化方式融合的VGG19_MP(Visual Geometry Group19_MP)网络。
光伏组件缺陷检测的总体实现流程如图1 所示,主要有3 步:(1)对光伏组件缺陷图像进行GAN数据增强,扩充图像数据样本,提高光伏组件缺陷检测模型的泛化性;(2)搭建图像超分辨网络,减小训练数据的噪声,增强图像缺陷边缘的纹理和轮廓特征;(3)将双池化融合网络结构引入SSD 目标检测框架,学习缺陷图像更深层次的特征结构。
图1 光伏组件缺陷检测总体流程图Fig.1 Overall flow chart of photovoltaic module defect detection
为了提高光伏组件缺陷检测的性能,使用无监督学习的GAN 数据增强算法生成新的训练数据,在少量数据的基础上可扩增到数据量大、丰富度高的不同场景数据集。通过无人机携带相机,按照一定航线飞行,对光伏电站进行周期性的缺陷图像数据采集,获取得到基础数据集。
生成GAN 作为光伏组件缺陷图片的数据增强生成器,以提高模型检测的概括能力。GAN 网络通过学习原始数据集缺陷的潜在结构特征,生成新的模型训练数据集,使用神经网络不断地迭代优化,提高新的图像与原始图像的相似度。GAN 结构如图2 所示。
图2 GAN结构原理图Fig.2 Schematic diagram of GAN structure
该模型主要包括生成器和判别器2 个模块。生成器生成网络的目标是将现有的原始图像进行编码并形成特定向量,然后加入高斯分布的噪声进行解码生成新的图像数据,并且能够将生成的假数据被判别器最大概率判断为真实的数据,生成器的损失函数LG为:
式中:m为总的样本数量;i为第i个样本;z(i)为加入噪声后生成的假数据样本;G(zi)为生成器的数据样本;1-D(G(zi))为将生成的假数据预测为假数据的概率。
判别器判别网络的目标是一边能够精准地判断给定的图像是原始的图像还是生成网络的输出图像(假图片),另一边能够辨别同一个类别的不同图片,使得解码器生成的图片与原始图片存在较大差异。当生成器输出的假图像过于真实,判别器无法正确地判断,GAN 模型性能达到最佳,判别器的损失函数LD为:
式中:x(i)为光伏组件缺陷真实的数据样本;D(x(i))为判别器将真实样本预测正确的概率。
为了提高光伏组件缺陷图像的质量,增强模型识别的准确性,需要对采集的缺陷数据集进行超分辨处理。首先经过卷积层和N个A2B结构模块进行特征学习,A2B结构如图3 所示。然后搭建图像重建网络结构,再进行卷积操作输出特征图,最后与采样的特征图进行融合,图像超分辨网络结构如图4所示。
图3 A2B模块结构Fig.3 A2B module structure
图4 图像超分辨网络结构图Fig.4 Image super-resolution network structure
A2B引入了通道空间注意力机制,通过平均池化的方式减少通道数,再使用展平层操作得出注意力通道,将不同的特征赋值不同的权重系数,保留主要特征,去除次要特征。接下来提取目标特征,先进行1×1卷积(Conv)降低特征通道数,然后使用3×3 卷积(Conv)和Sigmoid 激活函数生成注意力机制分支,最后经过1×1卷积操作完成特征的学习。
将无人机采集的2 000 张光伏组件缺陷图像进行裁剪,以间距为300 个像素作为步长进行裁剪,得到8 000 张300×300 像素图像数据,超分辨网络的优化器采用自适应矩估计算法(Adaptive Moment Estimation,Adam)。学 习 率 设 置 为e-2,Batch_Size 设置为14 个样本,损失率为均方误差损失函数,损失率为均方误差损失函数,Epoch 设置为600(无量纲),图像超分辨网络输出效果如图5所示。能够看出图像清晰度得到了加强,对比度更加明显。
图5 图像超分辨过程Fig.5 Rendering of image super-resolution network
SSD 目标检测框架的主干特征提取网络采用的是双池化方式融合的多分类网络VGG19_MP,是在VGG19 卷积网络基础上进行改进,如图6所示。
图6 VGG19_MP网络结构图Fig.6 VGG19_MP network structure
该网络结构主要包含4 部分:VGG19_MP 网络、融合池化层、全连接层、输出层。融合池化层使用一种最大池化方法和均值池化方法结合的双池化方式,具体原理是对最大池化结果和均值池化结果做求和、取平均处理,输出为Pout,如式(3)所示。全连接层中节点数为1 024个,使用激励函数Relu;输出层节点数是2个,激励函数softmax,输出层的输出是对2个类别预测的评分。
式中:Pm为最大池化值;Pa为平均池化值。
很多的研究中只使用一种池化方式,在本文的缺陷检测任务处理中,特征提取网络VGG19_MP对图像超分辨网络处理后的数据集进行预训练,然后利用本文数据集进行微调;池化层、全连接层、输出层完全使用本文数据集进行训练,所以这3 层包含缺陷数据的全部信息。由于缺陷图像数量有限,增加全连接层可能会造成过拟合,而双池化融合的处理,在保留数据集有用信息量的同时,不会在网络中加入过多参数,使用VGG19_MP 可以包含缺陷样本更深层次、更全面的信息,从而提高分类精度。
改进后的SSD 目标检测网络结构如图7 所示。
图7 改进的SSD目标检测框架Fig.7 Improved target monitoring framework for SSD
损失函数如式(4)所示,主要由标签分类损失函数和目标位置损失函数构成。
式中:N为需要进行匹配的搜索框的数量;x为光伏缺陷的先验框与真实框相匹配的相似度;c为不同光伏缺陷种类的置信度;l为光伏缺陷的预测框的位置坐标信息;g为光伏缺陷的真实框位置坐标信息;Lconf(x,c)为标签分类损失;Lloc(x,l,g)为目标位置损失;α为标签分类损失函数和目标位置损失函数的权重系数,默认系数为1。
在模型训练过程中不断优化权重系数,提高光伏缺陷种类的置信度和位置信息预测框的可信度,从而提高光伏缺陷检测模型的性能。
本文光伏组件缺陷检测模型的操作系统为Ubuntu,Tensorflow-2.4.0 深度学习框架,硬件环境为11th Gen Inter(R)Core i7-11800H,内存为16 GB。本研究中的光伏组件缺陷图像数据是无人机在自然环境下进行采集,数据集主要分为脏污和划痕2 种缺陷,为了减少图像处理算法运行时间,将光伏组件图像分辨率进行压缩,本文的图像分辨率为600×600 Pixe,共2 000 张图像数据。无人机采集的2 000 幅图像数据经过GAN 数据增强方法扩充至8 000 张缺陷图像,并划分成6 400 张训练集和1 600 张测试集,再经过图像超分辨网络结构,细化将缺陷的轮廓和纹理特征更加细化,提高缺陷检测模型的准确性。
本文的模型权重参数服从高斯分布,在模型的反向传播过程中,优化函数为随机梯度下降法,学习率设置为e-2,指数的迭代速度(无量纲)为0.21,模型的前向传播训练数据的Batch_Size 为14 个样本,模型训练的Epoch 设置为600,缺陷检测模型的训练指标采用精确率(P)、召回率(R),综合评价指标(F1)。
式中:TP为预测为正样本,实际也是正样本;FP为预测为正样本,实际是负样本。
式中:FN为预测为负样本,实际是正样本。
F1的取值为0~1,表示光伏组件缺陷检测模型训练的综合性能,精确率P值越大,缺陷检测的轮廓分割精度越高。如果缺陷检测模型训练的查全率越低,缺陷轮廓识别越不精准,缺陷检测分割模型损失率(无量纲)曲线如图8 所示。
图8 模型损失率训练曲线图Fig.8 Training curve for model loss rate
为了对本文光伏组件缺陷的识别效果进行验证,分别使用4 种不同的特征提取网络,即残差网络(Resnet50)、谷歌网络(InceptionV3)、VGG19 和VGG19_MP 进行精确率和检测时间的对比。脏污(Dirt)和划痕(Scratch)的实验效果如图9 所示。
图9 光伏组件缺陷检测效果对比图Fig.9 Comparison diagram of photovoltaic module defect detection effect
从图9 中能够看出使用Resnet50,InceptionV3和VGG19 算法检测划痕(Scratch)图像时,未能完全地检测划出痕缺陷,识别精确率分别为92%,93%和96%,均低于VGG19_MP 算法的98%;使用Resnet50,InceptionV3 和VGG19 算法检测脏污(Dirt)图像时,未能完全检测出脏污缺陷。本文VGG19_MP 算法的精确率均高于其它对比算法,并且平均检测时间为0.066 s,均优于Resnet50,InceptionV3 和VGG19 的平均检测时间,能够满足对光伏组件缺陷检测的实时性要求,如表1 所示。
表1 各种缺陷检测模型指标类比Table 1 Analogy of various indicators for defect detection model
为了对光伏组件的脏污和划痕缺陷进行准确的检测,提出了使用超分辨率网络和改进的SSD 框架,将VGG19_MP 作为主干特征提取网络,更好地提取脏污和划痕的特征信息,有效地提高了光伏组件脏污和划痕缺陷检测的准确性。
将经过超分辨网络处理的缺陷数据集分别在不同的主干特征提取网络下进行缺陷检测,使用VGG19_MP 的主干特征网络检测的精确率最高,达到了98.21%,相较于对比的特征提取网络Resnet50,InceptionV3 和VGG19 网络,精确率分别提高了9.16%,7.78%和0.99%,平均检测时间减少了0.019 s,0.004 s 和0.001 s。实验结果表明本文提出的超分辨网络和融合池化层的SSD 检测算法能够保留数据集更多、更深层次的有效信息,提高缺陷检测的精度。