一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种基于渐进式增长条件生成对抗网络的图像生成方法

2022-12-07 01:14:57 来源:中国专利 TAG:

一种基于渐进式增长条件生成对抗网络的图像生成方法
【技术领域】
1.本发明涉及信息处理的技术领域,特别是一种基于渐进式增长条件生成对抗网络的图像生成方法。


背景技术:

2.生成模型是通过概率密度函数在数据分布上进行数据抽样并生成新样本的模型,已经被广泛应用于图像生成、风格迁移、机器翻译和语音识别等领域。目前较流行的生成模型方法有变分自编码器(variational auto-encoder,vae)、自回归模型和生成对抗网络(generative adversarial networks,gan)三大类。自回归模型可以很好的对序列数据进行密度估计,但计算量远大于vae和gan。vae擅长于自然语言处理领域中的语言生成,但在图像处理方面很难生成高清的图像。gan能产生高清的图像,但训练过程很不稳定。总的来说,在图像生成领域,gan的发展最迅速且应用最广泛。
3.gan通常由生成器g和判别器d两个模型组成:噪音通过g产生出新的样本,如图像,文本等;将真实样本和生成器产生的样本输入d辨别真假。以上两个模型都是可微的:g通过d判别产生的梯度来找到正确的样本生成方向,d通过预测结果与样本标签的对比来产生梯度,更新模型参数。gan的训练过程极不稳定,容易产生梯度消失和模式崩溃现象。dcgan把卷积神经网络和gan相结合,提出一套稳定的gan训练模型。lsgan将判别器中的交叉熵损失函数变为最小二乘损失函数,使模型的训练过程更加稳定。wgan用wasserstein距离代替了kl散度和js散度来衡量生成分布和真实分布之间的距离,使得g的梯度计算更加精准。还有一些针对wgan的不足进行改进的模型,这些方法的提出使得gan在训练上更为稳定。
4.条件生成对抗网络(conditional gan,cgan)是在无监督的gan模型中加入条件信息,使得gan能够准确地在一个模型中同时训练和生成多种类别的样本和图像。注入条件的方式多种多样,icgan,infogan和acgan等方法是g的输入端对样本和条件信息进行特征变换,并在d的输出端利用目标函数来改进cgan;半监督和自监督的cgan通过在d内部加入额外的聚类器来增加条件信息,然后将结果信息返回给g。
5.渐进式增长生成对抗网络(progressive growing of gan,pggan)是一种网络结构逐步增长的生成模型,该模型先训练生成低像素的图像,然后不断地在g和d中插入对称的网络结构来提高生成图像的分辨率,并通过平滑过渡来缓减直接插入网络结构导致的模型震荡。当训练样本中类别数据不平衡或数据样本间过于相似或不相似时,pggan模型容易出现模式崩溃现象,使得生成图像的质量下降。


技术实现要素:

6.本发明的目的就是解决现有技术中的问题,提出一种基于渐进式增长条件生成对抗网络的图像生成方法,能够训练多个无关联的数据集而不崩溃,生成的图像具有更高的多样性和真实性,在类别不平衡或数据过于相似或不相似的数据集中均能产生高质量的图像。
7.为实现上述目的,本发明提出了一种基于渐进式增长条件生成对抗网络的图像生成方法,该方法的实现基于pggan模型,所述pggan模型的网络结构包括生成器g和判别器d,该方法具体包括以下步骤:
8.s1.噪声和类别标签被传入生成器g的初始模块中生成低像素图像的特征,然后经过特征转图片模块转为图像输出;
9.s2.判别器d接收真图像和假图像,传入图片转特征模块变为特征信息,再传入结果模块中经过改进的小批量标准差方法层增加生成图像的多样性,将得到的特征一部分用于判断图像的真假,一部分用于判断图像的类别;
10.s3.在生成器g的特征转图片模块之前和判别器d的图片转特征模块之后不断的插入新模块,以生成更高像素的图像并提取图像特征,最终生成器g生成所需要的高分辨率的图像。
11.作为优选,步骤s2中,采用将类别标签放入目标函数中,通过目标函数的约束使判别器d学会判断类别;生成器g生成图像x
fake
=g(z,c),其中z为噪音,c为类别,x为图像;判别器d给出判断图像真假的概率分布p(s|x)和判断图像类别的概率分布p(c|x)=d(x),其中s为真假判断结果,c为类别判断结果;所述目标函数包括两部分:判断图像真假的ls和判断图像类别的lc,公式如下:
12.ls=e[log p(s=real|x
real
)] e[log p(s=fake|x
fake
)]
[0013]
lc=e[log p(c=c|x
real
)] e[log p(c=c|x
fake
)]
[0014]
其中,x
real
为真实图像,x
fake
为生成图像,e为期望;在训练判别器d时需要最大化lc ls,在训练生成器g时需要最大化l
c-ls。
[0015]
作为优选,在计算目标函数时,将判别器d的最后一层分为两个部分,分别用于计算目标函数ls和lc。
[0016]
作为优选,步骤s2中,改进的小批量标准差方法层增加生成图像的多样性的具体方法为:在一组样本中,首先利用类别标签将每一批次的样本分为k个类别,再对每个类别中每个特征空间中的点求标准差,然后对k个类别中的每个标准差分别求平均值,得到一个批次中每个类别的多样性度量y∈[y1,y2,...,yk],最后将一批样本中每个样本自身xi和与其对应类别中的多样性度量yi进行拼接形成新的矩阵,传入下一层网络进行训练。
[0017]
作为优选,步骤s3中,所述生成器g使用插入模块中的上采样加卷积操作的方式来放大图像,并通过像素归一化和leakrelu激活函数的方式来保持放大后图像的质量,其重复一次;再在保持模型训练稳定后不断的插入此模块来不断放大图像。
[0018]
作为优选,在每个卷积层之后使用像素归一化对模型的参数权重进行处理,像素归一化使得计算过程没有参数,其公式如下:
[0019][0020]
其中,n表示特征矩阵的个数,a
x,y
表示在像素(x,y)的位置上对应的原始特征向量,b
x,y
表示像素归一化后的特征向量。
[0021]
作为优选,该方法利用he初始化对pgcgan模型参数进行初始化以搭配leakyrelu
激活函数;he初始化的方式为对于任意网络层的权重w
l
按照均值0,方差为的高斯分布进行初始化,其中n
l
任意网络层中神经元的个数。
[0022]
作为优选,步骤s1中,所述低像素图像的特征为4
×
4像素图像的特征。
[0023]
作为优选,所述生成器g和判别器d的结构是对称的。
[0024]
本发明的有益效果:本发明在pggan的基础上引入cgan的思想,提出渐进式增长条件生成对抗网络模型(progressive growing of conditional gan,pgcgan),该模型改变了pggan的网络结构并定义了新的目标函数,使其更适应cgan的生成方式,同时改进了pggan中的小批量标准差方法以提高生成图像的多样性。相比于pggan,pgcgan模型具有以下优点:
[0025]
1)可以将多种类别的图像同时注入模型进行训练,不容易产生模式崩溃;
[0026]
2)可以学习到不同类别之间的共性,使得对于数据集中数量较小的类别也可以生成高质量的图像;
[0027]
3)生成的图像在每个类别标签内和整体上都具有更好的多样性和真实性;
[0028]
4)在pggan中,随着图像分辨率逐渐变大需要批处理尺寸逐渐减小来使训练保持稳定,而pgcgan通过输入条件减少计算来稳定批处理尺寸的大小,加快了模型的收敛速度。
[0029]
本发明的特征及优点将通过实施例结合附图进行详细说明。
【附图说明】
[0030]
图1是pggan模型训练流程图;
[0031]
图2是pgcgan的网络结构示意图;
[0032]
图3是改进的小批量标准差方法的流程框图;
[0033]
图4是plantvillage数据集上的实验结果对比图,其中,图(a)为原图与pggan和pgcgan的生成图像,图(b)为pgcgan的生成图像;
[0034]
图5是afhq数据集上的实验结果对比图,其中,图(a)为原图与pggan和pgcgan的生成图像;图(b)为pgcgan的生成图像;
[0035]
图6是fingers数据集上的实验结果对比图;其中,图(a)为原图与pggan和pgcgan的生成图像,图(b)为pgcgan的生成图像。
【具体实施方式】
[0036]
本发明提出一种渐进式增长条件生成对抗网络模型(pgcgan),将条件生成对抗网络的思想引入pggan,在pggan的基础上加入类别信息作为条件,在网络结构和小批量标准差两个方面对pggan进行了改进,缓解图像生成过程中的模式崩溃现象。
[0037]
1相关工作
[0038]
1.1 gan
[0039]
gan主要由生成器g和判别器d构成,其核心是g和d的相互对抗和相互博弈,最终g生成符合样本分布规律的合成样本。在图像生成任务中,g的输入为噪声z,输出生成图像x
fake
=g(z)。d接收真实图像x
real
和生成图像x
fake
,输出对图像真假判别结果的概率p(s|x)=d(x)。g和d的训练不是同时的,当g训练时,d不参与训练而只用于判别,训练目标为最小
化目标函数;当d训练时,g不参与训练而只用于生成样本,训练目标为最大化目标函数。目标函数的基本公式如下:
[0040]
l=e[log p(s=real|x
real
)] e[log p(s=fake|x
fake
)]
ꢀꢀ
(1)
[0041]
1.2 pggan
[0042]
1.2.1网络结构
[0043]
gan的训练过程很不稳定,容易出现梯度消失和模式崩溃,且不容易生成高分辨的图像。为了解决以上问题,pggan模型采用渐进式的图像生成方法:刚开始的时候在一个较小的分辨率下训练模型,生成低分辨率的图像;当模型学习到图形的整体结构轮廓时,在g网络中加入新的网络结构来进一步学习图像的细节,以增大生成图像的分辨率,同时在d网络中加入新的网络结构来接收g网络生成的更高分辨率的图像,抽取更多的特征用于d网络来判别图像的真假。这里生成器g和判别器d是对称的网络结构,如此多次插入新的网络结构,可以将生成的图像从低像素扩展到高像素。pggan插入网络结构的模型流程图如图1所示。
[0044]
为了缓解新网络结构的突然插入导致的模型震荡,通过平滑过度来逐步加大新网络层的权重,具体操作如下:首先给新增的网络结构赋权重α,当新网络刚加入时,α的权重接近为0,此时新网络层对模型的整体影响很小;随着训练过程的迭代,α的权重会逐步增加到1,此时表示新的网络层已经完全插入。
[0045]
1.2.2小批量标准差
[0046]
为了缓解模式崩溃,进一步提高模型生成图像的多样性,pggan对传统的批量判别方法进行改进,提出小批量标准差方法(mini-batch stddev),具体过程如下:计算小批量样本上每个空间位置中每个特征矩阵的标准差,然后对其求平均值,将该均值作为小批量样本中的多样性度量,将样本自身信息和多样性度量拼接成新的矩阵,作为下一层的输入。
[0047]
原始的判别器d独立地处理生成的每一个样本,而生成器g发现生成的某个图像可以骗过判别器d时,就没有必要冒险去生成别的图像,鉴于损失函数的压力,生成器g生成的样本就会渐渐趋于相似,从而导致模式崩溃。小批量标准差方法由于将每一批样本计算出的多样性度量加入到每个样本中,这样就将样本间的多样性信息作为训练数据的一部分,从而避免了判别器d独立地处理每一个样本,从而可以避免模式崩溃现象的发生。
[0048]
2 pgcgan
[0049]
下面将详细介绍本发明提出的渐进式增长条件生成对抗网络模型(pgcgan),该模型通过对pggan的网络结构进行改良、定义新的目标函数、改进小批量标准差方法等一系列措施,使得改进后的网络模型更适应于条件生成对抗网络(cgan),从而提高生成图像的质量。
[0050]
2.1网络结构
[0051]
pgcgan模型的网络结构如图2所示,生成器g和判别器d的结构是对称的。首先,噪声z和类别标签c被传入生成器g的初始模块中以生成4
×
4像素图像的特征,然后经过特征转图片模块转为图像输出;判别器d接收真图像和假图像,传入图片转特征模块变为特征信息,再传入结果模块中经过cminibatch_std层增加生成图像的多样性;最后将得到的特征一部分用于判断图像的真假,一部分用于判断图像的类别;直到低像素的生成图像足够逼真后,在生成器g的特征转图片模块之前和判别器d的图片转特征模块之后不断的插入新模
块,以生成更高像素的图像并提取图像特征,最终生成器g可以生成所需要的高分辨率的图像。
[0052]
本发明模型与已有模型的不同之处在于:传统的cgan模型在生成器g和判别器d的输入端输入类别标签,在判别器的输出端判断图像的真假;pgcgan模型改变了类别标签在判别器d中的输入位置,避免了判别器d的输入端由于不断加入新模块而导致条件信息不能被稳定接收的问题。
[0053]
2.2目标函数
[0054]
pgcgan模型中类别标签不需要从判别器d的输入端进入,而是将类别标签放入目标函数中,通过目标函数的约束使判别器d学会判断类别。生成器g生成图像x
fake
=g(z,c),判别器d给出判断图像真假的概率分布p(s|x)和判断图像类别的概率分布p(c|x)=d(x)。因此,pgcgan的目标函数由两部分组成:判断图像真假的ls和判断图像类别的lc,公式如下:
[0055]
ls=e[log p(s=real|x
real
)] e[log p(s=fake|x
fake
)]
ꢀꢀ
(2)
[0056]
lc=e[log p(c=c|x
real
)] e[log p(c=c|x
fake
)]
ꢀꢀ
(3)
[0057]
在训练判别器d时需要最大化lc ls,而在训练生成器g时需要最大化l
c-ls。具体地,将判别器d的最后一层分为两个部分,分别用于计算目标函数ls和lc。传统的cgan在生成器g和判别器d中直接输入类别标签,让黑盒的网络模型同时学会判断图像的真假和类别信息,然后将它们融合到一个真假的结果中,如此给网络模型增加了过多的负担,从而导致信息传递不够准确。在pgcgan模型中,只需要分别判断图像的真假和图像的类别,然后通过目标函数将两个结果进行整合,这样可以更加准确地生成所需要的图像。
[0058]
2.3改进的小批量标准差
[0059]
本发明将pggan改为条件生成对抗网络模型后,由于同一批样本内是不同类别的数据,而不同类别的数据本身就不相似并存在一定的多样性,使得小批量标准差方法无法督促模型产生多样性的图像。
[0060]
针对以上问题,本发明对基于小批量标准差提高生成图像多样性的方法进行了改进,使pgcgan更适合于cgan,改进后的模型结构如图3所示。在一组样本中,首先利用类别标签将每一批次的样本分为k个类别,再对每个类别中每个特征空间中的点求标准差,然后对k个类别中的每个标准差分别求平均值,得到一个批次中每个类别的多样性度量y∈[y1,y2,

,yk],最后将一批样本中每个样本自身xi和与其对应类别中的多样性度量yi进行拼接形成新的矩阵,传入下一层网络进行训练。
[0061]
2.4模型优化
[0062]
在pgcgan模型中,使用卷积操作加上采样的方式代替转置卷积,因为生成器g在使用转置卷积将图像像素放大时,由于输出窗口大小、卷积核大小和步长等问题,使得转置卷积的像素产生了部分重叠,产生棋盘效应而抑制了生成能力,而卷积操作加上采样来放大图像不存在这样的问题。
[0063]
此外,本发明在每个卷积层之后使用像素归一化(pixel normalization)对模型的参数权重进行处理,防止信号幅度过大导致生成器g和判别器d之间的恶性竞争。像素归一化使得计算过程没有参数,其公式如下:
[0064]
[0065]
其中,n表示特征矩阵的个数,a
x,y
表示在像素(x,y)的位置上对应的原始特征向量,b
x,y
表示像素归一化后的特征向量。
[0066]
最后,本发明还利用he初始化(https://doi.org/10.48550/arxiv.1511.08060)对模型参数进行初始化来配合leakyrelu激活函数,使每层网络结构参数的方差都比较接近,进而使模型快速收敛。
[0067]
3实验与分析
[0068]
3.1数据集
[0069]
为了验证本发明提出的pgcgan模型的有效性,在plantvillage、afhq和fingers(https://www.kaggle.com/datasets/koryakinp/fingers)三个数据集上进行了对比实验,并利用本发明提出的方法对数据进行了预处理。
[0070]
plantvillage数据集中包含256
×
256像素的植物叶子图片,选择苹果、樱桃、葡萄和桃子四类叶子,共11797张图片,其中苹果叶子占比26.88%,樱桃叶子占比16.16%,葡萄叶子占比34.44%和桃树叶子占比22.52%。plantvillage数据集在类别方面的是不平衡的,葡萄叶子是樱桃叶子的两倍多。
[0071]
afhq数据集中包含512
×
512像素的猫、狗和野生动物的三类图片,由于野生动物类别中有多种动物,经过预处理,提取了其中的猫、狗、老虎和狮子四个类别的图片,共11569张,其中猫占比44.51%,狗占比40.96%,狮子占比6.63%,老虎占比7.87%。该数据集中不同类别的数据量极不平衡。
[0072]
fingers数据集中包了6种手势的128
×
128像素的图片,共17994张图片,其中每种类别的数据集各占16.7%。fingers数据集中不同类别的数据量是相对均衡的,但是同一个人的6种手势的图片很相似,不易于gan的训练。
[0073]
3.2实验设置
[0074]
本文采用的实验平台为liunx操作系统,处理器为intel(r)xeon(r)silver4214 cpu@2.20ghz,内存为256g,使用显存为32g的显卡加速nvidiateslav100图形运算。实验环境为python 3.9.7,采用基于pytorch的深度学习框架,版本为1.10.2。
[0075]
在模型训练的过程中,初始学习率设置为0.001,其后每次扩大分辨率,学习率变为当前学习率的87%;使用采用自适应矩估计的adam优化器,批处理的大小固定为32。
[0076]
3.3实验结果与分析
[0077]
is(inception score)和fid(fr
é
chet inception distance)是评价gan生成图像质量的常用指标。is使用imagenet分类模型来衡量生成图像的真实性和多样性,is的数值越大,表明生成器生成的图像质量越高。fid指标使用inception-v3网络来抽取生成图像和真实图像的特征,并衡量特征之间的分布距离,fid的数值越小,表明生成图像的质量越好。
[0078]
将pggan和pgcgan模型在以上数据集中进行训练并生成图像,并使用is和fid两个评价指标对生成结果进行评价,实验结果如表1和表2所示。从表中可以看出,pgcgan模型在三个数据集上的is和fid结果都优于pggan模型,且在afhq和fingers数据集中领先更多,这说明pgcgan模型相比于pggan模型具有更好的多样性和真实性。此外,对于样本过于相似的数据集fingers和类别数量不平衡的数据集afhq,pgcgan模型生成图像的效果更好。
[0079][0080]
图4为pggan和pgcgan模型在plantvillage数据集上生成图像的效果。从图中可以看出,pgcgan生成的256
×
256像素的图像更加清晰,叶片边缘线条更加流畅闭合,而pggan生成的图像则很模糊,叶片的边缘部分线条不够流畅,几何形状不够规则。此外,pgcgan生成的图像更加多样化。由于在plantvillage数据集中,葡萄叶子数量是樱桃叶子的两倍多,所以pggan生成樱桃叶子有一部分像葡萄叶子,而pgcgan中的樱桃叶子保持了本身的样子,这说明样本数量对于生成图像的质量具有一定影响。
[0081]
图5为pggan和pgcgan模型在afhq数据集上生成图像的效果。从图中可以看出,pggan基本只生成了猫和狗的图像,原因可能是猫和狗的图片占数据集的45%和41%,而狮子和老虎的图片分别占6.6%和7.9%,在如此悬殊的比例中,狮子和老虎的图像被当做噪音而没有被生成,且猫和狗的图片中也受到老虎和狮子图片的影响。pgcgan模型生成的图像中四种类别的图像都生成了,且清晰度和多样性也比较好。以上实验结果表明,pgcgan模型在数据类型不平衡的数据集中表现地非常优异。
[0082]
图6为pggan和pgcgan模型在fingers数据集上生成图像的效果。fingers数据集的不同类别较为相似,而在神经网络的训练中,网络的训练更倾向于让不同类别间图像特征尽可能同时出现,或是将所有图像特征进行平均来降低损失函数的惩罚,由于以上原因。pggan会导致模式崩溃,而这种模式崩溃的一部分原因可能是由于过于相似的数据集。而pgcgan模型利用类别标签进行区分避免特征被平均和叠加,且对每一个类别中的样本使用小批量标准差,使得同一类别中的图像具有更好的多样性。
[0083]
在三个数据集上的实验结果表明,pgcgan可以同时训练多个无关联的数据集而不崩溃,生成的图像具有更高的多样性和真实性,在类别不平衡或数据过于相似或不相似的数据集中均能产生高质量的图像。综合以上实验分析可以看出,本发明提出的pgcgan模型可以生成各种分辨率的图像,且生成图像的多样性和真实性较pggan模型均有很大程度的提高,并且更适应于各种类型的数据集。
[0084]
本发明将pggan模型改为cgan,提出了一种pgcgan模型用来生成高分辨的图像,在pgcgan模型中改变了传统的cgan结构,并定义了新的目标函数,同时改进了小批量标准差。改进后的模型能提高生成图像的多样性和真实性,相对于类别不平衡和数据过于相似的或不相似的数据集,都不容易发生模式崩溃,并且能学习它们之间的共性,强化各自的特征,而得到更高质量的图像。在模型训练产生高分辨率的图像时,pgcgan用类别标签作为辅助信息来指导图像的生成,不需要因为复杂度增大而减小批处理的尺寸来维持训练的稳定性,从而加快了模型收敛的速度。
[0085]
上述实施例是对本发明的说明,不是对本发明的限定,任何对本发明简单变换后的方案均属于本发明的保护范围。
再多了解一些

本文用于创业者技术爱好者查询,仅供学习研究,如用于商业用途,请联系技术所有人。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献