一种基于卷积神经网络的太阳能电池板缺陷识别方法与流程

文档序号:15624047发布日期:2018-10-09 22:32阅读:411来源:国知局

本发明涉及太阳能电池板缺陷检测技术领域,尤其涉及一种基于卷积神经网络的太阳能电池板缺陷识别方法。



背景技术:

太阳能是一种清洁能源。由于太阳能电池板生产工艺复杂,加上生产运输与安装过程中的人工因素,都会导致电池板容易出现各种缺陷问题,使得电池板破损率增大,而这些缺陷将严重降低电池板的光电转化效率和使用寿命。因此,在生产过程中检测电池板缺陷是十分重要的。目前主要是对电池板的电致发光(ei)图像进行检测。然而,电池板表面的纹理结构和多晶硅材料的杂质给缺陷检测带来很大困难。当前主要有以下检测方式:

(1)人工检测。用肉眼对电池板的ei图像进行缺陷检测是目前绝大多数太阳能电池板生产厂采用的方式。它不仅速度慢,影响生产效率,容易造成视觉疲劳和误差,还带来了人工费用的开支。

(2)计算机图像识别。目前有多种利用计算机图像处理技术的检测手段,这些手段只适用于特定且特征明显的缺陷种类。对于主流的多晶硅材料的太阳能电池板,其形成的花纹背景干扰大,特征缺陷不显著,传统方法无法实现有效的检测。

专利号为zl201410135246.x的中国专利公开了“太阳能电池表面缺陷检测设备及方法”。该检测设备包括结构件和检测电路系统;检测方法是通过对图像进行图像分割、小波变换和二维7×7像素领域中值滤波处理得到缺角缺陷图像;对于裂纹,通过对图像进行二维中值滤波、小波变换、图像二值化、边缘检测和形态学算子处理得到裂纹的缺陷图像,获得缺陷识别结果。该方法采用传统的图像处理方法,仅对“缺角”和“裂纹”缺陷手动提取图像特征,对于其他缺陷类型,或由于杂质干扰和图像像素低等原因,导致缺陷特征不显著的电池板图像,则无法进行有效的检测。

专利号为zl201510108201.8的中国专利公开了“光伏电池板在线缺陷检测和分拣装置”。该装置获取光伏电池板表面的图像,传输到计算机中,转为灰度图像,与标准的模板图像进行匹配相减,如果有灰度差,说明检测的图像与模板图像不一致,即光伏电池板表面存在缺陷,计算机对有缺陷的光伏电池板进行标定。该方法通过样本图像与模板图像的灰度差这一简单的统计特征鉴别缺陷,对于存在杂质干扰和各种形态不一的缺陷,无法进行有效的检测。

为了解决现有技术的不足,需要设计一种适用于多种缺陷,抗杂质阴影干扰能力强,准确率高,可用于由多块小电池板组成的拼装电池板的太阳能电池板缺陷检测方法。



技术实现要素:

针对现有技术的不足,本发明所要解决的技术问题是:提供了一种基于卷积神经网络的太阳能电池板缺陷识别方法,该方法对于太阳能电池板的ei图像,能够以较高的准确率快速识别出存在缺陷的小电池板的位置,并对多种缺陷进行类别判定。

本发明解决所述技术问题采用的技术方案如下:一种基于卷积神经网络的太阳能电池板缺陷识别方法,包括模型离线训练和在线检测两个阶段,

所述的模型离线训练包括以下步骤:

s1:收集太阳能电池板的合格图像和多类缺陷图像,并完成分类,假设缺陷类别数为d;

s2:对步骤s1得到的各类别图像进行数据平衡,使各类别的样本数目充足;对于数量较少的各类缺陷图像,采用翻转、旋转、随机平移、随机形变和随机缩放方式进行样本量的扩充;对于数量丰富的合格图像,采用随机欠采样方式筛减,最终获得的各缺陷类别图像的数目充足且各缺陷类别图像的数量差别在30%的范围内,合格类别图像和全部缺陷类别图像的数量差别在30%的范围内;

s3:将步骤s2获得的各类别图像均转为预设尺寸的灰度图像,得到的图像设为图像矩阵x;

s4:由步骤s3得到的图像矩阵x,经过归一化数据处理后,生成由所有缺陷样本、合格样本组成的二分类数据集,用于缺陷检测;同时生成由多类缺陷组成的多分类数据集,用于缺陷分类;

s5:通过卷积神经网络构建用于缺陷检测的cnn二分类模型和用于缺陷分类的cnn多分类模型;

