机器之心发布
机器之心编辑部
不仅完美地迁移眼影、眉毛、口红等基础妆容,而且能很好地处理美瞳、睫毛、卧蚕等细腻细节,美图影像实验室(MTlab)自主研发的这个全新妆容迁移算法可以令爱美的你尝试各种类型和风格的模特妆容,最终找到适合自己的完美妆容。
虚拟试妆技术一直是美妆、美颜市场最重要的技术之一。当前该领域流行的主流技术为传统素材贴妆,该技术指由专业设计师按指定格式设计好妆容素材,再利用人脸关键点检测把妆容素材贴到对应的五官位置上。
MTlab 研究发现,这类技术存在两个明显不足:一,需要专业设计师设计妆容素材,限制大,用户不能自由选择自己喜欢的妆容;二,妆容素材直接贴在五官上,浮于表面,很多时候看起来不够真实。
由于传统贴妆技术的不足,当前市场上的虚拟试妆相关业务还很难满足大多数用户的需求,为了改变这一局面,MTlab 自主研发了一套全新妆容迁移技术。
具体而言,MTlab 自主研发一种基于深度学习的 MakeupGan(Makeup Generative Adversarial Networks)网络架构,并推出了一种革新 AI 算法——妆容迁移(Makeup Transfer)。
该算法支持用户自由选取心仪模特妆容并迁移到自己脸上,不仅可以迁移眼影、眉毛、口红等基础妆容,还可迁移美瞳、卧蚕、睫毛、五官立体、亮片闪片等细腻细节。迁移效果清晰、自然。
目前,美图旗下美颜相机 APP 已上线基于 MakeupGan 妆容迁移算法的功能——「一键仿妆」,用户可上传自己的照片,选择心仪的模特妆容进行仿妆操作。
美图「一键仿妆」现共有 60 个模特妆容可供选择,妆容风格各有不同,如又纯又欲的果冻妆、复古少女、奶油桃花妆等等。此外,更多妆容还在持续更新中
我们首先来实测用户图像的实际仿妆效果,这里选择的妆容风格是「复古樱桃妆」。
图左:选择的模特妆容;图右:测试用的目标图像。
用户首先选中想仿的模特妆容,点击「仿妆」选择目标图像。美图提供有三种图像风格,分别为经典、原生和 MEN,下图选择的是经典图像风格;然后,点击「编辑」可实现目标图像的自动美化处理,这时用户可选择「开启高清」,可提升目标图像的肌肤光泽并还原立体五官。下图没有选择开启高清;最后点击确认即可生成仿妆后的图像。
图左:模特妆容;图中:美化处理后的目标图像;图右:仿妆后的目标图像。
对于仿妆后的目标对象,用户可以自定义「妆容程度」,实现妆容由淡渐浓。
最后,用户也可上传自己想要仿的任何妆容。这里选择了网络上流行的「宋慧乔妆」,仿妆效果如下所示:
接下来详细解读妆容迁移技术的研究现状、解决方案以及 MTlab 的全新妆容迁移算法。
妆容迁移技术研究现状
妆容迁移是指将目标图上的妆容直接迁移到原图上的技术。相比传统贴妆技术,妆容迁移具有极高的自由度,它可以让用户不再局限于设计师设计好的妆容,而是可以自主、任意地从真实模特图中获取妆容,极大地丰富了妆容的多样性。
此外,妆容迁移技术不仅可以迁移五官妆容信息,还可以对肤色、光影等信息进行整体迁移。再加上妆容信息直接来源于真实模特图,因此该技术可以很好地保持妆容的真实度。
但妆容迁移属于目前较新的研究领域,相比于其他 DL 研究任务,需要解决以下两个主要问题:
  • 一是原图和目标图五官位置和姿态都不固定,如何让网络感知不同位置上的妆容信息?
  • 二是该任务很难获取真实环境中的一对一数据,如何让网络正确监督学习?
