在美颜软件必不可少的今天,自动化妆和妆容美化已经深入到了每一个拍照,直播,甚至购物等软件中。貌美如花的背后是计算机视觉技术的不断发展,妆容迁移技术就是其中一项非常重要的技术。只需要一张你自己的面部照片(source image),选取一张你想迁移的妆容类型(reference image), 就可以自动生成你化这种妆的照片(result image)。设想一下,如果你不知道哪种妆容适合自己,因而一种一种化好后照镜子去试的话是不是太过于低效了?妆容迁移技术可以在你没有真的化妆的情况下让你知道化每一种妆的感觉是怎么样的,所以你可以高效的找出适合自己的妆容。因此,对于妆容迁移技术的研究是非常有实用价值的。
BeautyGAN
那么,首先来介绍一下BeautyGAN模型。这是一篇ACM MM 2018的文章。
妆容迁移的目的是将一张化妆图片的妆容迁移到另一张未化妆图片中去,并保持未化妆图片原本的面部特征。研究者认为相对于domain-level的风格迁移,这种instance-level的风格迁移(尤其是还没有paired data,即没有一张图片在化妆前后的照片)是非常具有挑战性的,现有的方法是无法提取和迁移这种instance-level的风格的。因此研究者综合了全局的domain-level的loss以及局部的instance-level的loss,使用两个GAN网络来解决这个问题。此外,该论文还开源了一个数据集,包括3834张高分辨率人脸图片。下面是该模型的结果展示。
在当时,妆容迁移的研究主要分为2类。传统图像处理方法和基于深度学习的方法。
- 传统图像处理方法:将图像分解为若干层(比如:面部结构,颜色,皮肤),然后逐层迁移。
- 基于深度学习方法:对于每种妆容(眼影,唇彩等)采取独立的神经网络去处理。
总之,之前的妆容迁移的方法都是分成几部分再简单的整合,因此显得输出图片很不自然。
同时,end-to-end的结构的模型尽管在风格迁移上取得了很好的效果,但将其应用于妆容迁移是不可行的。主要因为妆容迁移与之前的风格迁移任务有两点不同:
- 化妆风格是因人而异的,需要在instance-level进行迁移。然而GAN网络主要是应用于域级的迁移,比如CycleGAN,其强调域内的不同,而忽略了域间的不同。
- 妆容风格不仅是全局的风格,还包括了每种妆独立的风格。因此,我们想extract出整体的妆容风格并且同时保留每种妆的特点是很难的。
基于上述考虑,研究者提出了一个基于双重GAN网络的BeautyGAN模型,我们来看一下该模型的Framework.
下面来详细地解释一下这张图。首先,A集合是未化妆图片的集合,B集合是化妆图片的集合。然后看左边网络的输入,