一文了解人脸识别技术的原理 人脸识别技术是什么

【摘要】我们从人脸识别技术的技术细节讲起,带你初步了解人脸识别技术的发展过程 。通过平台实例的操作,带你看看如何利用公有云的计算资源,快速训练一个可用的人脸识别模型 。
前言大家应该都看过布拉德.伯德执导、汤姆.克鲁斯主演的《碟中谍4吧》?茫茫人海的火车站,只要一眨眼的功夫已经被计算机识别出来,随即被特工盯梢;迎面相逢的美女是致命杀手,手机发出嘀嘀的报警声,上面已经显示美女的姓名和信息 。这就是本文想要介绍的人脸识别算法,以及如果使用公有云AI平台训练模型 。
作为目前人工智能领域中成熟较早、落地较广的技术之一,人脸识别的目的是要判断图片和视频中人脸的身份 。从平常手机的刷脸解锁、刷脸支付,再到安防领域内的人脸识别布控,等等,人脸识别技术都有着广泛的应用 。人脸是每个人与生俱来的特征,该特征具有唯一性并且不易被复制,从而为身份鉴别提供了必要的前提 。
人脸识别的研究始于20世纪60年代,随着计算机技术和光学成像技术的发展不断提高,以及近几年神经网络技术的再次兴起,尤其是卷积神经网络在图像识别和检测中取得的巨大成功,使得人脸识别系统的效果得到了极大的提升 。本文,我们从人脸识别技术的技术细节讲起,带你初步了解人脸识别技术的发展过程,文章的后半篇,我们将会使用ModelArts平台的自定义镜像,带你看看如何利用公有云的计算资源,快速训练一个可用的人脸识别模型 。
正文不管是基于传统图像处理和机器学习技术,还是利用深度学习技术,其中的流程都是一样的 。如图1所示,人脸识别系统都包括人脸检测、对齐、编码以及匹配四个基本环节组成 。所以该部分首先通过对基于传统图像处理和机器学习算法的人脸识别系统进行概述,就可以看出整个深度学习算法在人脸识别领域内发展的脉络 。

一文了解人脸识别技术的原理 人脸识别技术是什么

文章插图
人脸检测流程
传统机器学习算法前面已经说过,人脸识别的目的就是要判断图像中的人脸身份是什么,所以就首先需要先把图像中的人脸检测出来,其实这一步归根结底就是一个目标检测的问题 。传统的图像目标检测算法主要有三部分组成,建议框生成、特征工程以及分类,包括著名的RCNN系列算法的优化思路也是基于这三部分进行的 。
首先是建议框生成,该步骤最简单的想法就是在图片中crop出来一堆待检测框,然后检测该框内是否存在目标,如果存在,则该框在原图中的位置即为目标检测出的位置,因此在该步骤中对目标的覆盖率越大,则建议框生成策略越好 。常见的建议框生成策略有sliding window、Selective Search、Randomized Prim等等,生成大量的候选框,如下图所示 。
一文了解人脸识别技术的原理 人脸识别技术是什么

文章插图
得到大量的候选框后,传统的人脸检测算法接下来最主要的部分就是特征工程 。特征工程其实就是利用算法工程师的专家经验对不同场景的人脸提取各种特征,例如边缘特征、形状形态学特征、纹理特征等等,具体的算法是技术有LBP、Gabor、Haar、SIFT等等特征提取算法,将一张以二维矩阵表示的人脸图片转换成各种特征向量的表示 。
得到特征向量之后,就可以通过传统的机器学习分类器对特征进行分类,得到是否是人脸的判断,例如通过adaboost、cascade、SVM、随机森林等等 。通过传统分类器分类之后就可以得到人脸的区域、特征向量以及分类置信度等等 。通过这些信息,我们就可以完成人脸对齐、特征表示以及人脸匹配识别的工作 。
以传统方法中,经典的HAAR+AdaBoost的方法为例,在特征提取阶段,首先会利用haar特征在图片中提取出很多简单的特征 。Haar特征如下图所示 。为了满足不同大小人脸的检测,通常会利用高斯金字塔对不同分辨率的图像进行Haar特征的提取 。
一文了解人脸识别技术的原理 人脸识别技术是什么

文章插图
Haar特征的计算方法是将白色区域内的像素和减去黑色区域,因此在人脸和非人脸的区域内,得到的值是不一样的 。一般在具体实现过程中,可以通过积分图的方法快速实现 。一般在归一化到20*20的训练图片中,可供使用的Haar特征数在一万个左右,因此在这种特征规模的情况下,可以利用机器学习的算法进行分类和识别 。
得到Haar特征后,可以利用Adaboost进行分类,Adaboost算法是一种将多个比较弱的分类方法合在一起,组合出新的强分类方法 。根据该级联分类器,和训练好的各个特征选择阈值,就可以完成对人脸的检测 。