基于PCA和SVM的人脸识别

该博客介绍了一个基于PCA降维和SVM的人脸识别程序,使用ORL人脸库进行训练和测试。程序包括数据预处理(PCA和规格化)、训练阶段以及识别阶段。PCA用于降低图像特征的维度,SVM用于训练和分类。
摘要由CSDN通过智能技术生成

程序中采用的数据集是ORL人脸库,该人脸库共有400副人脸图像,40人,每人10幅,大小为112*92像素,同一个人的表情,姿势有少许变化。

程序的流程主要分为三部分,数据的预处理(PCA降维和规格化),数据的训练阶段,数据的识别阶段

数据的预处理的流程图如下:

数据的训练流程图如下:


识别流程:


下面贴上一些matlab的实现代码:

数据预处理主要是两个函数,ReadFaces和scaling,第一个函数是将训练图像存成一个200*10304的矩阵,第二个是对数据进行规格化,具体代码如下:

function [imgRow,imgCol,FaceContainer,faceLabel] = ReadFaces(nFacesPerson,nPerson,bTest)
%nFacesPersonn-----每个人需要读入的样本数,默认为5
%nPerson     ------需要读入的人数,默认为全部四十个人
%bTest       ------bool型参数。默认为0,表示读入样本前五张;1:表示后五张


%输出:  FaceContainer------向量化人脸容器,nPerson*10304的二维矩阵,每行对应一个人脸向量


if nargin==0    %默认值   
    nFacesPerson = 5;
    nPerson      = 40;
    bTest        = 0;
elseif nargin<3
    bTest        = 0;
end


img=imread('PCA_face/data/ORL/s1_1.bmp')  %为计算尺寸先读一

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值