美图影像实验室推出MakeupGan妆容迁移算法

2020 年 9 月 17 日

美图影像实验室推出MakeupGan妆容迁移算法

近日,美图影像实验室(MTlab)自主研发基于 DL(Deep Learning)的 MakeupGan(Makeup Generative Adversarial Networks)网络架构,推出革新 AI 算法——妆容迁移(Makeup Transfer)。该算法支持用户自由选取心仪模特妆容并将迁移到自己脸上,不仅可以迁移眼影、眉毛、口红等基础妆容,还可迁移美瞳、卧蚕、睫毛、五官立体、亮片闪片等细腻细节。迁移效果清晰、自然。该技术将赋能美图公司拓展个性化妆容和虚拟试妆相关业务。

MakeupGan 妆容迁移效果 1:从左至右,模特图(@YI 薰 _ ) 、用户图、最终效果图

虚拟试妆技术一直是美妆、美颜市场最重要的技术之一。当前该领域流行的主流技术为传统素材贴妆,该技术指由专业设计师按指定格式设计好妆容素材,再利用人脸关键点检测把妆容素材贴到对应的五官位置上。MTlab 研究发现,这类技术存在两个明显不足:

1、需要专业设计师设计妆容素材,限制大,用户不能自由选择自己喜欢的妆容;

2、妆容素材直接贴在五官上,浮于表面,很多时候看起来不够真实。

由于传统贴妆技术的不足,当前市场上的虚拟试妆相关业务还很难满足大多数用户的需求,为了改变这一局面,MTlab 自主研发了一套全新妆容迁移技术。妆容迁移是指将目标图上的妆容直接迁移到原图上的技术。相比传统贴妆技术,妆容迁移具有极高的自由度,它可以让用户不再局限于设计师设计好的妆容,而是可以自主、任意地从真实模特图中获取妆容,极大地丰富了妆容的多样性。此外,妆容迁移技术不仅可以迁移五官妆容信息,还可以对肤色、光影等信息进行整体迁移。再加上妆容信息直接来源于真实模特图,因此该技术可以很好地保持妆容的真实度。

研究现状

妆容迁移属于目前较新的研究领域,相比于其他 DL 研究任务,妆容迁移需要解决的问题主要有两个:

1、原图和目标图五官位置和姿态都不固定,如何让网络感知不同位置上的妆容信息?

2、该任务很难获取真实环境中的一对一数据,如何让网络正确监督学习?

对于这两个问题,近些年的一些研究者提出了一些解决方案,具体可以总结如下:

对于问题 1,主要采用的解决办法是:设计一种映射和反映射机制(也可以设计网络结构来实现这样的映射),将原图像特征映射为 identity feature 和 makeup feature,这样原图的 identity feature 可以和目标图的 makeup feature 进行组合,将组合特征反映射为图像特征就可以显式地让网络更好地感知妆容信息。

对于问题 2,主要采用的解决办法有两类:a,用一种颜色迁移算法(比如,直方图匹配)结合五官分割进行局部颜色迁移,把目标图各五官成分的颜色迁移到原图对应的五官成分上,这样网络输出的五官区域就可以和颜色迁移后的五官区域直接做 loss 进行学习;b,结合人脸点用一种形变算法(比如,三角网格形变)将目标图 warp 到原图上,这样原图和目标图的五官就基本对齐了,再设计 loss 进行监督训练。

研究者们的创新方案收获了很多成果。目前,对于原图和目标图姿态比较接近且肤色差异较小的情况下,很多研究方案都能比较好地迁移五官妆容的颜色信息。然而,对于真实用户复杂多变的环境(复杂姿态、复杂光照、复杂妆容等)、更多细腻细节的迁移需求(睫毛、眼瞳、亮片闪片等),妆容迁移技术依然面临着很大挑战。

MakeupGan 妆容迁移效果 2:从左至右,模特图(@YI 薰 _ ) 、用户图、最终效果图

MakeupGan 妆容迁移方案

要将妆容迁移算法真正落地到产品层面需要保证以下两个方面的效果:

1、鲁棒性,不仅在姿态和肤色差异不大的情况下有稳定效果,还要保证在复杂姿态、多变光照、特殊妆容的场景下依然能保持较好效果。

2、全面性,不仅能迁移眼影、眉毛、口红等颜色信息,还需要迁移睫毛、美瞳、卧蚕、亮片闪片等较为精确的细节信息。

MTlab 突破技术瓶颈提出的 MakeupGan 妆容迁移方案,较好地解决了上述两个问题,并率先将技术落地到实际产品中。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(Makeup Generative Adversarial Networks)网络架构,不仅可以将无妆容的人物图片迁移处理为有妆容的图片,还可以将有妆容的人物图片迁移为无妆容的图片,甚至还可以在不同妆容图片间相互迁移。当前该技术可以处理图像数据,帮助用户简单变美,

除了妆容迁移,MTlab 已通过美图 AI 开放平台 (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.

2020 年 9 月 17 日 18:39 831

评论

发布
暂无评论
发现更多内容

架构师如何做架构(训练营第一课)

看山是山

极客大学架构师训练营 UML 学习总结

课后总结1-架构师训练营

进击的炮灰

「架构师训练营」作业1:食堂就餐卡系统设计

Amy

极客大学架构师训练营 作业

初识架构师

eazonshaw

极客大学架构师训练营

第一周培训心得

史慧君

架构师第一周总结

suke

极客大学架构师训练营

【架构师训练营-作业-1】食堂就餐卡系统设计

Andy

架构师如何去编写设计文档?

阿飞

架构 架构是训练营

食堂就餐卡系统设计文档

JUN

第一周学习总结

qqq

极客大学架构师训练营

食堂就餐卡系统设计

imicode

第一周-学习总结

molly

极客大学架构师训练营

食堂就餐卡系统设计

G小调

第一周作业

qqq

极客大学架构师训练营

计算广告的核心问题

子悠

广告 计算广告 互联网广告

思考架构

作业一:食堂就餐卡系统设计

金桔🍊

极客大学架构师训练营

如何开始成为一名架构师

Ph0rse

极客大学架构师训练营

架构师训练营第一周学习总结

a晖

食堂就餐卡系统设计

olderwei

食堂就餐卡系统架构设计文档

AIK

极客大学架构师训练营

架构师训练营第一周学习感悟

子豪sirius

关于架构设计的学习记录

imicode

第一周学习总结

G小调

架构师训练营第一周总结

草原上的奔跑

极客大学架构师训练营

架构师如何做架构(第1周学习总结)

李德政

极客大学架构师训练营

系统设计

架构师训练营-Week 01 命题作业

华乐彬

极客大学架构师训练营 架构文档 作业

第一周感想

数字

朋友,您可能是MCR的受害者

newbe36524

Docker Dockerfile .net core

第一周作业

Jeremy

美图影像实验室推出MakeupGan妆容迁移算法-InfoQ