龙空技术网

如何用深度学习 AI 美颜实现天天 P 图疯狂变脸算法? | 技术头条

CSDN 179

前言:

现在姐妹们对“图像美颜算法怎么做”大致比较着重,看官们都需要了解一些“图像美颜算法怎么做”的相关内容。那么小编同时在网上网罗了一些关于“图像美颜算法怎么做””的相关资讯,希望各位老铁们能喜欢,你们快快来了解一下吧!

作者 | Trent

责编 | 郭 芮

自从天天P图出了疯狂变脸的特效之后,到现在为止已经两年时间了。这两年时间,天天P图多次凭借换脸特效登上APP Store排行榜首,从小学生证件照到前世青年照、圣诞节梦幻妆再到后来的各种影视游戏特效,以及后来的军装照等等等等,天天P图时不时地传遍朋友圈,火遍排行榜。

本文将分析换脸这个模块,因为这个技术用深度学习来搞,个人认为潜力更大。下面简单将换脸分为深度学习方法和传统方法来讲。

深度学习方法

2016年的一篇论文Fast Face-swap Using Convolutional Neural Networks,通过卷积神经网络实现了换脸效果,如下图所示:

具体算法思路是:

人脸对齐(根据特征点将目标图像与模板图像中的人脸对齐);通过CNN进行换脸,网络结构如下:定义内容损失/风格损失/光照损失/平滑损失代价函数,加入训练过程,来解决肤色光照不均,不平滑,内容不协调的问题。损失函数如下:

该方法已经达到了一定的效果:

人脸融合自然;侧脸效果要优于传统方法的效果;

但是仍然具有以下弊端:

每个模版照片需要单独训练网络,造成模型数据庞大,训练耗时,模型更改麻烦等诸多问题;每个模型需要一个模板对应的多张不同姿态与光照条件的图像——单单这一点就很不利于产品化,在大多数情况下,我们是无法提供多张不同姿态与光照下的模板图像的;速度慢,本人的换脸算法是可以达到实时处理的。

个人认为,基于深度学习的方法在多角度侧脸的情况下,具有很强的优势,在肤色融合方面与传统算法持平,在速度方面,未来将不是问题!

传统方法

本人主要研究基于传统图像算法的换脸,本人猜测天天P图基本上也是基于传统算法做的。

我们以天天P图效果举例来讲:

白百合的照片与右边的模板图相比,在脸型和五官位置上都发生了变化,也就是变的好看了很多,总结变化如下:

肤色变成了模板图的肤色;脸型变成了模板图的脸型;五官大小形状等发生了一定的变化.

据此推测,天天P图做了如下操作:

将白百合的肤色做了转换,换成了模板图的肤色;将白百合的脸型包括五官做了变形,变成了接近模板图的形状。

注意,这里是接近模板图的形状,而并非是跟模板图完全一样的形状,网上很多做换脸的都是直接将人脸对齐到了模板中的形状,这是不行的,脸型差异过大时,会造成畸变,效果很差。

本人算法步骤:

1、根据人脸特征点(本人使用的是101个人脸特征点),将模板和白百合的人脸同时变形到第三目标形状,变形算法使用MLS变形即可。

这一步骤可以分为如下两步:

直接将白百合人脸点位对齐到模板点位;将对齐后的白百合人脸五官与脸型进行美化或称美型;

这一步可以参考论文《Data-Driven Face Cartoon Stylization》,当然这一步也可以使用深度学习来做,个人认为效果要比这篇论文效果更好,随后本人会另写博客专门介绍基于CNN的人脸美型。

MLS变形代码链接:

当然本人也有更好的变形:

本人美型算法效果图如下:

2、基于LAB颜色空间对白百合和模板人脸肤色进行换色+融合;

3、添加风格滤镜+美颜美妆。

对于美妆可以直接使用妆容迁移来做,效果很好,具体可参考:

本人妆容迁移效果如下:

上面就是本人传统换脸算法的过程,本人尽量用最简单的算法去表现最好的效果,给出一个完整的算法过程效果图:

对于效果,大家可以使用白百合的测试图到本人的DEMO和天天P图中测试。这里测试图在本人所给的DEMO中,大家可以自行测试。

下面给出本人算法与天天P图效果对比图,这里仅以一组图为例:

<< 滑动查看下一张图片 >>

最后,指出天天P图肤色融合的一些问题,对于某些照片,肤色融合之后会出现颜色偏绿问题,可能是某个颜色空间中颜色溢出导致,举例如下(左图为本人算法,右图为天天效果):

最后,本人给出本人疯狂变脸效果的DEMO,以免大家耳听为虚,DEMO运行平台为WINDOWS 8以上,DEMO中给有TestPicture为测试图,FS为天天P图的模板,仅供测试,切勿商业用途,以免侵权。下载链接:。

PS:DEMO中无人脸识别,因此仅限本人所给测试图有效!共勉!

作者:Trent1985,CSDN博客专家,本文来源于作者CSDN博客,原文链接,CSDN 公众号经授权发布。欢迎更多开发者朋友通过下方联系投稿。

标签: #图像美颜算法怎么做