摘要
随着科技的发展,人类社会的进步,传统身份识别由于容易遗失,容易被破解已不能起到身份识别作用。人们需要更加安全可靠的身份识别技术。而生物特征的独一无二,不易丢失和被复制的特性很好满足了身份识别的需要。同时随着计算机科学技术和生物医学的发展使得利用生物特征识别成为了可能。在生物特征识别领域,由于人脸识别的操作快速简单,结果直观,准确可靠,不需要人的配合等优点已成为人们关注的焦点。主成分分析(principal component analysis ,PCA)通过提取高维度的人脸图像的主元,使得图像在低维度空间中被处理来降低了图像处理的难度。由于其有效的解决了图像空间维数过高的问题,已经成为人脸识别领域非常重要的理论。本文研究的就是基于PCA的人脸识别算法的实现。
本文按照完整人脸识别流程来分析基于PCA的人脸识别算法实现的性能。首先使用常用的人脸图像的获取方法获取人脸图像。本文为了更好的分析基于PCA人脸识别系统的性能选用了Orl人脸数据库。接下来是人脸图像预处理方法。由于Orl人脸图像质量较好,而且已经做过相应的预处理,所以本文试验中只使用灰度处理。接着使用PCA提取人脸特征,使用奇异值分解定理计算协方差矩阵的特征值和特征向量以及使用最近邻法分类器欧几里得距离来进行人脸判别分类。在实验中我们发现基于PCA的人脸识别系统的识别率很高,而且具有一定鲁棒性,所以基于PCA的人脸识别算法的实现的研究还是有意义。
关键词:人脸识别 PCA算法 奇异值分解定理 欧几里得距离
Abstract
With the development of science and technology, the progress of human society, the traditional identification is easy to lose, easy to be cracked and it has not play an identifiable role. People need a more secure and reliable identification technology. Biometric is unique, easy to lose and replication characteristics of good meet the needs of the identification. With the development of computer science and technology and biomedical makes use of biometric identification has become possible. In the field of biometric identification, face recognition with the advantages of operation is fast and simple, the results are intuitive, accurate and reliable, do not need co-ordination, has become the focus of attention. The principal component analysis (PCA) to extract high dimensional face image of the main element, making the images are processed in low-dimensional space and it reduces the difficulty of image processing. PCA solves effectively the problem of high dimension image space and it has become a very important theory in face recognition field. This paper is in this context of writing from.
In accordance with the full recognition process to analyze the performance of PCA-based face recognition algorithm. The first to use the method of access to commonly used face images for face images. In order to better analysis is based on the performance of the PCA face recognition system selected Essex face database. Next is the face image preprocessing methods. Essex face image quality is better, and have done the appropriate pretreatment, using only gray-scale processing of this trial. Then use the PCA for face feature extraction using singular value decomposition theorem to calculate the covariance matrix of the eigenvalues and eigenvectors, and use the Euclidean distance of the nearest neighbor classifier to the classification of human face discrimination. In the experiment, we found that a high recognition rate of the PCA-based face recognition system, but with a certain robustness, the PCA-based face recognition algorithm to achieve meaningful.
Keywords:face recognition PCA algorithm SVD Euclidean distance
随着社会和科技的发展,社会步伐的加快,人们对高效可靠的身份识别需求日益强烈。各种技术在科研和实际中都受到了很大的重视和发展。由于生物特征内在的稳定性和唯一性使其成为了作为身份识别的理想依据。人脸特征作为典型的生物特征外,还有隐蔽性好,易于被用户接受,不需要人的配合等优点。现已成为了身份识别领域研究的热点。PCA算法通过降低维度,提取主元素,减少了数据冗余,解决了图像纬度太高无法处理或处理很慢的特点,同时保持了原始图像的绝大部分信息。在人脸识别领域,很多先进的识别算法都是在其基础上的改进。所以研究基于PCA的人脸识别算法实现具有重要的理论和使用价值。
本文主要介绍基于PCA的人脸识别算法的实现,除第一章外,其余内容按照人脸识别的流程可分为人脸图像获取,人脸图像预处理,人脸特征提取和特征匹配四个部分。具体安排如下:
第一章主要介绍人脸识别的研究现状,人脸识别技术的主要难点及人脸识别流程。
第二章主要介绍常用的人脸图像预处理方法。
第三章主要介绍PCA算法,SVD定理,如何通过PCA和SVD提取人脸特征及如何使用最近邻法分类器欧几里得距离来进行判别分类。
1 人脸识别系统概述
1.1 人脸识别的研究背景
人脸识别的研究起源比较早,Galton 在1888年和1910年就已在Nature杂志发表两篇关于如何使用人脸进行身份识别的论文。在他的文章,他使用一组数字表示相异的人脸侧面特征,同时还对人类本身的人脸识别能进行了研究分析。
自70年代以来,随着人工智能技术的兴起,人们发现许多对于人类而言可以轻易做到的事情,而让机器来实现却很难,如人脸图像的识别,语音识别,自然语言理解等。人们一直想做的事情就是让机器具有像人类一样的思考能力,以及识别事物、处理事物的能力,因此人们从多个角度来探求人类的思维机制、以及感知事物、处理事物的机制,并努力将这些机制用于实践,进行各种智能机器人的研制。人脸图像的机器识别研究就是在这种背景下兴起的。
同时,进行人脸图像识别研究也具有很大的使用价值。如同人的指纹一样,人脸也具有唯一性,也可用来鉴别一个人的身份。现在己有实用的计算机自动指纹识别系统面世,但还没有通用成熟的人脸自动识别系统出现。与指纹图像不同的是,人脸图像受到诸多因素干扰,使得同一个人,在不同的环境下拍摄所得到的人脸图像不同,有时更会有很大的差别,给识别带来很大难度。因此在各种干扰条件下实现人脸图像的识别,也就更具有挑战性。
虽然人脸识别至今已取得了丰硕的研究成果。但是到目前为止,世界上还没有任何一个完善且应用范围较广的人脸识别系统问世。
1.2 人脸识别的发展趋势
随着社会的进步,人脸识别技术将成为一个重要的研究热点,同时也会被应用于各个方面。其未来主要的发展趋势如下:
1.2.1 数据融合与方法综合
多环境多领域多方法多数据的相互补充和完善。利用数据综合分析,总结研究出更好的人脸识别效果。
1.2.2 动态人脸识别
静态人脸识别技术局限性较大,而随着社会的发展,动态人脸识别技术的应用和需求将大大增加。
1.2.3 三维人脸识别
实际上的人脸是三维的,三维人脸可以比二维人脸提供更加完整的信息,而目前的人脸识别是建立在二维图像上的。随着三维技术的应用越来越广,三维人脸识别也将成为研究热点。
1.2.4 复杂背景下人脸分割技术
在复杂背景下快速有效检测和分割人脸技术还需进一步的研究。
1.2.5 全自动人脸识别技术
全自动人脸识别技术具体难点在于人脸是非刚体,无法得到准确完整的描述人脸特征。如何有效的表达人脸特征将是其研究的重点。
1.3 人脸识别技术的主要难点
人脸识别技术有着非常美好的发展前景,但是以下几个难点一直在制约着突破性的进展:
1.3.1 复杂条件下关键点定位
关键点定位为实际人脸识别系统的前端处理模块,此模块直接影响着人脸识别系统的性能。复杂条件下的关键点定位是目前人脸识别急需解决的问题之一。
1.3.2 姿态问题
现在人脸识别算法主要以正面姿态为研究对象。当人脸姿态非正面时,人脸的识别度将会骤然下降。如何提高人脸识别系统对姿态的识别度人脸识别中一个具有挑战性的任务。
1.3.3 表情问题
表情是人机交互不可或缺的部分,但它很难用精确的数学模型来表示。由于目前的计算机技术的限制,计算机还不能准确的定位这些面部特征点,也无法辨别面部肌肉的运动。而且,不同表情没有固定的界限,不同人的表情也会有不同。
1.3.4 遮挡问题
由于采集到的人脸图像不一定都是完整的,这会影响人脸特征提取与识别,也可能会导致人脸检测算法的失效。如何有效地排除遮挡物的影响有着非常重要的意义。
1.3.5 光照问题
光照问题在人脸识别中表现得十分明显。但光照处理技术远未达到实用的程度,还需要深入的研究。
以上列举了部分主要的技术难点,其他难点本文将不会涉及。
1.4 人脸识别流程
1.4.1 人脸图像获取
人脸图像获取是通过传感器,将获取到的人脸图像转换为计算机可处理的数字信号。这是人脸识别的第一步。获取人脸图像时,要尽量排除干扰因素,是获取的人脸图像能够达到要求。
1.4.2 预处理
预处理是为了除去噪声和对测量仪器或其他因素对人脸图像造成退化现象进行复原。通过定位和分割算法从获取的图像中分割出我们要处理的人脸部分。常用的人脸预处理有:灰度变化,二值化,直方图均衡,图像滤波,图像锐化和归一化处理。
1.4.3 特征提取
特征提取就是通过提取人脸图像中能够凸显与其他个体差异的本质特征,进而来实现身份识别。本文讲解如何使用PCA算法提取人脸特征,进而实现人脸识别。
1.4.4 特征匹配
特征匹配是将采集到的人脸图像的特征模版与系统中已存储的特征模版进行比对,并输出最佳匹配对象。
1.5 本章小结
本章简略讲述了人脸识别系统的研究背景、发展趋势、主要技术难点和系统流程。研究背景模块主要讲述人脸识别的研究概况及研究意义;发展趋势模块主要讲述人脸识别技术未来的走向;主要技术难点模块主要讲述人脸识别的主要技术难点以及今后的研究热点;系统流程模块主要讲述人脸识别系统的工作流程及原理。
2 人脸图像处理的MATLAB实现
2.1 MATLAB简介
由Math Work公司开发的MATLAB程序设计自由度大,程序的可移植性好。MATLAB推出了功能强大的适应于图像分析和处理的工具箱,常用的有图像处理工具箱、小波分析工具箱及数字信号处理工具箱。MATLAB图像处理工具箱支持索引图像、RGB图像、灰度图像、二进制图像并能操作BMP、JPG、TIF等多种图像格式文件。
2.2 人脸图像常用预处理方法
2.2.1 灰度变化
2.2.3 直方图均衡
直方图均衡是将将各灰度级分量尽量均匀分布,从而来增强人脸图像的对比度。此外它还能减少光照对人脸图像的影响,使人脸特征提取变得容易,同时还提高了人脸图像的主观质量。其主要在于根据图像灰度分布和实际的需求选择合适的映射函数。选择函数可以连续平滑函数,也可以是分段函数。映射函数为分段函数时一般是基于想要突出人脸图像中某些灰度值物体的细节,又不想牺牲其他灰度值上的细节的考虑。这样可以是需要的细节灰度值区间得以拉伸,不需要的细节得以压缩。
2.2.4 图像滤波
现在消除噪声的方法有全局处理和局部算子两类。全局处理类的方法需要了解信号和噪声的统计模型。人脸图像预处理经常使用后一类方法。常用的有均值滤波器,高斯平滑滤波器,中值滤波器和边缘保持滤波器。
2.2.4.1 均值滤波器
2.2.4.2 中值滤波器
中值滤波是一种非线性滤波方法。它在平滑脉冲噪声方面非常有效,同时它可以保护像素尖锐的边缘。它用像素点邻域灰度值的中值来代替该像素点的灰度值。该方法在去除脉冲噪声,椒盐噪声的同时又能保留图像边缘细节,这是因为它不依赖于邻域内那些与典型值差别很大的值。中值滤波器在处理连续图像窗函数时与线性滤波器的工作方式类似,但滤波过程不再是加权运算。例如,取4*4窗函数,计算以点[i,j]为中心的窗函数的像素中值时,首先按强度值大小排列像素点,然后选择排序像素集的中间值作为点[i,j]的新值。
中值滤波在一定条件下,可以克服线性滤波器带来的图像细节模糊的缺点,而且对滤除脉冲干扰是最有效的。但对一些细节多,特别是线,尖点等细节多的图像不宜采用中值滤波。
2.2.5 图像锐化
2.2.6 图像归一化
2.3 本章小结
本章主要介绍了人脸图像常用预处理方法。在人脸图像常用预处理方法一节中主要介绍了常用的消除噪音的方法等,分别为灰度变化,二值化,直方图修正,图像滤波和图像锐化。
3 主成分分析PCA算法
3.1 算法说明
3.2 算法实现步骤
3.4 实验结果
本实验采用的人脸库为orl。其中包括40个人的人脸图像,每人10张不同表情的图像。本次试验将40个人的图像库中抽取40张图像(没人一张)作为测试样本,剩余的360张人脸图像作为样本库。
本实验主要包括四.m个文件以及两个文件夹,其中Distance.m用来计算欧氏距离;PCA.m用来提取一张图像的前n维特征值,Quantization.m用来将矩阵向量化,show.m为主函数,包括界面等部分,orl为样本库,test为测试样本集。
实验结果如下:
- 打开一个测试样本,并检索出样本库中与该图像最相似的图像
Fig 1 左上图为测试样本,左下图为平均脸,中间的图为检索出的结果所对应的降维后的图像,即PCA脸,右边图为样本库中最相似的图像,从上到下,从左到右依次排列
3.5 本章小结
在本章主要讲解PCA基本理论和PCA在人脸识别中应用。在第一节中主要讲解了PCA基础理论,使用PCA进行数据分析的优点和PCA方法在计算机视觉领域的应用。在第二节中主要讲解了如何进行基于PCA的人脸识别。
结 论
基于MATLAB数字图像处理与识别系统其实是一个范围很大的应用系统,关于“人脸识别”,在了解了人脸识别的各种方法后。选择了图像直方图差值比较进行了实现。该方法能较好地实现人脸的分类,但对人脸图像的要求较高,目前仅是采用Orl的标准人脸库中的图像来进行测试,因此能获得较高的识别率。而在现实生活中采集到的人脸图像则会受到很多因素的影响,识别率就未必能达到要求了。若要进一步提高识别率和适用范围,则还需要结合其它算法,如PCA、神经网络等。
本文研究的是基于PCA的人脸识别算法的实现。人脸特征提取算法为PCA算法,分类方法采用的是最小距离分类法。通过实验发现在无光照变换,正面姿态,少量遮挡情况下,基于PCA的人脸识别系统的识别率很高,而且反应很迅速。当然也存在着一些问题,例如本文对图像的光照变化,其他姿态没有进行考虑,但实际中这是无法忽略的问题,有可能会导致人脸识别识别率减小。
为了进一步提高基于PCA的人脸识别系统的性能和适应性,我们可以通过以下几个方面进行改进:
改进图像获取方法:我们可以通过使用人脸检测和跟踪算法,在图像获取的时候,动态跟踪和检测人脸,只采集最佳姿态下的人脸图像。这在一定程度可以解决姿态所引起的问题,但也同时对系统的检测和跟踪人脸的反应时间提出较严格的要求。如果反应时间较长,对于快速移动的人脸可能错过采集最佳姿态的图像,而导致系统无法识别人脸。
改进人脸识别特征提取算法:基于PCA的人脸识别虽考虑了人脸图像间的差异,但是不能区分这种差异是由光照,发型变更或背景导致,还是人脸的内在差异,因此特征脸的识别方法在理论上存在一定的缺陷。究其原因是人脸图像中所有像素都处于同等地位,在角度,光照,尺寸和表情变换可能会导致性能急剧恶化。采用同一个人的训练样本的平均来计算人脸图像类间散布矩阵可在一定程度上补偿这个缺点。同时也可以对输入的人脸图像做规范化处理,主要包括对人脸图像做均值方差归一化,人脸尺寸归一化。另外还可以在计算特征脸的同时利用K-L变换计算特征眼睛和特征嘴,然后将这些局部特征向量加权进行匹配,可能会得到更好的结果。我们也可以将人脸进行差异化分类,可分为脸间差异和脸内差异。脸内差异表示同一个人脸的各种可能变形。脸间差异表示不同人的本质差异。在实际中,人脸图像的差异为两者之和。若脸内差异大于脸间差异,则认为两个人脸图像属于一个人的可能性较大。
改进人脸识别的分类器:最近邻法分类器属于一种线性分类器。在实际中可以利用神经网络这类学习能力强的非线性分类器对高维人脸识别可能会取得更好的效果。
综合不同的人脸识别方法:在目前,仅仅单独采用一种现有的人脸识别方法一般都不会取得很好的识别效果。各种技术和方法都有自己不同的适应环境和各自的特点。如果我们想进一步提高人脸识别系统的识别率,可以考虑使用数据融合理论,将不同的方法综合起来,相互补充,来取得很好的人脸识别效果。这也是为人脸识别的研究趋势之一。
近期评论