基于深度神经网络的太阳能电池组件缺陷检测算法研究 下载: 644次
1 引言
太阳能作为一种可再生的清洁能源,一直受到广泛的关注,但受限于转换效率的问题,没有得到大规模推广。而太阳能电池组件作为把光能转化成电能的主要媒介,其质量直接影响到光电转换的效率、使用寿命以及安全[1]。太阳能电池组件在生产过程中受材料和工艺影响,不可避免会产生各种缺陷(如隐裂、黑斑、断栅、黑心等),从而造成组件产品良品率的下降,因此在生产过程中对组件缺陷进行识别对于提高太阳能组件成品质量显得尤为重要。
基于机器视觉的电池片缺陷检测常见的检测方法有可见光成像、热红外成像、电致发光成像(electroluminescence,EL)和光致发光成像(photoluminescence,PL)[2-3]。可见光成像只能检测电池片的外观缺陷,例如缺角、碎片、色差,脏污等,对内部缺陷无能为力;热红外和EL成像需要对电池片通电检测,这可能对电池片造成二次损伤,而且因为接触式检测,效率较低;光致发光(PL)[4]是一种通过高能外部光源(主要是激光)进行照射,使硅离子跃迁产生荧光成像的技术(其原理如
图 1. Principle of photoluminescence imaging
Fig. 1. Principle of photoluminescence imaging
在电池片缺陷视觉检测方面,国内外也进行了相关的研究。Deitsch S等[5]分别使用支持向量机(SVM)和卷积神经网络(CNN)对高分辨率单晶和多晶太阳能电池片EL图进行缺陷识别,判断组件电池片缺陷概率,CNN模型平均准确率达到88.42%,SVM模型平均准确率82.44%;张磊等[6]使用光致发光成像检测太阳能电池中的断栅缺陷,然后详细研究了外部偏置控制和光照强度对PL图像的影响,最后与EL成像相比,得出结论,使用PL成像识别电池片断栅具有突出的优点;Anwar S等[7]提出了一种检测多晶太阳能电池中微裂纹缺陷的算法,使用各向异性扩散滤波器和图像分割技术,结果表明,该方法检测太阳能电池中的微裂纹平均准确度为88%;Xu 等[8]使用机器视觉方法包括图像分割、高斯滤波、Hough变换对光伏模块的微裂纹进行检测,所检测微裂纹适用于尺寸较大的裂纹,对细小隐裂效果不佳;王宪保等提出一种基于深度学习的太阳能电池片表面缺陷检测方法,该方法首先根据样本特征建立深度置信网络(DBN),并训练获取网络的初始权值,然后通过BP(backpropagation)算法微调网络参数[9],能较快对缺陷进行识别,但是在实际应用中,工业相机拍摄出的百万像素级图像对模型的训练形成很大的挑战;伍李春等提出了一种基于机器视觉以及人工神经网络的太阳能电池片表面质量检测方法,基于模板匹配检测外形缺陷,基于HIS(hue-saturation-intensity )空间下的颜色直方图检测颜色缺陷,利用两类人工神经网络进行断栅检测[10],针对断栅这一缺陷其建立的正则化RBF(radial basis funtion)分类器的正确识别率能够达到98.57%。
电池片隐裂缺陷漏检会对整个组件的产能造成严重影响,因此对缺陷检测算法的准确率有很高的要求。以上方法在隐裂缺陷识别的准确率上还有待提高,并且以上方法主要针对单硅片检测,但一组电池片组件一般是由10×6或12×6的单硅片排列而成。整个组件图像像素达到7 000万以上,单纯的单片组合检测会严重影响检测效率;同时,硅片各部分材料性质差异会引起PL成像后其图像灰度分布不均、缺陷边缘不清晰等问题,这对检测算法提出了更高的效率和准确性要求。针对以上问题,本文提出一种基于聚类的待检测区域定位方法来解决工业应用中的高像素图片问题,然后利用图像处理对缺陷进行预筛选,最后利用3个卷积神经网络模型对细小隐裂、黑斑以及无缺陷的区域进行区分,实验结果验证了上述方法能准确地检测出太阳能电池组件的隐裂缺陷。
1 组件图像的拼接
由于组件尺寸较大(一般为2 000 mm×1 000 mm),为了保证成像精度,需要由多个相机共同成像。本文主要采用8个相机(其布局如
图 2. Camera layout and image view (10×6 component)
Fig. 2. Camera layout and image view (10×6 component)
相机i图像在大图的位置(xi,yj)可表示为
式中:Wk代表k相机的图像宽度;Hi代表i相机的图像高度。为了保证拼接的完整性,每台相机成像视野需要有一定的重合量,然后通过求每个相机图像中的匹配点进行拼接,消除重合区域。另外,为了提高电池组件缺陷检测效率,需要获得的最小单元是单块电池片,然后根据先验知识来进行关键点检测。
1.1 关键点坐标定位
由于组件图像由多个相机成像组合而成,因此各相机成像后需要按照规则进行拼接,保证整幅图过渡自然,相机间没有重复或间隙。从
图 3. Stitching matches key points of Camera 2
Fig. 3. Stitching matches key points of Camera 2
由于激发光源和硅片性质的不均匀性,相机所成图像会在灰度上有些差异,直接把二值化后的图像投影会因为硅片的高亮度而消除硅片边缘信息(如
式中:C(j)为相机边缘图像投影曲线;∆为邻域跨度。
1.2 基于关键点的图像拼接及单片分割
关键点坐标获取了以后,就可以根据各相机的位置关系和关键点重合的特性来计算相机图像在总图像的平移量。每个相机有4个边,每个边最多有4个关键点,为了方便处理,本文对各边进行了编号(见
图 5. Neighborhood extreme value difference processing of camera Y -direction projection curve
Fig. 5. Neighborhood extreme value difference processing of camera Y -direction projection curve
表 1. 各相机要求的关键点边
Table 1. Key points required by each camera
|
相机图像在移动时,为了保证移动一致性,取相机1为基准,其图像不动,其他相机的移动方向如
各方向的相对移动量根据关键点坐标进行求平均,相机i相对与相机j的移动量公式如下:
式中
另外,利用各相机的关键点坐标信息,还可以进一步对单片进行分割,进而利用单片局部区域的先验布局信息,加快缺陷的检测效率。
2 基于聚类的缺陷待检测区域定位与预筛选
本文检测的电池片规格有158 mm×158 mm和162 mm×162 mm两种,每片有6×6的激光孔(见
目前,人工检测一整块组件的时间在5 s左右,为了提高生产效率,视觉检测时间限制在2 s,检测精度要求0.5 mm,本文检测精度为0.3 mm。为了提高图像处理的实时性,本文在各激光孔的周围64×64像素的区域内进行检测。但是由于一张组件图含有2 000多个激光孔,如果每个孔周围都进行检测仍然会消耗大量的时间,降低实时性,因此对局部图像先进行预筛选,然后对候选缺陷区进行缺陷识别。
2.1 待检测区域定位
待测区域的定位关键在于获得激光孔的位置。根据激光孔呈现角点的特征,本文待检测区域定位设置了4个步骤:图像降噪,边缘提取,角点检测和角点筛选。首先对单电池片图像进行高斯滤波,然后选用Sobel算子进行边缘提取,再对图像进行角点检测,最后根据距离和位置条件进行筛选。
2.1.1 距离条件
根据电池片结构,孔间距是均匀分布的,孔间距在电池片宽度的1/6左右,过小会造成多选,过大会漏选。因此,检测时就可以作为限定条件提高鲁棒性。
把角点坐标P(x,y)在单维度方向上(x和y方向)从小到大进行排序,然后按照(4)式的规则分成有限个列表:
式中:xn、yn分别是第n个点的横坐标和纵坐标;Tx为设置的坐标距离阈值(本文根据电池片的尺寸设置为15)。当第n个和第n−1个点的横坐标差值大于Tx时就把第n个点的横坐标存在一个新的列表中,从第2个点横坐标开始直到处理完每一个点的横坐标,最终得到有限个列表。再依据列表的长度进行筛选,对于长度小于3的列表中储存的角点坐标从总的角点里面剔除,获得最终的角点信息(如
图 11. Location of corner points to be detected
Fig. 11. Location of corner points to be detected
2.1.2 位置条件
获得的36个角点除了距离上有限定特征,实际上在位置上也会呈现出均匀分布特征。因此为了减小位置误差并获得准确的角点坐标,对近似同一行(列)上的角点坐标进行3σ判定。其过程如下:
首先按(5)式对每一行计算关键点坐标的一维距离:
式中
式中σx代表某行关键点的横坐标标准差。最后根据保留的关键点求行坐标:
也就是舍弃坐标偏离过大的角点,最后把保留的角点进行求平均,获得单行关键点的横坐标。用同样的方法得到6条纵线,这6条横线和6条纵线的交点就是我们要找的36个角点, 如
2.2 基于面积的缺陷候选区判定
为了对角点上的缺陷进行识别,需要对角点周围可能存在缺陷的区域进行判定。首先对36个角点周围64×64的局部区域进行轮廓查询,计算获得的轮廓面积并按照从小到大排序。如果检测到的轮廓大于6个,按照(8)式对轮廓进行判定,筛选出可能存在缺陷的区域。
式中:n表示检测出的轮廓数;sx表示第x个轮廓的面积。对于一些特殊情况(如PL产生过曝光图像)可能导致检测到的轮廓小于6个,就对36个角点周围区域定义为候选区域。
筛选出疑似缺陷轮廓之后,还要进一步确定疑似缺陷是否在角点上。首先,我们计算出轮廓的中心点坐标,结合之前定位的36个角点坐标,找出轮廓中心点四周32×32个像素内包含的角点。如果这个轮廓附近没有角点,则可以排除掉这个候选区域,最后形成缺陷识别的局部图,为神经网络的识别打下基础。
3 缺陷识别的深度网络模型
近年来,深度学习在计算机视觉图像识别领域取得了突出的成绩,尤其是卷积神经网络,其特殊的网络结构对二维图像的复杂背景、不均匀光照、角度变化等有很强的鲁棒性,近些年被广泛应用于计算机视觉中的分类、检测、分割等任务[11-12]。为了降低人工特征对电池片缺陷检测的影响,本文采用了端到端的深度网络识别方法。但是由于样本的限制,我们在轻量化的卷积神经网络模型LeNet-5[13]的基础上进行了改进,形成了3种不同结构不同深度的卷积神经网络模型,以适应组件缺陷识别的需要。模型结构及具体参数如
表 2. 网络模型结构及部分参数
Table 2. Network model structure and some parameters
|
图 13. Convolutional neural network models for training
Fig. 13. Convolutional neural network models for training
4 实验与分析
4.1 样本的收集及整理
本文数据集取自江苏省某太阳能电池厂,从不同生产批次抽取了3 000张电池片组件PL图片。这些电池片组件总共包括180 000个电池片,经过挑选最终得到8 000个有缺陷或者有代表性的目标电池片,在前文角点定位的基础上对这些电池片的角点局部图像进行截图,形成20 000张64×64像素大小的原始缺陷图像数据集。同时为了提高模型训练的质量[15],通过对原始样本缺陷加入噪声、颜色变换、透视变换等方法对原始图像数据集进行了增广,最后形成了40 000多张样本图像数据,其中包含无缺陷、第一类缺陷、第二类缺陷、黑斑和不在角点上的缺陷,如
将获得的标准样本图像数据集按一定比例分成3个部分:训练集、验证集与测试集(如
表 3. 样本图像数据集
Table 3. Sample images data set
|
4.2 模型训练及结果分析
本文硬件平台为Intel Core i7-8750H CPU、内存6GB的GTX1060 GPU,训练算法由Python编写完成。本文构建的电池组件缺陷检测模型采用有监督训练方式,对应图像标签表示输入图像的类别标签,分为“无缺陷”、“第一类缺陷”、“第二类缺陷”、“黑斑和缺陷不在角点上”4类,3种深度网络的训练误差曲线如
从
图 15. Model training accuracy and loss curve
Fig. 15. Model training accuracy and loss curve
表 4. 不同模型识别准确率对比结果
Table 4. Comparison results of different models recognition accuracy
|
对比
5 结论
太阳能电池组件光致发光成像技术以及缺陷面积占比不到万分之一的特点决定了此类缺陷检测具有较高的技术难度。本文结合实际生产需要,针对此类隐裂在常光下的不可见性,采用光致发光成像技术;在此基础上,利用图像处理手段对高像素PL组件图片实现缺陷快速定位,为下一步缺陷检测的实时性打下基础;在分析缺陷特征复杂程度的基础上提出了3种卷积神经网络模型对缺陷进行分类,尽量避免过拟合对模型识别率的影响,从而提高模型的泛化能力。最终实验表明了该太阳能电池组件缺陷检测方法的有效性和准确性,为实现太阳能电池组件缺陷检测自动化打下了基础。
[1] WENHAM S R, GREEN M A, WATT M E, et al. 应用光伏学[M]. 施正荣, 译. 上海: 上海交通大学出版社, 2008: 4448.WENHAM S R, GREEN M A, WATT M E, et al. Applied photovoltaics[M]. SHI Zhengrong, translated. Shanghai: Shanghai Jiaotong University Press, 2008: 4448.
[2] 钱晓亮, QIAN Xiaoliang, ZHANG Heqing, 张鹤庆, 陈永信, CHEN Yongxin. Research development and prospect of solar cells surface defects detection based on machine vision[J]. Journal of Beijing University of Technology, 2017, 43(1): 76-85.
[6] ZHANG Lei, LIANG Peng, ZHU Huishi. Detection of finger interruptions in silicon solar cells using photoluminescence imaging[J]. Chinese Physics B, 2018, 27(6): 556-561.
[7] ANWAR S, ABDULLAH M. Micro-crack detection of multicrystalline solar cells featuring an improved anisotropic diffusion filter and image segmentation technique[J]. EURASIP Journal on Image and Video Processing, 2014(1): 15.
[8] XU P, ZHOU W J, FEI M R. Detection methods f microcracked defects of photovoltaic modules based on machine vision[C]The 2014 IEEE 3rd International Conference on Cloud Computing Intelligence Systems (CCIS). New Yk: IEEE, 2014: 609613.
[10] 伍李春, WU Lichun, LIU Mingzhou, 刘明周, 蒋倩男, JIANG Qiannan. Solar cell surface quality detection system based on artificial neural network[J]. Journal of Hefei University of Technology: Natural Science, 2017, 40(9): 1176-1180.
[12] 杨帆, YANG Fan, 李建平, LI Jianping, LI Xin, 李鑫. Salient object detection algorithm based on multi-task deep convolutional neural network[J]. Journal of Computer Applications, 2017(1): 91-96.
[13] YAEE L , BOTTOU L,BENJIO Y. Gradientbased learning applied to document recognition[J]. USA:IEEE, 1998, 86(11):22782324.
[14] SRIVASTAVA N, HINTON G, KRIZHEVSKY A. Dropout: a simple way to prevent neural networks from overfitting[J]. Journal of Machine Learning Research, 2014, 15(1): 1929-1958.
[15] 姚明海, 杨圳.基于轻量级卷积神经网络的实时缺陷检测方法研究[J]. 计算机测量与控制, 2019(6):2225.YAO Minghai, YANG Zhen. Research on realtime defect detection method based on lightweight convolutional neural wk [J]. Computer Measurement Control, 2019(6): 2225.
Article Outline
刘怀广, 刘安逸, 周诗洋, 刘恒玉, 杨金堂. 基于深度神经网络的太阳能电池组件缺陷检测算法研究[J]. 应用光学, 2020, 41(2): 327. Huaiguang LIU, Anyi LIU, Shiyang ZHOU, Hengyu LIU, Jintang YANG. Research on detection agorithm of solar cell component defects based on deep neural network[J]. Journal of Applied Optics, 2020, 41(2): 327.