第一个基于Glow模型的妆容迁移方法
优点:无需训练判别器和生成器两个大网络,自动合成生成结果不到一秒。
基于 GAN 的方法不包含从数据构建潜在空间的编码器,因此无法通过简单地插入潜在向量来实现按需化妆转移。
在GAN中,由于模型没有编码器使得数据点通常不能在潜在空间中直接被表征,并且表征完整的数据分布也是不容易的。
输入:参考图()和素颜图()
把输入图像编码到潜在空间Z中,表示为(素颜图)和(参考图)
从中获取向量,从中获取向量通过变换矩阵 W 分别分解为两个潜在特征(,),(,),把和相加生成
为了让变换矩阵 W 将潜在向量完美分解为潜在面部特征和潜在化妆特征,引入损失函数。
感知损失函数提取面部特征:
限制了面部潜在特征和素颜图像潜在特征间的距离。
域内损失和域间损失旨在确保化妆后图像和卸妆图像在化妆和非化妆域的区别:
域内损失:
为了让参考图像的面部潜在向量应该接近非化妆域,化妆后的潜在向量应该接近化妆域,使用所有非化妆图像的平均潜在向量表示非化妆域的质心,使用所有化妆图像的平均潜在向量表示化妆域的质心。
域间损失:
有效地清晰地分解面部潜在向量和化妆潜在特征,
计算两个潜在向量 A 和 B 之间的相似度:
化妆损失函数提取化妆特征:
假设人脸图像的潜在特征由面部特征和化妆特征组成,去除五官后,剩下的就是妆容了,如 Glow[1] 所示,可以通过操纵图像的潜在特征来提取属性。
所有化妆图像的平均潜在向量与所有未化妆图像的平均潜在向量的差值表示从非化妆潜在向量到化妆潜在向量的方向
循环一致性损失将面部和化妆信息作为输入特征进行维护:
为了保持面部和妆容信息,在潜在空间中还设计了两个循环一致性损失。
总损失:
ℷ 表示权重
结果:
首先使用Glow将图像转换为潜在空间并计算化妆和非化妆潜在域的质心,
之后,我们使用 Adam 优化器通过损失总方程中的目标函数训练变换矩阵W,这是随机梯度下降过程的经典扩展,以基于训练数据迭代更新模型权重。
[1] Kingma D P , Dhariwal P . Glow: Generative Flow with Invertible 1x1 Convolutions[J]. 2018.