s6:在步骤s4所述的二分类数据集上训练步骤s5所述的cnn二分类模型,在步骤s4所述的多分类数据集上训练步骤s5所述的cnn多分类模型,训练方式为小批量梯度下降,训练算法是反向传播算法,当达到预设的迭代轮数epoch时,训练结束,保存训练完成的cnn二分类模型和cnn多分类模型;

所述的在线检测包括以下步骤:

s7:获取待识别的太阳能电池板图像,设为i;

s8:对步骤s7所述的电池板图像i进行图像预处理,得到水平放置、不含背景、矩形的电池板图像id;

s9:若步骤s8得到的预处理后的电池板图像id是由m×e个小电池板组成的拼装电池板图像,则将其分割为m×e个单独的小电池板图像,并记录每个小电池板在大电池板上的位置;若id已经是单独的一块电池板,则无需分割,直接作为数目为1的小电池板图像进入步骤s10;

s10:将步骤s9的所有小电池板图像,全部转为预设尺寸n×n的灰度图像,并对该灰度图像进行归一化处理;

s11:缺陷检测:将步骤s10得到的所有归一化处理后的灰度图像输入到由步骤s6得到的训练完成的cnn二分类模型,进行特征提取和特征分类,输出该图像属于合格类别的概率;若概率高于某个设定的缺陷阈值,则判断为合格的电池板图像;否则判断为存在缺陷的电池板图像,并进行步骤s12;

s12:缺陷分类:将步骤s11中判断为存在缺陷的电池板图像输入到由步骤s6得到的训练完成的cnn多分类模型,进行特征提取和特征分类,得到该图像属于各缺陷类别的概率,将其中最大的概率值所属的缺陷类别作为判定的缺陷类别;

s13:对步骤s9的每个小电池板图像都进行步骤11~s12,并在电池板图像上标记存在缺陷的位置和缺陷类别,输出检测结果。

本发明的有益效果是:

1、适应于多种缺陷类型。cnn模型(cnn二分类模型和cnn多分类模型)对电池板的各种缺陷类型,都是采用相同的处理流程,即通过迭代训练,快速而自动进行特征提取和特征分类。对于新缺陷类型,只需收集该缺陷类型的样本数据,添加到训练用的数据集中并对模型进行训练,就能够实现该缺陷类型的检测。相比人工提取特征的传统方式,适用性更广。

2、对于特征不显著,或有大量杂质阴影干扰的的电池板图像,此时人工提取特征的传统方式无能为力,cnn模型能够自动提取出更本质的图像特征,实现缺陷的检测和分类。

3、对于由m×e个小电池板组成的拼装电池板图像,或单独的一块电池板图像,都可以作为缺陷检测的输入。

4、将卷积神经网络模型应用于太阳能电池板的缺陷识别上,使用2个cnn模型递进地实现了缺陷检测和分类。首先使用cnn二分类模型区分合格与缺陷图像,然后使用cnn多分类模型,对二分类模型判定为缺陷的图像进行分类。这样的设计实现了3个有益的效果:

(1)可以充分利用数量稀少且不平衡的缺陷图像样本。将所有缺陷样本进行步骤s2所述的样本量扩充,并直接合并作为一类,获得较丰富的样本量,与数量丰富的合格样本一起构成数目平衡的二分类数据集。这样,由于二分类数据集的数据量较大,cnn二分类模型区分合格与缺陷样本的准确率也会较高。

(2)在一个缺陷检测系统中,相比缺陷类别的鉴定,区分合格和缺陷样本更为重要。由于cnn二分类模型的准确率更高,因此相比同时进行合格与各类缺陷样本的检测,本发明依次进行缺陷检测和缺陷分类,实现了更好的缺陷检测效果。

(3)cnn二分类模型可以自动提取出一些各类缺陷样本区别于合格样本的共性特征,因此,对于未归类或分类效果差的缺陷类别,在缺陷检测阶段,cnn二分类模型也能以较高的概率将该缺陷类型归类到“缺陷”,而非“合格”。

5.本发明中给出了拼装电池板图像的预处理的合理过程,可以生成高质量的输入图像,供cnn模型的参数训练使用,能有助于提高其模型准确率。

附图说明

图1是本发明的太阳能电池板缺陷检测方法流程图。

图2是本发明实施例中所构建的卷积神经网络结构图。

图3是本发明实施例中二分类数据集和多分类数据集的结构图。

图4是本发明实施例中合格和各缺陷类别的部分样本图像,其中41.合格、42.断栅缺陷、43.开焊缺陷、44.阴影缺陷、45.隐裂缺陷;

图5(a)是本发明实施例中cnn二分类模型的训练过程的损失函数曲线;

图5(b)是本发明实施例中cnn二分类模型的训练过程的准确率曲线;

