随着短视频、直播软件一类app的流行,美颜sdk的应用也越来越广泛。所谓“美颜”,简单解释下,就是通过视频(图片)技术对人脸进行美化。但是就“美化”这个词,却牵扯到众多深度学习、图像处理、图像学技术。今天小编就给大家讲讲,美颜sdk中所用到的基本技术和算法原理都有哪些。
一、人脸检测
美颜sdk中所用到的人脸检测技术指的是对视频中、图片中的人脸进行检测,并且准确定位人脸的位置。而人脸检测主要的技术难点在于,如何在特定光照条件,人脸姿态变化、人脸表情变化、遮挡等情况下,从视频或图片中检测出人脸。而人脸检测的发展时期也分为两个时期,一个是深度学习时期。在深度学习之前,人脸检测主要是套用人工设计好的特征,根据人工特征来训练检测器来检测人脸。但当深度学习在计算机视觉领域占据绝对主导地位之后,人们便开始尝试用深度神经网络来训练人脸检测模型。
二、人脸关键点定位
这种技术是对人脸中眉毛、眼睛、鼻子、嘴巴以及脸部的轮廓进行定位。它是紧接在人脸检测后,首先在视频或者图片中检测到人脸,然后才对检测到的人脸做关键点定位。人脸关键点定位技术同人脸检测技术一样,在实际应用中,也存在人脸的尺度、光照、表情、姿态、遮挡等问题,因此绝大多数视频或者图片获得准确的人脸关键点,也是一个比较难的任务。
相同的,人脸关键点定位技术的发展,也可分为深度学习前的时期和深度学习时期:在前期,传统的人脸关键点技术,包含主动形状模型(ASM),主动外观模型(AAM)等,而后期神经网络技术的发展,也使得人脸关键点检测逐渐建立在此技术上。当有了关键点后,美颜sdk中的瘦脸、磨皮、美白等“美颜”操作才能正常进行。这些算法一般都应用在手机等移动设备中,例如在Android上可以使用OpenGL ES,在iOS上可以使用Metal根据人脸关键点的位置,对人脸进行瘦脸、磨皮、美白等渲染。
三、瘦脸
此项技术是美颜sdk中最基本的功能之一,主要是通过对视频或图像中像素位置进行偏移,来实现对脸部区域的放大缩小,简单来讲,就是由变形前坐标,根据变形映射关系,得到变形后坐标。这其中变形映射关系是最关键的,不同的映射关系,将得到不同的变形效果。平移、缩放、旋转,对应的是不同的变换公式。这里比较复杂,就不再详细展开了。
综上,这就是美颜sdk中所用到的基本技术和相关的算法原理,由于篇幅原因,关于磨皮,美白等方面的详解将放到下期再进行讲解。如果您对美颜sdk开发感兴趣,欢迎咨询官方客服。
声明:本文由美狐原创,未经允许禁止转载,谢谢合作。