一种基于动态自注意力生成对抗网络的图像合成方法技术

技术编号:30013682 阅读:12 留言:0更新日期:2021-09-11 06:16
本发明专利技术公开了一种基于动态自注意力生成对抗网络的图像合成方法,属于计算机视觉领域。该方法首先选择生成对抗网络作为基本框架,并对训练图片进行归一化,还对正态分布进行采样得到噪声样本。本发明专利技术借鉴了Linformer算法和动态卷积算法,并对发明专利技术中使用的多头自注意力机制进行改进,增加了每个自注意力头之间的联系和约束,使得这些自注意力头可以去学习到图像的各种模式知识。本发明专利技术充分地发挥了动态自注意力机制和生成对抗网络的优势,提出的动态自注意力模块可大幅度降低多头自注意力机制的计算复杂度,并改善生成对抗网络的模式崩塌和训练不稳定等问题。式崩塌和训练不稳定等问题。式崩塌和训练不稳定等问题。

【技术实现步骤摘要】
一种基于动态自注意力生成对抗网络的图像合成方法


[0001]本专利技术属于计算机视觉领域,主要涉及图像的合成问题;主要应用于图像修复、编辑、增强以及检索等领域。

技术介绍

[0002]图像合成是利用计算机视觉技术理解图像内容,并根据需求生成指定图像的技术。它一般可分成两种类型:无监督图像合成和有监督图像合成。无监督图像合成多指学习从噪声分布到图像分布的映射函数,并通过映射函数合成图像。有监督图像合成,是指学习图像数据条件分布,进而生成给定条件下的图像。图像合成作为计算机视觉领域的一个热点问题,它是图像修复、编辑和增强的基础。其不仅可以解决军事、医疗和安全等领域视觉数据缺失问题,还可以应用于影视娱乐、平面设计等领域。
[0003]由于人类对于图像的细节和边缘等信息十分敏感,因此图像合成算法需要保证图像合成的真实性和多样性。为了提高合成图像的真实性和多样性,许多学者使用深度生成技术来改善以往的图像合成算法。然而,当目标数据分布非常复杂时,早期的深度生成方法常面临着计算量大和难以求解的问题。在2014年Goodfellow等人提出的生成对抗网络方法出色地解决了这一问题。相比以往的深度生成方法,生成对抗网络具有以下几点明显的优势:1.生成对抗网络方法仅需增加生成器的输出维度和判别器的输入维度即可生成较大维度的样本。2.生成对抗网络对数据分布不做任何先验假设,因而不需要人工设计模型的分布。3.生成对抗网络方法合成的数据分布十分接近真实样本的数据分布,合成图像的真实性和多样性可以得到很好地保证。由于生成对抗网络这些明显的优势,因此本专利技术使用生成对抗网络方法进行图像合成任务。
[0004]目前,现有的生成对抗网络方法仍然存在模式崩塌和训练不稳定等问题。为了改善这些问题,Goodfellow等人通过引入非局部自注意力机制去建模合成像素之间的长程相关性,他们提出的自注意力生成对抗网络(Self

attention Generative Adversarial networks,简称SAGAN)在多个领域的图像合成任务中得到了非常大的突破。参考文献:H.Zhang,I.Goodfellow,D.Metaxas,et al.Self

attention generative adversarial networks[C].International conference on machine learning,2019,7354

7363。然而,该模型存在着计算复杂度高,计算效率低,建模像素之间的长程相关性能力差等问题。本专利技术在SAGAN模型的基础上借鉴了Linformer算法和动态卷积算法,提出了一种基于动态自注意力生成对抗网络的图像合成方法,并取得了出色的结果。参考文献:Y.Chen,X.Dai,M.Liu,et al.Dynamic convolution:Attention over convolutionkernels[C].the IEEE Conference on Computer Vision and Pattern Recognition,2020,11030

11039。

技术实现思路

