【蜂口 | AI人工智能】人脸美颜——龙鹏 深度学习与人脸图像应用连载(八)

这次接着给大家带来人脸图像相关的分享。本次我们的分享是为大家所熟悉的人脸美颜算法,内容将从以下三个方面给大家进行分享:

首先,我们会给大家介绍一下人脸美颜到底包含哪些内容?人脸美颜算法包含的内容非常的多,从我们所熟悉的磨皮祛斑算法,到大眼瘦脸算法,到美唇美发,到我们没有那么熟悉的妆容迁移算法,它包含的内容非常的多。

其次,我们会对前面的这一些算法所涉及的核心技术给大家做一个简单的介绍。主要包括图像滤波的技术、图像变形的技术、图像分割等技术。

最后,我们会对整体的美颜做一个简单的总结。

下面开始我们正式的分享内容。

我们以腾讯出品的天天P图这样的一个大家广泛使用的一个图像后处理软件来给大家做展示,如下面两幅图:
在这里插入图片描述
图1
在这里插入图片描述
图2

天天P图它包含了非常多的美容美妆的操作,我们可以看到从皮肤脸型等全局的操作,到眼睛眼皮睫毛嘴唇等局部的操作以及到头发等非常复杂的人脸图像的操作等,都已经被产品广泛的支持。

图1展示的是一个美容的菜单,我们可以看到它主要包含了以下几个内容;首先以磨皮美肤祛斑,这是与图像滤波相关的一个算法;然后是五官重塑,瘦脸瘦身,这是与图像的几何变形操作有关的一些算法;当然它还包括了一些淡化笔、美肤笔等等一些算法,也是美容的操作。

我们再看看美妆的操作,如图2。如果大家听过我以前的一个分享系列内容叫做Caffe图像分割实战,大家应该还记得,像唇彩染发这样的两个功能,背后都是图像分割技术在进行支持。当然还包括了一些其他的眉毛粉底睫毛等等一些算法就不再一一介绍。

下面我们首先从美颜的磨皮算法的核心技术来给大家进行介绍:

磨皮的算法现在主要有两种思路:

第一种思路是高反差保留的磨皮算法,就是来自于国外的一个工程师的算法。它的特点是图像的细节保留的比较好,真实感比较强。所以它带来的缺点就是当皮肤的瑕疵非常多的时候,算法没有那么强,它无法磨得非常干净。

这一类算法在国内以美颜相机等为代表,所以这一类算法它追求的是一个真实性。

第二种思路是以保边滤波器为代表的磨皮算法。它的特点是皮肤可以磨的非常的平滑,非常的干净,但是它带来的缺点就是无法保留真实感。也就是说很多的时候经过磨皮之后的图片看起来非常的假、不自然,

这个算法以B612、Face U等APP为代表。

我们以第二种算法,也就是滤波器的算法,来给大家做一个详细的原理介绍:

我们选择的滤波算法是双边滤波器。双边滤波器是在图像降噪领域以及图像滤波领域非常非常广泛使用的一个方法。

假设我们的输入的美颜的图是f,美颜后的图也就是我们的输出图是g,σr、σd分别是灰度和空间域的一个控制参数。

首先,我们求出灰度域的一个权值矩阵r,它是基于像素值f(i,j)、f(k,l)来进行计算。
在这里插入图片描述
然后,我们计算空间域的一个权值参数d,它就是以像素的具体的座标i,k,j,l来进行计算。
在这里插入图片描述
得到了这两个权值矩阵之后,我们把这两个权值矩阵相乘,就得到了我们最终的一个权值矩阵w。
在这里插入图片描述
得到最终的权值矩阵之后,我们就可以进行加权平均,得到了我们最后的一个结果g。👇
在这里插入图片描述
双边滤波器算法它的特点是它形式比较简单,而且,它能够在获得比较好的滤波结果的同时,还能够保持边缘的锐化。