图6(a)是本发明实施例中cnn多分类模型的训练过程的损失函数曲线;

图6(b)是本发明实施例中cnn多分类模型的训练过程的准确率曲线;

图7是本发明实施例的软件操作界面图。

具体实施方式

下面结合实施例和附图,对本发明的具体实施方式作进一步详细描述。以下实施例用于说明本发明,但不用来限制本发明的保护范围。

本发明基于卷积神经网络(英文简称为cnn)的太阳能电池板缺陷识别方法(简称方法,参见图1),包括模型离线训练和在线检测两个阶段,

所述的模型离线训练包括以下步骤:

s14:收集太阳能电池板的合格图像和多类缺陷图像,并完成分类,假设缺陷类别数为d;

s15:对步骤s1得到的各类别图像进行数据平衡,使各类别的样本数目充足,以便于模型训练;对于数量较少的各类缺陷图像,采用翻转、旋转、随机平移、随机形变和随机缩放等几何方法进行样本量的扩充;对于数量丰富的合格图像,采用随机欠采样方式,最终获得的各缺陷类别图像的数目充足且数量相近,各缺陷类别图像的数量差别在30%的范围内,合格类别图像的数目与全部缺陷类别图像的数目相近,合格类别图像和全部缺陷类别图像的数量差别在30%的范围内;

s16:将步骤s2获得的各类别图像均转为预设尺寸的灰度图像,得到的图像设为图像矩阵x;

s17:由步骤s3得到的图像矩阵x,经过归一化数据处理后,生成由所有缺陷样本、合格样本组成的二分类数据集,用于缺陷检测;同时生成由多类缺陷组成的多分类数据集,用于缺陷分类;

s18:通过卷积神经网络构建用于缺陷检测的cnn二分类模型和用于缺陷分类的cnn多分类模型;

s19:在步骤s4所述的二分类数据集上训练步骤s5所述的cnn二分类模型,在步骤s4所述的多分类数据集上训练步骤s5所述的cnn多分类模型,训练方式为小批量梯度下降,训练算法是反向传播算法,当达到预设的迭代轮数epoch时,训练结束,保存训练完成的cnn二分类模型和cnn多分类模型;

所述的在线检测包括以下步骤:

s20:获取待识别的太阳能电池板图像,设为i;

s21:对步骤s7所述的电池板图像i进行图像预处理,得到水平放置、不含背景、矩形的电池板图像id;

s22:若步骤s8得到的预处理后的电池板图像id是由m×e个小电池板组成的拼装电池板图像,则将其分割为m×e个单独的小电池板图像,并记录每个小电池板在大电池板上的位置;若id已经是单独的一块电池板,则无需分割,直接作为数目为1的小电池板图像进入步骤s10;

s23:将步骤s9的所有小电池板图像(1个或m×e个),全部转为预设尺寸n×n的灰度图像,并对该灰度图像进行归一化处理;

s24:缺陷检测:将步骤s10得到的所有归一化处理后的灰度图像输入到由步骤s6得到的训练完成的cnn二分类模型,进行特征提取和特征分类,输出该图像属于合格类别的概率;若概率高于某个设定的缺陷阈值,则判断为合格的电池板图像;否则判断为存在缺陷的电池板图像,并进行步骤s12;

s25:缺陷分类:将步骤s11中判断为存在缺陷的电池板图像输入到由步骤s6得到的训练完成的cnn多分类模型,进行特征提取和特征分类,得到该图像属于各缺陷类别的概率,将其中最大的概率值所属的缺陷类别作为判定的缺陷类别;

s26:对步骤s9的每个小电池板图像都进行步骤11~s12,并在电池板图像上标记存在缺陷的位置和缺陷类别,输出检测结果。

步骤11中所述缺陷阈值为0.5-0.9。

进一步地,所述的步骤s4包括以下子步骤:

s4-1:对于图像矩阵x做归一化处理。图像矩阵x的像素的取值范围为[0,255],有n个像素,按照式(1)将图像矩阵x的像素的取值范围缩放到区间[0,1]并消去均值,完成对图像矩阵x的归一化处理,得到归一化处理后的图像

式中,xi为中的某一个元素;

s4-2:将中所有的缺陷类别的图像合并为一类,将中所有的合格类别的图像作为一类:

将两类图像矩阵设为和它所属的类别标记y0组合成作为一个训练样本,其中y0∈{0,1},0和1分别表示“缺陷”和“合格”类别,由“缺陷”和“合格”两个类别的训练样本组成二分类数据集,用于缺陷检测;

