基于卷积神经网络的室外运行太阳能电池板裂纹检测
2020-05-25朱美强陈家乐
姜 瑾, 李 明, 朱美强, 陈家乐
(中国矿业大学信息与控制工程学院, 江苏 徐州 221000)
近年来, 光伏电站在全世界大规模应用.太阳能电池板若出现裂纹会影响发电效率,甚至导致更严重的故障,因此太阳能电池板的裂纹检测是光伏电站设备健康监测的重要内容.由于晶体硅太阳能电池板的表面缺陷不易通过肉眼分辨,一般需要特殊成像技术来凸显缺陷,其中电致发光成像(electroluminescent, EL)技术被广泛应用于该领域[1].目前,基于机器视觉的太阳能电池板EL图像表面缺陷检测方法的研究较多,如Tsai等[2]利用傅里叶图像重建来检测太阳能电池板缺陷;王宪保等[3]提出了基于深度置信网络的表面缺陷检测方法; Deitsch等[4]采用传统特征支持向量机和深度卷积网络迁移模型检测缺陷.上述方法多用于出厂时太阳能电池板的检测,且样本种类单一,数量较少.然而,与出厂时的太阳能电池板相比,室外运行中的电池板表面污染严重,早期出现的缺陷主要是裂纹,并且裂纹长短不一,与背景对比度不强,分布随机,难以辨别.本文待检测的太阳能电池板EL图像, 来自8个不同地区的光伏电站, 被分割成电池单元的图像近5万张,图像之间的差异较大, 采用现有的裂纹检测方法难以获得理想效果.卷积神经网络[5-6]常被用于检测分布随机且长短不一的裂纹,在路面、桥梁和隧道裂纹检测等方面取得良好成效.本文拟提出一种EL图像分割与卷积神经网络分类相结合的太阳能电池板裂纹检测算法.
1 算法设计与实现
1.1 EL图像分割
便携式红外电荷耦合器件(charge coupled device, CCD)相机采集的室外太阳能电池板的EL图像一般包含大量黑色区域, 如图1所示.由于电池板区域为不规则四边形,故须寻找出原始图像中的太阳能电池板区域, 并将其矫正为2 400×4 000×3像素大小的矩形图像,然后分割成太阳能电池单元图像.具体图像处理流程如图2所示.
图像矫正中,根据透视原理可得到矫正图像的坐标变换公式:
(1)
其中(u,v)为原始图像的坐标, (x,y)为矫正后图像对应的坐标,a1,a2,…,a8为变换参数.已知太阳能板对应的四边形的4个顶点坐标值及其在矫正图像中对应的坐标值, 即可列方程求得变换参数a1,a2,…,a8.
图像分割中, 为了凸显电池单元的边界线,采用锐化滤波图像增强技术, 得到增强后的图像
(2)
其中Is为原始图像;Im是核为(W/3,H/3)的滤波器对Is进行均值滤波后所得图像,W,H分别为原始图像的宽和高.
对增强后的图像进行高斯模糊处理
(3)
其中σ为正态分布的标准偏差.
对高斯模糊处理后的图像进行去噪点和二值化处理, 再将所得图像的像素值向横轴和纵轴2个方向投影累加, 分别计算并对比累加值,寻找其峰值,峰值的位置即太阳能电池单元边界线的位置.相邻两峰值的坐标值相减得到相邻两边界线之间的距离,求取所有相邻边界线距离的平均值与边界线距离的差值,若差值绝对值小于20, 则认为找到正确分割的边界线,边界线的交点为电池单元的顶点.进一步地, 在校正的电池板彩色图像基础上对每个电池单元进行分割, 得到规则的电池单元图像.将电池单元作为分类模型的输入,检测电池单元是否含有裂纹.
1.2 EL电池单元分类
1) 分类数据集.采用人工标记的方式对943张太阳能电池板EL图像分割后的电池单元进行分类, 共得到正样本(无裂纹)48 000多个和负样本(有裂纹)803个,此时存在严重的样本不对称问题.样本不对称会造成分类器在多数样本下分类准确率较高, 而少数样本下的分类准确率很低.对少数样本进行过采样,采取随机加入噪点、左右镜像和上下镜像等操作进行样本扩充;对多数样本进行随机欠采样,使得正负样本之比为1∶1.最终训练集共有11 248个样本,其中正负样本均为5 624个;测试集有1 600个样本,正负样本均为800个.
2) 模型细节.为了快速准确地对太阳能电池板进行裂纹检测,基于原始的VGG16模型,在每个卷积层后面添加批标准化(batch normalization, BN)层, 于是可设置较大的学习率,以加快模型的收敛速度,避免深层网络的梯度消失或爆炸问题,从而提高模型的泛化能力.改进后的模型由1个输入层、13个卷积层+BN层、5个池化层、3个全连接层和1个Softmax层组成,具体模型结构如图3所示.
3) 模型训练.选择keras深度学习框架进行模型训练与测试.设置模型训练参数:分类模型输入图像大小为224×224×3像素,对训练集采用Adam优化器迭代50次, 训练学习率为10-4.采用交叉熵损失函数
(4)
2 实验结果分析
实验平台所用计算机配置为i7-6900K CPU,内存为64 GB,GTX 1080TI GPU,显存为11 GB,操作系统为Ubuntu16.04.
本文选择查准率P、查全率R和F1值作为分类性能度量指标.分别定义
(5)
其中NTP为真正例个数,NFP为假正例个数,NTN为真反例个数,NFN为假反例个数.查准率、查全率和F1值越高, 分类性能越好.
2.1 EL图像分割
采用本文算法对取自8个地区的943张太阳能电池EL样本图像进行分割, 正确分割率为94.17%,部分正确分割率为5.51%,错误分割率为0.32%.EL图像分割结果如图4所示.部分正确分割是因图像模糊边界线不明显所致.错误分割是由于太阳能电池板有部分未出现在图像中,拟合四边形时找到错误的顶点.
2.2 分类实验
本文选取深度学习中主流的分类模型, 如Alexnet[7]、VGG16[8]、VGG19[8]、Resnets18[9]、Resnets34[9]、Resnets50[9]等, 以及方向梯度直方图(histogram of oriented gradient, HOG)+支持向量机(support vector machine, SVM)分类[10]、尺度不变特征变换(scale-invariant feature transform, SIFT)+k-means聚类+SVM分类[11]和加速稳健特征(speeded up robust features, SURF)+k-means聚类+SVM分类[12]等检测算法,与本文分类算法进行对比实验.表1给出了不同算法在同一测试集上检测裂纹的查准率、查全率和F1值.由表1可见, 本文IVGG16模型的查准率、查全率和F1值均最高, 表明本文算法的分类效果优于其他算法.
表1 不同算法在同一测试集上的分类结果
图5给出了不同算法在同一测试集上的观测者操作特性曲线(receiver operating characteristic curves, ROC)和曲线下面积(area under curve, AUC).由于HOG+SVM模型分类效果最差,其AUC值仅为75.26%,同时考虑图5的清晰度,故未绘制对应的曲线。由图5可见, 假正例率相同时,本文分类模型的真正例率最高,且AUC值最高, 达99.13%, 进一步表明了本文分类模型的优越性.
本文算法中分类模型的分类准确率在训练集上达99.81%,在测试集上达96.37%.测试集样本中含裂纹的样本有800张, 分类错误32张; 无裂纹的样本有800张,分类错误26张.分类错误的原因可能有负样本数据量不足、含裂纹的图像偏少且模糊、裂纹不明显或图像预处理质量偏低等.本文算法预测每幅图像平均耗时约1 ms,可满足快速检测的需求.
3 结论
为了有效检测太阳能电池板裂纹,本文提出一种自动检测室外运行中太阳能电池板裂纹的算法.该算法首先对太阳能电池板EL图像自动分割,然后将分割所得电池单元图像置入改进的分类模型检测.在相同的参数设置下,本文算法与主流的分类模型和相关检测方法的对比结果表明,本文算法检出裂纹的准确率高达96.37%, 且检测耗时小于1 ms, 充分验证了该算法的合理性与有效性.