王茜茜, 蒋鹏辉
(1.创能电力设计有限公司 设计部, 安徽 合肥 230000;2.上海博英信息科技有限公司 设计部, 上海 200240)
太阳能电池作为清洁能源的重要一员,以绿色、便捷、储能大等优势备受企业和人们的欢迎。在太阳能电池的使用过程中,电池片区域易受周边环境影响,出现部分缺陷,影响太阳能电池的性能[1]。为保证太阳能电池能够正常使用,有必要对太阳能电池片进行缺陷检测。
对此,许多学者对太阳能电池片缺陷的检测进行了研究分析。龚芳等[2]根据红外成像特性及太阳能电池电片的发光原理设计了一种滤波器,使图像正常区域经滤波后能有一定反应从而凸显缺陷区域。宋玉琴等[3]利用机器视觉技术完成了对太阳能电池片缺陷的在线检测。秦文丽[4]利用OpenCV程序判断出太阳能电池片是否有色斑。刘怀广等[5]利用卷积神经网络和聚类的方法对太阳能电池片缺陷进行筛选定位,能较为准确地检测隐裂缺陷。
为实现对太阳能电池片缺陷的准确检测,本文提出了一种基于图像处理与深度学习的缺陷检测方法。首先,对太阳能电池片图像进行全局直方图均衡化处理,增加图像灰度值的动态范围,调节图像整体的对比度,使图像细节部分变得更为清晰;然后,对太阳能电池片的两类缺陷数据集与正常数据集进行增强,提升神经网络模型的泛化能力;最后,搭建卷积神经网络进行训练,并预测太阳能电池片上的缺陷。
太阳能电池片缺陷检测流程如图1所示,包括图像获取、全局直方图均衡化、数据集增强、搭建神经网络、训练模型、结果预测。
图1 缺陷检测流程
本次实验采集到的太阳能电池片原始图像如图2所示。由图可知,受图像采集环境的影响,导致采集到的太阳能电池片图像较为暗淡,其中斑纹缺陷特征与背景较为相似,破损缺陷则与电池片栈线特征较为相似。为了使缺陷特征更为突出,需要对图像进行增强处理。全局直方图均衡化[6]作为图像增强的一种方法,是根据直方图对像素点的灰度值进行变换,属于图像点操作范畴,可以对图像中的各个区域做到平均增强,对提升图像整体对比度有较好的效果。
图2 太阳能电池片原始图像
全局直方图均衡化处理过程为:列出图像变换前后的灰度级i,j=0,1,…,L-1,L为灰度级数,统计处理前图像各个灰度级像素数ni,计算出原始图像的总像素个数,利用式(1)计算累计直方图之后,再利用式(2)计算变换后的灰度值并取整,统计变换后各灰度级的像素数nj,利用式(3)计算变换后的直方图[7]。
式中:k为图像的第k级灰度值;p(k)为图像中各级灰度级出现的频数;pj为计算变换后图像的灰度值;n为图像的总像素个数。
为验证全局直方图均衡化处理对本次实验采集图像的增强效果,与经典图像增强方法——伽马变换[8]进行横向对比。图像增强结果如图3所示。
从图3可以看出,经过伽马变化后,图像的对比度得到了增强,使得缺陷特征区域较为突出,但会使图像的细节纹理变得稍微模糊。而经过全局直方图均衡化处理的图像增强后,整体对比度得到显著增强的同时,图像的细节纹理受影响较小。以图3(a)、(d)、(g)为例,对经过全局直方图均衡化处理后的图像进一步分析,列出了其灰度直方图[9]如图4所示。
图3 太阳能电池片图像增强结果
由图4可见,伽马变换是对图像灰度级较高的部分进行了增强,而全局直方图均衡化处理后的图像,其各个区域的灰度级得到平均增强,同时缺陷区域显示也更为清晰,这有利于后续在神经网络中的特征提取。
图4 图像增强前后灰度直方图对比
本次实验共采集太阳能电池片图像1 980张,分别为破损、斑纹和正常3种。为增强数据集[10]的多样性,通过对数据集进行旋转、增加噪声、翻转等操作进行增强。增强后,经全局直方图均衡化处理与未经处理的数据集总量均达到5 940张,分别将数据集样本按照7∶2∶1的比例划分,具体情况如表1所示。
表1 样本数量划分
本次实验在服务器上进行训练,所搭载的图形处理器型号为Tesla P100-PCIE-16GB,处理器内存为16 GB。训练使用以TensorFlow 为后端的keras框架,其中训练迭代次数设置为100,批样本数量为32。
本文数据集中图像宽×高×维度规格均为300×300×3,考虑神经网络的速度与适配性,将其预处理为256×256×3的规格后,再经多次卷积 池化作用,每层卷积层均使用Relu函数进行激活,经过全连接层变换后,再由Softmax函数激活,将适应性矩估计算法作为优化器进行优化后输出[11]。神经网络模型结构如图5所示,本文所搭建的神经网络模型进行可视化之后[12],如表2所示。
图5 神经网络模型结构
表2 本文神经网络模型结构
为验证在同一网络下,经过全局直方图均衡化处理与未经过处理的数据集的学习效果,分别对两种数据集进行训练、测试,结果如图6所示。由图可见,经过全局直方图均衡化处理后的数据集与未经过处理的数据集在同一结构、同一参数、同一优化器的网络训练下,经过全局直方图均衡化处理的训练集准确率在99.64%附近收敛,且在迭代至40次左右就开始收敛,速度较快,测试集准确率在96.38%附近收敛。未经过全局直方图均衡化处理的数据集不仅收敛速度慢,且收敛后的准确率也较低,进而验证了经全局直方图均衡化处理后的图像在进行卷积的过程中,特征提取的效率更高,提取到的图像特征更为精确。
图6 神经网络训练结果
在训练和测试结束之后,即可调用训练完成的神经网络模型对验证集中的太阳能电池片的缺陷种类进行预测[13]。为验证该模型对太阳能电池片缺陷的检测效果,利用混淆矩阵[14]表示验证结果,混淆矩阵原理如表3所示。表中,TP为正样本被预测成正样本的总数;TN为负样本被预测成负样本的总数;FP为负样本被预测成正样本的总数;FN为正样本被预测成负样本的总数。混淆矩阵作为常用的模型检验工具,不仅可以用来评估模型,还可以将检测结果显示得更加直观[15]。
表3 混淆矩阵原理
而混淆矩阵中各2级指标计算式分别为
式中:AC为准确率;PR为精确率;RE为召回率;F1为F1分数。
在调用神经网络模型进行验证后,验证集检测的混淆矩阵结果如图7所示。利用混淆矩阵中的数据与式(4)~(7)即可计算出准确率、精确率、召回率、F1分数等2级指标的数值,如表4所示。
图7 验证集检测混淆矩阵
表4 验证集预测结果
本文利用全局直方图均衡化技术与神经网络相结合的方法,对太阳能电池片图像的破损与斑纹缺陷进行了检测。结果表明:经过全局直方图均衡化处理后的图像,在利用神经网络训练时能够获得更好的结果。对破损、斑纹以及正常类型的识别平均能够达到92.93%的准确率、89.17%的精确率、89.18%的召回率和、88.26%的F1分数值。综合来看,本文提出的方法能够对太阳能电池片的缺陷进行有效的检测识别。