s4-3:将中的d个类别的缺陷图像矩阵设为和它所属的缺陷类别标记y1组合成作为一个训练样本,其中y1∈{1,2,3,...,d},每个数字代表一个缺陷类别,由d个缺陷类别的训练样本组成多分类数据集,用于缺陷分类;

对于步骤s4-2中的二分类数据集和步骤s4-3中的多分类数据集,在每个数据集中,将其它各类训练样本随机混合,用来保证训练的有效性。

进一步地,所述的步骤s5中构建的cnn二分类模型和cnn多分类模型只有s5-2、s5-3的分类数ns2不同,其余结构相同,具体结构如下:

s5-1:卷积神经网络结构从输入到输出依次为:输入层1、第一卷积层2、第一激活层3、第二卷积层4、第二激活层5、最大池化层6、第一dropout层7、第一全连接层8、批规范化层9、第三激活层10、第二dropout层11、第二全连接层12、输出层13;

s5-2:输入层1所输入的图像大小与在线预设尺寸相同,为n×n,

s5-3:第一卷积层2使用nc1个尺寸为kc1×kc1的卷积核,以步长s1对s5-2中输入图像做卷积操作,提取出图像的nc1个特征图谱,经过第一激活层3与第二卷积层4相连接;

s5-4:第一激活层3、第二激活层5和第三激活层10的激活函数选择为relu函数;

s5-5:第二卷积层4使用nc2个尺寸为kc2×kc2×nc1的卷积核,以步长s2对s5-3中的特征图谱做卷积操作,提取出该层的nc2个特征图谱,经过第二激活层5与最大池化层6相连接;

s5-7:最大池化层6的尺寸为p×p,对第二卷积层4得到的特征图谱进行二次采样,然后将输出展开成为一维向量,与第一dropout层7相连;

s5-8:第一dropout层7和第二dropout层11是在每次训练中随机断开一定百分比的连接,达到正则化的效果,防止过拟合,第一dropout层7断开连接的百分比是d1;

s5-9:第一dropout层7的输出与第一全连接层8相连,第一全连接层8中的隐含层神经元个数为ns1,输出与批规范化层9相连;批规范化层9的作用是在训练中的每批样本(batch)上,将前一层的激活值重新规范化,使每层的输入数据的分布稳定化,批规范化层9的输入经过第三激活层10,与第二dropout层11相接;

s5-10:第二dropout层11断开连接的百分比是d2,该层输出与第二全连接层12相接;

s5-12:第二全连接层12的隐含层神经元个数为ns2,ns2与cnn二分类模型或cnn多分类模型(例如,cnn二分类模型的分类数是2,则ns2=2,cnn多分类模型的分类数是d,则ns2=d)的分类数相同,该层与输出层13相接;

s5-13:输出层13是softmax分类器,选择损失函数j(θ)为

式中θ表示需要经过迭代训练求得的cnn多分类模型或cnn二分类模型的模型参数,其中θ(k)表示cnn多分类模型或cnn二分类模型判断输入为第k个类别时对应的模型参数;t(t)表示二分类数据集或多分类数据集中的第t个样本;1{}为示性函数,若括号中的表达式为真,则示性函数的函数值为1,否则为0;ns2即为分类数;m为二分类数据集或多分类数据集的训练样本数。

上述两个cnn二分类模型或cnn多分类模型的结构所选择的层、层数、顺序,能较好的实现分类效果。

进一步地,所述的步骤s8包括以下子步骤:

s8-1:对输入图像i做预处理,具体包括以下子步骤:

1)将输入的电池板图像i转换为灰度图像i1。

2)对图像i1进行核大小为kmed×kmed的中值滤波,得到图像i2。用于去除图像噪声干扰,又能相对保持图像边缘信息。

3)对图像i2做二值化操作,得到像素值xi∈{0,255}的二值图像i3。

4)对二值图像i3做先开后闭的形态学运算,结构元素是半径为r1的圆盘形,该结构元素用于去除背景区域中的高亮度杂质和电池板区域中的深色杂质,使整块电池板区域变为连通区域。

s8-2:步骤s8-1得到的图像设为ia。对ia做进一步处理,初步去除电池板图像中的背景,得到电池板的最小外接矩形区域的图像ib。具体包括以下子步骤:

1)获取图像ia所有的连通区域,设为集合s。

2)取集合s中面积最大的连通区域s。

3)获取面积最大的连通区域s的最小外接矩形的位置,在输入的电池板图像i上截取该矩形区域,得到图像ib。

s8-3:对步骤s8-2得到的图像ib做透视变换,消除由拍摄角度造成的透视问题,获得较标准的水平的矩形电池板图像ic。具体包括以下子步骤:

1)通过角点提取算法,获取图像ib中电池板的四个顶角点的位置(xcnj,ycnj)(其中j=1,2,3,4,分别表示图像的“左上”、“右上”、“左下”、“右下”角的位置。具体流程如下:

a.在图像ib的在四个顶点位置切割w×w大小的边角图像irj(其中j=1,2,3,4,分别代表图像的“左上”、“右上”、“左下”、“右下”角的位置)。

b.对图像irj做核为kmed1×kmed1的中值滤波。

c.对图像irj依次做形态学腐蚀运算(结构元素是半径为r2的圆盘形),第一形态学开运算(结构元素是长度为l1的单位行向量),第二形态学开运算(结构元素是长度为l2的单位列向量)。

d.将图像ir2左右翻转,ir3上下翻转,ir4左右翻转并上下翻转,使所有irj的边角朝向一致。

e.对图像irj做核为kmed2×kmed2的中值滤波和二值化操作,得到像素值二值图像irbj。

f.对图像irbj从上到下逐行统计均值avea。判断avea是否大于某个预设的阈值h0,若是,获取当前行号htj,并进行步骤e;否则进行步骤f。

g.对图像irbj从左到右逐列统计均值aveb。判断aveb是否大于某个预设的阈值h0,若是,获取当前列号hlj,并进行步骤f;否则进行步骤g。

h.根据(hlj,htj)求得该角点在图像ib中的坐标(xcnj,ycnj)。

2)求解下述方程,得到透视变换矩阵u。

其中,a,b,c,d,e,f,g,h是待求的变换矩阵u的元素;(xcnj,ycnj)(其中j=1,2,3,4)是透视变换后,图像ic中电池板四个顶角点的位置,预先指定为图像ib的四个顶点的坐标。

3)对图像ib的每个像素的坐标(xib,yib)进行下式的求解,得到每个像素变换后对应的坐标(xib,yib),再经过插值运算,最终求得透视变换后的图像ic。

其中w=gxib+hyib+1。

s8-4:进一步去除步骤s8-3得到的图像ic中的背景,得到水平放置、不含背景、矩形的电池板图像id。具体包括以下子步骤:

1)对图像ic进行步骤s8-1所述的预处理操作,得到处理后的图像,设为ic1。

2)对图像ic1从上到下逐行统计均值ave1。判断ave1是否大于某个预设的阈值h1,若是,获取当前行号ht,并进行步骤e;否则进行步骤2)。

3)对图像ic1从左到右逐列统计均值ave2。判断ave2是否大于某个预设的阈值h1,若是,获取当前列号hl,并进行步骤f;否则进行步骤3)。

4)对图像ic1从下到上逐行统计均值ave3。判断ave3是否大于某个预设的阈值h1,若是,获取当前行号hb,并进行步骤e;否则进行步骤4)。

5)对图像ic1从右到左逐列统计均值ave4。判断ave4是否大于某个预设的阈值h1,若是,获取当前列号hr,并进行步骤f;否则进行步骤5)。

6)根据图像ic中电池板区域距离图像边界的上边距ht,左边距hl,下边距hb和右边距hr,在图像ic上截取出矩形的电池板区域,得到图像id。

每个像素二值化后,只有0或1两个值,对某行元素取的均值将介于0和1之间。上述阈值h0和h1表示了值为1的元素所占比例。该比例是通过实验测得的经验数值,具体情形不同(如光照不同的条件下)会有改变。

本发明方法中离线阶段和在线阶段的图像预设尺寸相同,该预设尺寸过大,则远远超出计算机的处理能力;尺寸过小,则丢失图像的特征信息,无法实现有效的识别。尺寸选取也与原始图像的分辨率有关。

实施例1

本实施例一种基于卷积神经网络的太阳能电池板缺陷识别方法,包括模型离线训练和在线检测两个阶段。

所述的模型离线训练包括以下步骤:

s1:收集太阳能电池板的合格图像和多类缺陷图像,并完成分类。缺陷为开焊、断栅、阴影、隐裂共4类,获得的样本图片数分别为14、32、72、10,除此以外,还有9张未归类的缺陷样本图片。合格的样本图片数为1500。

s2:对步骤s1得到的各类别图像进行数据平衡,使各类别的样本数目充足且具有大约相同数量的样本,以便于模型训练:对于数量较少的四类缺陷图像,采用左右翻转、上下翻转、180°旋转,并对原图像和该3种变换后的图像进行随机的平移和伸缩形变(平移量和边长伸缩量的范围均为图像边长的8%),得到原来8倍的数目(4类缺陷的样本图片数分别变为112,256,576,80),实现样本量的扩充;对于数量丰富的合格图像,采用随机欠采样方式,最终获得的各缺陷类别图像的数目充足且数量相近。合格类别图像的数目与全部缺陷类别图像的数目相近。

