一种基于改进的dcgan的太阳能电池板
缺陷样本生成方法
技术领域
1.本发明属于计算机视觉技术领域,具体为一种基于改进的dcgan的太阳能电池板缺陷样本生成方法。
背景技术:
2.太阳能作为一种绿可再生能源,取之不尽、用之不竭,越来越受到各个能源领域的关注,将太阳能这种无形的资源充分利用起来,将具有深刻的现实意义。在光伏发电过程中,最核心的元件是太阳能电池,若其表面质量达不到标准,其使用寿命和发电效率将会严重下滑。然而多晶硅太阳能电池板的生产工艺复杂,其表面存在着许多不规则的纹理背景,与此同时还存在着些许实心黑、阴影、开焊等缺陷。这些缺陷的存在会极大地影响太阳能电池板的发电效率和使用寿命。在检测太阳能电池板的缺陷时,由于不规则纹理背景的存在,缺陷很难被检测和定位出来。
3.近年来,随着计算机技术的发展,用计算机视觉方法来代替传统的检测方法以实现太阳能电池缺陷的实时识别与定位日趋成熟。深度学习作为一种以人工神经网络为基础、采用深层神经网络模型并配合相应的训练方式的特征学习方法在检测领域取得了突破性的进展。将深度学习的理论应用在计算机视觉中,对于太阳能电池板缺陷的检测效果更佳,因此越来越多基于深度学习的检测算法在太阳能电池板的缺陷检测中得到应用。
4.然而,深度学习模型的优势依赖于大量的数据集,在对缺陷检测模型进行训练前,依靠人工进行训练数据集的采集会导致缺陷图像数量极少,导致模型出现过拟合的问题,进而导致缺陷检测模型的准确率极低。因此,对缺陷电池图像的数据量进行扩充来缓解缺陷数据少的问题,进一步解决模型过拟合、提高模型的泛化能力极为重要。
5.传统的数据扩充方法有基于几何变化中的翻转、裁剪、添加噪声,颜空间变换中的消除光照、彩差异,模糊化等,但这些数据扩充方法不能从根本上解决问题。更先进且有效的方法是利用生成模型生成新的样本或者生成新的特征。生成模型是指通过对数据集进行训练,根据训练样本的数据分布生成期望的数据分布样本。
6.目前生成模型中最具代表的是生成对抗网络gan,它可为训练样本提供更多的生成图像,增加训练样本的多样性。生成对抗网络一般由一个生成器和一个判别器构成,在生成器中输入噪声最终生成图片,判别器需要将生成图片与真实图片进行二分类,二者相互博弈,在这个过程中,生成器的水平不断提高,判别器鉴别真假的能力逐渐提高。直至最后判别器无法正确区分生成器生成的图片与真实图片之间的差异,此时说明生成器可以以假乱真,达到了扩充数据集的目的。
7.近年来,很多gan的变体应运而生,比如dcgan(deep convolutional generative adversarial networks),基于dcgan结构的图像生成方法提高了图像的生成质量。但是,尽管dcgan对太阳能电池缺陷图像具有良好的生成能力,在一定程度上提升了基于gan的图像生成质量,但在训练收敛、生成图像背景细节以及缺陷完整性等方面仍然存在着明显的不足。
技术实现要素:
8.为解决现有技术中存在的问题,本发明提供一种基于改进的dcgan的太阳能电池板缺陷样本生成方法,用于解决在太阳能电池板具有复杂背景的情况下,不同尺度缺陷图像的生成。
9.为实现上述目的,本发明提供如下方案:设计一种基于改进的dcgan的太阳能电池板缺陷样本生成方法,其特征在于,该生成方法包括下述步骤:
10.步骤1:获取一定数量的同一缺陷类型的真实的太阳能电池板缺陷图片,将其进行尺寸归一化处理,得到相同分辨率的真实缺陷样本集合;
11.步骤2:设计改进的dcgan模型,所述改进的dcgan模型包括一个生成器、一个图像转换模块和两个判别器,所述生成器包括依次连接的全连接层、上采样模块和通道调整模块;生成器的输入为一维随机噪声
向量,输出为通道调整模块的输出,生成器将一维随机噪声向量生成太阳能电池板缺陷样本;生成器的全连接层用于扩展向量维度,将一维向量调整为特征图格式的四维张量;所述上采样模块包括bn层和两个上采样层,即第一上采样层和第二上采样层,bn层的输出输入到第一上采样层,第一上采样层的输出输入到第二上采样层,上采样模块将来自全连接层的特征图的通道数保持不变,分辨率提高4倍;所述通道调整模块包括第一通道调整模块和第二通道调整模块,第一通道调整模块包括依次连接的
卷积层、bn层和leaky-relu激活函数层,卷积层将来自上采样模块特征图的通道数减半,bn层加快网络的训练和收敛速度,并在一定程度上抑制了模型的梯度消失问题,leaky-relu激活函数层给经过bn层处理后所得到的所有负值赋予一个非零斜率,使得神经网络可以任意逼近任何非线性函数;第二通道调整模块包括卷积层和tanh激活函数层,该卷积层将来自第一通道调整模块的特征图的通道数变为真实缺陷样本的通道数,然后再经过tanh激活函数层的处理,得到生成器的输出;
12.图像转换模块将一张图片分割成m张分辨率相同的一个局部图片组;
13.所述两个判别器结构相同,但参数不共享,均包括一个多感受野特征提取模块、三个卷积模块、一个全连接层、一个sigmoid激活函数层,6个部分依次线性顺接;所述多感受野特征提取模块包括一个1*1卷积层、一个3*3卷积层、一个5*5卷积层,三个卷积层的步幅均为2,使特征图的长宽减倍,在每个卷积层之后均顺接bn层、relu激活函数层,缺陷样本输入到判别器后,首先分别经过多感受野特征提取模块的三组的卷积层、bn层、relu激活函数层的处理,每组的relu激活函数层均将输出输入到特征拼接层,特征拼接层将提取后的特征在通道维度上进行特征拼接,然后输入到通道注意力层,由通道注意力层输出第一尺度特征图;所述卷积模块包括依次连接的卷积层、bn层、leaky-relu激活函数层和dropout层,卷积层的卷积核大小为3*3,步长为2,作用表现在将输入特征图的通道数加倍、长宽减倍;dropout层的失活率设置为0.25,防止模型的过拟合;判别器的三个卷积模块结构相同,三者依次输出第二、三、四尺度特征图;所述全连接层将四维特征张量调整为一维向量,sigmoid激活函数层将值置于[0,1]之间;
[0014]
判别器d1对缺陷样本进行全局判别,其输入为整张缺陷样本,其输出为一个经过sigmoid激活函数层处理后的对于整张缺陷样本的二分类判别值,该值位于[0,1]之间,并且输出四个尺度的特征图;判别器d2对缺陷样本进行局部判别,其输入为整张缺陷样本经过图像转换模块处理后的局部缺陷样本组,其输出为一个包含对于各个局部缺陷样本判别
值的判别向量,向量中的元素值均位于[0,1]之间;
[0015]
步骤3:利用真实缺陷样本集合和一维随机噪声向量训练步骤2中改进的dcgan模型,具体包括如下步骤:
[0016]
步骤3.1:从真实缺陷样本集合中随机不重复的选取k个样本作为一个训练样本集,由真实缺陷样本集合得到n个训练样本集;选取k个不重复的服从高斯分布的一维随机噪声向量,得到一个随机噪声向量集;一个训练样本集对应一个随机噪声向量集,n个训练样本集对应n个不同的随机噪声向量集;
[0017]
将步骤3.2:初始化步骤2中的改进的dcgan模型,卷积层的权重初始值的设置符合均值为0、方差为0.02的正态分布;bn层的权重初始值的设置符合均值为1、方差为0.02的正态分布;初始偏置设置为0;将一个随机噪声向量集中的一个一维随机噪声向量z输入到生成器中,依次经过全连接层、上采样模块和通道调整模块处理,输出生成缺陷样本g(z);由一个随机噪声向量集得到一个生成缺陷样本集,一个生成缺陷样本集与相应的训练样本集对应;
[0018]
步骤3.3:将一个训练样本集中的一个真实缺陷样本x和由对应的随机噪声向量集得到的生成缺陷样本集中的一个生成缺陷样本g(z)分别输入到图像转换模块,分别输出一个局部真实缺陷样本组x
*
和一个局部生成缺陷样本组g(z)
*
;将真实缺陷样本x与生成缺陷样本g(z)输入到判别器d1中,分别输出对二者的判别结果以及四个尺度特征图,完成对k组样本的处理后,将所有的结果输入到判别器d1的损失函数中,利用损失函数值反向传播,更新一次判别器d1的参数;与此同时,将局部真实缺陷样本组x
*
与局部生成缺陷样本组g(z)
*
分别输入到判别器d2中,输出判别结果,完成对k组局部样本组的处理后,将所有的判别向量输入到判别器d2的损失函数中,根据损失函数值反向传播,更新一次判别器d2的参数;
[0019]
判别器d1的损失函数包括判别器d1与生成器g的对抗损失和四个尺度特征损失:
[0020][0021][0022]
其中,x表示一个训练样本集,x~x表示真实缺陷样本x为训练样本集x中的一个;z表示一个与训练样本集x对应的服从高斯分布的随机噪声向量集,z~z表示一维随机噪声向量z为随机噪声向量集z中的一个;d1(x)表示判别器d1对真实缺陷样本x的判别值,以此类推;1表示判别器d1的真实目标值;e
x~x
[log d1(x)]表示函数log d1(x)在训练样本集x中的不同真实缺陷样本下的取值的平均值,以此类推;
[0023]
所述四个尺度特征损失可表示为:
[0024][0025]
其中,分别表示判别器d1对第k个生成缺陷样本、第k个真实缺陷样本输出的分辨率为i的特征图;
[0026]
判别器d2的损失函数为判别器d2与生成器g的对抗损失:
[0027][0028]
其中,x1表示局部真实缺陷样本组集合,x
*
~x1表示局部真实缺陷样本组x
*
为集合x1中的一个;d2(x
*
)表示判别器d2对局部真实缺陷样本组x
*
的判别向量,以此类推;i表示判别器d2的真实目标向量,其为m
×
1维度、元素均为1的向量;
[0029]
步骤3.4:冻结判别器d1和判别器d2的参数,将k组的真实缺陷样本x与生成缺陷样本g(z)分别输入到更新参数后的判别器d1中,输出对生成缺陷样本g(z)的判别结果及四尺度特征图,同时将k个局部生成缺陷样本组g(z)
*
输入到参数更新后的判别器d2中,输出对k个g(z)
*
的判别结果;将判别器d1对生成缺陷样本g(z)的判别结果及四尺度特征图和判别器d2对g(z)
*
的判别结果带入到生成器的损失函数lg中,根据损失函数值反向传播,使生成器更新一次参数,一个训练样本集的训练完成;
[0030]
生成器g的损失函数lg包括生成器g与判别器d1的对抗损失、四尺度特征损失以及生成器g与判别器d2的对抗损失:
[0031][0032]
其中,d1(g(z))表示判别器d1对生成缺陷样本g(z)的判别值,d2(g(z)
*
)表示判别器d2对局部生成缺陷样本组g(z)
*
的判别向量;
[0033]
步骤3.5:将上一个训练样本集的训练完成时的网络参数值作为下一个训练样本集开始训练时的网络模型的初始值,参照步骤3.2-步骤3.4的过程,依次完成n个训练样本集的训练,即完成一次网络模型的迭代训练;
[0034]
步骤3.6:重复步骤3.1-3.5的过程,观察每一次网络模型迭代训练完成时的判别器d1、判别器d2及生成器g的损失函数值,当三者的损失函数值均收敛稳定,保存网络模型权重参数,获得训练好的生成网络模型;
[0035]
步骤4:将一个服从高斯分布的一维随机噪声向量输入到步骤3中训练好的生成网络模型中,生成器输出一张生成缺陷图像。
[0036]
与现有技术相比,本发明有益效果在于:本发明太阳能电池板缺陷样本生成方法设计的改进型dcgan,利用全局判别器d1与局部判别器d2的双判别器结构对不同区域图像的判别,提高了生成样本细节的清晰度;在两个判别器结构中加入多感受野特征提取模块,实现了对输入样本中不同尺度缺陷特征的提取,确保了生成样本中缺陷的完整性;联合损失函数在参数更新时提供额外的多尺度特征图对比,加快了网络的训练和收敛速度,提高了生成器的生成能力。
附图说明
[0037]
为了更清楚地说明本发明实施例中的目的和技术方案,下面将对实施例中所需要使用的附图作简单的介绍,其中:
[0038]
图1为本发明基于改进的dcgan的太阳能电池板缺陷样本生成方法一种实施例的生成器结构示意图;
[0039]
图2为本发明基于改进的dcgan的太阳能电池板缺陷样本生成方法一种实施例的生成器结构中上采样模块结构示意图;
[0040]
图3为本发明基于改进的dcgan的太阳能电池板缺陷样本生成方法一种实施例的生成器结构中通道调整模块结构示意图;
[0041]
图4为本发明基于改进的dcgan的太阳能电池板缺陷样本生成方法一种实施例的判别器结构示意图;
[0042]
图5为本发明基于改进的dcgan的太阳能电池板缺陷样本生成方法一种实施例的判别器结构中多感受野特征提取模块结构示意图;
[0043]
图6为本发明基于改进的dcgan的太阳能电池板缺陷样本生成方法一种实施例的判别器结构中卷积模块结构示意图;
[0044]
图7为本发明基于改进的dcgan的太阳能电池板缺陷样本生成方法一种实施例的改进的dcgan的训练原理示意图;
[0045]
图8为本发明基于改进的dcgan的太阳能电池板缺陷样本生成方法一种实施例的四个尺度特征损失求解原理示意图。
具体实施方式
[0046]
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整的描述。
[0047]
本发明提供一种基于改进的dcgan的太阳能电池板缺陷样本生成方法,用于解决在太阳能电池板具有复杂背景的情况下,不同尺度缺陷图像的生成。
[0048]
为使本发明的上述目的、特征和优点能够更加明显易懂,下面将结合附图和具体实施方式对本发明作进一步详细的说明。
[0049]
本发明提供一种基于改进的dcgan的太阳能电池板缺陷样本生成方法,该生成方法包括下述步骤:
[0050]
步骤1:获取一定数量的同一缺陷类型的真实的太阳能电池板缺陷图片,将其进行尺寸归一化处理,得到相同分辨率的真实缺陷样本集合。
[0051]
步骤2:设计改进的dcgan模型,所述改进的dcgan模型包括一个生成器、一个图像转换模块和两个判别器,所述生成器包括依次连接的全连接层、上采样模块和通道调整模块。生成器的结构如图1所示,生成器的输入为一维随机噪声向量,输出为通道调整模块的输出,生成器将一维随机噪声向量生成太阳能电池板缺陷样本;生成器的全连接层(linear and resize)用于扩展向量维度,将一维向量调整为特征图格式的四维张量;所述上采样模块如图2所示,包括bn(batchnorm,批规范化)层和两个上采样(upsample)层,即第一上采样层和第二上采样层,bn层的输出输入到第一上采样层,第一上采样层的输出输入到第二上采样层,上采样模块将来自全连接层的特征图的通道数保持不变,分辨率提高4倍;所述通道调整模块如图3所示,包括第一通道调整模块和第二通道调整模块,第一通道调整模块包括依次连接的卷积层(conv2d)、bn(batchnorm)层和leaky-relu激活函数层,卷积层将来自上采样模块特征图的通道数减半,bn层加快网络的训练和收敛速度,并在一定程度上抑制了模型的梯度消失问题,leaky-relu激活函数层给经过bn层处理后所得到的所有负值赋予一个非零斜率,使得神经网络可以任意逼近任何非线性函数;第二通道调整模块包括卷积
层(conv2d)和tanh激活函数层,该卷积层将来自第一通道调整模块的特征图的通道数变为真实缺陷样本的通道数,然后再经过tanh激活函数层的处理,得到生成器的输出。tanh激活函数输出以0为中心,区间为[-1,1],有边界的激活函数可以让模型更快的学习。
[0052]
图像转换模块将一张图片分割成m张分辨率相同的一个局部图片组,作为一种实施例,图像转换模块将一张320*320分辨率的图片分割成一个16张80*80分辨率的局部图片组。
[0053]
判别器的结构如图4所示,判别器用于区分经过生成器生成的缺陷样本与真实的缺陷样本,当判别器无法区分两者时,生成器达到生成缺陷样本的目的。
[0054]
所述两个判别器结构相同,但参数不共享,均包括一个多感受野特征提取模块、三个卷积模块、一个全连接层、一个sigmoid激活函数层,6个部分依次线性顺接;所述多感受野特征提取模块包括一个1*1卷积层、一个3*3卷积层、一个5*5卷积层(即1*1_conv、3*3_conv、5*5_conv),三个卷积层的步幅均为2,使特征图的长宽减倍,在每个卷积层之后均顺接bn层、relu激活函数层,缺陷样本输入到判别器后,首先分别经过多感受野特征提取模块的三组的卷积层、bn层、relu激活函数层的处理,每组的relu激活函数层均将输出输入到特征拼接(concat)层,特征拼接层将提取后的特征在通道维度上进行特征拼接,然后输入到通道注意力(channel attention)层,由通道注意力(channel attention)层输出第一尺度特征图。
[0055]
通道注意力(channel attention)层的输入是一个h
×w×
c的特征f(h
×
w代表像素大小),先将特征f分别进行一个空间的全局最大池化和平均池化得到两个1
×1×
c的通道描述。接着,再将它们分别送入一个两层的神经网络,第一层神经元个数为c/r,激活函数为relu,第二层神经元个数为c。这个两层的神经网络是共享的。然后,再将得到的两个特征相加后经过一个sigmoid激活函数得到权重系数mc。最后,mc
×
输入的特征f即可得到缩放后的新特征。
[0056]
如图5所示,多感受野特征提取模块结构利用三个不同尺度的卷积层(1*1_conv、3*3_conv、5*5_conv)提取特征,将提取后的特征在通道维度上进行特征拼接(concat)后输入到通道注意力(channel attention)层,输出第一尺度特征图;三个不同尺度的卷积层提取特征具体操作为对输入缺陷样本分别进行1*1、3*3、5*5的卷积操作,三个卷积层的步幅均为2,使特征图的长宽减倍,每个卷积操作后依次连接bn层、relu激活函数层,分别得到特征f1、f2、f3,并将三者在通道维度上进行特征拼接,得到f。采用不同卷积操作的作用表现在对缺陷样本的特征在不同尺度上进行表达,捕获缺陷生成的所有空间信息;多感受野特征不同通道特征的重要性是不同的,通道注意力探索不同特征通道之间的相互依赖关系,强调重要特征信息,抑制噪声信息,使判别器的判别能力更强大。
[0057]
所述卷积模块如图6所示,包括依次连接的卷积层(conv2d)、bn层(batchnorm)、leaky-relu激活函数层和dropout层,卷积层的卷积核大小为3*3,步长为2,作用表现在将输入特征图的通道数加倍、长宽减倍;dropout层的失活率设置为0.25,防止模型的过拟合;判别器的三个卷积模块依次输出第二、三、四尺度特征图;所述全连接层(resize and linear)将四维特征张量调整为一维向量,sigmoid激活函数层将值置于[0,1]之间。
[0058]
判别器d1对缺陷样本进行全局判别,其输入为整张缺陷样本,其输出为一个经过sigmoid激活函数层处理后的对于整张缺陷样本的二分类判别值,该值位于[0,1]之间,并
且输出四个尺度的特征图;判别器d2对缺陷样本进行局部判别,其输入为整张缺陷样本经过图像转换模块处理(例如将320*320分辨率的缺陷样本分割成16张80*80分辨率的缺陷样本)后的局部缺陷样本组,其输出为一个包含对于各个局部缺陷样本判别值的判别向量,向量中的元素值均位于[0,1]之间;
[0059]
步骤3:利用真实缺陷样本集合和随机噪声向量训练步骤2中改进的dcgan模型,具体包括如下步骤:
[0060]
步骤3.1:从真实缺陷样本集合中随机不重复的选取k个(k=6)样本作为一个训练样本集,由真实缺陷样本集合得到n个训练样本集;选取k个不重复的服从高斯分布的一维随机噪声向量,得到一个随机噪声向量集;一个训练样本集对应一个随机噪声向量集,n个训练样本集对应n个不同的随机噪声向量集。
[0061]
将步骤3.2:初始化步骤2中的改进的dcgan模型,卷积层的权重初始值的设置符合均值为0、方差为0.02的正态分布;bn层的权重初始值的设置符合均值为1、方差为0.02的正态分布;初始偏置设置为0。将一个随机噪声向量集中的一个一维随机噪声向量z输入到生成器中,依次经过全连接层、上采样模块和通道调整模块处理,输出生成缺陷样本g(z);由一个随机噪声向量集得到一个生成缺陷样本集,一个生成缺陷样本集与相应的训练样本集对应。
[0062]
步骤3.3:将一个训练样本集中的一个真实缺陷样本x和由对应的随机噪声向量集得到的生成缺陷样本集中的一个生成缺陷样本g(z)分别输入到图像转换模块,分别输出一个局部真实缺陷样本组x
*
和一个局部生成缺陷样本组g(z)
*
;将真实缺陷样本x与生成缺陷样本g(z)输入到判别器d1中,分别输出对二者的判别结果以及四个尺度特征图,完成对k组样本(一组一个真实缺陷样本、一个生成缺陷样本)的处理后,将所有的结果输入到判别器d1的损失函数中,利用损失函数值反向传播,更新一次判别器d1的参数;与此同时,将局部真实缺陷样本组x
*
与局部生成缺陷样本组g(z)
*
分别输入到判别器d2中,输出判别结果,完成对k组局部样本组(一组样本组为一个局部真实缺陷样本组、一个局部生成缺陷样本组)的处理后,将所有的判别向量输入到判别器d2的损失函数中,根据损失函数值反向传播,完成一次判别器d2的参数更新;
[0063]
判别器d1的损失函数包括判别器d1与生成器g的对抗损失和四个尺度特征损失:
[0064][0065]
其中,x表示一个训练样本集,x~x表示真实缺陷样本x为训练样本集x中的一个;z表示一个与训练样本集x对应的服从高斯分布的随机噪声向量集,z~z表示一维随机噪声向量z为随机噪声向量集z中的一个;d1(x)表示判别器d1对真实缺陷样本x的判别值,以此类推;1表示判别器d1的真实目标值;e
x~x
[log d1(x)]表示函数log d1(x)在训练样本集x中的不同真实缺陷样本下的取值的平均值,以此类推;
[0066]
所述四个尺度特征损失可表示为:
[0067][0068]
其中,分别表示判别器d1对第k个生成缺陷样本(即一个g(z))、第k个真实缺陷样本(即一个x)输出的分辨率为i的特征图,如图8所示,当i=160时,对应即生成缺陷样本与对应的真实缺陷样本在尺度为160*160的特征图之间的损失,以此类推。
[0069]
判别器d2的损失函数为判别器d2与生成器g的对抗损失:
[0070][0071]
其中,x1表示局部真实缺陷样本组集合,x
*
~x1表示局部真实缺陷样本组x
*
为集合x1中的一个;d2(x
*
)表示判别器d2对局部真实缺陷样本组x
*
的判别向量,以此类推;i表示判别器d2的真实目标向量,其为m
×
1维度、元素均为1的向量。
[0072]
步骤3.4:冻结判别器d1和判别器d2的参数,将k组的真实缺陷样本x与生成缺陷样本g(z)分别输入到更新参数后的判别器d1中,输出对生成缺陷样本g(z)的判别结果及四尺度特征图,同时将k个局部生成缺陷样本组g(z)
*
输入到参数更新后的判别器d2中,输出对k个g(z)
*
的判别结果;将判别器d1对生成缺陷样本g(z)的判别结果及四尺度特征图和判别器d2对g(z)
*
的判别结果带入到生成器的损失函数lg中,根据损失函数值反向传播,使生成器更新一次参数,一个训练样本集的训练完成;
[0073]
生成器g的损失函数lg包括生成器g与判别器d1的对抗损失、四尺度特征损失以及生成器g与判别器d2的对抗损失:
[0074][0075]
其中,d1(g(z))表示判别器d1对生成缺陷样本g(z)的判别值,d2(g(z)
*
)表示判别器d2对局部生成缺陷样本组g(z)
*
的判别向量。
[0076]
步骤3.5:将上一个训练样本集的训练完成时的网络参数值作为下一个训练样本集开始训练时的网络模型的初始值,参照步骤3.2-步骤3.4的过程,依次完成n个训练样本集的训练,即完成一次网络模型的迭代训练。
[0077]
步骤3.6:重复步骤3.1-3.5的过程,观察每一次网络模型迭代训练完成时的判别器d1、判别器d2及生成器g的损失函数值,当三者的损失函数值均收敛稳定(即损失函数曲线的斜率不变),保存网络模型权重参数,获得训练好的生成网络模型。
[0078]
步骤4:将一个服从高斯分布的一维随机噪声向量输入到步骤3中训练好的生成网络模型中,生成器输出一张生成缺陷图像。
[0079]
判别器d1、判别器d2及生成器g根据各自损失函数值反向传播更新一次参数所采用的反向传播优化器为adam优化器,学习率为0.0002,一阶动量项为0.5,二阶动量项为0.999。
[0080]
本发明改进的dcgan模型的训练原理如图7所示,将随机噪声向量(1*100)作为生成器的输入,并将生成的缺陷样本与真实缺陷样本作为判别器d1的输入,将经过图像转换
后的生成局部缺陷样本组与真实局部缺陷样本组作为判别器d2的输入进行训练。基于gan的图像生成若仅用对抗损失函数往往会出现训练不稳定、梯度消失等问题,进一步降低模型的生成能力。为了提升本发明中基于改进dcgan的太阳能电池板缺陷样本生成模型的生成能力,本发明基于联合损失函数训练模型,联合损失函数l为对抗损失函数l
adv
和多尺度特征损失函数l
msf
之和。
[0081]
本发明在实施例中的实验是基于pytorch框架的python编写实现,计算机系统配置为:win1064-bit系统,intel core i7-11th cpu,nvidia 3060 gpu,实验ide采用pycharm编辑器。
[0082]
本发明太阳能电池板缺陷样本生成方法的生成数据的质量由psnr和ssim两个评价指标来评判。psnr是峰值信噪比,它是最普遍和使用最为广泛的一种图像客观评价指标,它是基于对应像素点间的误差,即基于误差敏感的图像质量评价,psnr越大越好;ssim是结构相似性,也是一种全参考的图像质量评价指标,它分别从亮度、对比度、结构三方面度量图像相似性,ssim越接近于1越好。
[0083]
以多晶硅太阳能电池板的实心黑和隐裂两种不同尺度的缺陷为例,本次实验选用的两种缺陷的真实图片的数量均为30张,将每种缺陷的30张真实缺陷样本集合划分为5个训练样本集(batch),一个训练样本集中包含6个样本;真实缺陷样本为320*320的分辨率,图像转换模块将其分割成16张80*80分辨率的缺陷样本。当判别器d1的损失函数值收敛稳定于0.0001,判别器d2的损失函数值收敛稳定于0.001,生成器g的损失函数值收敛稳定于9,改进的dcgan模型的训练完成。采用本发明缺陷样本生成方法由1*100的随机噪声向量分别生成两种缺陷图片各3000张。不同生成方法的评价指标如表1所示。
[0084]
表1不同生成方法的生成数据的质量对比
[0085][0086]
以上实验每类缺陷仅用30张真实样本生成了近3000张的图像,其中psnr和ssim均有明显提升。实验结果证明,本发明设计的基于改进型dcgan在太阳能电池板缺陷样本的生成效果上有了一定程度的提升,证明了此发明的可行性。
[0087]
本发明未述及之处适用于现有技术。
技术特征:
1.一种基于改进的dcgan的太阳能电池板缺陷样本生成方法,其特征在于,该生成方法包括下述步骤:步骤1:获取一定数量的同一缺陷类型的真实的太阳能电池板缺陷图片,将其进行尺寸归一化处理,得到相同分辨率的真实缺陷样本集合;步骤2:设计改进的dcgan模型,所述改进的dcgan模型包括一个生成器、一个图像转换模块和两个判别器,所述生成器包括依次连接的全连接层、上采样模块和通道调整模块;生成器的输入为一维随机噪声向量,输出为通道调整模块的输出,生成器将一维随机噪声向量生成太阳能电池板缺陷样本;生成器的全连接层用于扩展向量维度,将一维向量调整为特征图格式的四维张量;所述上采样模块包括bn层和两个上采样层,即第一上采样层和第二上采样层,bn层的输出输入到第一上采样层,第一上采样层的输出输入到第二上采样层,上采样模块将来自全连接层的特征图的通道数保持不变,分辨率提高4倍;所述通道调整模块包括第一通道调整模块和第二通道调整模块,第一通道调整模块包括依次连接的卷积层、bn层和leaky-relu激活函数层,卷积层将来自上采样模块特征图的通道数减半,bn层加快网络的训练和收敛速度,并在一定程度上抑制了模型的梯度消失问题,leaky-relu激活函数层给经过bn层处理后所得到的所有负值赋予一个非零斜率,使得神经网络可以任意逼近任何非线性函数;第二通道调整模块包括卷积层和tanh激活函数层,该卷积层将来自第一通道调整模块的特征图的通道数变为真实缺陷样本的通道数,然后再经过tanh激活函数层的处理,得到生成器的输出;图像转换模块将一张图片分割成m张分辨率相同的一个局部图片组;所述两个判别器结构相同,但参数不共享,均包括一个多感受野特征提取模块、三个卷积模块、一个全连接层、一个sigmoid激活函数层,6个部分依次线性顺接;所述多感受野特征提取模块包括一个1*1卷积层、一个3*3卷积层、一个5*5卷积层,三个卷积层的步幅均为2,使特征图的长宽减倍,在每个卷积层之后均顺接bn层、relu激活函数层,缺陷样本输入到判别器后,首先分别经过多感受野特征提取模块的三组的卷积层、bn层、relu激活函数层的处理,每组的relu激活函数层均将输出输入到特征拼接层,特征拼接层将提取后的特征在通道维度上进行特征拼接,然后输入到通道注意力层,由通道注意力层输出第一尺度特征图;所述卷积模块包括依次连接的卷积层、bn层、leaky-relu激活函数层和dropout层,卷积层的卷积核大小为3*3,步长为2,作用表现在将输入特征图的通道数加倍、长宽减倍;dropout层的失活率设置为0.25,防止模型的过拟合;判别器的三个卷积模块结构相同,三者依次输出第二、三、四尺度特征图;所述全连接层将四维特征张量调整为一维向量,sigmoid激活函数层将值置于[0,1]之间;判别器d1对缺陷样本进行全局判别,其输入为整张缺陷样本,其输出为一个经过sigmoid激活函数层处理后的对于整张缺陷样本的二分类判别值,该值位于[0,1]之间,并且输出四个尺度的特征图;判别器d2对缺陷样本进行局部判别,其输入为整张缺陷样本经过图像转换模块处理后的局部缺陷样本组,其输出为一个包含对于各个局部缺陷样本判别值的判别向量,向量中的元素值均位于[0,1]之间;步骤3:利用真实缺陷样本集合和一维随机噪声向量训练步骤2中改进的dcgan模型,具体包括如下步骤:步骤3.1:从真实缺陷样本集合中随机不重复的选取k个样本作为一个训练样本集,由
真实缺陷样本集合得到n个训练样本集;选取k个不重复的服从高斯分布的一维随机噪声向量,得到一个随机噪声向量集;一个训练样本集对应一个随机噪声向量集,n个训练样本集对应n个不同的随机噪声向量集;将步骤3.2:初始化步骤2中的改进的dcgan模型,卷积层的权重初始值的设置符合均值为0、方差为0.02的正态分布;bn层的权重初始值的设置符合均值为1、方差为0.02的正态分布;初始偏置设置为0;将一个随机噪声向量集中的一个一维随机噪声向量z输入到生成器中,依次经过全连接层、上采样模块和通道调整模块处理,输出生成缺陷样本g(z);由一个随机噪声向量集得到一个生成缺陷样本集,一个生成缺陷样本集与相应的训练样本集对应;步骤3.3:将一个训练样本集中的一个真实缺陷样本x和由对应的随机噪声向量集得到的生成缺陷样本集中的一个生成缺陷样本g(z)分别输入到图像转换模块,分别输出一个局部真实缺陷样本组x
*
和一个局部生成缺陷样本组g(z)
*
;将真实缺陷样本x与生成缺陷样本g(z)输入到判别器d1中,分别输出对二者的判别结果以及四个尺度特征图,完成对k组样本的处理后,将所有的结果输入到判别器d1的损失函数中,利用损失函数值反向传播,更新一次判别器d1的参数;与此同时,将局部真实缺陷样本组x
*
与局部生成缺陷样本组g(z)
*
分别输入到判别器d2中,输出判别结果,完成对k组局部样本组的处理后,将所有的判别向量输入到判别器d2的损失函数中,根据损失函数值反向传播,更新一次判别器d2的参数;判别器d1的损失函数包括判别器d1与生成器g的对抗损失和四个尺度特征损失:其中,x表示一个训练样本集,x~x表示真实缺陷样本x为训练样本集x中的一个;z表示一个与训练样本集x对应的服从高斯分布的随机噪声向量集,z~z表示一维随机噪声向量z为随机噪声向量集z中的一个;d1(x)表示判别器d1对真实缺陷样本x的判别值,以此类推;1表示判别器d1的真实目标值;e
x~x
[logd1(x)]表示函数logd1(x)在训练样本集x中的不同真实缺陷样本下的取值的平均值,以此类推;所述四个尺度特征损失可表示为:其中,分别表示判别器d1对第k个生成缺陷样本、第k个真实缺陷样本输出的分辨率为i的特征图;判别器d2的损失函数为判别器d2与生成器g的对抗损失:其中,x1表示局部真实缺陷样本组集合,x
*
~x1表示局部真实缺陷样本组x
*
为集合x1中的一个;d2(x
*
)表示判别器d2对局部真实缺陷样本组x
*
的判别向量,以此类推;i表示判别器
d2的真实目标向量,其为m
×
1维度、元素均为1的向量;步骤3.4:冻结判别器d1和判别器d2的参数,将k组的真实缺陷样本x与生成缺陷样本g(z)分别输入到更新参数后的判别器d1中,输出对生成缺陷样本g(z)的判别结果及四尺度特征图,同时将k个局部生成缺陷样本组g(z)
*
输入到参数更新后的判别器d2中,输出对k个g(z)
*
的判别结果;将判别器d1对生成缺陷样本g(z)的判别结果及四尺度特征图和判别器d2对g(z)
*
的判别结果带入到生成器的损失函数l
g
中,根据损失函数值反向传播,使生成器更新一次参数,一个训练样本集的训练完成;生成器g的损失函数l
g
包括生成器g与判别器d1的对抗损失、四尺度特征损失以及生成器g与判别器d2的对抗损失:其中,d1(g(z))表示判别器d1对生成缺陷样本g(z)的判别值,d2(g(z)
*
)表示判别器d2对局部生成缺陷样本组g(z)
*
的判别向量;步骤3.5:将上一个训练样本集的训练完成时的网络参数值作为下一个训练样本集开始训练时的网络模型的初始值,参照步骤3.2-步骤3.4的过程,依次完成n个训练样本集的训练,即完成一次网络模型的迭代训练;步骤3.6:重复步骤3.1-3.5的过程,观察每一次网络模型迭代训练完成时的判别器d1、判别器d2及生成器g的损失函数值,当三者的损失函数值均收敛稳定,保存网络模型权重参数,获得训练好的生成网络模型;步骤4:将一个服从高斯分布的一维随机噪声向量输入到步骤3中训练好的生成网络模型中,生成器输出一张生成缺陷图像。2.根据权利要求1所述的一种基于改进的dcgan的太阳能电池板缺陷样本生成方法,其特征在于,真实缺陷样本集合中样本的数量为30,样本的分辨率为320*320。3.根据权利要求1所述的一种基于改进的dcgan的太阳能电池板缺陷样本生成方法,其特征在于,图像转换模块将一张320*320分辨率的图片分割成一个16张80*80分辨率的局部图片组。4.根据权利要求1所述的一种基于改进的dcgan的太阳能电池板缺陷样本生成方法,其特征在于,一个训练样本集中包含6个样本。5.根据权利要求1所述的一种基于改进的dcgan的太阳能电池板缺陷样本生成方法,其特征在于,一维随机噪声向量的维数为1*100。6.根据权利要求1所述的一种基于改进的dcgan的太阳能电池板缺陷样本生成方法,其特征在于,判别器d1、判别器d2及生成器g根据各自损失函数值反向传播更新一次参数所采用的反向传播优化器为adam优化器,学习率为0.0002,一阶动量项为0.5,二阶动量项为0.999。
技术总结
本发明公开一种基于改进的DCGAN的太阳能电池板缺陷样本生成方法,该改进的DCGAN利用全局判别器D1与局部判别器D2的双判别器结构对不同区域图像的判别,提高了生成样本细节的清晰度;在两个判别器结构中加入多感受野特征提取模块,实现了对输入样本中不同尺度缺陷特征的提取,确保了生成样本中缺陷的完整性;联合损失函数在参数更新时提供额外的多尺度特征图对比,加快了网络的训练和收敛速度,提高了生成器的生成能力。了生成器的生成能力。了生成器的生成能力。
技术研发人员:
周颖 裴盛虎 陈海永 裘之亮 刘坤 颜毓泽
受保护的技术使用者:
河北工业大学
技术研发日:
2022.09.28
技术公布日:
2022/12/30