审核专家:徐润生

加利福尼亚大学人工智能博士

随着各类直播、短视频和社交媒体的兴起,我们仿佛生在一个“人均美女帅哥”的社会,事实真是如此吗?

拜各类技术和软件的发展所赐,当我们出现在镜头面前时,计算机算法就已经自动将采集到的人像进行了美颜处理,因此,镜头里的人总是美美的。

那么,这些软件背后需要用到什么程序算法呢?计算机是如何识别人的面部和身体,并美化这些部位呢?

通过美颜相机粗略处理过的照片来源丨pexels.com

今天,我们就一起来了解美颜软件是如何工作的。

美颜和绘画有很多相似性,绘画首先是画线稿,确定人体基础结构;然后在线稿之上进行上色,逐步丰富细节,最后完成一幅作品。

我们拍摄的原始人体图像也是“画线稿”,手机收集原始数据,将图像传送到后台进行定位和识别,这一步的目的是确定人体的特征位置,接下来开始“上色”,用算法和技术,对五官或身体部位进行分析、处理、美化,最后得到美颜后的图像。

只不过完成一幅绘画作品需要较长的时间,而美颜却是瞬时的、即刻的,这背后需要有强大的计算机技术作为支撑。

接下来我们以人脸美颜(如美白、磨皮、美肤)为例,具体聊聊美颜主要用到的专业技术。

人脸美颜的几个关键步骤人脸关键点定位技术

我们可以用美颜相机给眼睛画眼影,给嘴唇涂口红,这些功能怎么精准地识别图像中人脸的特定部位呢?

来源丨上观新闻

这里用到的是人脸关键点检测技术,即确定五官的精准位置,可以通过寻找脸部特征点,如眼睛、眉毛、鼻、嘴、脸部外轮廓来实现。

目前主流的人脸关键点检测方法有两种:基于特征(feature-based)的人脸检测和基于图像(image-based)的人脸检测。使用最多的是基于特征的人脸检测方法,且人的眼睛会被首先识别。一般来说,定位的关键点数量越多,最终的美颜效果越好。目前流行的定位关键点数有5、21、29、68、96等,以68点最为经典,如下图所示,左脸、右脸的最外点分别是0、16,左眼外角、内角分别是36、39,右眼外角、内角分别是45、42,下巴为8,鼻根、鼻尖分别为27、30,嘴中心为66。

人脸关键点定位

来源丨CSDN

原始人脸数据被上传至后台,人脸检测技术对原始的图像帧进行识别。人眼、眉毛、T型区(眼睛+鼻子构成的区域)、嘴、下巴会被依次识别。识别的数据被放入人脸信息结构体中,之后再被应用到具体的美颜算法中,对特定部位进行美化。

来源丨搜狐

磨皮技术

女生在化妆前会先涂一层粉底液,主要作用是美白和减少皮肤瑕疵,相当于美颜功能中的“磨皮”和“美白”。

磨皮是美颜最基本的一步

来源丨网络

好的磨皮效果应该是怎样的?首先最重要的是让皮肤变光滑,同时还要尽量保留更多细节(如皮肤肌理),让五官轮廓清晰可见,这样的图片看起来更真实、更有质感。

来源丨电视剧剧照

磨皮用到的是图像平滑技术,因为在拍摄图像时会受到噪声干扰,使图像质量降低,因此要对噪声进行过滤。过滤后的图像将变得平滑,多余无用的信息会被剔除掉。

过滤图像噪声的工具是滤波器,一般常用的滤波器有中值滤波、边缘保持滤波、双边滤波(又称高斯双边滤波)等方法。中值滤波和边缘保持滤波的缺点是不能很好地保留图像的边缘信息;而双边滤波可以保留大量人脸细节且确保边界处不会被模糊掉,因此使用最为普遍。

原图像(左)与双边滤波处理后的图像(右)

来源丨见水印

人像经过双边滤波处理后,可以明显看到皮肤变光滑了,且轮廓边缘清晰,我们可以调节参数,得到不同的磨皮效果。

让皮肤更白皙

我们人眼的像素很高,能看见色彩斑斓的世界,那没有“眼睛”的计算机怎么识别颜色呢?

图像中的颜色一般用RGB模式表示,R、G、B分别代表红、绿、蓝,数字从0~255变化。当R、G、B数值越趋于0,图像越黑;而数值越接近255,颜色就越白。此外,还有HSV色彩空间(H、S、V分别代表色彩、饱和度、明度),这两种颜色空间可以通过算法实现转换。

其它颜色模式和RGB的对应关系“色相”分类下的角度(即色彩)、饱和、明度分别对应HSV来源丨维基百科很多美白技术会将RGB转化为HSV后再调整。先用算法对皮肤像素的颜色数据进行大量统计,得到肤色像素的取值范围,然后再调节像素的各项数值大小。当H、S、V的数值分别趋于0°、0和100%时,皮肤最白最亮。

HSV颜色空间模型

来源丨百度百科

原图像(左)与美白、磨皮后的图像(右)

来源丨pexels

让脸变得更小

不愿减肥又想拥有小脸怎么办呢?打开美颜软件的瘦脸功能啊!

其实,瘦脸、大眼、瘦鼻等调整都用到了液化变形技术。液化算法以一个点为中心,在其影响范围内,我们推动中心点使图像形状发生改变。在圆形内,离中心O点越近,变形越明显。

下图为液化算法的原理示意,O为圆形的中心点,R为液化半径,当我们将O向着OA方向拖动时,则图像中的像素C会变换到D的位置。经过一系列公式,我们可以算出圆形区域内每个变换后的点的像素值,这样就能得到变换后的图像。

液化算法的原理示意图

我们将面部区域当作一个圆形,选择某点作为圆心,设定液化半径,半径内的点就可以向着一定的方向移动发生变形,最后再渲染得到瘦脸效果。

来源丨pexels

相机替人“化妆”

美颜相机里还能DIY妆容,包括口红、腮红、眉毛、眼妆等,深受不会化妆的“手残星人”喜爱。

来源丨pexels

相机里植入了预先设计的不同风格的妆容模版,当人脸出现后,首先会基于人脸关键点检测识别出特定部位,然后妆容模版会投射到人脸特定区域,最后妆容和原图像进行高效合成。

以眉毛为例,相机提供了多套眉毛的图片模版,先检测出原图像眉毛的关键点位置,眉毛的第一个关键点会作为贴合的起始位置;算法还会对眉毛模版的大小和范围作出调整,使模版和原眉毛更好地贴合;最后在原图上进行融合,得到自然、逼真的眉毛效果。

美颜相机里的多种眉毛选择

来源丨某美颜相机

美颜是个技术活。今天我们只是分享了美颜基础功能的相关算法和技术,美颜还有很多高级功能,比如特效装饰、抠图等,这些功能用到的图像算法会更复杂,大家可以多探索一下哦。

来源丨pexels

推荐内容