[0005]本专利技术是一种基于动态自注意力生成对抗网络的图像合成方法,解决现有的基于自注意力机制的生成对抗网络方法中存在的计算复杂度高、计算效率低、建模像素之间的
长程相关性能力差等问题。该方法首先选择使用生成对抗网络作为基本的框架,并对训练图片进行归一化,还对正态分布进行采样得到噪声。同时,本专利技术借鉴了Linformer算法和动态卷积算法,并对专利技术中使用的多头自注意力机制进行改进,增加了每个自注意力头之间的联系和约束,使得这些自注意力头可以去学习到图像的各种模式知识。在训练时本方法将噪声和图片同时输入网络,并利用生成对抗网络算法去训练模型。在训练完成后,通过在生成网络中输入噪声就可以完成图像的合成任务。通过上述方法,本专利技术充分地发挥了动态自注意力机制和生成对抗网络的优势,提出的动态自注意力模块可大幅度降低多头自注意力机制的计算复杂度,并改善生成对抗网络的模式崩塌和训练不稳定等问题。
[0006]为了方便地描述本
技术实现思路
,首先对一些术语进行定义。
[0007]定义1:生成对抗网络(Generative Adversarial Network,简称GAN)由一组对抗性的神经网络构成(分别称为生成器和判别器),生成器选择从某种数据分布p
z
(z)中随机采样得到的噪声z作为输入。然后通过生成器G建立该数据分布与目标数据分布的映射,判别器的输入则为真实样本或生成器G的输出,判别器的作用是将生成器的输出与真实样本尽可能地分辨出来。判别器D的输出为标量D(x),它表示输入样本x来自于真实数据而不是合成数据的概率。在实际的训练过程中,一般采用交替训练的方式来使得判别器和生成器向着最优的方向前进。首先固定生成器G的参数,通过最大化目标函数来训练判别器D,使得D的判别准确率得到优化;然后固定判别器D的参数,通过最小化目标函数来使得G生成的结果接近真实数据,从而使得判别器准确率减少;随后重复这个交替训练的过程,当生成器的生成结果与真实数据分布一致时,目标函数达到全局最优解。优化过程的目标函数可以通过下式表达:
[0008][0009]上式中min和max分别表示数学符号极小和极大,E[
·
]表示求数据分布的数学期望,x表示真实数据,p
data
(x)是真实的数据分布,z表示从某种数据分布p
z
(z)中随机采样得到的向量。分别表示对x∈p
data
(x)和z∈p
z
(z)求期望。
[0010]定义2:非局部自注意力机制。非局部自注意力机制通常包括3个模块,query,key和value。query和key首先做相关度的运算,最后再与value进行加权操作,核心算子为和value。query和key首先做相关度的运算,最后再与value进行加权操作,核心算子为i表示输出位置的索引,j表示枚举所有可能位置的索引。x表示输入图像,f(
·

·
)用来计算i位置像素和所有可能位置像素之间的相关性,g(x)表示对x进行任意变换,C(x)用来对计算出的结果进行归一化运算。
[0011]定义3:多头自注意力机制。多头自注意力机制可以直接建模更加复杂的像素与像素之间的长程相关性,每个自注意力头可能学习到不同模式的相关性矩阵,这对于改进生成结果具有十分重要的作用。它的核心算子是:
[0012]MultiHead(Q,K,V)=Concat(head1,...,head
h
)W
O
[0013]公式中每一个自注意力头上的计算和定义2中的非局部自注意力机制的计算方法相同,只是它们得到的计算结果会先经过拼接,再通过矩阵W
O
投影回原始大小。由于每个自注意力头之本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于动态自注意力生成对抗网络的图像合成方法,该方法包括:步骤1:对数据集进行预处理;获取cifar10数据集后,首先根据该数据集的类别标签将图像进行分类,然后利用one

hot向量对类别标签进行编码;最后将图片像素值进行归一化,并且将数据保存为张量以便生成对抗网络来使用;步骤2:构建卷积神经网络;构建卷积神经网络包括两个子网络,一个为生成器,另一个为判别器;生成器输入为高斯噪声,它的输出为图像,而判别器的输入为图像,输出为标量;生成器网络的第一层为线性全连接层,之后依次接着三个上采样残差网络块,最后再连接一个标准卷积块;判别器网络依次采用两个下采样残差网络块,两个标准残差网络块,以及线性全连接层;标准卷积块,上采样残差网络块,下采样残差网络块以及残差网络块如图4所示。步骤3:构建动态多头的注意力模块;设一个高斯噪声送入卷积神经网络中的生成器后,通过生成器中的上采样残差网络块输出得到的特征图为X,大小为H
×
W
×
C,其中C为特征图的通道数,H和W分别为特征图的高和宽;将X改变形状至N
×
C,其中N=H
×
W;第一步是计算X的动态注意力权重其中M为自注意力头的个数;第二步将X输入到分组卷积中,并得到query特征图组集合,key特征图组集合,value特征图组集合;第三步利用动态注意力权重z在3个特征图组集合中选择出对应的最优query特征图,key特征图,value特征图;第四步利用降维变换E和降维变换F分别对选中的key特征图与value特征图进行降维变换,并利用query特征图与降维后的两个特征图去重建特征图X;步骤4:设计总神经网络;将步骤3中的动态多头自注意力模块嵌入到步骤2中的生成器当中,嵌入位置在生成器最后一个上采样残差网络块之后;在训练时,高斯噪声送入生成器后,通过生成器中的上采样残差网络块输出得到特征图X,特征图X经过步骤3中的动态多头自注意力模块后得到重建特征图X
*
,重建特征图X
*
再经过生成器中的输出卷积层得到输出图片,并将生成器的输出图片作为判别器的输入。步骤5:设计损失函数;在步骤1中获取到的图片记为I;并对正态分布进行随机采样得到向量步骤2中的生成器网络记为G,判别器网络记为D;生成器G的输入为v,它的输出记为G(v);判别器的D输入为I和G(v),它们的输出分别记为D(I)和D(G(I));网络的损失为:输入为I和G(v),它们的输出分别记为D(I)和D(G(I));网络的损失为:输入为I和G(v),它们的输出分别记为D(I)和D(G(I));网络的损失为:为判别器的损失函数,为生成器的损失函数;分别表示对I和v求期望;步骤6:训练总神经网络;利用步骤5构建的损失函数进行网络训练,在更新G时固定D的参数,而更新D时则固定G的参数,每次迭代交替更新一次;步骤7:测试总神经网络;
在步骤6中训练好模型,只取生成器G;将正态分布中的不同噪声样本输入到G中,即可得到多张不同的输出图片。2.如权利要求1所述的一种基于动态自注意力生成对抗网络的图像合成方法,所述步骤3的具体方法为:步骤3.1:计算动态注意力权重这一步计算每一个自注意力头被选择的概率值,M为自注意力头的个数;z由注意力模块π得到,表示z向量的第i维分量,并且它表示...

【专利技术属性】
技术研发人员:王博文潘力立李宏亮孟凡满吴庆波许林峰
申请(专利权)人:电子科技大学
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1