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

基于生成对抗网络的妆容迁移方法

2022-11-16 16:16:05 来源:中国专利 TAG:


1.本发明属于计算机视觉技术领域,涉及一种人脸妆容迁移方法,具体涉及一种基于生成对抗网络的妆容迁移方法。


背景技术:

2.化妆是一种用特定的化妆品来改善面部外表的方式,它可以使人们更具有吸引力,也因此被广泛使用。常见的化妆品有掩盖面部瑕疵的粉底、遮瑕、眼线、眼影以及口红等。化妆品不仅种类繁多,品牌繁杂,颜色也各有不同,使用方法也各不相同。如果没有专业的化妆师提供意见,人们很难找到一种适合自己的化妆风格。如何帮助人们快速而精准地找到个性化的美妆产品逐渐成为研究热点,现实中大多数人没有足够多的时间和经济等试错成本,很难实际购买化妆品并试用挑选。而妆容迁移技术就可以帮助人们通过图像合成的方式来尝试期望的妆容,这一过程也可称为虚拟试妆。除此之外,随着在线购买化妆品的需求不断增长,人们也对虚拟试妆技术越来越感兴趣。如果用户可以通过虚拟试妆找到适合自己的化妆样式,将会大大促进化妆品的销售,不仅有助于商业的发展,也有助于图像风格迁移领域的发展。
3.虚拟化装应用是一个很方便的工具,它可以帮助用户尝试不同的化妆风格,目前这些应用包括美图秀秀、taaz和dailymakever1等。但这些软件都依赖于预先确定好化妆品,只允许用户从给定的化妆风格集合中选定一种风格,即都局限于一组预设配置或对于特定特征的一组参数中,无法满足用户的个性化需求。事实上,在日常生活中,我们可以从明星的照片中看到许多不同的、美丽的化妆风格,这些都能为用户的化妆风格提供参考。而虚拟妆效迁移算法就可以帮助用户将这些照片中的化妆风格转移到自己的面部图片中,从而可以使得用户简单直接地判断该化妆风格是否适合自己。
4.人脸妆容迁移是一种在保持人脸姿态、表情和身份不变的情况下,将参考图像(化妆人脸)中的妆容迁移到源图像(未化妆人脸)中的图像生成技术。人脸蕴藏着大量有用信息,基于人脸面部的研究在很多领域都受到了广泛的关注。人脸妆容迁移作为生成对抗网络的一个重要应用,无论在理论研究还是在商业应用领域均具有重要的价值。但是,由于人脸具有复杂的几何形式、不同的姿态、妆容具有不同的颜色变化和不同的纹理变化的特点,使得生成将参考图像的妆容迁移到源图像中的结果图像具有一定的难度,且要实现多种妆容的迁移以及可控妆容迁移又对人脸妆容迁移提出了更高地要求。
5.妆容迁移任务是一种特定形式的风格迁移任务,是比较新颖与前沿的话题。理想的妆容迁移技术应做到:在保持素颜妆后图像脸部结构不变的同时,尽可能地体现参考妆容的风格。
6.实现良好的妆容迁移效果需要对人脸面部进行精确的语义分割,以生成逼真的合成图像。传统的方法主要侧重于图像预处理技术,如图像梯度编辑或基于物理过程来操作。guo等人首次尝试了妆容迁移任务,将图像分解为三个层面,包括面部结构、妆容颜色和皮肤,然后将参考图像的妆容分型转移到源图像中。这个过程需要复杂的预处理步骤和传递
过程,且合成的图像具有明显的不自然现象。
7.文献(liu s,ou x,qian r,et al.makeup like a superstar:deep localized makeup transfer network[j].arxiv preprint arxiv:1604.07102,2016.)首先提出了基于深度学习框架的妆效迁移算法,实现了端到端的上妆,并针对妆效迁移算法提出了几个基础标准,包括:(1)妆效的完整性:迁移的妆效至少包括底妆、眼妆和唇妆三部分;(2)局部妆效的精确性:对应部位的妆效应该转移到对应部位;(3)结果自然:妆效迁移后的图像应该尽可能地自然,没有明显的伪影;(4)妆效程度的可控性:可以实现对迁移妆效的浓淡程度控制。但由于该方法将三个部位的妆效分别以各自的形式转移,将整体的妆效视为不同部分的简单组合,导致最后的输出图像在结合位置存在明显的不自然伪影。kaur等人提出一种面部纹理转移的方法,实现在不改变源图像的身份的前提下,将参考图像的面部纹理平稳自然地转移到内容面部图像中,通过设计损失函数来保留源图像的面部结构。liu等人引入双层对抗网络,将两个对抗网络集成到端到端深度网络中,其中一个网络在像素级别上重建人脸的面部图像,另一个网络在特征级别上保留源图像的身份信息,达到了不错的效果。
[0008]
beautygan是首次提出的基于生成对抗网路的妆效迁移算法,其在cyclegan的框架基础上加入了直方图损失。pairedcyclegan也是在cyclegan基础上提出了一个不对称的生成对抗网络框架来完成妆效迁移和妆效去除的任务,还引入了循环一致性损失函数的变体来支持指定参考图像进行妆效迁移。与beautygan不同的是,它要同时训练两个不对称的神经网络,其中网络1用于妆效迁移,网络2用于妆效去除。并且将网络1的输出作为网络2的补充输入,使得网络训练的数据量增加了一倍。但它并不是将妆效作为整体进行迁移,而是对应三个部位的妆效训练三个神经网络,也因此导致结果图像存在不自然的伪影。gu等人提出的ladn(面部上妆和卸妆的局部对抗性分离网络)利用多个重叠的本地鉴别器和非对称损失函数来保证局部细节的一致性。与chang等人在pairedcyclegan中类似,该方法卸妆和上妆是同时进行训练的,并利用局部判别器来避免图像中出现残缺的小块,该方法使用局部鉴别器来避免使用图像的裁剪块。与chang等人不同的是,该方法使用了编码结构对妆效风格和身份分别进行编码,这与slgan的做法一样。因此,可以通过在两个不同的妆效风格对应的编码中插值来获得组合妆效风格。ca-gan提出了色彩鉴别器来改善唇部和眼部区域的细粒化妆效色彩迁移,实现了定量分析妆效迁移的颜色准确性。但由于其将妆容迁移简单视为各个区域的颜色迁移,会导致忽略妆效的光泽度和质感等非颜色信息。
[0009]
以上的妆效转移算法都局限于眼妆、唇妆、底妆这三部分的妆效。makeupbag拓展了妆容的多样性,实现了对于一些面部贴纸、纹身和装饰品等极端妆容的转移,但其不能转移底妆,因为该算法无法将自然皮肤识别为需要转移的妆容。除此之外,该方法会将一些面部遮挡物错误地识别为需要转移的妆效,导致迁移妆容不完整。
[0010]
虽然上述方法在一定意义上可以进行妆效迁移,但他们没有特别处理源图像与参考图像之间的空间错位问题,也不能对妆效进行精确和局部的调整。psgan首次尝试通过引入注意力机制来解决空间错位问题,提高了姿态和表情的鲁棒性。这是数据集能够从单一的正面到不同姿态的一大进步。他们建立了源图像到参考图像之间的像素级联系,并利用面部解析掩码和面部标志实现了局部妆效迁移。此外,psgan可以通过改变注意特征的权重实现了对迁移妆效浓淡程度的控制。但是注意力矩阵的计算开销巨大,训练网络需要花费
较长时间,且对局部妆效迁移不够灵活。cpm算法通过将颜色类妆容和图案类妆容分别处理实现了妆容迁移的多样性,并建立了相应的图案类妆容数据集。但由于其是将妆容作为整体迁移的,不能实现多张参考图像的灵活组合以及部分妆容的迁移。除此之外,其在图像姿态差异较大的情况下,存在不自然的伪影。
[0011]
尽管许多人进行了深入的探索,但还没有一种方法既能实现对极端妆容的转移,又能赋予用户足够的使用灵活性。相应地,本领域需要一种新的人脸妆容迁移方法解决上述问题。


