人脸识别十大关键技术
转载:https://zhuanlan.zhihu.com/p/61348453
1、人脸检测(FaceDetection)
“人脸检测(FaceDetection)”的作用就是要检测出图像中人脸所在位置。人脸检测算法的原理简单来说是一个“扫描”加“判定”的过程。即首先在整个图像范围内扫描,再逐个判定候选区域是否是人脸的过程。因此人脸检测算法的计算速度会跟图像尺寸大小以及图像内容相关。在实际算法时,我们可以通过设置“输入图像尺寸”、或“最小脸尺寸限制”、“人脸数量上限”的方式来加速算法。
2、人脸配准(FaceAlignment)
“人脸配准(FaceAlignment)”所实现的目的是定位出人脸上五官关键点坐标。当前效果的较好的一些人脸配准技术基本通过深度学习框架实现。这些方法都是基于人脸检测的坐标框,按某种事先设定规则将人脸区域抠取出来,缩放到固定尺寸,然后进行关键点位置的计算。另外,相对于人脸检测,或者是后面将提到的人脸特征提取的过程,人脸配准算法的计算耗时都要少很多。
3、人脸属性识别(FaceAttribute)
“人脸属性识别(FaceAttribute)”是识别出人脸的性别、年龄、姿态、表情等属性值的一项技术。这在有些相机APP中有所应用,可以自动识别摄像头视野中人物的性别、年龄等特征并标注出来。
人脸的属性识别包括性别识别、年龄估计、表情识别、姿态识别、发型识别等等方面。一般来说每种属性的识别算法过程是独立的,但是有一些新型的基于深度学习实现的算法可以实现同时输出年龄、性别、姿态、表情等属性识别结果。
4、人脸提特征(FaceFeatureExtraction)
“人脸提特征(FaceFeatureExtraction)”是将一张人脸图像转化为可以表征人脸特点的特征,具体表现形式为一串固定长度的数值。
人脸提特征过程的输入是“一张人脸图”和“人脸五官关键点坐标”,输出是人脸相应的一个数值串(特征)。人脸提特征算法实现的过程为:首先将五官关键点坐标进行旋转、缩放等等操作来实现人脸对齐,然后在提取特征并计算出数值串。
5、人脸比对(FaceCompare)
“人脸比对(FaceCompare)”算法实现的目的是衡量两个人脸之间相似度。
人脸比对算法的输入是两个人脸特征人脸特征由前面的人脸提特征算法获得,输出是两个特征之间的相似度。
6、人脸验证(FaceVerification)
“人脸验证(FaceVerification)”是判定两个人脸图是否为同一人的算法。
它的输入是两个人脸特征,通过人脸比对获得两个人脸特征的相似度,通过与预设的阈值比较来验证这两个人脸特征是否属于同一人。
7、人脸识别(FaceRecognition)
“人脸识别(FaceRecognition)”是识别出输入人脸图对应身份的算法。
它的输入为一个人脸特征,通过和注册在库中N个身份对应的特征进行逐个比对,找出“一个”与输入特征相似度最高的特征。将这个最高相似度值和预设的阈值相比较,如果大于阈值,则返回该特征对应的身份,否则返回“不在库中”。
8、人脸检索(FaceRetrieval)
“人脸检索”是查找和输入人脸相似的人脸序列的算法。
人脸检索通过将输入的人脸和一个集合中的说有人脸进行比对,根据比对后的相似度对集合中的人脸进行排序。根据相似度从高到低排序的人脸序列即使人脸检索的结果。
9、人脸聚类(FaceCluster)
“人脸聚类(FaceCluster)”是将一个集合内的人脸根据身份进行分组的算法。
在没有进行人工身份标注前,只知道分到一个组的人脸是属于同一个身份,但不知道确切身份。
10、人脸活体(FaceLiveness)
“人脸活体(FaceLiveness)”是判断人脸图像是来自真人还是来自攻击假体(照片、视频等)的方法。
在我们生活环境中,人脸认证系统中主要容易受到这种手段欺骗:
(1)用偷拍的照片假冒真实人;
(2)在公开场合录的视频或网上公开的视频片段;
(3)用计算机辅助软件设计的三维模型欺骗;
(4)用蜡或塑料等材质构造的三维雕像欺骗。
现在所以人脸活体检测技术的研究显得异常重要。对于照片欺骗,主要是根据分辨率、三位三维信息、眼动等来进行区分;对于视频欺骗,根据三维信息、光线等来区分。
人脸识别算法原理
1、基于几何特征的方法
人脸由眼睛、鼻子、嘴巴、下巴等部件构成,正因为这些部件的形状、大小和结构上的各种差异才使得世界上每个人脸千差万别,因此对这些部件的形状和结构关系的几何描述,可以做为人脸识别的重要特征。几何特征最早是用于人脸侧面轮廓的描述与识别,首先根据侧面轮廓曲线确定若干显著点,并由这些显著点导出一组用于识别的特征度量如距离、角度等。
2、局部特征分析方法
局部特征分析方法一种基于特征表示的面像识别技术,源于类似搭建积木的局部统计的原理。LFA 基于所有的面像(包括各种复杂的式样)都可以从由很多不能再简化的结构单元子集综合而成。这些单元使用复杂的统计技术而形成,它们代表了整个面像,通常跨越多个像素(在局部区域内)并代表了普遍的面部形状,但并不是通常意义上的面部特征。实际上,面部结构单元比面像的部位要多得多。 然而,要综合形成一张精确逼真的面像, 只需要整个可用集合中很少的单元子集(12~ 40 特征单元)。要确定身份不仅仅取决于特性单元,还决定于它们的几何结构(比如它们的相关位置)。通过这种方式,LFA 将个人的特性对应成一种复杂的数字表达方式,可以进行对比和识别。
“面纹”编码方式是根据脸部的本质特征和形状来工作的,它可以抵抗光 线、皮肤色调、面部毛发、发型、眼镜、表情和姿态的变化,具有强大的可靠性,以从百万人中精确地辨认出一个人。
3、特征脸方法(Eigenface或PCA)
从统计的观点,寻找人脸图像分布的基本元素,即人脸图像样本集协方差矩阵的特征向量,以此近似地表征人脸图像。这些特征向量称为特征脸(Eigenface)。该方法是先确定眼虹膜、鼻翼、嘴角等面像五官轮廓的大小、位置、距离等属性,然后再计算出它们的几何特征量,而这些特征量形成一描述该面像的特征向量。其技术的核心实际为“局部人体特征分析”和“图形/神经识别算法。
4、基于弹性模型的方法
弹性图匹配技术是一种基于几何特征和对灰度分布信息进行小波纹理分析相结合的识别算法,较好的利用了人脸的结构和灰度分布信息,而且还具有自动精确定位面部特征点的功能,因而具有良好的识别效果,适应性强识别率较高,该技术在FERET测试中若干指标名列前茅,其缺点是时间复杂度高,速度较慢,实现复杂。
5、神经网络方法(Neural Networks)
神经网络方法在人脸识别上的应用比起前述几类方法来有一定的优势,因为对人脸识别的许多规律或规则进行显性的描述是相当困难的,而神经网络方法则可以通过学习的过程获得对这些规律和规则的隐性表达,它的适应性更强,一般也比较容易实现。因此人工神经网络识别速度快,但识别率低 。而神经网络方法通常需要将人脸作为一个一维向量输入,因此输入节点庞大,其识别重要的一个目标就是降维处理。
6、其他方法
除了以上几种方法,人脸识别还有其它若干思路和方法,包括一下一些:
(1)隐马尔可夫模型方法(Hidden Markov Model)
(2)Gabor 小波变换+图形匹配
(3)人脸等密度线分析匹配方法
人脸识别技术难点
1、光照问题
光照问题是机器视觉重的老问题,在人脸识别中的表现尤为明显。由于人脸的3D结构,光照投射出的阴影,会加强或减弱原有的人脸特征。尤其是在夜晚,由于光线不足造成的面部阴影会导致识别率的急剧下降,使得系统难以满足实用要求。
2、表情姿态问题
与光照问题类似,表请和姿态问题也是目前人脸识别研究中需要解决的一个技术难点。面部幅度较大的哭、笑、愤怒等表情变化同样影像着面部识别的准确率。姿态问题涉及头部在三维垂直坐标系中绕三个轴的旋转造成的面部变化,其中垂直于图像平面的两个方向的深度旋转会造成面部信息的部分缺失,使得表情姿态问题成为人脸识别的一个技术难题。
3、遮挡问题
对于非配合情况下的人脸图像采集,遮挡问题是一个非常严重的问题。特别是在监控环境下,往往彼监控对象都会带着眼镜,帽子等饰物,使得被采集出来的人脸图像有可能不完整,从而影响了后面的特征提取与识别,甚至会导致人脸检测算法的失效。
4、年龄变化
随着年龄的变化,面部外观也在变化,特别是对于青少年,这种变化更加的明显。对于不同的年龄段,人脸识别算法的识别率也不同。一个人从少年变成青年,变成老年,他的容貌可能会发生比较大的变化,从而导致识别率的下降。对于不同的年龄段,人脸识别算法的识别率也不同。
5、人脸相似性
不同个体之间的区别不大,所有的人脸的结构都相似,甚至人脸器官的结构外形都很相似。这样的特点对于利用人脸进行定位是有利的,但是对于利用人脸区分人类个体是不利的。
6、图像质量
人脸图像的来源可能多种多样,由于采集设备的不同,得到的人脸图像质量也不一样,特别是对于那些低分辨率、噪声大、质量差的人脸图像(如手机摄像头拍摄的人脸图片、远程监控拍摄的图片等)如何进行有效地人脸识别是个需要关注的问题。同样的,对于高分辨图像对人脸识别算法的影响也需要进一步的研究。