【蜂口 | AI人工智能】人脸风格化——龙鹏 深度学习与人脸图像应用连载(九)

本次我们接着上一节内容继续分享,今天的分享内容是人脸风格化这个主题。同样我们将从以下几个方面给大家进行分享:

首先,我们会对风格化做一个简单的介绍。风格化到底是一个什么样的课题?在我们这里实际上包含了两层内容,即通用的风格化问题和与人脸有关的风格化问题。

其次,我们将会对风格化中的核心算法给大家做一个简短的介绍。它主要包含了风格迁移的算法,以及人脸的分割匹配以及融合一些算法。

最后,我们对风格化的应用做一个简单的总结。

现在我们正式开始我们的内容。

风格化到底是一个什么样的操作?我们平常所接触的风格化大概包含三个内容:

1)风格迁移。风格迁移在几年前,也就是15年,最早被德国的一些科学家来用来将普通的图片转换成梵高等艺术家的风格。所以实际上我们现在意义上所说的风格迁移就是把照片转化为绘画素描等艺术类的风格。

2)变脸的算法。变脸的算法我们应该并不陌生,像天天P图他们经常会在青年节或者建军节等一些节日,推出一些特殊的滤镜。这些滤镜通常是一些变脸的算法,也就是我们将我们自己的人脸贴到他们设计好的一些模板上。比如说穿军装的小哥哥之类的。

3)人脸卡通化。人脸卡通化是一个非常有用的算法,也就是说我们用我们自己的正面人脸图像生成一个卡通形象,这个卡通形象要保持我们人脸的一些特征,主要是形状等等。

通用的风格化最早是从Premiere开始大火起来。它的主要特点就是设计一些具有艺术气质的一些模板和一些风格,然后把我们的图像处理成这样的风格。现在有非常多类似的APP大家可以去下载尝试。

我们再看一个变脸算法。现在有一部清宫剧叫做延禧攻略,特别的火,所以天天P图也顺势推出了延禧攻略剧照这样的一个模板。这里我们将赵丽颖的图像做了一个展示,可以看到效果还是不错的。这就是风格化的主要内容。
在这里插入图片描述
下面我们对其中的算法做一个简单的介绍:

我们首先来说风格迁移算法。风格迁移说法来源于下面这样一篇文章,这是15年的德国科学家的一篇文章:A Neural Algorithm of Artistic Style.

在说它具体算法之前,我们先说一下它的核心思想,也就是它的操作的一个流程,我们以下面这张图为例:
在这里插入图片描述
首先,我们要给定一个参考的风格。右面大图图的左下角就是我们的参考的风格,然后我们提供一个待转换风格的图片,也就是我们自己拍摄的图片,也就是左面这张图。有了这两张图之后,我们把它们进行融合,就得到了右边的大图,也就是我们最终的结果,即我们风格化之后的结果,这就是风格迁移。

那风格迁移中的核心算法是什么?它的主要原理就是通过分离并重新组合图片的内容和风格。
在这里插入图片描述
我们看上面这张图,图片左侧有两张小图,上面那张就是那个风格图,也就是我们的艺术作品,下张图就是我们的内容图,也就是我们自己的图。这就是各自指的就是图片的内容和图片的风格。

我们可以看到经过神经网络,它分别对风格和内容进行了重建。在不断地重建的过程中,最后对它们进行组合,就得到我们最终的结果。

那我们重建这样的一个图像,它使用一个什么样的优化目标呢?主要包含两个:

第一个是我们的像素内容损失,是这样一个函数:
在这里插入图片描述
F跟P就是我们的参考图和我们的最终的结果图,它们是在像素空间来进行计算。这样的一个内容损失实际上就是让我们重建之后的图,也就是我们风格化之后的图,要与我们自己提供的那张图的内容是匹配的,也就是说我们希望它能够保证保持它的内容。

第二个是风格损失。这里使用Gram矩阵来进行风格损失的一个表征,Gram矩阵实际上表征的不同的feature map的融合。

这就是Gram的矩阵:
在这里插入图片描述
Gram矩阵就限制了我们最终的结果图,要与我们的艺术风格图也要保持一致。有了这样的两个损失函数之后,我们对他们进行一个加权,最终就得到我们的最终的优化目标。基于这样的一个优化目标,就得到我们的风格迁移的结果。这是来源于最早的一篇文章,也是目前效果来说处于顶尖的文章。

