刘亮
摘 要:人脸识别技术是信息时代的产物,在日常工作管理、住宅安全管理、身份识别、司法刑侦、银行自助服务等多个领域起到关键作用。人脸识别技术涉及多项技术,文章以PCA算法为主要切入点,介绍了一种改进算法,并阐述了算法的具体实现和对比优势。
关键词:人脸识别;主成分分析法;身份识别;信息时代
随着信息时代的到来,人脸识别技术(Face Recognition Technology,FRT)已经在多个领域得到普及。人们也更青睐将其应用于在线办公、网络支付、电子门锁等。因为这些技术的应用,不仅节省了时间和成本,而且办事效率更高,极大地提高了人们的工作效率和生活质量。
1 人脸识别技术介绍
人脸识别技术是生物特征识别技术的一种,是根据生物个体(一般特指人)本身的生物特征来区分个体[1]。人脸识别技术是基于人的面部特征(具体表现为人脸大小、面部主要器官的位置信息),对录入的人脸图像或者视频流,捕获人脸图像,提取出不同人脸所具有的特定信息,与已知的信息进行判断和对比,最终确定被对比人脸的个体身份。
2 常见的几种人脸识别方法
人脸识别有很多方法,具体包括:几何特征识别法、特征脸(Eigenface)识别法;卷积神经网络识别法、弹性图匹配法、线段Hausdorff距离人脸识别法、支持向量机(Support Vector Machine,SVM)识别法以及最新的RetinaFace算法等。文章主要介绍以主成分分析法(Principal Component Analysis,PCA)[2]为基础的经典人脸识别算法—特征脸方法。
3 基于PCA算法的特征脸识别方法
特征脸识别法是目前应用较为广泛的一种方法,也是人脸识别技术中较为经典的方法,是真正使人臉识别技术投入实践应用的第一种方法,其理论基础是PCA。主要通过维度的图像空间变换,得到具有可分性的低维线性空间投影,这些投影又可以作为表征人脸的合适向量。根据各向量间距值的大小以及训练集内与阈值的比较,最终判断出人脸具体权重。特征脸算法识别率高,但对训练样本的数量有较大需求,且是基于图像灰度的统计特征,还需要进一步改进。
4 改进后的FisherFace
本文提出一种以PCA算法辅以基于线性判别分析(Linear Discriminant Analysis,LDA)算法的人脸识别新方案(FisherFace),对特征脸识别法进行了改进,具体体现在对PCA特征子空间维数与识别率的关系研究。
(1)系统开发环境,本设计方案设计在Windows10的系统环境下进行。
(2)系统应用工具,本设计方案需要用到PyChar2018.3+ Anaconda3+OpenCV。
(3)系统功能需求,具体的系统功能需求分析分为以下4个步骤进行:
首先,人脸检测,通过调用分类器,在图片中将人脸进行分析并利用特定的框架进行标记处理。
其次,数据库存储,根据实际情况及时更新人脸数据,存入数据库,以备训练。
再次,人脸识别,根据原有数据库中已有的人脸数据信息,将输入的未知人脸图像数据进行对比。
最后,动态识别,利用摄像头进行视频画面捕捉,可以实时识别出未知图像中的人脸信息。
(4)界面设计,对程序输入、输出的显示界面进行设计。
(5)数据库设计,本设计基于yale人脸数据库(该库有165张100×100的.bmp格式灰度图像,样本是15人,每人共11张)。调用摄像头自主拍摄样本照片,按2人计,每人选择11张作为样本,加入数据库。
4.1 算法思想基础
在人脸识别技术中,PCA是较为常见的数据分析方法。其原理是通过线性变换将原始数据转换为一组各维度无关的表示。主要目的是提取实验数据的主要特征分量,一般多用于高维数据向低维数据的转换[3]。通常,机器学习中需要的训练样本数量庞大,甚至会经常达到几十万维,资源消耗过大,一般算法难以承受。这也是降维的意义所在。
具体来说,PCA就是将一个高维向量x,通过特殊的特征向量矩阵,投影到一个低维的向量空间中。在这个过程中,可能会损失部分次要信息,但是却可以根据主要的信息基本重构出所对应的原始高维向量u,这一过程就是降维。
在人脸识别方面,特征向量矩阵U即所谓的特征脸空间,向量UI被量化后可以看出人脸的大致轮廓。
LDA是一种监督学习的降维技术,它的数据集每个样本是有类别输出的,与PCA不同。PCA是不考虑样本类别输出的无监督降维技术。要将数据在低维度上进行投影,投影后希望每一种类别数据的投影点尽可能接近,而不同类别的数据类别中心之间的距离要尽可能大。因此,这一方案需要融入LDA的这一特点。
4.2 特征脸算法实现步骤
首先,需要有一个存储有多张人脸图像的集合,这里假设集合为C,人脸图像数量为M。每张图转化为一列,将每一列进行合并,转为矩阵,以得到图像矩阵C。
其次,对行求均值后得到平均脸矩阵MeanC,若还原回像素矩阵,并获得偏差矩阵,每张人脸都减去这个平均图像最后可以得到偏差矩阵diffC。
最后,求协方差矩阵,并计算特征值和特征向量,由于本算法的协方差矩阵维度比较大,计算量庞大且无法实现存储,需要用到以下方法:
假设T是预处理图像的矩阵每一列对应一个减去均值图像之后的图像,则协方差矩阵为S=TTT,并且将S的特征值分解为TTT。由于这是一个非常大的矩阵,需要转变方法,采用以下的特征值分解:TTTUI=λiUi。
两边同时乘以T,可得到TTT,这表示如果UI是TTT,则:
VM=TC是S的一个特征向量。T表示偏差矩阵,用T乘以TTT的一个特征向量即可得到协方差矩阵的特征向量u。每一行特征向量如果做成矩阵,多个图像结合就可看作一个新的人脸,即特征脸。
由于在实践中,样本维数一般都会远大于样本数,特征值分解仅适用于方阵。这里就需要用到与特征值分解相同但是适用于任意矩阵特征值的奇异值分解,以求得协方差矩阵特征向量。
在特征向量和特征值中,越大的特征值(即主成分)对于区分图像越有利。因此,只需要选取大特征值对应的特征向量。在本文中选取特征向量维数为40维,在大多数应用中,已经够用了。
导入一个新的人脸,使用主成分分析后得到特征向量,求取每一个特征向量对于导入人脸的权重向量。利用获得的权重向量与样本集的权重向量计算欧式距离,判别未知人脸与训练人脸之间的距离。
4.3 算法改进
通过PCA降维后的数据不能分类,比LDA缺少一个独立标志每个数据的标签。做回归时,如果特征太多,会产生不相关特征引入、过度拟合等问题。
4.3.1 PCA原始降维
PCA能做到的是将整组数据整体映射到最方便这组数据的坐标轴上,映射时没有利用任何数据内部的分类信息。这一方法虽然在表示数据方面比较方便,但是在分类上会变得困难。在增加了分类之后,两组输入映射到另一个坐标轴上,形成一个新的映射。这样一来,两组数据就比较容易区分,在低维上就可以区分,极大地减少了运算量。
4.3.2 加入改进后的LDA算法
对LDA算法进行改进,直接采用PCA降维后的值,而不是原始照片。这样做的优势在于以下几点:
(1)数据量大大减少,有利于提高程序性能。
(2)多重共线性预测变量之间相互关联,多重共线性空间会导致解空间的不稳定,进而使得结果不连贯。
(3)在十维空间方面的值只有0.02%,减少了变量多对查找规律建立的干扰。
(4)避免了仅分析变量层面,加强了对变量之间潜在联系的研究。
4.4 对比及分析结论
改进后的算法正确率比单纯使用PCA方法要高得多。由于算法本身存在限制,如果想得到更为正确的结果,对样本有较高的要求。如光照、人的表情变化等多个方面都需要考虑。本方案也更换了不同的样本进行测试。
當样本选取了常规表情、光照也较明亮时,正确率很高。当样本中人脸表情比较夸张,而实际测试时表情又比较正常时,正确率就相对较低。因此,样本集应尽量多,保证有各种表情和不同的光照条件。
在降维方面,本方案采用了40维,实际22维完全可以满足使用需求。
5 结语
随着社会发展,人们对人脸识别技术的应用会越来越广泛,不断增加的需求也会推动人脸识别技术向更高的识别率发展。在这样的时代背景下,构成人脸识别技术基础的算法也将不断得到改进,各类算法之间的优势会在未来得到融合,形成新的算法。本方案提出的算法也只是众多算法中的冰山一角,人脸识别技术算法研究还有很长的路要走。
[参考文献]
[1]张翠平,苏光大.人脸识别技术综述[J].中国图象图形学报,2000(11):885-894.
[2]韩军.基于弹性束图匹配与隐马尔科夫模型的人脸识别算法研究[D].兰州:兰州理工大学,2012.
[3]周志华.机器学习[M].北京:清华大学出版社,2016.