你也可以拥有「宋慧乔妆」,美图妆容迁移算法开启个性化妆容时代
机器之心发布
机器之心编辑部
不仅完美地迁移眼影、眉毛、口红等基础妆容 , 而且能很好地处理美瞳、睫毛、卧蚕等细腻细节 , 美图影像实验室(MTlab)自主研发的这个全新妆容迁移算法可以令爱美的你尝试各种类型和风格的模特妆容 , 最终找到适合自己的完美妆容 。

文章图片
虚拟试妆技术一直是美妆、美颜市场最重要的技术之一 。 当前该领域流行的主流技术为传统素材贴妆 , 该技术指由专业设计师按指定格式设计好妆容素材 , 再利用人脸关键点检测把妆容素材贴到对应的五官位置上 。
MTlab研究发现 , 这类技术存在两个明显不足:一 , 需要专业设计师设计妆容素材 , 限制大 , 用户不能自由选择自己喜欢的妆容;二 , 妆容素材直接贴在五官上 , 浮于表面 , 很多时候看起来不够真实 。
由于传统贴妆技术的不足 , 当前市场上的虚拟试妆相关业务还很难满足大多数用户的需求 , 为了改变这一局面 , MTlab自主研发了一套全新妆容迁移技术 。
具体而言 , MTlab自主研发一种基于深度学习的MakeupGan(MakeupGenerativeAdversarialNetworks)网络架构 , 并推出了一种革新AI算法——妆容迁移(MakeupTransfer) 。
该算法支持用户自由选取心仪模特妆容并迁移到自己脸上 , 不仅可以迁移眼影、眉毛、口红等基础妆容 , 还可迁移美瞳、卧蚕、睫毛、五官立体、亮片闪片等细腻细节 。 迁移效果清晰、自然 。
目前 , 美图旗下美颜相机APP已上线基于MakeupGan妆容迁移算法的功能——「一键仿妆」 , 用户可上传自己的照片 , 选择心仪的模特妆容进行仿妆操作 。
美图「一键仿妆」现共有60个模特妆容可供选择 , 妆容风格各有不同 , 如又纯又欲的果冻妆、复古少女、奶油桃花妆等等 。 此外 , 更多妆容还在持续更新中 。
我们首先来实测用户图像的实际仿妆效果 , 这里选择的妆容风格是「复古樱桃妆」 。

文章图片
图左:选择的模特妆容;图右:测试用的目标图像 。
用户首先选中想仿的模特妆容 , 点击「仿妆」选择目标图像 。 美图提供有三种图像风格 , 分别为经典、原生和MEN , 下图选择的是经典图像风格;然后 , 点击「编辑」可实现目标图像的自动美化处理 , 这时用户可选择「开启高清」 , 可提升目标图像的肌肤光泽并还原立体五官 。 下图没有选择开启高清;最后点击确认即可生成仿妆后的图像 。

文章图片
图左:模特妆容;图中:美化处理后的目标图像;图右:仿妆后的目标图像 。
对于仿妆后的目标对象 , 用户可以自定义「妆容程度」 , 实现妆容由淡渐浓 。
最后 , 用户也可上传自己想要仿的任何妆容 。 这里选择了网络上流行的「宋慧乔妆」 , 仿妆效果如下所示:

文章图片
接下来详细解读妆容迁移技术的研究现状、解决方案以及MTlab的全新妆容迁移算法 。
妆容迁移技术研究现状
妆容迁移是指将目标图上的妆容直接迁移到原图上的技术 。 相比传统贴妆技术 , 妆容迁移具有极高的自由度 , 它可以让用户不再局限于设计师设计好的妆容 , 而是可以自主、任意地从真实模特图中获取妆容 , 极大地丰富了妆容的多样性 。
此外 , 妆容迁移技术不仅可以迁移五官妆容信息 , 还可以对肤色、光影等信息进行整体迁移 。 再加上妆容信息直接来源于真实模特图 , 因此该技术可以很好地保持妆容的真实度 。
但妆容迁移属于目前较新的研究领域 , 相比于其他DL研究任务 , 需要解决以下两个主要问题:
一是原图和目标图五官位置和姿态都不固定 , 如何让网络感知不同位置上的妆容信息?
二是该任务很难获取真实环境中的一对一数据 , 如何让网络正确监督学习?
对于这两个问题 , 近些年的一些研究者提出了一些解决方案 , 具体可以总结如下:
对于问题1 , 主要采用的解决办法是:设计一种映射和反映射机制(也可以设计网络结构来实现这样的映射) , 将原图像特征映射为identityfeature和makeupfeature , 这样原图的identityfeature可以和目标图的makeupfeature进行组合 , 将组合特征反映射为图像特征就可以显式地让网络更好地感知妆容信息;
对于问题2 , 主要采用的解决办法有两类:a , 用一种颜色迁移算法(比如直方图匹配)结合五官分割进行局部颜色迁移 , 把目标图各五官成分的颜色迁移到原图对应的五官成分上 , 这样网络输出的五官区域就可以和颜色迁移后的五官区域直接做loss进行学习;b , 结合人脸点用一种形变算法(比如三角网格形变)将目标图warp到原图上 , 这样原图和目标图的五官就基本对齐了 , 再设计loss进行监督训练 。
研究者们的创新方案收获了很多成果 。 目前 , 对于原图和目标图姿态比较接近且肤色差异较小的情况下 , 很多研究方案都能比较好地迁移五官妆容的颜色信息 。
然而 , 对于真实用户复杂多变的环境(复杂姿态、复杂光照、复杂妆容等)以及更多细腻细节的迁移需求(睫毛、眼瞳、亮片闪片等) , 妆容迁移技术依然面临着很大挑战 。
针对妆容迁移技术的诸多挑战 , MTlab的MakeupGan妆容迁移算法应运而生了 。
美图MakeupGan妆容迁移方案技术详解
要将妆容迁移算法真正落地到产品层面 , 需要保证以下两个方面的效果:
鲁棒性:不仅在姿态和肤色差异不大的情况下有稳定效果 , 还要保证在复杂姿态、多变光照、特殊妆容的场景下依然能保持较好效果;
全面性:不仅能迁移眼影、眉毛、口红等颜色信息 , 还需要迁移睫毛、美瞳、卧蚕、亮片闪片等较为精确的细节信息 。
MTlab突破技术瓶颈 , 提出了MakeupGan妆容迁移方案 , 较好地解决了上述两个问题 , 并率先将技术落地到实际产品中 。 核心流程如下图所示:

文章图片
MakeupGan妆容迁移方案流程图 。
图中所展示的流程主要包括:姿态矫正模块、G网络模块和训练Loss模块 , 其中训练Loss模块里还包括了MakeupGan模块 。 在这几个模块中 , 姿态矫正和MakeupGan模块是本方案的核心创新模块 。
该方案的完整工作流程如下:
通过MTlab自主研发的人脸关键点检测算法检测出原始尺寸的原图和目标图的人脸点 , 并做摆正、裁脸等操作得到流程图中以及后续步骤提到的原图、目标图、原图人脸点和目标图人脸点;
通过MTlab自主研发的五官分割算法将原图和目标图的眉毛、眼睛、嘴唇和皮肤分割出来作为后续模块的输入;
将目标图、原图人脸点和目标图人脸点输入姿态矫正模块 , 并得到姿态矫正后的目标图 , 姿态矫正后的目标图整体上会和原图的姿态一致 , 并且整个脸的五官大小比例会更接近原图;
把矫正后的目标图和原图输入G网络得到结果图 , 根据结果图和目标图计算Cycleconsistencyloss、Perceptualloss和Makeuploss , 同时把结果图、原图人脸点、原图五官mask输入MakeupGan模块计算Makeupganloss , 这些loss控制整个网络的训练;
将实际裁好后的图输入训练好的G网络可以得到网络输出的结果图 , 结合MTlab自研的颜色迁移算法将原图的颜色和光照迁回一部分到结果图上确保结果更加自然 , 并将处理后的结果图逆回到原始尺寸原图中即完成算法过程 。
姿态矫正模块
对于G网络结构、Makeuploss、Cycleconsistencyloss和Perceptualloss , 该方案参考了论文PSGan[1]并结合自有方案进行调整 。 由于MakeupGan方案设计了姿态矫正模块 , 已经可以较好地进行显式的姿态适配 , 因此在G网络中删除了论文里的AMM结构 。 Makeuploss则沿用了PSGan的局部五官直方图匹配loss 。
由于论文中Cycleconsistencyloss和Perceptualloss里的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)把residualblocks的数量从16调整为8;(2)去掉Upsampling之后的层 。 此外 , Condition网络部分使用4通道的局部五官mask作为输入 , 4通道的mask包括:原mask、对原mask进行左右翻转后的mask、对原mask进行向左镜像后的mask、对原mask进行向右镜像后的mask , 而Condition网络的输出即为SFT的Conditionmaps部分 。
眉毛和眼睛都有左右之分 , 训练时会将左右两部分concat起来 , 所以D-eyebrow和D-eye的D网络部分为6通道输入 , Condition网络部分为8通道输入 , 而D-lip的D网络部分为3通道输入 , Condition网络部分为4通道输入 。
要训练D网络并获得Makeupganloss需要从结果图和目标图中获取各自的五官成分 , 借助人脸点即可crop出每个五官的矩形框 , 再用mask把非五官区域与掉就得到五官成分 。 每个D网络可以得到一个ganloss , 这样就可以得到3个ganloss , 即Eyebrowganloss、Eyeganloss和Lipganloss 。 把3个loss加起来就是本方案的Makeupganloss 。
结语
MTlab自主研发的基于DL的MakeupGan网络架构 , 不仅可以将无妆容的人物图片迁移处理为有妆容的图片 , 还可以将有妆容的人物图片迁移为无妆容的图片 , 甚至还可以在不同妆容图片间相互迁移 。 当前该技术可以处理图像数据 , 帮助用户简单变美 。
参考文献
[1]JiangW,LiuS,GaoC,etal.PSGAN:PoseandExpressionRobustSpatial-AwareGANforCustomizableMakeupTransfer[C]//2020IEEE/CVFConferenceonComputerVisionandPatternRecognition(CVPR).IEEE,2020.
[2]WangX,YuK,DongC,etal.RecoveringRealisticTextureinImageSuper-ResolutionbyDeepSpatialFeatureTransform[C]//2018IEEE/CVFConferenceonComputerVisionandPatternRecognition(CVPR).IEEE,2018.
[3]LiT,QianR,DongC,etal.BeautyGAN:Instance-levelFacialMakeupTransferwithDeepGenerativeAdversarialNetwork[C]//Proceedingsofthe26thACMinternationalconferenceonMultimedia.2018.
[4]ParkT,LiuM,WangT,etal.SemanticImageSynthesisWithSpatially-AdaptiveNormalization[C]//2019IEEE/CVFConferenceonComputerVisionandPatternRecognition(CVPR).IEEE,2020.
【你也可以拥有「宋慧乔妆」,美图妆容迁移算法开启个性化妆容时代】[5]ChenH,HuiK,WangS,etal.BeautyGlow:On-DemandMakeupTransferFrameworkWithReversibleGenerativeNetwork[C]//2019IEEE/CVFConferenceonComputerVisionandPatternRecognition(CVPR).IEEE,2019.
推荐阅读
- 喝酒|长期喝酒者,早起后,若有这5个表现,你得考虑戒酒保肝了!
- 教你自制岩烧乳酪
- 教你做虎皮蛋糕上的虎皮,掌握2个技巧,保证起虎皮,做法很简单
- 番茄炒鸡蛋先炒番茄还是先炒鸡蛋?其实都不对,正确方法送给你
- 不用油不用牛奶,教你做蜂蜜蛋糕,蒸或烤都可以,只需4种食材
- 春天来了教你几道好吃不油腻的家常菜,美味简单下饭,百吃不厌!
- 大脑|你的大脑和心理究竟是什么关系?
- 冬天到了,教你几道暖胃家常菜,营养健康,孩子营养不发愁!
- 春节过后请客吃饭教你几道美味特色的下酒菜,简单易学,味道超赞!
- 想吃点心不用买,教你在家做“驴打滚”,不用烤箱,软糯香甜!