对于这两个问题,近些年的一些研究者提出了一些解决方案,具体可以总结如下:
对于问题 1,主要采用的解决办法是:设计一种映射和反映射机制(也可以设计网络结构来实现这样的映射),将原图像特征映射为 identity feature 和 makeup feature,这样原图的 identity feature 可以和目标图的 makeup feature 进行组合,将组合特征反映射为图像特征就可以显式地让网络更好地感知妆容信息;
对于问题 2,主要采用的解决办法有两类:a,用一种颜色迁移算法(比如直方图匹配)结合五官分割进行局部颜色迁移,把目标图各五官成分的颜色迁移到原图对应的五官成分上,这样网络输出的五官区域就可以和颜色迁移后的五官区域直接做 loss 进行学习;b,结合人脸点用一种形变算法(比如三角网格形变)将目标图 warp 到原图上,这样原图和目标图的五官就基本对齐了,再设计 loss 进行监督训练。
研究者们的创新方案收获了很多成果。目前,对于原图和目标图姿态比较接近且肤色差异较小的情况下,很多研究方案都能比较好地迁移五官妆容的颜色信息。
然而,对于真实用户复杂多变的环境(复杂姿态、复杂光照、复杂妆容等)以及更多细腻细节的迁移需求(睫毛、眼瞳、亮片闪片等),妆容迁移技术依然面临着很大挑战。
针对妆容迁移技术的诸多挑战,MTlab 的 MakeupGan 妆容迁移算法应运而生了。
美图 MakeupGan 妆容迁移方案技术详解
要将妆容迁移算法真正落地到产品层面,需要保证以下两个方面的效果:
  1. 鲁棒性:不仅在姿态和肤色差异不大的情况下有稳定效果,还要保证在复杂姿态、多变光照、特殊妆容的场景下依然能保持较好效果;
  2. 全面性:不仅能迁移眼影、眉毛、口红等颜色信息,还需要迁移睫毛、美瞳、卧蚕、亮片闪片等较为精确的细节信息。
MTlab 突破技术瓶颈,提出了 MakeupGan 妆容迁移方案,较好地解决了上述两个问题,并率先将技术落地到实际产品中。核心流程如下图所示:
MakeupGan 妆容迁移方案流程图。
图中所展示的流程主要包括:姿态矫正模块、G 网络模块和训练 Loss 模块,其中训练 Loss 模块里还包括了 MakeupGan 模块。在这几个模块中,姿态矫正和 MakeupGan 模块是本方案的核心创新模块。
该方案的完整工作流程如下:
  1. 通过 MTlab 自主研发的人脸关键点检测算法检测出原始尺寸的原图和目标图的人脸点,并做摆正、裁脸等操作得到流程图中以及后续步骤提到的原图、目标图、原图人脸点和目标图人脸点;
  2. 通过 MTlab 自主研发的五官分割算法将原图和目标图的眉毛、眼睛、嘴唇和皮肤分割出来作为后续模块的输入;
  3. 将目标图、原图人脸点和目标图人脸点输入姿态矫正模块,并得到姿态矫正后的目标图,姿态矫正后的目标图整体上会和原图的姿态一致,并且整个脸的五官大小比例会更接近原图;
  4. 把矫正后的目标图和原图输入 G 网络得到结果图,根据结果图和目标图计算 Cycle consistency loss、Perceptual loss 和 Makeup loss,同时把结果图、原图人脸点、原图五官 mask 输入 MakeupGan 模块计算 Makeup gan loss,这些 loss 控制整个网络的训练;
  5. 将实际裁好后的图输入训练好的 G 网络可以得到网络输出的结果图,结合 MTlab 自研的颜色迁移算法将原图的颜色和光照迁回一部分到结果图上确保结果更加自然,并将处理后的结果图逆回到原始尺寸原图中即完成算法过程。
