“云无界、端无边” OGeek 技术峰会 9月17日 南京不见不散! 了解详情
写点什么

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

  • 2020 年 9 月 17 日
  • 本文字数:4098 字

    阅读完需:约 13 分钟

美图影像实验室推出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:391410

评论

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

13. 如果自己写的 Python 程序出错了,怎么办?

梦想橡皮擦

python 爬虫 2月春节不断更

gradle中的增量构建

程序那些事

maven Gradle 程序那些事 构建工具

LeetCode题解:1091. 二进制矩阵中的最短路径,BFS,JavaScript,详细注释

Lee Chen

算法 大前端 LeetCode

写公号大半年,看看我都收获了些啥

架构精进之路

技术 总结 微信公众号 成长笔记

给hugo博客添加评论功能

远鹏

Hugo 静态博客 utterances

字幕组时代落幕,翻译的未来可能是?

字节跳动技术团队

门诊数字化:患者信息识别方式

boshi

医疗 数字化基础 七日更

面试的季节到了,老哥确定不来复习下数据结构吗

Silently9527

面试 数据结构与算法

揭秘登上2021春晚舞台的黑科技-XR技术

架构精进之路

黑科技 vr 春晚 XR MR

第四章作业-编写一个用例文档

秦挺

IDEA插件:快速删除Java代码中的注释

xiaoxi666

Java 代码注释 JavaParser

3.Fiber(我是在内存中的dom)

全栈潇晨

React React Hooks react源码

【LeetCode】重塑矩阵Java题解

Albert

算法 LeetCode 2月春节不断更

算法从有序数组中移除重复的数据,AI学习资源2020 John 易筋 ARTS 打卡 Week 38

John(易筋)

ARTS 打卡计划 ai youbute学习资源

一维数组的动态和

小马哥

算法

哲少荐书:鞋狗

Jackey

书籍推荐

微信红包封面,2021年为啥突然火了?

架构精进之路

春节 微信红包封面 商业洞察

程序员成长第五篇:如何选择城市工作?

石云升

程序员 2月春节不断更 选择城市

日记 2021年2月17日(周三)

Changing Lin

2月春节不断更

【STM32】PWM 输出 (标准库)

AXYZdong

硬件 stm32 2月春节不断更

用例文档

三生赤水

春节快过腻了?不妨关心下太空探索

脑极体

【函数计算实践】nodejs初探示例——本地mac环境

程序员架构进阶

架构 nodejs 函数计算 七日更 2月春节不断更

第 4 周作业

老元宵

1.开篇(听说你还在艰难的啃react源码)

全栈潇晨

React React Hooks react源码

2.react心智模型(来来来,让大脑有react思维吧)

全栈潇晨

React React Hooks react源码

EternalWallet为您提供快速、便捷、低价的国际汇款服务

Geek_c610c0

Elasticsearch mapping 复杂数据类型

escray

elastic 七日更 死磕Elasticsearch 60天通过Elastic认证考试 2月春节不断更

端口隔离和VLAN的区别

话题讨论 | 如何使用“网站SEO”,让网站排在最前面?

我是哪吒

大前端 后端 话题讨论 SEO 2月春节不断更

如何 1 天快速集成自己的“Clubhouse”?

融云 RongCloud

音视频 clubhouse 语音社交 融云

首届腾讯云大数据峰会暨Techo TVP开发者峰会

首届腾讯云大数据峰会暨Techo TVP开发者峰会

美图影像实验室推出MakeupGan妆容迁移算法_AI_美图影像研究院(MT Lab)_InfoQ精选文章