本发明涉及图像编辑,尤其涉及一种基于隐空间变形的脸部姿态迁移方法。
背景技术:
1、在脸部姿态编辑的方法中,深度学习技术的兴起使得利用神经网络在脸部图像和对应姿态的配对数据上训练成为可能。这类方法通过给定姿态信息,来预测对应面部关键点。然而,这类方法一方面需要大量的标注数据。数据的收集和标注需要大量的人力物力财力。另一方面,由于直接配对训练,这些方法会存在过度拟合脸部特征和数据点的风险,从而影响迁移质量。随着生成对抗网络(gan)的技术发展,基于gan的生成模型能够生成较高质量的脸部图像,但是这些方法没办法提供直接对脸部姿态的控制。一些方法尝试在gan的隐空间中找到对应的映射关系,实现对脸部姿态的解藕控制。问题在于,这些方法严重依赖预训练的脸部姿态检测算法。这意味着,当对应脸部检测算法不存在或者不精准时,算法的训练非常受限。这也间接导致现有大多数方法只能够实现在人脸数据域上的姿态编辑或迁移。因此,本发明设计一种基于隐空间变形的脸部姿态迁移方法。该方法通过操纵图像在生成模型的隐空间中的隐编码,来实现将给定的目标图像的面部姿态迁移到源图像中,且保留源图像的其他脸部信息。并且方法模型通过自监督训练的方式,能够实现在脸部的姿态迁移效果,而无需标注信息和预训练脸部姿态模型的辅助。
技术实现思路
1、本发明实施例所要解决的技术问题在于,提供一种基于隐空间变形的脸部姿态迁移方法。通过一种自监督的训练方式,实现在生成模型隐空间中,将目标编码的脸部姿态信息迁移到源编码特征表示中,并保留源编码的脸部特征。该方法能够无需标注数据和脸部姿态检测的预训练模型的辅助。
2、为了解决上述技术问题,本发明实施例提供了一种基于隐空间变形的脸部姿态迁移方法,所述方法包括以下步骤:
3、步骤s1、给定训练集以及测试集其中,表示第i张输入图像,3表示颜色通道数量,对应的颜色通道d∈{红,绿,蓝},k表示单张图片的宽或高的尺寸;n表示训练集itrain的样本数量;m表示测试集itest的样本数量;
4、步骤s2、构建基于隐空间变形的脸部姿态迁移方法,结合风格编码器、生成器和隐空间变形网络来构造脸部姿态迁移方法。利用基于通道的交叉注意力机制、基于空间的交叉注意力机制和基于门控的逐点注意力机制来构造本发明的隐空间变形网络。设定风格编码器e(·)的预训练参数为设定生成器g(·)的预训练参数为设定隐空间变形网络h(·)在第q次迭代训练的参数为
5、步骤s3、在第q次迭代训练过程中,将所述训练集中的图像作为输入,利用风格编码器将给定图像编码到隐空间中,得到面部原图编码、源编码和目标编码。将源编码和目标编码输入到隐空间变形网络,得到结果编码。将结果编码输入到生成器中进行重建,得到姿态迁移后的面部图像。
6、步骤s4、对给定的每一张图片,都计算形变损失、身份损失和感知损失。根据形变损失来计算结果编码和原图编码在隐空间中的向量误差;利用身份损失和感知损失来计算迁移后面部图像和原图之间的身份相似度和特征相似度。利用得出的损失值来进行反向传播,利用随机梯度下降法,对隐空间变形网络的参数进行更新。
7、步骤s5、利用测试集itest对本发明的基于隐空间变形的脸部姿态迁移方法的模型进行评估。计算fid指标结果,得到测试阶段的测试表现。若测试性能为当前最佳,则保存当前模型,并令表示在当前保存的最优基于隐空间变形的脸部姿态迁移方法模型的参数。同时在参数更新结束阶段,判断训练迭代次数q是否已达到最大迭代次数q,若已经达到最大迭代次数q,则训练阶段结束,进入下一步骤s6;反之,将跳转至步骤s3进行循环迭代训练,并令q=q+1;
8、步骤s6、得到本发明的基于隐空间变形的脸部姿态迁移方法的最优模型网络参数并更新本发明的隐空间变形网络的参数。结合风格编码网络和生成器网络,利用更新后的隐空间变形网络可以实现脸部姿态的迁移。
9、在所述步骤s2中,风格编码器的模型可以是e4e编码器(tov,omer,yuval alaluf,yotam nitzan,or patashnik,and daniel cohen-or."designing an encoder forstylegan image manipulation."acm transactions on graphics(tog)40,no.4(2021):1-14.),而生成器模型可以是stylegan模型(t.karras,s.laine,m.aittala,j.hellsten,j.lehtinen,and t.aila,``analyzing and improving the image quality ofstylegan,”in proc.cvpr,2020,pp.8110-8119.),在训练过程中风格编码器和生成器的参数固定,不参与更新,但是参与梯度的计算,用于梯度反向传播。隐空间变形网络的作用就是将目标编码的脸部姿态信息迁移到源编码中。其中目标编码和源编码分别代表两张独立的面部图片在生成器隐空间中的表征。隐空间变形网络最终输出结果编码,该编码包含了目标编码的脸部姿态信息和源编码的其他面部属性。隐空间变形网络包含了四个编码调制模块,每个编码调制模块结合了基于通道的交叉注意力机制、基于空间的交叉注意力机制和基于门控的逐点注意力机制。基于通道的交叉注意力机制用于计算出隐编码中独立隐向量之间的相关性,其包含三个独立的全连接层(fully connected layer,fc),用于计算查询(query)、键(key)和值(value)编码。通过查询的方式来计算出隐向量两两间的相似性。基于空间的交叉注意力机制用于计算出隐编码中所有隐向量相对应位置之间的相关性,其包含三个独立的全连接层,用于计算查询、键和值编码。通过查询的方式来计算出所有位置间的相关性。基于门控的注意力机制利用了两个多层感知机(multilayer perceptron,mlp),每个多层感知机包含两层全连接层,用于计算每个单元的缩放因子和偏置值。并对上述模型进行参数初始化。
10、在所述步骤s3中,面部原图编码、源编码和目标编码的获得是自监督设计中的关键一环。随机给定一张图片(原图),利用风格编码器将给定图像编码到隐空间中,得到面部原图编码其中n表示隐向量的个数,每个向量维度为512。除了姿态之外,原图编码和源编码应该具有相同的身份和面部特征。而目标编码应与原图编码具有相同的姿态,但有不同的面部特征(例如,表情、身份)。为了获得目标编码,本方法通过将随机掩码和随机色彩扩增应用到原图上,并将扩增后的图像进一步映射到隐空间中得到目标编码为了获得源编码,本方法先将真实图像及其翻转版本映射到隐空间中,然后对两者进行插值。本方法观察到插值编码所重建的图像可以保持和原图相同的面部身份,同时具有不同的面部姿态。本方法将插值编码定义为源编码给定源编码wso和目标编码wta,隐空间变形可以表示为:
11、wwa=h(wta-wso,wso)+wso,
12、其中,wwa表示结果编码,h(·)表示对应的隐空间变形网络。通过计算出偏移量,来实现将目标源码的姿态迁移到源编码表示中。将结果编码输入到生成器g(·)中进行重建,得到姿态迁移后的面部图像对训练集itrain中的所有图像都以上述形式进行计算。
13、在所述步骤s4中,形变损失的计算公式为:
14、
15、其中n为对应的隐向量个数,idx表示对应下标,t={1,2,…,n}是一个下标集合,wgt表示原图编码。本发明也同时利用身份和感知损失分别约束身份和感知相似性。身份损失的计算公式为:
16、
17、其中,cos()表示余弦函数,i表示对应下标,r(·)表示预训练的人脸识别模型,和分别代表结果编码和原图编码经过生成器的生成结果。感知损失可以表示为:
18、
19、其中,p(·)表示预训练的分类模型,用于特征提取;‖·‖2为l2范数。通过利用形变损失身份损失和感知损失对隐空间变形网络进行共同约束,就得到了本发明的最终目标函数,其公式为:
20、
21、通过对最终目标函数进行最小化约束训练,来实现基于自监督的隐编码变形。
22、对基于隐空间变形的脸部姿态迁移方法的网络参数进行调整的具体步骤为:根据形变损失身份损失和感知损失算出损失值。利用链式求导法则,对本发明的基于隐空间变形的脸部姿态迁移方法中的网络参数进行梯度的计算,并通过随机梯度下降法,将对应的网络参数进行更新;其中,更新网络参数的公式如下:
23、
24、其中,η表示超参数中的学习率;表示对应隐空间变形网络的参数的梯度,通过链式求导法则求得。
25、在所述步骤s5中,计算fid的细节为:将测试集itest中的每一张图片都进行水平翻转计算,得到翻转后的测试集将测试集itest中的每一张图片都进行随机掩码和随机色彩扩增,并用风格编码器进行编码,再利用生成器基于这些编码重新生成图像,得到目标集对每个下标j,用目标图片来引导翻转图片并得到迁移后的翻转结果集合将翻转结果集合和测试集itest计算fid指标结果,得到测试阶段的测试表现。定义当前基于隐空间变形的脸部姿态迁移方法的网络参数的测试fid分数为fidq,并定义最优模型网络参数的fid分数为fidbest,若fidq<fidbest,则令fidbest=fidq,且
26、实施本发明实施例,具有如下有益效果:
27、本发明首先设计了一种基于隐空间变形脸部姿态迁移方法。与现有的脸部姿态迁移方法相比,算法能够实现将目标脸部图像的姿态信息迁移到源脸部图像上,并且不改变源脸图像除了姿态以外的其他脸部特征。其次,本发明设计的自监督训练在无需任何标注和姿态检测网络的辅助下,实现对隐空间变形网络的监督训练。第三,本发明利用基于通道的交叉注意力机制、基于空间的交叉注意力机制和基于门控的逐点注意力机制来构造隐空间变形网络,实现在隐空间中对姿态信息的偏移值进行预测。最后结合风格编码器、生成器和隐空间变形网络来实现高效、高质量的脸部姿态迁移。
1.一种基于隐空间变形的脸部姿态迁移方法,其特征在于,所述方法包括以下步骤:
2.根据权利要求1所述的一种基于隐空间变形的脸部姿态迁移方法,其特征在于,在所述步骤s1中,训练集和测试集皆为图像集合并且不包含任何标注信息。
3.根据权利要求1所述的一种基于隐空间变形的脸部姿态迁移方法,其特征在于,在所述步骤s2中,风格编码器和生成器都采用预训练模型,在训练过程中风格编码器和生成器的参数固定,不参与更新,但是参与梯度的计算,用于梯度反向传播。
4.根据权利要求3所述的一种基于隐空间变形的脸部姿态迁移方法,其特征在于,风格编码器用于图像映射到生成器的隐空间中;生成器用于对隐空间进行采样,并生成对应的图片;隐空间变形网络的用于将目标编码的脸部姿态信息迁移到源编码中;其中,目标编码和源编码分别代表两张独立的面部图片在生成器隐空间中的特征表征;隐空间变形网络最终输出结果编码,该编码包含了目标编码的脸部姿态信息和源编码的其他面部属性。
5.根据权利要求4所述的一种基于隐空间变形的脸部姿态迁移方法,其特征在于,隐空间变形网络包含了四个编码调制模块,每个编码调制模块结合了基于通道的交叉注意力机制、基于空间的交叉注意力机制和基于门控的逐点注意力机制;基于通道的交叉注意力机制用于计算出隐编码中独立隐向量之间的相关性,其包含三个独立的全连接层,用于计算查询、键和值编码;通过查询的方式来计算出隐向量两两间的相似性;基于空间的交叉注意力机制用于计算出隐编码中所有隐向量相对应位置之间的相关性,其包含三个独立的全连接层,用于计算查询、键和值编码;通过查询的方式来计算出所有相应位置间的相关性;基于门控的注意力机制利用了两个多层感知机,每个多层感知机包含两层全连接层,用于计算每个单元的缩放因子和偏置值。
6.根据权利要求4所述的一种基于隐空间变形的脸部姿态迁移方法,其特征在于,风格编码器的模型采用e4e编码器,生成器模型采用stylegan模型。
7.根据权利要求1所述的一种基于隐空间变形的脸部姿态迁移方法,其特征在于,在所述步骤s3中,原图编码和源编码应该具有相同的身份和面部特征,但姿态不同;而目标编码应与原图编码具有相同的姿态,但有不同的面部特征;利用风格编码器对原图进行编码直接获得原图编码;通过将随机掩码和随机色彩扩增应用到原图上,并将扩增后的图像进一步映射到隐空间中得到目标编码;将真实图像及其翻转版本映射到隐空间中,然后对两者进行插值生成源编码;观察到插值编码所重建的图像保持和原图相同的面部身份,同时具有不同的面部姿态;给定源编码wso和目标编码wta,隐空间变形表示为:
8.根据权利要求1所述的一种基于隐空间变形的脸部姿态迁移方法,其特征在于,在所述步骤s4中,形变损失的计算公式为: