MATLAB的PCA人脸识别系统

MATLAB的PCA人脸识别系统

1、系统框架

   本系统运用PCA算法来实现人脸特征提取,然后通过计算欧式距离来判别待识别测试人脸,本个系统框架图如下:

图:1-1  人脸识别系统框架图

整个系统的流程是这样的,首先通过图像采集建立人脸库,这个人脸库里的人脸图像必须是格式及像素统一的,然后针对库里的人脸进行人脸训练,利用PCA进行人脸特征提取,获取特征矩阵向量组,将测试人脸投缘到特征子空间中,运用欧氏距离,在人脸库里查找相应的人脸图像,并输出。在这步骤中我还实现人脸重建,对库内和库外人脸重构实现了比较,最后在人脸找到输出的同时,它也输出了对应人脸在库内的数字编号,代表人脸的信息。

2 程序仿真及调试结果

2.1人脸库的生成

   人脸库的建立可以运用目前现有的ORL人脸数据库、JAZZ人脸数据库等,这些人脸库内的人脸都是按某个标准建立,所以在设计人脸之前,必须针对需要,来选择。或者你也可以自己构造人脸数据库,库内人脸可以采用拍照等方式来获取。不过要进行一些前期处理,以满足系统要求。本系统是收集互联网上的图像获取图像,然后实现格式以及大小一致。

图:2-1 部分人脸图像截图

上图就是部分人脸库内人脸图像截图。这个人脸库分为测试人脸库和训练人类库,在训练人脸库内的所有人脸数目有二十张,十个人的,一个人有两张图像,不同的表情。在测试人脸库内有10张人脸,这10张人脸是在训练库内挑选的10个人脸表情。每张人脸图像的大小为180*200,格式为JPG。因为本系统针对的图像格式要求必须为JPG格式的图像。我把这20张图片的命名,用数字1-20来代替,以便后面在识别阶段,可以读出对应的数字,类似人的名字

2.2部分人脸训练图

   将现有库内的人脸,在参与训练后得到的部分训练后的人脸特征图:

图:2-2人脸训练后的图像

      图4-3的是人脸库的的全部人脸在参与训练后的人脸,可以清楚的看到这些经过训练后的人脸,还能很好的反应人脸的大部分轮廓。但是明显的和库内人脸有了很多的区别。已经达到库内人脸训练的目的,完成了人脸训练的初步目的。

2.3特征提取和人脸重建的仿真分析

(1) 根据PCA算法的获取人脸库特征值分布图

特征提取首先把库内待训练的人脸图像,读入matlab转换成灰度图像,进而将人脸图像按行排列,构成协方差矩阵,这个协方差矩阵里面,每一行都代表一个人脸,所以求这个协方差矩阵的特征值和特征向量,也就是求每个人脸的特征,每个特征值对应的特征向量,构成了特征向量子空间,下图中曲线的就是库内内所有人脸图像进行特征提取获得特征值后,按特征值大小排列,由图可以看出,每张人脸图像对应特征值大小的区别性很大,只要提取数值较高的特征值对应的特征向量来组成特征子空间即可,大大的减少了特征矩阵的向量的数量,这样可以降低计算量,提高特征提取的运算速率。也为后面的人脸识别系统运行提高速度。

图:2-3 特征值分布图

2.4 模板匹配及识别的仿真分析

图:4-7人脸匹配效果1

图:4-8人脸匹配效果2

比图4-6和图4-7这两幅图像,可以看出本系统可以很好的匹配库内人脸,这匹配过程是先测试人脸投影到特征子空间中,这样便可以让这张图像成为多维空间中的一点,通过计算其与每个人脸图像的欧式距离,然后对比找出最小欧式距离的人脸,这样就可以匹配到相应的人脸图像。此外,系统对库外的人脸也可以快速判别的。

上面采用判别库外人脸的方法就是采用距离的测度来做的,先在库内人脸训练的时候,计算出库内所有人脸之间相互各自的欧式距离,基于每个人脸在重建后距离是固定的,库内人脸在重建后与库内人脸的欧式距离,可以通过检索匹配到相应的值,如果是库外人脸图像那么它与库内人脸的欧式距离无法找到相应匹配的值,我们通过设置一个参数来保存匹配到的次数,从而可以为判别是否库内人脸的依据。如果是库内人脸除了能显示“灰度图像外”,我们还可以通过矩阵的维数来找出对应人脸的数字标号,并且输出来。如下图所示:

图:2-9 识别后显示的人脸数字代码

 这个图是针对图4-8所识别匹配时,对应得出的人数字代表。这个是库内人脸特有的标记,可以作为人脸的代表,很好的反应的人脸的信息。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值