技术实现要素:

[0012]
为了解决现有技术中的上述问题,本发明提供了一种具有人脸姿态鲁棒性、能够实现可控地、多样化地基于生成对抗网络的妆容迁移方法。
[0013]
本发明的目的是通过以下技术方案实现的:
[0014]
一种基于生成对抗网络的妆容迁移方法,包括如下两种技术方案:
[0015]
技术方案一、
[0016]
步骤一、人脸分割
[0017]
将rgb三通道彩色人脸参考图像输入到人脸分割模块中,得到人脸语义分割灰度图;
[0018]
本步骤中,人脸分割模块将人脸分割为19个部分:背景、脸部、鼻子、眼镜、左眼、右眼、左眉、右眉、左耳、右耳、嘴部(包括牙齿)、上嘴唇、下嘴唇、头发、帽子、耳环、项链、颈部、衣物,人脸语义分割灰度图不同大小的灰度值标记不同的部位;
[0019]
步骤二、uv映射
[0020]
分别将人脸源图像、人脸参考图像及人脸参考图像对应的人脸语义分割灰度图输入到uv映射模块中,将图片的位置信息和纹理信息分离开来,得到对应的uv位置贴图s和uv纹理贴图t;
[0021]
步骤三、妆容提取
[0022]
根据步骤二得到的人脸参考图像对应的uv纹理贴图和人脸参考图像的人脸语义分割灰度图对应的uv纹理贴图按位相与,提取出眼妆、唇妆和底妆三部分的妆容;
[0023]
步骤四、颜色转移
[0024]
步骤四一、构建颜色转移分支生成器
[0025]
所述颜色转移分支生成器包括编码器1、编码器2、第一瓶颈层、第二瓶颈层、妆容迁移模块、解码器;
[0026]
步骤四二、将步骤三中得到的眼妆、唇妆和底妆三部分妆容分别输入到编码器2中提取各部分妆容的样式特征,得到妆容的样式编码;
[0027]
步骤四三、将步骤二中得到的源图像对应的uv纹理贴图输入到编码器1、第一瓶颈层中提取其中的人脸身份特征;
[0028]
步骤四四、利用妆容迁移模块将步骤四二得到的妆容的样式编码融合到人脸身份特征中,再由解码器解码得到将参考妆容迁移到源图像中的uv纹理贴图;
[0029]
步骤五、uv逆映射
[0030]
将步骤四中得到的妆容迁移后的uv纹理贴图沿着步骤二中得到的源图像的uv位
置贴图进行映射,将其还原为真实的二维图像,此图像即为妆容迁移的结果图像;
[0031]
技术方案二、
[0032]
步骤一、人脸分割
[0033]
将rgb三通道彩色人脸参考图像输入到人脸分割模块中,得到人脸语义分割灰度图;
[0034]
步骤二、uv映射
[0035]
分别将人脸源图像、人脸参考图像及人脸参考图像对应的人脸语义分割灰度图输入到uv映射模块中,将图片的位置信息和纹理信息分离开来,得到对应的uv位置贴图和uv纹理贴图;
[0036]
步骤三、妆容提取
[0037]
根据步骤二得到的人脸参考图像对应的uv纹理贴图和人脸参考图像的人脸语义分割灰度图对应的uv纹理贴图按位相与,提取出眼妆、唇妆和底妆三部分的妆容;
[0038]
步骤四、颜色转移
[0039]
步骤四一、构建颜色转移分支生成器
[0040]
所述颜色转移分支生成器包括编码器1、编码器2、第一瓶颈层、第二瓶颈层、妆容迁移模块、解码器;
[0041]
步骤四二、将步骤三中得到的眼妆、唇妆和底妆三部分妆容分别输入到编码器2中提取各部分妆容的样式特征,得到妆容的样式编码;
[0042]
步骤四三、将步骤二中得到的源图像对应的uv纹理贴图输入到编码器1、第一瓶颈层中提取其中的人脸身份特征;
[0043]
步骤四四、利用妆容迁移模块将步骤四二得到的妆容的样式编码融合到人脸身份特征中,再由解码器解码得到将参考妆容迁移到源图像中的uv纹理贴图;
[0044]
步骤五、图案转移
[0045]
步骤五一、将步骤二中得到的参考图像对应的uv纹理贴图输入到图案转移分支的图案分割网络中,得到图案妆容对应的人脸语义分割灰度图;
[0046]
步骤五二、将步骤五一中得到的图案妆容对应的人脸语义分割灰度图与参考图像的uv纹理贴图按位相与,提取出图案类妆容;
[0047]
步骤五三、将步骤五一中得到的图案妆容对应的人脸语义分割灰度图取反后与步骤四中得到的妆容迁移后的uv纹理贴图按位相与,再与步骤五二中得到的图案类妆容按位相加,得到完整的妆容迁移后的uv纹理贴图;
[0048]
步骤六、uv逆映射
[0049]
将步骤五中得到的妆容迁移后的uv纹理贴图沿着步骤二中得到的源图像的uv位置贴图进行映射,将其还原为真实的二维图像,此图像即为妆容迁移的结果图像。
[0050]
相比于现有技术,本发明具有如下优点:
[0051]
本发明不仅能够在源图像和参考图像姿态差异较大时取得更好的妆容迁移效果,还能够实现多张参考图像的局部妆容组合转移以及单张参考图像的局部妆容单独转移和图案类极端妆容的迁移,给用户提升了妆容迁移的可控性、灵活性和图像姿态的鲁棒性,更适合实际应用场景。
附图说明
[0052]
图1为人脸分割模块网络结构;
[0053]
图2为uv映射模块;
[0054]
图3为颜色转移分支生成器结构;
[0055]
图4为颜色转移分支生成器具体细节结构;
[0056]
图5为算法整体框架1;
[0057]
图6为算法整体框架2;
[0058]
图7为整体妆容的迁移结果;
[0059]
图8为存在姿态差异时的迁移结果;
[0060]
图9为局部妆容迁移结果;
[0061]
图10为整体妆容的迁移结果;
[0062]
图11为存在姿态差异时的迁移结果;
[0063]
图12为局部妆容迁移结果。
具体实施方式
[0064]
下面结合附图对本发明的技术方案作进一步的说明,但并不局限于此,凡是对本发明技术方案进行修改或者等同替换,而不脱离本发明技术方案的精神和范围,均应涵盖在本发明的保护范围中。
[0065]
本发明在将基础妆容和图案类妆容分别处理的基础上,提供了一种基于人脸妆容迁移方法,所述方法主要由四部分组成:(1)人脸分割网络:提取出人脸的各个部位信息。(2)uv映射网络:将人脸图像的位置信息和纹理信息分离。(3)颜色转移分支:对眼妆、唇妆和底妆三部分的基础妆容分别进行提取、编码、组合和迁移。(4)图案转移分支:对面部图案等极端妆容进行转移。
[0066]
1、人脸分割网络
[0067]
之前的工作都只是在网络训练过程中提取出各部分妆容,而并没有在网络推理过程中对参考图像进行处理,这导致只能将整张脸的全部妆容一起转移,而不能够实现指定部分的妆容转移,也不能实现将多张参考图像的局部妆容组合转移。而为了能够提供给用户这部分的妆容迁移的灵活性与可控性,需要设计人脸分割模块,精准地提取图像中人脸面部的各部分妆容。分割网络引入u-net的网络结构,能够更加有效地将图像各部分的信息分割开来,具体网络结构如图1所示,图中每个深色矩形框代表不同大小尺寸的特征映射,其通道数标记在矩形框的上方,长宽的尺寸标记在其左侧。浅色矩形框代表复制的特征映射。不同灰度和不同方向的箭头代表不同的操作。
[0068]
人脸分割模块接收rgb三通道彩色人脸图像作为输入,先将其统一裁剪为256
×
256的大小。然后不断通过卷积、池化提取特征,再通过上采样得到19通道的人脸分割映射,最终转换为人脸语义分割灰度图。这里将人脸分割为19个部分,语义分割图中不同大小的灰度值标记不同的部位,具体部位的灰度权重标记如表1所示。后续可以通过将人脸图像与其对应的人脸分割语义图按位相与,提取出不同部位的妆容信息,方便后续对妆容的编码、迁移。人脸分割网络的训练采用celebamask-hq数据集,该数据集是带有细粒度掩码标签的大规模高分辨率数据集,其包含超过30000张人脸图像,分辨率为1024
×
1024,其中每张图
片都有对应的人工标记掩码标签图片,其分辨率为512
×
512。将人脸分割为19个部分,如眼睛、鼻子和嘴巴等,注意并不是所有人脸都有完整的19个部分。
[0069]
表1人脸分割权重标记表
[0070][0071]
2、uv映射网络
[0072]
psgan通过引入注意力机制来解决源图像和参考图像中人脸姿态差异过大带来的妆容迁移问题,但是其计算开销巨大,且效果也不是很好。而解决该问题的最好办法就是进行三维人脸解析,即将人脸图像的姿态信息与纹理信息分离,然后只在纹理信息中进行妆容迁移,再将结果图像按照原本的姿态信息还原回去,这样就可以屏蔽掉姿态信息的差异,并且很好地保护源图像的姿态信息。但是如果直接采用三维人脸建模的方式来获取姿态信息,也会造成巨大的计算开销。为了提高算法对于参考图像和源图像之间姿态差异的鲁棒性,并且提高处理速度,引入uv映射将图像中的人脸位置信息与纹理信息进行分离,其不需要计算大量参数来进行人脸三维建模,而是利用人脸图像及其姿态信息的配对数据来有监督训练一个编码解码的网络,从而实现输入一张彩色的人脸图像,输出其对应的位置信息,称作uv位置贴图。
[0073]
uv贴图表示是计算机图形学中对3d对象进行纹理映射的常用技术,即将3d对象的每个关键点都与2d图像上的位置(uv坐标)相关联,并据此进行纹理采样,得到3d对象的纹理图,也就是将3d对象表面的纹理展平成一张2d图像。prnet扩展了这一想法,并引入了uv位置贴图来编码任意的3d面部形状。使用彩色图片的rgb三个通道来存储来自3d人脸模型的点的3d位置,即xyz坐标信息,这张图就是uv位置贴图。无论输入的头部姿态组合,uv位置贴图中的每个像素都对应于面部的一个固定语义点。相应地还有一张图,用来存储来自2d人脸模型的点的纹理信息,这张图就是uv纹理贴图。根据uv位置贴图,对真实的图像进行纹理映射,就可以获得配对的uv纹理贴图。uv位置贴图包含有关面部形状、头部姿势和面部表情所有信息,uv纹理贴图包含面部的全部纹理信息,两者没有必然联系。这就将一张人脸图片中的人脸位置信息和纹理信息分离开来,后续只对图像的纹理信息进行妆容迁移,自然去除了姿态差异较大时带来的影响。
[0074]
uv映射模块网络采用编码器-解码器的结构,具体结构如图2所示。编码器从一个卷积层开始,然后是10个残差块,将图像从256
×
256
×
3映射为8
×8×
512的特征张量。解码器部分包含17个转置卷积层,根据特征张量来预测输入图像的uv位置贴图。所有卷积层的
卷积核大小都为4
×
4,并使用relu激活函数。
[0075]
这里用uv表示uv映射的过程,即给定输入人脸图片,利用uv映射的预训练模型来得到其对应的uv位置贴图s和uv纹理贴图t。用uv-1
表示uv逆映射的过程,即根据uv位置贴图s和uv纹理贴图t还原出一张二维真实的人脸图像。定义该过程:
[0076]
s,t:=uv(i)
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(1);
[0077]
i:=uv-1
(s,t)
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(2)。
[0078]
在算法整体框架中,分别对输入图片上i
src
、i
ref
和应用转换函数uv,来得到对应的uv映射图(s
src
,t
src
)、(s
ref
,t
ref
)和注意这里s
src
、s
ref
和是仅仅与3d人脸形状有关的uv位置贴图,因此这部分与妆容纹理无关。然后,将纹理贴图t
src
、t
ref
和输入颜色转移分支和图案转移分支,这两个分支的输出结果将融合成最终的妆容迁移后的纹理贴图t
res
。最后,再根据源图像的uv位置贴图s
src
通过渲染函数uv-1
将其转换表示为标准二维图像:
[0079]ires
=uv-1
(s
src
,t
res
)
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(3);
[0080]
式中,i
res
代表最终得到的二维结果图像(res即result)。
[0081]
3、颜色转移分支
[0082]
颜色转移分支采用生成对抗网络的形式进行训练,并使用训练后的生成器来完成妆容的提取、编码和转移。为了实现对三部分基础妆容的分别提取、编码和转移,生成器引入stylegan(karras t,laine s,ailat.astyle-basedgeneratorarchitecture forgenerative adversarial networks[c]//proceedings ofthe ieee/cvf conference on computer visionandpatternrecognition.2019:4401-4410.)的编码机制,将三部分的妆容分别进行编码、转移。
[0083]
生成器的结构如图3所示,包括编码器1和编码器2、第一瓶颈层、第二瓶颈层、妆容迁移模块、解码器。
[0084]
左上方的编码器1和第一瓶颈层对源图像的人脸身份进行特征提取,目标是从输入源图像中提取人脸身份特征:
[0085]fid
=fienc(x)
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(8)。
[0086]
其中,编码器1由两个卷积块构成,卷积块的具体结构如图4中的(a)图所示,包括卷积层、实例归一化和relu激活函数。为了解决深度网络难以训练的问题,第一瓶颈层中引入残差块的结构,该瓶颈层由三个残差块构成,注意这里的残差块是没有adain层的普通残差块。残差块的具体结构如图4(b)所示,由卷积层、实例归一化、relu激活函数、卷积层、实例归一化串联而成,并将一开始的输入叠加到网络最后一层输出中,作为残差块的输出。
[0087]
根据之前人脸分割模块得到的参考图像的人脸语义分割图,将左下方参考图像纹理图解构成眼部、面部和唇部三个部分,通过应用如下公式实现:
[0088]
yi=t
ref

miꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(4);
[0089]
其中,yi表示参考图像中人脸的每个组成部分,i={lip,skin,eyes},mi是对应的权重面罩,

表示hadamard乘法。
[0090]
每个输入的局部妆容yi都会输入图3中左下方的编码器2来提取各部分的妆容特
征。编码器2由两个卷积块构成,卷积块的具体结构如图4中的(a)图所示,包括卷积层、实例归一化和relu激活函数。编码器1和编码器2的结构相同,但注意他们不共享参数。
[0091]
为了能够实现对各部分妆容的编码、解纠缠,妆容迁移模块引入stylegan的编码机制,其由图4中的映射模块和多层感知机组成。映射模块的结构如图4(c)所示,由一个平均池化层和一个1
×
1的卷积层组成。其将输入的每个组成部分yi被映射为部分特定的样式编码zi。然后将三部分的编码串联起来,形成一个在潜在空间z的完整初始样式编码z:
[0092][0093]
其中,在这里表示连接。
[0094]
正是由于将输入的参考图像解构成不同的语义组成部分,本发明的方法才能实现组合不同参考图像的任意语义组成部分,即使这些参考图像之间的姿态不同、表情不同。组合多张参考图像局部妆容编码的公式如下:
[0095][0096]
其中,a,b,c分别对应ya,yb,yc三张参考图像。
[0097]
为了改变训练数据的分布,需要注入非线性,将初始的样式编码z输入一个带有三层全连接的多层感知网络(mlp),可以得到在更好地解纠缠潜在空间w中的样式编码:
[0098]
w=mlp(z)
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(7)。
[0099]
图3中的第二瓶颈层将样式编码w逐个融合到人脸身份信息特征f
id
,从而将参考图像的妆容迁移到源图像的人脸中。第二瓶颈层由三个融合块构成,融合块的结构如图4(d)所示,其是带adain的残差块结构,也就是将原本的图4(b)残差块中的实例归一化换成了adain自适应实例归一化,并将妆容迁移模块的输出作为adain层的参数,以此实现特征融合。样式编码w由可学习的仿射变换指定,然后传递到每个融合块。第j层adain层由下式定义:
[0100][0101]
其中,w
s,j
和w
b,j
是使用相应组件的缩放和偏置样式,fj表示输入特征图,μ(
·
)和σ(
·
)分别是通道级别的均值和标准差。
[0102]
再经过图3中的解码器两层的上采样卷积后,就得到最终的结果图片其中上采样卷积块的具体结构如图4中的(e)所示,由上采样、卷积、层归一化和relu激活函数构成。
[0103]
由于妆容迁移任务的复杂性,这部分生成对抗网络的训练采用联合损失函数,包括以下几个部分:
[0104]
(1)对抗损失函数。其用于引导生成器生成更具有真实性的结果。用两个判别器d
x
和dy分别判定图片在化妆域x和化妆域y中的真实性,将网络生成的图像与真实的图像区分开来。两个判别器的结构与马尔科夫判别器相同。生成器的对抗损失函数l d
和判别器的对抗损失函数lg分别定义为:
[0105]
[0106]
lg=-e
x~x,y~y
[log(d
x
(g(y,x))
×dy
(g(x,y)))]
ꢀꢀꢀꢀꢀꢀ
(11)。
[0107]
(2)全局感知损失函数。因为图片是来自两个不同域的,所以像素级的约束是不可行的。为了保证输入源图像和输出妆容迁移图像的人脸一致性(内容一致性),用感知损失函数来保证整体的人脸身份一致。全局感知损失函数l
global
定义为:
[0108]
l
global
=||f
l
(g(y,x))-f
l
(y)||2 ||f
l
(g(x,y))-f
l
(x)||2ꢀꢀꢀꢀ
(12);
[0109]
其中,f
l
(
·
)表示vgg网络模型的第l层输出特征,||
·
||2是l2范数。
[0110]
(3)局部感知损失函数。除了全局感知损失函数,引入局部损失函数来进一步保持非妆容迁移部分的不变性,如牙齿、眉毛等。局部损失函数l
local
定义为:
[0111][0112]
其中,m表示在集合i={teeth,hair,eyeballs,eyebrows}中的具体部分的面罩,i表示i的下标。
[0113]
(4)循环一致性损失函数。对于没有配对图像数据的无监督学习任务,采用cyclegan提出的循环一致性损失函数来保护源图像的身份信息,循环一致性损失函数l
cyc
定义为:
[0114]
l
cyc
=||g(g(y,x),y)-y||1 ||g(g(x,y),x)-x||1ꢀꢀꢀꢀꢀꢀꢀ
(14);
[0115]
其中,||
·
||1表示l1范数。
[0116]
(5)妆容损失函数。引入妆容损失函数来提高妆容迁移的精确度,它利用直方图匹配(hm)来提供一个妆容迁移后的图像作为伪基准真实图像。它由三个不同脸部区域的局部直方图匹配构成,包括面部、眼部和唇部,这三部分整合为一张伪基准真实图像。妆容损失函数l
makeup
定义为:
[0117]
l
makeup
=||g(x,y)-hm(x,y)||2 ||g(y,x)-hm(y,x)||2ꢀꢀꢀꢀ
(15);
[0118]
其中,hm(
·
)表示直方图匹配,hm(x,y)的输出拥有y的妆容风格,且保留x的人脸身份。
[0119]
完整网络的全部总体损失函数定义为:
[0120]
l
total
=λ
gan
(ld lg) λ
cyc
l
cyc
λgl
global
λ
l
l
local
λ
makeup
l
makeup
ꢀꢀꢀꢀ
(16);
[0121]
其中,λ
gan

cyc
,λg,λ
l
和λ
makeup
分别是不同损失项所占的权重。
[0122]
网络训练采用mt-dataset,但是需要先将其全部转换为相应的uv纹理贴图,然后用uv纹理贴图的训练集进行训练。
[0123]
4、图案转移分支
[0124]
图案转移分支目标是检测和转移基于图案的妆容,如贴纸、面部图案和饰品等。由于图案类的妆容本质与基础妆容不同,迁移基础妆容可以视为对颜色的迁移,而迁移图案类的妆容必须在纹理、形状和位置等方面的保持其不变,且将其变形到目标的3d人脸表面。因此,引入图案转移分支来实现对眼妆、唇妆和底妆之外的图案妆容的迁移。
[0125]
在自然的真实图像中,转移图案妆容的过程很复杂,需要先分割图案、将其展开,再重新扭曲到目标图像中。但由于这里我们采用uv纹理贴图作为输入,已经将人脸的位置信息分离,就不需要展开和重新扭曲这两个步骤,直接将问题简化为简单的纹理图像分割。
这一过程可以通过任何的分割网络实现,这里采用与人脸分割模块类似的u-net网络结构,如图1所示。最终实现给定输入的参考图像纹理贴图t
ref
,为其中的图案类妆容预测出一个二值的分割面罩γm。
[0126]
训练数据集采用cpm-synt-1,该数据集共5555组数据。训练通过减小如下真实分割掩码与预测分割掩码之间的骰子损失实现:
[0127][0128]
其中,γ
gt
为基准真实分割掩码,γ
pr
为预测的分割掩码。
[0129]
5、组合及uv逆映射
[0130]
图案转移分支的输出是权重分割面罩γm,然而颜色转移分支的输出的是纹理贴图t
res
,这两个分支的输出结果形式完全不同,这也反映了两种妆容之间的根本差异,所以本发明的方法采用两个单独的分支对不同妆容分别进行处理。
[0131]
为了得到最终期望结果的uv纹理贴图,需要将由预测权重面罩定义的参考图像的图案妆容与颜色转移输出的纹理贴图混合:
[0132]
t
res
=t
ref

γm t
color

(1-γm)
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(18);
[0133]
其中,γm表示图案转移分支输出的图案分割面罩,t
ref
表示从uv映射模块得到的参考图像的纹理图,t
color
表示颜色转移分支输出的妆后纹理图,

表示对应元素相乘,t
res
表示颜色转移分支和图案转移分支的输出混合后的纹理图。最后,利用渲染函数将此uv纹理贴图映射为真实的输出图像:
[0134]ires
=uv-1
(s
src
,t
res
)
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(19)。
[0135]
本发明中,网络训练分为以下四个部分分别进行训练:
[0136]
(1)预训练人脸分割网络。
[0137]
(2)预训练uv映射网络。
[0138]
(3)预训练图案妆容分割网络。
[0139]
(4)训练颜色转移分支的生成对抗网络。
[0140]
本发明中,网络推理过程有如下两种:
[0141]
过程一、只进行眼妆、唇妆和底妆三部分基础妆容迁移的网络推理过程,如图5所示,按照时间线分为以下几个部分:
[0142]
(1)将参考图像输入人脸分割网络,得到其对应的人脸语义分割灰度图。
[0143]
(2)分别将源图像、参考图像及参考图像对应的人脸语义分割灰度图输入uv映射网络,将图片的位置信息和纹理信息分离开来,分别存储得到对应的uv位置贴图、uv纹理贴图。后续的妆容迁移工作将在uv纹理贴图上进行,留源图像的位置信息后面用。
[0144]
(3)根据(2)得到的参考图像对应的uv纹理贴图和参考图像的人脸语义分割灰度图对应的uv纹理贴图按位相与,提取出眼妆、唇妆和底妆三部分的妆容。
[0145]
(4)将(3)得到的三部分妆容分别输入颜色转移分支的妆容编码器进行妆容编码,将(2)得到的源图像的uv纹理贴图输入颜色转移分支进行人脸身份信息的编码,通过颜色转移分支内部的妆容转移、解码模块后,得到将参考妆容迁移到源图像中的uv纹理贴图。
[0146]
(5)将(4)得到的妆容迁移后的uv纹理贴图沿着(2)得到的源图像的uv位置贴图进
行映射,将其还原为真实的二维图像,此图像即为妆容迁移的结果图像。
[0147]
过程二、同时进行颜色类妆容和图案类妆容迁移的网络推理过程,如图6所示,按照时间线分为以下几个部分:
[0148]
(1)将参考图像输入人脸分割网络,得到其对应人脸语义分割灰度图。
[0149]
(2)分别将源图像、参考图像及参考图像对应的人脸语义分割灰度图输入uv映射网络,将图片的位置信息和纹理信息分离开来,分别存储得到对应的uv位置贴图、uv纹理贴图。后续的妆容迁移工作将在uv纹理贴图上进行,留源图像的位置信息后面用。
[0150]
(3)根据(2)得到的参考图像对应的uv纹理贴图和参考图像的人脸语义分割灰度图对应的uv纹理贴图按位相与,提取出眼妆、唇妆和底妆三部分的妆容。
[0151]
(4)将(3)得到的三部分妆容分别输入颜色转移分支的妆容编码器进行妆容编码,将(2)得到的源图像的uv纹理贴图输入颜色转移分支进行人脸身份信息的编码,通过颜色转移分支内部的妆容转移、解码模块后,得到将参考妆容迁移到源图像中的uv纹理贴图。
[0152]
(5)将(2)得到的参考图像对应的uv纹理贴图输入图案转移分支的图案分割网络,得到图案妆容对应的权重分割面罩。
[0153]
(6)将(5)得到的图案妆容的权重分割面罩与参考图像的uv纹理贴图按位相与,提取出图案类妆容。
[0154]
(7)将(5)得到的图案妆容的人脸语义分割灰度图取反后与(4)得到的妆容迁移后的uv纹理贴图按位相与,再与(6)得到的图案类妆容按位相加,得到完整的妆容迁移后的uv纹理贴图。
[0155]
(8)将(7)得到的妆容迁移后的uv纹理贴图沿着(2)得到的源图像的uv位置贴图进行映射,将其还原为真实的二维图像,此图像即为妆容迁移的结果图像。
[0156]
妆容迁移效果:
[0157]
(1)只进行眼妆、唇妆和底妆三部分基础妆容的转移。
[0158]
当源图像和参考图像均为正面图像时的整体妆容转移结果如图7所示,图中每一行为一组实验,左列为输入的源图像,中间为参考图像,右列是将参考图像的妆容迁移到源图像中的结果。整体妆容迁移效果较好,能够较好地迁移唇妆、底妆和眼妆,但眼妆略有不足,因为在提取眼妆时,是通过在眼睛周围画矩形框来实现的,在迁移后的图像中,可以看到细微的矩形框形状出现,后续要解决这个问题。
[0159]
当参考图像和源图像存在较大姿态差异时的妆容转移结果如图8所示,其中每一行为一组实验。对于每次实验,其中最左列为源图像,第二列为参考图像,第三列是本发明算法的妆容迁移结果,第四列是cpm算法的妆容迁移结果。通过对比可以看到,cpm算法将参考图像中本不该迁移的阴影部分也迁移到了结果图像中,而此时男人的右脸是朝前的,并不该有阴影存在,而本发明算法可以更好地迁移整体妆容,这体现了将局部妆容编码的优势。因此,在姿态差异较大时,本发明算法的效果比cpm的算法效果更好。
[0160]
由于本发明算法对输入图像的三部分妆容分别进行提取、编码,而不是将妆容作为整体来迁移,这就使得其可以对参考图像的局部妆容进行转移,并且可以实现多张参考图像的不同局部妆容组合转移,这是cpm算法做不到的。局部妆容的转移结果如图9所示,其中前两行均为单张参考图像下的实验结果,最后一行是两张参考图像的实验结果。在前两行中,第一列是源图像,第二列是参考图像,第三、四、五列分别是仅仅将参考图像的唇妆、
底妆和眼妆转移到源图像中的结果。在最后一行中,第一列为输入的源图像,第二列是输入的第一张参考图像,第三列是输入第二张参考图像,第四列是将第一张参考图像的唇妆组合第二张参考图像的其他妆容转移到源图像中的结果,第五列是将第二张参考图像的唇妆组合第一张参考靠图像的其他妆容转移到源图像中的结果。
[0161]
(2)在(1)的基础上,拓展图案妆容的转移。
[0162]
为了体现对图案妆容的转移效果,这一部分的参考图像选择带有图案妆容的参考图像。当源图像和参考图像均为正面图像时的整体妆容转移结果如图10所示,每一行为一组实验,最左列为输入的源图像,第二列为输入的参考图像,最右列为将参考图像全部妆容转移到源图像中得到的结果。在这里可以看到,无论是眼妆、唇妆和底妆这三部分基础妆容还是图案类的妆容,都能够很好地转移。
[0163]
当参考图像和源图像存在较大姿态差异时的妆容转移结果如图11所示,其中每一行为一组实验。对于每次实验,其中最左列为源图像,第二列为参考图像,第三列是本发明算法的妆容迁移结果,第四列是cpm算法的妆容迁移结果。通过对比可以看到,cpm算法将参考图像中本不该迁移的阴影部分也迁移到了结果图像中,而本发明的算法可以更好地迁移整体妆容,这体现了将局部妆容编码的优势。但是,眼妆以及唇妆的效果并没有cpm算法好。
[0164]
局部妆容的迁移结果如图12所示,其中前两行均为单张参考图像下的实验结果,最后一行是两张参考图像的实验结果。在前两行中,第一列是输入的源图像,第二列是输入的参考图像,第三、四、五、六列分别是仅仅将参考图像的唇妆、底妆、眼妆和图案妆容转移到源图像中的结果。在最后一行中,第一列为输入的源图像,第二列是第一张参考图像,第三列是第二张参考图像,第四列是将第一张参考图像的唇妆组合第二张参考图像的其他妆容转移到源图像中的结果,第五列则是将第二张参考图像的唇妆和第一张参考图像的其他妆容转移到源图像中的结果,第六列是将第二张参考图像的唇妆、图案妆容以及第一张参考图像的其他妆容转移到源图像中的结果。从结果中可以看出,本发明的算法可以灵活地实现对局部妆容进行转移以及对多张参考图像局部妆容地灵活组合,可以很好地满足用户个性化的需求。
再多了解一些

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

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

相关文献