首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >人脸到底是怎样识别的

人脸到底是怎样识别的

作者头像
刘盼
发布2018-12-28 16:41:40
2.5K0
发布2018-12-28 16:41:40
举报
文章被收录于专栏:人人都是极客人人都是极客

不讲废话,直接看技术:

人脸识别流程

人脸识别技术原理简单来讲主要是三大步骤:一是建立一个包含大批量人脸图像的数据库,二是通过各种方式来获得当前要进行识别的目标人脸图像,三是将目标人脸图像与数据库中既有的人脸图像进行比对和筛选。根据人脸识别技术原理具体实施起来的技术流程则主要包含以下四个部分,即人脸图像的采集与预处理、人脸检测、人脸特征提取、人脸识别和活体鉴别。

人脸图像的采集与预处理:

人脸图像的采集与检测具体可分为人脸图像的采集和人脸图像的检测两部分内容。

人脸图像的采集:采集人脸图像通常情况下有两种途径,分别是既有人脸图像的批量导入和人脸图像的实时采集。一些比较先进的人脸识别系统甚至可以支持有条件的过滤掉不符合人脸识别质量要求或者是清晰度质量较低的人脸图像,尽可能的做到清晰精准的采集。既有人脸图像的批量导入:即将通过各种方式采集好的人脸图像批量导入至人脸识别系统,系统会自动完成逐个人脸图像的采集工作。人脸图像的实时采集:即调用摄像机或摄像头在设备的可拍摄范围内自动实时抓取人脸图像并完成采集工作。

人脸图像的预处理:人脸图像的预处理的目的是在系统对人脸图像的检测基础之上,对人脸图像做出进一步的处理以利于人脸图像的特征提取。人脸图像的预处理具体而言是指对系统采集到的人脸图像进行光线、旋转、切割、过滤、降噪、放大缩小等一系列的复杂处理过程来使得该人脸图像无论是从光线、角度、距离、大小等任何方面来看均能够符合人脸图像的特征提取的标准要求。在现实环境下采集图像,由于图像受到光线明暗不同、脸部表情变化、阴影遮挡等众多外在因素的干扰,导致采集图像质量不理想,那就需要先对采集到的图像预处理,如果图像预处理不好,将会严重影响后续的人脸检测与识别。研究介绍三种图像预处理手段,即灰度调整、图像滤波、图像尺寸归一化等。

灰度调整:因为人脸图像处理的最终图像一般都是二值化图像,并且由于地点、设备、光照等方面的差异,造成采集到彩色图像质量不同,因此需要对图像进行统一的灰度处理,来平滑处理这些差异。灰度调整的常用方法有平均值法、直方图变换法、幂次变换法、对数变换法等。

图像滤波:在实际的人脸图像采集过程中,人脸图像的质量会受到各种噪声的影响,这些噪声来源于多个方面,比如周围环境中充斥大量的电磁信号、数字图像传输受到电磁信号的干扰等影响信道,进而影响人脸图像的质量。为保证图像的质量,减小噪声对后续处理过程的影响, 必须对图像进行降噪处理。去除噪声处理的原理和方法很多,常见的有均值滤波,中值滤波等。目前常用中值滤波算法对人脸图像进行预处理。

图像尺寸归一化:在进行简单的人脸训练时候,遇到人脸库的图像像素大小不一样时,我们需要在上位机人脸比对识别之前对图像做尺寸归一化处理。需要比较常见的尺寸归一化算法有双线性插值算法、最近邻插值算法和立方卷积算法等。

人脸检测:

一张包含人脸图像的图片通常情况下可能还会包含其他内容,这时候就需要进行必要的人脸检测。也就是在一张人脸图像之中,系统会精准的定位出人脸的位置和大小,在挑选出有用的图像信息的同时自动剔除掉其他多余的图像信息来进一步的保证人脸图像的精准采集。

人脸检测是人脸识别中的重要组成部分。人脸检测是指应用一定的策略对给出的图片或者视频来进行检索,判断是否存在着人脸,如果存在则定位出每张人脸的位置、大小与姿态的过程。人脸检测是一个具有挑战性的目标检测问题,主要体现在两方面:

人脸目标内在的变化引起:

1、人脸具有相当复杂的细节变化和不同的表情(眼、嘴的开与闭等),不同的人脸具有不同的外貌,如脸形、肤色等;

2、人脸的遮挡,如眼镜、头发和头部饰物等。

外在条件变化引起:

1、由于成像角度的不同造成人脸的多姿态,如平面内旋转、深度旋转以及上下旋转等,其中深度旋转影响较大;

2、光照的影响,如图像中的亮度、对比度的变化和阴影等;

3、图像的成像条件,如摄像设备的焦距、成像距离等。

人脸检测的作用,便是在一张人脸图像之中,系统会精准的定位出人脸的位置和大小, 在挑选出有用的图像信息的同时自动剔除掉其他多余的图像信息来进一步的保证人脸图像 的精准采集。人脸检测重点关注以下指标:

检测率:识别正确的人脸/图中所有的人脸。检测率越高,检测模型效果越好; 误检率:识别错误的人脸/识别出来的人脸。误检率越低,检测模型效果越好; 漏检率:未识别出来的人脸/图中所有的人脸。漏检率越低,检测模型效果越好; 速度:从采集图像完成到人脸检测完成的时间。时间越短,检测模型效果越好。

目前的人脸检测方法可分为三类,分别是基于肤色模型的检测、基于边缘特征的检测、基于统计理论方法,下面将对其进行简单的介绍:

1、基于肤色模型的检测:

肤色用于人脸检测时,可采用不同的建模方法,主要有高斯模型、高斯混合模型,以及非参数估计等。利用高斯模型和高斯混合模型可以在不同颜色空间中建立肤色模型来进行人脸检测。通过提取彩色图像中的面部区域以实现人脸检测的方法能够处理多种光照的情况, 但该算法需要在固定摄像机参数的前提下才有效。Comaniciu 等学者利用非参数的核函数概率密度估计法来建立肤色模型,并使用 mean-shift 方法进行局部搜索实现了人脸的检测和跟踪。这一方法提高了人脸的检测速度,对于遮挡和光照也有一定的鲁棒性。该方法的不足是和其他方法的可结合性不是很高,同时,用于人脸检测时,处理复杂背景和多个人脸时存在困难。

为了解决人脸检测中的光照问题,可以针对不同光照进行补偿,然后再检测图像中的肤色区域。这样可以解决彩色图像中偏光、背景复杂和多个人脸的检测问题,但对人脸色彩、位置、尺度、旋转、姿态和表情等具有不敏感性。

2、基于边缘特征的检测:

利用图像的边缘特征检测人脸时,计算量相对较小,可以实现实时检测。大多数使用边缘特征的算法都是基于人脸的边缘轮廓特性,利用建立的模板(如椭圆模版)进行匹配。也有研究者采用椭圆环模型与边缘方向特征,实现简单背景的人脸检测。Fröba 等采用基于边缘方向匹配(Edge-Orientation Matching,EOM)的方法,在边缘方向图中进行人脸检测。该算法在复杂背景下误检率比较高,但是与其他的特征相融合后可以获得很好的效果。

3、 基于统计理论方法:

本文重点介绍基于统计理论方法中的Adaboost人脸检测算法。Adaboost算法是通过无数次循环迭代来寻求最优分类器的过程。用弱分类器Haar特征中任一特征放在人脸样本上,求出人脸特征值,通过更多分类器的级联便得到人脸的量化特征,以此来区分人脸和非人脸。Haar功能由一些简单黑色白色水平垂直或旋转45°的矩形组成。目前的Haar特征总的来说广义地分为三类:边缘特征、线特征以及中心特征。

这一算法是由剑桥大学的 Paul Viola 和 Michael Jones 两位学者提出,该算法优点在于不仅计算速度快,还可以达到和其他算法相当的性能,所以在人脸检测中应用比较广泛,但也存在着较高的误检率。因为在采用 Adaboost 算法学习的过程中,最后总有一些人脸和非人脸模式难以区分,而且其检测的结果中存在一些与人脸模式并不相像的窗口。

人脸特征提取:

目前主流的人脸识别系统可支持使用的特征通常可分为人脸视觉特征、人脸图像像素统计特征等,而人脸图像的特征提取就是针对人脸上的一些具体特征来提取的。特征简单,匹配算法则简单,适用于大规模的建库;反之,则适用于小规模库。特征提取的方法一般包括基于知识的提取方法或者基于代数特征的提取方法。

以基于知识的人脸识别提取方法中的一种为例,因为人脸主要是由眼睛、额头、鼻子、耳朵、下巴、嘴巴等部位组成,对这些部位以及它们之间的结构关系都是可以用几何形状特征来进行描述的,也就是说每一个人的人脸图像都可以有一个对应的几何形状特征,它可以帮助我们作为识别人脸的重要差异特征,这也是基于知识的提取方法中的一种。

人脸识别:

我们可以在人脸识别系统中设定一个人脸相似程度的数值,再将对应的人脸图像与系统数据库中的所有人脸图像进行比对,若超过了预设的相似数值,那么系统将会把超过的人脸图像逐个输出,此时我们就需要根据人脸图像的相似程度高低和人脸本身的身份信息来进行精确筛选,这一精确筛选的过程又可以分为两类:其一是一对一的筛选,即对人脸身份进行确认过程;其二是一对多的筛选,即根据人脸相似程度进行匹配比对的过程。

活体鉴别:

生物特征识别的共同问题之一就是要区别该信号是否来自于真正的生物体,比如,指纹识别系统需要区别带识别的指纹是来自于人的手指还是指纹手套,人脸识别系统所采集到的人脸图像,是来自于真实的人脸还是含有人脸的照片。因此,实际的人脸识别系统一般需要增加活体鉴别环节,例如,要求人左右转头,眨眼睛,开开口说句话等。

人脸识别主要方法

人脸识别技术的研究是一个跨越多个学科领域知识的高端技术研究工作,其包括多个学科的专业知识,如图像处理、生理学、心理学、模式识别等知识。在人脸识别技术研究的领域中,目前主要有几种研究的方向,如:一种是根据人脸特征统计学的识别方法,其主要有特征脸的方法以及隐马尔科夫模型(HMM,Hidden Markov Model)方法等;另一种人脸识别方法是关于连接机制的,主要有人工神经网络(ANN,Artificial Neural Network)方法和支持向量机(SVM,Support Vector Machine)方法等;还有一个就是综合多种识别方式的方法。

基于特征脸的方法:

特征脸的方法是一种比较经典而又应用比较广的人脸识别方法,其主要原理是把图像做降维算法,使得数据的处理更容易,同时,速度又比较快。特征脸的人脸识别方法,实际上是将图像做 Karhunen-Loeve 变换,把一个高维的向量转化为低维的向量,从而消除每个分量存在的关联性,使得变换得到的图像与之对应特征值递减。在图像经过 K-L 变换后,其具有很好的位移不变性和稳定性。所以,特征脸的人脸识别方法具有方便实现,并且可以做到速度更快,以及对正面人脸图像的识别率相当高等优点。但是,该方法也具有不足的地方, 就是比较容易受人脸表情、姿态和光照改变等因素的影响,从而导致识别率低的情况。

基于几何特征的识别方法是根据人脸面部器官的特征及其几何形状进行的一种人脸识别方法,是人们最早研究及使用的识别方法,它主要是采用不同人脸的不同特征等信息进行匹配识别,这种算法具有较快的识别速度,同时,其占用的内存也比较小,但是,其识别率也并不算高。该方法主要做法是首先对人脸的嘴巴、鼻子、眼睛等人脸主要特征器官的位置和大小进行检测,然后利用这些器官的几何分布关系和比例来匹配,从而达到人脸识别。

基于几何特征的方法:

基于几何特征识别的流程大体如下:首先对人脸面部的各个特征点及其位置进行检测, 如鼻子、嘴巴和眼睛等位置,然后计算这些特征之间的距离,得到可以表达每个特征脸的矢量特征信息,例如眼睛的位置,眉毛的长度等,其次还计算每个特征与之相对应关系,与人脸数据库中已知人脸对应特征信息来做比较,最后得出最佳的匹配人脸。基于几何特征的方法符合人们对人脸特征的认识,另外,每幅人脸只存储一个特征,所以占用的空间比较小; 同时,这种方法对光照引起的变化并不会降低其识别率,而且特征模板的匹配和识别率比较高。但是,基于几何特征的方法也存在着鲁棒性不好,一旦表情和姿态稍微变化,识别效果将大打折扣。

基于深度学习的方法:

深度学习的出现使人脸识别技术取得了突破性进展。人脸识别的最新研究成果表明,深度学习得到的人脸特征表达具有手工特征表达所不具备的重要特性,例如它是中度稀疏的、对人脸身份和人脸属性有很强的选择性、对局部遮挡具有良好的鲁棒性。这些特性是通过大数据训练自然得到的,并未对模型加入显式约束或后期处理,这也是深度学习能成功应用在人脸识别中的主要原因。

深度学习在人脸识别上有 7 个方面的典型应用:基于卷积神经网络(CNN)的人脸识别方法,深度非线性人脸形状提取方法,基于深度学习的人脸姿态鲁棒性建模,有约束环境中的全自动人脸识别,基于深度学习的视频监控下的人脸识别,基于深度学习的低分辨率人脸识别及其他基于深度学习的人脸相关信息的识别。

其中,卷积神经网络(Convolutional Neural Networks,CNN)是第一个真正成功训练多层网络结构的学习算法,基于卷积神经网络的人脸识别方法是一种深度的监督学习下的机器学习模型,能挖掘数据局部特征,提取全局训练特征和分类,其权值共享结构网络使之更类似于生物神经网络,在模式识别各个领域都得到成功应用。CNN 通过结合人脸图像空间的局部感知区域、共享权重、在空间或时间上的降采样来充分利用数据本身包含的局部性等特征,优化模型结构,保证一定的位移不变性。

利用 CNN 模型,中国香港中文大学的 Deep ID 项目以及 Facebook 的 Deep Face 项目在 LFW 数据库上的人脸识别正确率分别达 97.45%和 97.35%只比人类视觉识别 97.5%的正确率略低。在取得突破性成果之后,中国香港中文大学的 DeepID2 项目将识别率提高到了 99.15%。Deep ID2 通过学习非线性特征变换使类内变化达到最小,而同时使不同身份的人脸图像间的距离保持 恒定,超过了目前所有领先的深度学习和非深度学习算法在 LFW 数据库上的识别率以及人类在该数据库的识别率。深度学习已经成为计算机视觉中的研究热点,关于深度学习的新算 法和新方向不断涌现,并且深度学习算法的性能逐渐在一些国际重大评测比赛中超过了浅层 学习算法。

基于支持向量机的方法:

将支持向量机(SVM)的方法应用到人脸识别中起源于统计学理论,它研究的方向是如何构造有效的学习机器,并用来解决模式的分类问题。其特点是将图像变换空间,在其他空间做分类。

支持向量机结构相对简单,而且可以达到全局最优等特点,所以,支持向量机在目前人脸识别领域取得了广泛的应用。但是,该方法也和神经网络的方法具有一样的不足,就是需要很大的存储空间,并且训练速度还比较慢。

人脸识别三大经典算法:

  • 特征脸法(Eigenface)

征脸技术是近期发展起来的用于人脸或者一般性刚体识别以及其它涉及到人脸处理的一种方法。使用特征脸进行人脸识别的方法首先由 Sirovich 和 Kirby(1987)提出(《Low- dimensional procedure for the characterization of human faces》),并由 Matthew Turk 和 Alex Pentland 用于人脸分类(《Eigenfaces for recognition》)。首先把一批人脸图像转换成一个特征向量集,称为“Eigenfaces”,即“特征脸”,它们是最初训练图像集的基本组件。识别的过程是把一副新的图像投影到特征脸子空间,并通过它的投影点在子空间的位置以及投影线的长度来进行判定和识别。

将图像变换到另一个空间后,同一个类别的图像会聚到一起,不同类别的图像会聚力比较远,在原像素空间中不同类别的图像在分布上很难用简单的线或者面切分,变换到另一个空间,就可以很好的把他们分开了。Eigenfaces 选择的空间变换方法是 PCA(主成分分析), 利用 PCA 得到人脸分布的主要成分,具体实现是对训练集中所有人脸图像的协方差矩阵进行本征值分解,得到对应的本征向量,这些本征向量就是“特征脸”。每个特征向量或者特征脸相当于捕捉或者描述人脸之间的一种变化或者特性。这就意味着每个人脸都可以表示为这些特征脸的线性组合。

  • 局部二值模式(Local Binary Patterns,LBP)

局部二值模式(Local Binary Patterns LBP)是计算机视觉领域里用于分类的视觉算子。LBP 一种用来描述图像纹理特征的算子,该算子由芬兰奥卢大学的 T.Ojala 等人在 1996 年提 出 ( 《 A comparative study of texture measures with classification based on featured distributions》)。2002 年, T.Ojala 等人在 PAMI 上又发表了一篇关于 LBP 的文章(《Multiresolution gray-scale and rotation invariant texture classification with local binary patterns》)。这一文章非常清楚的阐述了多分辨率、灰度尺度不变和旋转不变、等价模式的改进的 LBP 特征。LBP 的核心思想就是:以中心像素的灰度值作为阈值,与他的领域相比较得到相对应的二进制码来表示局部纹理特征。

LBP 是提取局部特征作为判别依据的。LBP 方法显著的优点是对光照不敏感,但是依然没有解决姿态和表情的问题。不过相比于特征脸方法,LBP 的识别率已经有了很大的提升。

  • Fisherface

线性鉴别分析在降维的同时考虑类别信息,由统计学家 Sir R. A. Fisher1936 年发明(《The use of multiple measurements in taxonomic problems》)。为了找到一种特征组合方式,达到最大的类间离散度和最小的类内离散度。这个想法很简单:在低维表示下,相同的类应该紧紧的聚在一起,而不同的类别尽量距离越远。1997 年,Belhumer 成功将 Fisher 判别准则应用于人脸分类,提出了基于线性判别分析的 Fisherface 方法(《Eigenfaces vs. fisherfaces: Recognition using class specific linear projection》)。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2018-12-17,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 人人都是极客 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
人脸识别
腾讯云神图·人脸识别(Face Recognition)基于腾讯优图强大的面部分析技术,提供包括人脸检测与分析、比对、搜索、验证、五官定位、活体检测等多种功能,为开发者和企业提供高性能高可用的人脸识别服务。 可应用于在线娱乐、在线身份认证等多种应用场景,充分满足各行业客户的人脸属性识别及用户身份确认等需求。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档