人脸识别在这几年的应用相当广泛,尤其是在美颜sdk这一块,它是美颜功能的根本,没有它,换肤、美化、美型、抠图、换脸一系列操作都不可能陆续实现。这几年机器学习的流行,使得人脸识别在美颜方面的应用和准确率更是达到了一个较高的水准。今天我们就来讲解下,这个人脸识别技术的原理是什么?
一、人脸识别技术实现总概
首先找到图片组或者视频中的所有人脸,对于每一张脸来说,无论光线明暗或面朝别处,需要依旧能够识别出是同一个人的脸。而且,能够在每一张脸上找出可用于他人区分的独特之处,比如眼睛多大,脸有多长等等。最后将这张脸的特点与已知所有人脸进行比较,以确定这个人是谁。
二、人脸识别技术实现详解
1、找出所有的面孔
人脸检测最早应用于相机,而后HOG方向梯度直方图算法的出现,使得人脸检测朝着移动设备拍摄(如手机)方向迅速发展。它的具体步骤是:首先把图片灰度化,因为颜色信息对于人脸检测而言没有什么实际作用。然后,分析每个像素以及其周围的像素,根据明暗度标记一个箭头,箭头的指向代表了像素逐渐变暗的方向,如果重复操作每一个像素,最终像素会被箭头取代。而这些箭头被称为梯度,它们能显示出图像从明亮到黑暗流动的过程。
如何观察呢?通过标记箭头,可将图像分割成16X16像素的小方块。在每个小方块中,计算出每个主方向有多少个梯度。然后用指向性最强的那个方向箭头来代替原来那个小方块。最终结果,原始图像会转换成一个非常简单的HOG表达形式,它便可以很轻松的捕获面部的基本结构。
2、脸部的不同姿势
现在,通过HOG算法,已经找出了图片中的人脸,那么,如何鉴别面朝不同方向的人脸呢?对于机器来说,朝向不同的人脸是不同的的东西,为此要适当的调整扭曲图片中的人脸,使得眼睛和最总是与被检测者重叠。此时将使用一中面部特征点估计的算法,以美狐美颜sdk为例,就是找到106个人脸上普遍存在的点。有了这些点,就可以轻松知道眼睛、嘴巴分布在哪个方位了,后续将图片进行旋转,缩放和错切,使得眼睛和嘴巴尽可能的靠近中心。这为下一步的准备提供了道路。
由于篇幅原因,关于脸部编码的问题,将放到下篇文章继续解答,如果您对美颜sdk开发感兴趣,欢迎咨询官方客服。
声明:本文由美狐原创,未经允许禁止转载,谢谢合作。