s3:将步骤s2获得的各类别图像转为预先设定尺寸为120×120的灰度图像,得到的图像设为图像矩阵x;

s4:由步骤s3得到的图像矩阵x,经过归一化数据处理后,生成由所有缺陷样本、合格样本组成的二分类数据集,用于缺陷检测;和由多类缺陷组成的多分类数据集,用于缺陷分类。二分类数据集和多分类数据集的结构参见图3;

s5:通过卷积神经网络构建用于缺陷检测的cnn二分类模型和用于缺陷分类的cnn多分类模型;

s6:在步骤s4所述的二分类数据集上训练步骤s5所述的cnn二分类模型,在步骤s4所述的多分类数据集上训练步骤s5所述的cnn多分类模型。训练方式为小批量梯度下降,一个batch的尺寸为25,训练中的优化器选用adam(adam的参数设置为学习率lr=0.001,beta1=0.9,beta2=0.999,epsilon=1e-08,其中beta1、beta2为介于0到1的数,epsilon为防止被零除而设置的一个大于零的小数),训练算法是反向传播算法,当达到预设的迭代轮数(cnn二分类模型迭代11轮,cnn多分类模型迭代15轮)时,训练结束。将训练完成的cnn二分类模型和cnn多分类模型保存到硬盘中;

所述的在线检测包括以下步骤:

s7:获取待识别的太阳能电池板图像,为6×10个小电池板组成的拼装电池板图像,设为i;

s8:对步骤s7所述的电池板图像i进行图像预处理,得到水平放置、不含背景、矩形的电池板图像id;

s9:若步骤s8得到的预处理后的电池板图像id是由6×10个小电池板组成的拼装电池板图像,则将其分割为6×10个单独的小电池板图像,并记录每个小电池板在大电池板上的位置;若id已经是单独的一块电池板,则无需分割,直接作为数目为1的小电池板图像进入步骤s10;

s10:将步骤s9的若干小电池板图像(1个或6×10个),全部转为预设尺寸为120×120的灰度图像,并进行步骤s4-1所述的归一化处理;

s11:缺陷检测。将步骤s10得到的所有归一化处理后的灰度图像输入到由步骤s6得到的训练完成的cnn二分类模型,进行特征提取和特征分类,输出该图像属于合格类别的概率;若概率高于设定的缺陷阈值0.5,则判断为合格的电池板图像;否则判断为存在缺陷的电池板图像,并进行步骤s12;

s12:缺陷分类。将步骤s11中判断为存在缺陷的电池板图像输入到由步骤s6得到的训练完成的cnn多分类模型,进行特征提取和特征分类,得到该图像属于各缺陷类别的概率,将其中最大的概率值所属的缺陷类别作为判定的缺陷类别;

s13:对步骤s9的每个小电池板图像都进行步骤s10~s12,并在大电池板图像上标记存在缺陷的小电池板的位置和缺陷类别,输出检测结果。

所述的步骤s4包括以下子步骤:

s4-1:对于图像矩阵x做归一化处理。图像矩阵x的像素的取值范围为[0,255],需要将该范围缩放到区间[0,1],并消去均值。对于有n个像素的图像矩阵x,缩放和均值消去用公式表达为:

式中为变换后的图像矩阵,xi为中的某一个元素。

s4-2:将中所有的缺陷类别的图像合并为一类,将中所有的合格类别的图像作为一类。将这些图像矩阵设为和它所属的类别标记y0组合成作为一个训练样本。其中y0∈{0,1},0和1分别表示“缺陷”和“合格”类别。由“缺陷”和“合格”两个类别的训练样本组成二分类数据集,用于缺陷检测。其中训练集占样本数的70%,测试集占样本数的30%。

s4-3:将中的4个类别的缺陷图像矩阵设为和它所属的缺陷类别标记y1组合成作为一个训练样本。其中y1∈{1,2,3,4},每个数字代表一个缺陷类别。由4个缺陷类别的训练样本组成多分类数据集,用于缺陷分类。其中训练集占样本数的68%,测试集占样本数的32%。

s4-4:对于步骤s4-2中的二分类数据集和步骤s4-3中的多分类数据集,在每个数据集中,将各类别的训练样本随机混合,用来保证训练的有效性。

进一步地,所述的步骤s5中构建的cnn二分类模型和cnn多分类模型只有s5-2、s5-3的分类数ns2不同,其余结构相同。具体结构如下:

s5-1:从模型的输入到输出,结构依次为:输入层1、第一卷积层2、第一激活层3、第二卷积层4、第二激活层5、最大池化层6、第一dropout层7、第一全连接层8、批规范化层9、第三激活层10、第二dropout层11、第二全连接层12、输出层13。

s5-2:输入层1所输入的图像大小为120×120。

s5-3:第一卷积层2使用32个尺寸为8×8的卷积核,以步长为1对s5-2中输入图像做卷积操作,提取出图像的32个特征图谱,经过第一激活层3,与第二卷积层4相连接。

s5-4:第一激活层3、第二激活层5和第三激活层10的激活函数选择为relu函数。

s5-5:第二卷积层4使用32个尺寸为8×8×32的卷积核,以步长为1对s5-3中的特征图谱做卷积操作,提取出该层的32个特征图谱,经过第二激活层5与最大池化层6相连接。

s5-7:最大池化层6的尺寸为4×4,对第二卷积层4得到的特征图谱进行二次采样。然后将输出展开成为一维向量,与第一dropout层7相连。

s5-8:第一dropout层7和第二dropout层11是在每次训练中随机断开一定百分比的连接,达到正则化的效果,防止过拟合。第一dropout层7断开连接的百分比是50%。

s5-9:第一dropout层7的输出与第一全连接层8相连。第一全连接层8的隐含层神经元个数为128,输出与批规范化层9相连。

s5-10:批规范化层9的作用是在训练中的每批样本(batch)上,将前一层的激活值重新规范化,使每层的输入数据的分布稳定化。该层的输入经过第三激活层10,与第二dropout层11相接。

s5-11:第二dropout层11断开连接的百分比是50%。该层输出与第二全连接层12相接。

s5-12:第二全连接层12的隐含层神经元个数为ns2。cnn二分类模型中ns2=2,cnn多分类模型中ns2=4。该层与输出层13相接。

s5-13:输出层13是softmax分类器,选择损失函数j(θ)为

式中θ表示需要经过迭代训练求得的cnn多分类模型或cnn二分类模型的模型参数,其中θ(k)表示cnn多分类模型或cnn二分类模型判断输入为第k个类别时对应的模型参数;t(t)表示二分类数据集或多分类数据集中的第t个样本;1{}为示性函数,若括号中的表达式为真,则示性函数的函数值为1,否则为0;ns2即为分类数;m为二分类数据集或多分类数据集的训练样本数。

所述的步骤s8包括以下子步骤:

s8-1:对输入图像i做预处理。具体包括以下子步骤:

1)将输入的电池板图像i转换为灰度图像i1。

2)对图像i1进行核大小为5×5的中值滤波,得到图像i2。用于去除图像噪声干扰,又能相对保持图像边缘信息。

3)对图像i2做二值化操作,得到像素值xi∈{0,255}的二值图像i3。

4)对二值图像i3做先开后闭的形态学运算,结构元素是半径为20的圆盘形。用于去除背景区域中的高亮度杂质和电池板区域中的深色杂质,使整块电池板区域变为连通区域。

s8-2:步骤s8-1得到的图像设为ia。对ia做进一步处理,初步去除电池板图像中的背景,得到电池板的最小外接矩形区域的图像ib。具体包括以下子步骤:

1)获取图像ia所有的连通区域,设为集合s。

2)取集合s中面积最大的连通区域s。

3)获取区域s的最小外接矩形的位置,在输入图像i上截取该矩形区域,得到图像ib。

s8-3:对步骤s8-2得到的图像ib做透视变换,消除由拍摄角度造成的透视问题,获得较标准的水平的矩形电池板图像ic。具体包括以下子步骤:

1)通过角点提取算法,获取图像ib中电池板的四个顶角点的位置(xcnj,ycnj)(其中j=1,2,3,4,分别表示图像的“左上”、“右上”、“左下”、“右下”角的位置。具体流程如下:

a.在图像ib的在四个顶点位置切割140×140大小的边角图像irj(其中j=1,2,3,4,分别代表图像的“左上”、“右上”、“左下”、“右下”角的位置)。

b.对图像irj做卷积核为5×5的中值滤波。

c.对图像irj依次做形态学腐蚀运算(结构元素是半径为20的圆盘形),第一形态学开运算1(结构元素是长度为50的单位行向量),第二形态学开运算2(结构元素是长度为50的单位列向量)。

d.将图像ir2左右翻转,ir3上下翻转,ir4左右翻转并上下翻转,使所有irj的边角朝向一致。

e.对图像irj做核为5×5的中值滤波和二值化操作,得到像素值二值图像irbj。

f.对图像irbj从上到下逐行统计均值avea。判断avea是否大于某个预设的阈值0.005,若是,获取当前行号htj,并进行步骤e;否则进行步骤f。

g.对图像irbj从左到右逐列统计均值aveb。判断aveb是否大于某个预设的阈值0.005,若是,获取当前列号hlj,并进行步骤f;否则进行步骤g。

h.根据(hlj,htj)求得该角点在图像ib中的坐标(xcnj,ycnj)。

2)求解下述方程,得到透视变换矩阵u。

