文档详情

人脸识别系统-开放实验报告范文

汽***
实名认证
店铺
DOC
541KB
约13页
文档ID:462275143
人脸识别系统-开放实验报告范文_第1页
1/13

ZHEJIANG (JNIVEKSITAT FUR WOTHAFT IlNDTECI^IK开放性实验报告《人脸识别系统》小组成员:姓名 学号 109021075 指导老师: 彭艳斌2011年12月【实验名称】人脸识别系统【实验目的】1.对人脸识别系统的图像预处理有一定的掌握;2. 对后续操作只简单了解;3. 通过功能模块实现人脸识别系统实验内容】1.系统需求分析;2. 系统设计;3. 系统实现实验步骤】一、系统需求分析1、目的与背景当前社会上频繁出现的入室偷盗、 抢劫、伤人等案件的不断发生,鉴于此种原因,防盗门开始走进千家万户,给家庭带来安宁;然 而,随着社会的发展,技术的进步,生活节奏的加速,消费水平 的提高,人们对于家居的期望也越来越高,对便捷的要求也越来 越迫切,基于传统的纯粹机械设计的防盗门,除了坚固耐用外, 很难快速满足这些新兴的需求:便捷,开门记录等功能广义的人脸识别实际包括构建人脸识别系统的一系列相关技术, 包括人脸图像采集、人脸定位、人脸识别预处理、身份确认以及 身份查找等;而狭义的人脸识别特指通过人脸进行身份确认或者 身份查找的技术或系统人脸特征点分布图示例人脸识别生物特征识别技术所研究的生物特征包括脸、 指纹、手掌纹、虹膜、视网膜、声音(语音)、体形、个人习惯(例如敲击键盘 的力度和频率、签字)等,相应的识别技术就有人脸识别、指纹 识别、掌纹识别、虹膜识别、视网膜识别、语音识别(用语音识 别可以进行身份识别,也可以进行语音内容的识别,只有前者属 于生物特征识别技术)、体形识别、键盘敲击识别、签字识别等。

人脸识别主要用于身份识别由于视频监控正在快速普及,众多 的视频监控应用迫切需要一种远距离、用户非配合状态下的快速 身份识别技术,以求远距离快速确认人员身份,实现智能预警 人脸识别技术无疑是最佳的选择,采用快速人脸检测技术可以从 监控视频图象中实时查找人脸,并与人脸数据库进行实时比对, 从而实现快速身份识别二.系统设计1) 理论知识fisher 概念引出在应用统计方法解决模式识别问题时,为了解决“维数灾难”的 问题,压缩特征空间的维数非常必要 fisher 方法实际上涉及到维 数压缩的问题 fisher 分类器是一种几何分类器 , 包括线性分类器 和非线性分类器线性分类器有:感知器算法、增量校正算法、 LMSE 分类算法、 Fisher 分类若把多维特征空间的点投影到一条直线上,就能把特征空间压缩 成一维那么关键就是找到这条直线的方向,找得好,分得好,找不 好,就混在一起因此 fisher 方法目标就是找到这个最好的直线方 向以及如何实现向最好方向投影的变换 这个投影变换恰是我们所寻 求的解向量W*,这是fisher算法的基本问题样品训练集以及待测样品的特征数目为 n为了找到最佳投影方向,需要计算出各类均值、样品类内离散度矩阵 S和总类间离散度矩 阵S、样品类间离散度矩阵q,根据Fisher准则,找到最佳投影准 则,将训练集内所有样品进行投影,投影到一维 丫空间,由于丫空间 是一维的,则需要求出丫空间的划分边界点,找到边界点后,就可以 对待测样品进行进行一维 丫空间的投影,判断它的投影点与分界点的 关系,将其归类。