除了风格迁移之外,我们看看我们的变脸算法。所谓变脸算法就是我们刚才所说的天天P图,将我们的人脸转化为模板,比如延禧攻略或者说穿军装的小哥哥等等。

这样的一个变脸算法,它的核心流程是:

我们要对我们的人脸的关键点进行检测,然后将人脸进行对齐,对齐之后,我们实际上利用了前面所说的这风格迁移算法,把我们的内容图跟我们最开始的图进行一个风格的迁移,在这样的一个约束情况下,就得到了我们的正面姿态的结果,然后我们对图像进行分割,最后我们又重新对其进行图像融合。
在这里插入图片描述
我们看上面的这张图,它展示了一个完整的流程。左边输入图,我们首先经过人脸关键点检测对齐之后,然后经过中间的神经网络的一个风格迁移之后,我们再进行重新的人脸对齐,最后进行妥善的融合,就得到我们最终的结果。

我们的图是自己拍摄的一张图,然后我们的这个风格图实际上是尼古拉斯的一张图片,这里并没有给出原始的尼古拉斯的那张风格图,大家感兴趣可以去线下看相关的论文。总之他的思想就是我们输入图像A,也就是我们自己的图,把它的姿态和表情作为我们的内容,然后把输入的图像B,也就是我们要转换成风格的那张图作为风格。

那这个算法里面比较核心的就是我们的风格迁移,风格迁移实际上是如下面这张图的操作,它通过类似于一个金字塔的框架来不断重建我们的风格迁移的结果。
在这里插入图片描述
核心的思想与前面所说的风格迁移差不多。它的损失函数也是一个内容函数加风格函数。大家如果对这个函数感兴趣,对这个优化目标感兴趣,可以线下再去深入的了解。

最后,我们说一下我们的卡通图像。卡通图像的生成,它一般包含了几个操作,例如人脸检测以及对人脸的各个部位的分割,然后再进行匹配,融合。
在这里插入图片描述
上面这张图展示的是腾讯天天P图实验室在早几年做的一个算法,它实际上也被用在了天天P图这个产品里面。我们看看它的流程:

我们先输入一张图进行人人脸测关键点检测之后,接下来要对他的性别以及是否佩戴眼镜等等做一个检测。随后我们用这个人脸分割算法,把人脸分割成几个区域,包括眼睛嘴巴头发等等。得到这些区域之后,我们分别对它进行特征的提取,在提取到特征之后,与我们所建立的库里面相对应的人脸的部位进行最近邻的匹配,匹配到这些部位之后,我们查询到对应的卡通图像的一个子元素,然后利用支持向量回归的方法,再去对这些元素进行一个内容的重新的调整。这一步实现了一个更好的艺术化的设计,最后得到我们输出的结果。

实际上现在有很多更新的方法,包括使用GAN来进行这样一个风格迁移。以后有机会我会给大家做更多的介绍。人脸的风格化主要就包含这些内容。

最后,我们对那个风格化的应用做下简单的总结。

这个人脸风格化的滤镜,它主要还是应用在社交方面,就是我们生成一些风格化的滤镜。这些滤镜非常的好玩有趣,我们会把它分享给朋友。尤其是在特殊的时刻,比如说像现在延禧攻略这个电视剧非常火的情况下,我们做一些这样的滤镜来展示我们的社交行为。其次我们也可以尝试用这样的方法来进行一些动漫产品的艺术创作,只是目前这样的方法的鲁棒性还不是非常强,但我相信以后一定会有这样的一天到来。
在这里插入图片描述
上面这张图左面的是我们看的权力的游戏,我利用自己的证件照生成了一张布兰的一张图。右边的是今天用一个APP生成的一张社交图。可以看到,实际上更多的应用还是在风格化这方面。风格化滤镜可以做一些有意思的社交展示个性。

感谢您的阅读,更多精彩尽在蜂口小程序~了解一下?
获取免费内容,欢迎V信fengkou-IT勾搭~

猜你喜欢

转载自blog.csdn.net/qq_43019117/article/details/83094099