第二部分我们给大家介绍塑形相关的算法,塑形相关的算法主要用于大眼瘦以及脸型的变化,甚至可以拉伸腿等等,这与ps里面的液化工具相似。

塑形算法主要也包含两个方面:

第一个是液化算法。这是一个比较经典的Interactive Image warping,这是来自于国外的一个硕士论文。

第二个是Moving Least Squares算法。这是基于关键点加上最小二乘法约束的一个算法。

再介绍具体的算法之前,我们可以先看一个演示。
在这里插入图片描述
这是来自于最新版的photoshop的一个液化工具,它已经实现了基于人脸识别的一个智能液化。

下面我们对Moving Least Squares算法做具体的介绍。这个算法的核心思想是:首先我们获取到原始图像中的一些关键点,然后我们定义的目标同样的一种关键点,它要做的就是求取一个相似变换。

就是下面这样的一个式子,它最终的目标是最小化这样的一个重建误差,这就是这个算法的核心。
在这里插入图片描述
我们可以看一下这个算法的结果的演示,可以看到算法的变形是非常的平滑。
在这里插入图片描述
第三部分是美妆算法。所谓美妆算法就是我们前面说的唇彩以及美发的算法,它背后就是语义分割的技术。语义分割现在主流是以CNN等深度学习算法为代表,辅以CRF这样的一个后处理操作。其次在我们分割完,也就是得到嘴唇和美发等区域之后,我们还要做一些简单的图像融合,以便使我们应用这些美妆算法之后,效果看起来更加自然,例如可以采用泊松融合等等一些同样融合的算法。
在这里插入图片描述
上面这个图是来自于谷歌的一个face parsing项目,也就是人脸各区域的一个分割的项目。我们可以看到他已经将人脸面部的各个区域都都进行了很精细的语义上的标注。目前最好的方法已经可以实现对这些区域进行实时的高精度的分割。这样的技术是美妆算法背后的支撑。

最后我们给大家介绍一下妆容迁移的算法。何为妆容迁移?我们首先看一张图:
在这里插入图片描述
图中上面这样一张图是我们要对它应用算法的图。下面这张图是我们的参考图。那么所谓的妆容迁移,就是说要把下面这样一张图的化妆的风格迁移到上面这样一张图。

这是以深度学习为代表的一个框架。我们可以看到它的流程就是首先我们要对两幅图各自做一个语义上的parsing,也就是图像分割操作。得到图像分割操作的结果之后,我们会对人脸上的各个区域来进行重建,对结构进行一个保持,会定义一个智能的loss,然后进行融合,得到我们最终的结果。

大家如果对技术细节非常感兴趣,可以去参考这篇文章:

Liu S, Ou X, Qian R, et al. Makeup like a superstar: deep localized makeup transfer network[C]// International Joint Conference on Artificial Intelligence. AAAI Press, 2016:2568-2575.

最后我们对整体的美颜算法做一个简单的总结:

a.美颜算法内容非常丰富。我们前面可以看到对于人脸的各个区域,从眼睛睫毛鼻子嘴巴到发型到脸型等等都已经有各种各样的丰富的美颜操作。

b.传统方法应用非常广泛。我们前面可以看到美颜算法它现在仍然有非常非常多的传统的方法在其中进行应用,甚至在很多的领域、在很多的方面,传统方法都要优于现在的深度学习的方法。

c.现在深度学习方法快速的发展。我们在前面给大家展示的最后的一个应用,就是妆容迁移,这是一个智能妆容迁移的一个技术,它就利用到了深度学习的方法,来对各个子区域进行一个智能的妆容迁移。包括前面我们给大家展示的一个液化算法,它也是photoshop在人脸识别这样的一个基础上,建立的对人脸的各个区域进行智能的液化的操作。

关于美颜算法,这里的分享只是一部分,实际上还包含了非常非常多的算法,大家如果对算法非常感兴趣,可以去线下搜集相关的资料,背后的一些具体的技术细节,大家都可以去留意。

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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章