Fisher法的核心为二字:投影1) 一维实现方法(1)计算给类样品均值向量m , m是各个类的均值,Ni是叫类的样品个数1mi X i =1,2,...,n(2)计算样品类内离散度矩阵S和总类间离散度矩阵SwSj 二(X -mi)(X - mi)T X気Sw 八 Sji di =1,2,…,n(3)计算样品类间离散度矩阵SbSb 二血 - m2)(m^ m2)T(4)求向量W*我们希望投影后,在一维丫空间各类样品尽可能地分开,也就是说我们希望两类样品均值之差(m「m2 )越大越好,同时希望各类样品内部尽量密集,即希望类内离散度越小越好,因此,我们可以定义Fisher准则函数:jF(w^WTSbWWTSwW使得Jf(W)取得最大值的W*为 W =Sw (m^m2)(5) 将训练集内所有样品进行投影y 二 W )丁 X(6) 计算在投影空间上的分割阈值yo在一维丫空间,各类样品均值m为1m = —Z y i =1,2,…,nNi y刪样品类内离散度矩阵s2和总类间离散度矩阵Sw£ 八(y-mj2y….' - '2Sw — Sii =1【注】【阈值y的选取可以由不同的方案:较常见的一种是N1m<1' N2m2% _ N1 N2另一种是y ■ mi m2 .In(P( 1)/P( 2)) y。

2 汕 n - 2 】(7) 对于给定的X,计算出它在W*上的投影y(8) 根据决策规则分类y y X 1y y二 x 匕2) matlab 编程1、matlab程序分为三部分程序框图如下图所示打开程序进行人脸识别变化角度四、代码实现A. 第一部分:CreatDatabase.mfun cti on T = CreatDatabase(Tra in DatabasePath)TrainF iles = dir(Tra in DatabasePath);Train_Number = 0;%%%%%统%计文件数 %%%%%%%%%%%%%for i = 1:size(TrainFiles,1)ifno t(strcmp(Tra inF iles(i). name, '.' )|strcmp(Tra inF iles(i). name, '..' )|strcmp(TrainFiles(i).name, 'Thumbs.db'))Train_Number = Train_Number + 1;endend%%%%%二维专一维 %%%%%%%%%%%%T =[];for i = 1 : Train_Numberstr = in t2str(i); %把文件索引转换为字符串格式str = strcat( '\' ,str, '.pgm');str = strcat(Trai nDatabasePath,str);img = imread(str);[irow icol] = size(img);temp = reshape(img',irow*icol,1);T = [T temp];endT = double(T);B. 第二部分:FisherfaceCorefunction [m_database V_PCA V_Fisher ProjectedImages_Fisher Class_number Class_population] = FisherfaceCore(T)%%%%%%返%回%值注释 %%%%%%%%%%%%m_database --- (M*Nx1) 维的训练样本均值%V_PCA --- (M*Nx(P-C) 训练样本协方差的特征向量%V_Fisher --- ((P-C)x(C-1)) 最大的( C-1 )维 J = inv(Sw) * Sb 的特征矩阵 %ProjectedImages_Fisher --- ((C-1)xP) 维训练样本,这些样本从 fisher 线性空间中 提取%%%%基%本量赋值 %%%%%%%%%Class_number=(size(T,2))/9; 类的数目,除以 8取决于样本中有多少类人 Class_population = 9; %每一类的图像数目P = Class_population * Class_number; %总训练样本的数目%%%%计%算均值 %%%%%m_database = mean(T,2); % 包含T每一行均值的列向量%%%计%算方差 %%%%%A = T - repmat(m_database,1,P);%%%%计%算特征脸的算法 %%%%%%L = A' * A;[V D] = eig(L);V = fliplr(V);%%%筛%选小的特征值 %%%%%L_eig_vec = [];dig = fliplr(max(D));for i = 1 : Class_numberL_eig_vec = [L_eig_vec V(:,i)/sqrt(dig(i))];end%%%计%算特征矩阵的协方差矩阵 C%%%%%V_PCA = A * L_eig_vec; %V_PC就是降维后的协方差矩阵ProjectedImages_PCA = [];for i = 1 : Ptemp = V_PCA'*A(:,i);ProjectedImages_PCA = [ProjectedImages_PCA temp];end%%%%%fishe分类器的设计方法 %%%%%%%%计%算在特征空间里面每一个类的均值 %%%%%m_PCA = mean(ProjectedImages_PCA,2) %特征空间总的均值m = zeros( Class_number, Class_number );Sw = zeros( Class_number, Class_number);Sb = zeros( Class_number, Class_number);for i = 1 : Class_numberm(:,i) =mean( ( ProjectedImages_PCA(:,((i-1)*Class_population+1):i*Class_population) ),2 )'; %每一类的样本分别求均值S = zeros(Class_number, Class_number);for j = ((i-1) * Class_population + 1) : ( i*Class_population )S = S + ( ProjectedImages_PCA(:,j) - m(:,i)) * (ProjectedImages_PCA(:,j)- m(:,i))';endSw = Sw + S;Sb = Sb + (m(:,i) - m_PCA) * (m(:,i) - m_PCA)'end%%%%?%计%算 fisher 判别准则,目标是获取最大类间离散度和最小类内离散度 %%%%%% %%%%%%>?卩???±ee ?£ o??e ?X ?? a ?e0 ?e oiX ?D?y ?aa ?ua ?e0 ?e ?£[J_eig_vec, J_eig_val] = eig(Sb,Sw);J_eig_val = max(J_eig_val);J_eig_vec = fliplr(J_eig_vec);%%%%去%除% 0特征根和排序for i = 1 : Class_number - 1V_Fisher(:,i) = J_eig_ve。

下载提示
相似文档
正为您匹配相似的精品文档