其中,a,b,c,d,e,f,g,h是待求的变换矩阵u的元素;(xcnj,ycnj)(其中j=1,2,3,4)是透视变换后,图像ic中电池板四个顶角点的位置,预先指定为图像ib的四个顶点的坐标。

3)对图像ib的每个像素的坐标(xib,yib)进行下式的求解,得到每个像素变换后对应的坐标(xib,yib),再经过插值运算,最终求得透视变换后的图像ic。

其中w=gxib+hyib+1。

s8-4:进一步去除步骤s8-3得到的图像ic中的背景,得到水平放置、不含背景、矩形的电池板图像id。具体包括以下子步骤:

1)对图像ic进行步骤s8-1所述的预处理操作,得到处理后的图像,设为ic1。

2)对图像ic1从上到下逐行统计均值ave1。判断ave1是否大于某个预设的阈值0.05,若是,获取当前行号ht,并进行步骤e;否则进行步骤2)。

3)对图像ic1从左到右逐列统计均值ave2。判断ave2是否大于某个预设的阈值0.05,若是,获取当前列号hl,并进行步骤f;否则进行步骤3)。

4)对图像ic1从下到上逐行统计均值ave3。判断ave3是否大于某个预设的阈值0.05,若是,获取当前行号hb,并进行步骤e;否则进行步骤4)。

5)对图像ic1从右到左逐列统计均值ave4。判断ave4是否大于某个预设的阈值0.05,若是,获取当前列号hr,并进行步骤f;否则进行步骤5)。

6)根据图像ic中电池板区域距离图像边界的上边距ht,左边距hl,下边距hb和右边距hr,在图像ic上截取出矩形的电池板区域,得到图像id。

下面通过模型在数据集上的实验结果,说明本发明应用于太阳能电池板缺陷检测和分类的准确性。

cnn二分类模型在二分类数据集上的训练过程的损失函数曲线(参见图5(a))和准确率曲线(参见图5(b)),训练的试验结果如下表1所示。观察损失函数曲线可以看出,损失函数在训练集上是逐轮降低的,最终收敛,第11轮降为0.0429,在测试集上则出现了震荡现象。经过11轮迭代,模型在训练集上达到了100%的准确度,在测试集上也达到了高达94.91%的准确度。

表1cnn二分类模型的试验结果

cnn多分计类模型在多分类数据集上的训练过程的损失%函数曲线(参见图6(a))和准确率曲线(参见图6(b)),训练的试验结果如下表2所示。观察损失函数曲线可以看出,损失函数在训练集上是逐轮降低的,最终收敛,第15轮降为0.023;在测试集上,第15轮降低为0.5252。实验结果表明,在已选好的参数的模型的训练下,经过15轮迭代,模型在训练集上达到了100%的准确度,在测试集上也达到了高达95.74%的准确度。以上结果证明本发明的检测方法具有较高的缺陷检测和分类准确率。

表2cnn多分类模型的试验结果

应用本发明的技术原理,开发了基于pyqt5的太阳能电池板缺陷检测系统的图形用户界面(参见附图7)。操作流程如下:

1、点击界面左上角的“selectimage”按钮,选择一张6×10个小电池板组成的拼装电池板图像,作为原始输入图像。

2、点击界面上方“detect”按钮,软件自动载入在硬盘中保存的cnn二分类模型和cnn多分类模型文件,进行所述的“在线检测”阶段,即步骤s7~s13的处理流程。

3、“在线检测”阶段处理完成后,缺陷概率以图形的方式显示在界面的右上方,其中判断为缺陷的小电池板区域用橘黄色表示;另外,判断为缺陷的位置用红色方框标注在界面左上方的输入图像上;缺陷分类结果以表格的形式显示在界面下方,行名为某类缺陷,列名为缺陷的位置,最高概率的缺陷类别使用彩色进行标注;程序的处理过程则在界面右下方的文本框中显示。

结果显示,输入的拼接电池板图像上的60块小电池板中,共有16块小电池板被判断为存在缺陷,且均判断为“断栅”缺陷类型,与真正的缺陷位置和类型相符。

该软件的成功开发和应用,证明本发明的一种基于卷积神经网络的太阳能电池板缺陷识别方法具有可行性。

本发明未尽事宜为公知技术。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1