姿态矫正模块
对于 G 网络结构、Makeup loss、Cycle consistency loss 和 Perceptual loss,该方案参考了论文 PSGan[1]并结合自有方案进行调整。由于 MakeupGan 方案设计了姿态矫正模块,已经可以较好地进行显式的姿态适配,因此在 G 网络中删除了论文里的 AMM 结构。Makeup loss 则沿用了 PSGan 的局部五官直方图匹配 loss。
由于论文中 Cycle consistency loss 和 Perceptual loss 里的 input 和 target 使用的是同一张图,这在一定程度上会削弱其它 loss 对于五官区域的监督,进而影响妆容的学习。MTlab 利用五官 mask 来调节这一问题。首先对五官 mask 取反并进行边缘模糊,然后再把模糊后的 mask 归一化到 (a,1](a>0) 之间得到 mask’。利用 mask’将 loss 调整如下:
姿态矫正模块的详细流程绘制如下:
该模块可以提升算法的鲁棒性,主要包含两个部分,一个是姿态适配,一个是求解变换矩阵。姿态适配是根据原图和目标图的人脸点来判断两张脸的朝向是否相同,若不同则将目标图和目标图的人脸点进行左右翻转,使目标图的朝向和原图一致;求解变换矩阵是利用目标图和原图的人脸点构建最小二乘模型 Y=X*M,通过最小二乘的矩阵求法可以求得一个 3x3 的 M 矩阵,这里的 M 矩阵本质就是一个变换矩阵,包含平移、旋转、缩放等原子变换信息。利用 M 矩阵可以将目标图的像素坐标(x,y)变换到一个新的位置(x’,y’),再用重映射函数 remap 即可将目标图进行整体变换,变换后目标图的整体五官大小比例会尽可能的接近原图五官的大小比例。
MakeupGan 模块
MakeupGan 模块的详细流程绘制如下:
该模块是本方案的核心创新模块,主要保证美瞳、卧蚕、亮片闪片等妆容细节的迁移。MakeupGan 模块设计了 3 个 D 网络,分别是眉毛判别网络 D-Eyebrow、眼睛判别网络 D-Eye 和嘴唇判别网络 D-Lip。
D 网络结构的设计主要参考了论文 [2] 采用 SFT 结构,并把 G 网络改成 D 网络来使用。具体所做的调整为:(1)把 residual blocks 的数量从 16 调整为 8;(2)去掉 Upsampling 之后的层。此外,Condition 网络部分使用 4 通道的局部五官 mask 作为输入,4 通道的 mask 包括:原 mask、对原 mask 进行左右翻转后的 mask、对原 mask 进行向左镜像后的 mask、对原 mask 进行向右镜像后的 mask,而 Condition 网络的输出即为 SFT 的 Condition maps 部分。
眉毛和眼睛都有左右之分,训练时会将左右两部分 concat 起来,所以 D-eyebrow 和 D-eye 的 D 网络部分为 6 通道输入,Condition 网络部分为 8 通道输入,而 D-lip 的 D 网络部分为 3 通道输入,Condition 网络部分为 4 通道输入。
要训练 D 网络并获得 Makeup gan loss 需要从结果图和目标图中获取各自的五官成分,借助人脸点即可 crop 出每个五官的矩形框,再用 mask 把非五官区域与掉就得到五官成分。每个 D 网络可以得到一个 gan loss,这样就可以得到 3 个 gan loss,即 Eyebrow gan loss、Eye gan loss 和 Lip gan loss。把 3 个 loss 加起来就是本方案的 Makeup gan loss。
结语
MTlab 自主研发的基于 DL 的 MakeupGan 网络架构,不仅可以将无妆容的人物图片迁移处理为有妆容的图片,还可以将有妆容的人物图片迁移为无妆容的图片,甚至还可以在不同妆容图片间相互迁移。当前该技术可以处理图像数据,帮助用户简单变美。
除了妆容迁移,MTlab 已通过美图 AI 开放平台 (ai.meitu.com (http://ai.meitu.com/)) 对外开放了数十种计算机视觉相关技术,提供经市场验证的专业 AI 算法服务和解决方案。未来 MTlab 还将继续探索基于视频数据的趣味玩法,并将通过美图 AI 开放平台对外应用。
参考文献 
[1] Jiang W, Liu S, Gao C, et al. PSGAN: Pose and Expression Robust Spatial-Aware GAN for Customizable Makeup Transfer[C]// 2020 IEEE/CVF Conference on Computer Vision and Pattern Recognition (CVPR). IEEE, 2020.
[2] Wang X, Yu K, Dong C, et al. Recovering Realistic Texture in Image Super-Resolution by Deep Spatial Feature Transform[C]// 2018 IEEE/CVF Conference on Computer Vision and Pattern Recognition (CVPR). IEEE, 2018.
[3] Li T, Qian R, Dong C, et al. BeautyGAN: Instance-level Facial Makeup Transfer with Deep Generative Adversarial Network[C]// Proceedings of the 26th ACM international conference on Multimedia. 2018.
[4] Park T, Liu M, Wang T, et al. Semantic Image Synthesis With Spatially-Adaptive Normalization[C]// 2019 IEEE/CVF Conference on Computer Vision and Pattern Recognition (CVPR). IEEE, 2020.
[5] Chen H, Hui K, Wang S, et al. BeautyGlow: On-Demand Makeup Transfer Framework With Reversible Generative Network[C]// 2019 IEEE/CVF Conference on Computer Vision and Pattern Recognition (CVPR). IEEE, 2019.
如何根据任务需求搭配恰当类型的数据库?
在AWS推出的白皮书《进入专用数据库时代》中,介绍了8种数据库类型:关系、键值、文档、内存中、关系图、时间序列、分类账、领域宽列,并逐一分析了每种类型的优势、挑战与主要使用案例。
点击阅读原文识别二维码,申请免费获取白皮书。
© THE END 
转载请联系本公众号获得授权
投稿或寻求报道:[email protected]
继续阅读
阅读原文