- 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
华工数学实验基于回归模型的增量人脸识别探索性实验
实验六 基于回归模型的增量人脸识别探索性实验
实验目的
了解数字图像的基本概念,了解人脸识别的基本含义;
掌握基于回归模型的人脸识别算法的基本原理;
了解Matlab中基本的文件和图像处理命令。
实验任务
利用各种增量人脸识别算法:基于回归模型的增量人脸识别算法,最远子空间增量分类算法、最近最远子空间增量分类算法或其他快速算法,选择其中的一种或几种算法,对给定的人脸数据库进行识别测试,得出识别正确率和(或)运行时间。并与第5节不采用增量学习的算法进行比较,分析实验结果。在实验过程中,可以察看原始的人脸图片,哪些人脸识别错误?该算法有哪些优缺点?改进方向是什么?
2.1实验原理
在本次实验中选取
增量学习可以利用原有训练样本已得到的计算结果和新增数据来计算新的参数,不再需要原来的样本数据,从而降低学习的开销,提高算法处理数据的运行效率。即主要推导求逆矩阵的增量学习公式,以提高LRC处理较大规模数据的效率。
2.1.1预处理:对训练数据和测试数据对应的图像的像素都映射到[0,1]区间;将一个数据集剖分为训练数据集和测试数据集。
2.1.2读入训练数据,利用LRC算法和逆矩阵的增量学习公式,得到
令
通过推导可得
计算
2.1.3对每一个,计算预测向量
2.1.4测试数据的类别:计算原始图像向量与预测图像向量的距离:
对测试数据集中的每一个数据y,利用残差最小,决定y的类别。
2.1.5识别正确率和运行时间统计:将所有测试数据的预测类别与其真实的类别进行比对,计算识别正确率,同时利用tic、toc命令
clear all %清除所有变量
for datasetsnum = 1: 5 %分别运行相应的几个数据集
Datasetsnum
di=[];
error=[];
acc=0;
tic
datasets = {Yale_32x32,Yale_64x64,YaleB_32x32,ORL_32x32,ORL_64x64};
DataSetName = datasets{ datasetsnum };
for k=1:10;%每个数据集,需要处理10份
%% 数据的导入
train=dlmread([DataSetName,\StTrainFile,num2str(k),.txt]); %打开训练文件放进矩阵A
a1=train(:,1:end-1); %去掉训练文件数据最后一列(最末列代表第几个人,即类别)
a2=train(:,end); %取出训练文件数据最后一列(类别)
test=dlmread([DataSetName,\StTestFile,num2str(k),.txt]); %打开测试文件
b1=test(:,1:end-1);
b2=test(:,end);
%% 将数据分割
for number=1:size(b1) %测试照片序号从文件第1行到最末行
y=b1(number,:); %取出第number行数据(用于测试)
for i=1:max(a2) %第i个人
xi=[];
for j=1:size(a2) %从第一张照片循环到最后一张照片
if (a2(j)==i) %将所有同一个人的面部数据合并成一个矩阵xi
xi=[xi,a1(j,:)]; %构造矩阵
end
end
%增量求逆
Xi=xi(:,1);
train=inv(Xi*Xi);
%% 求矩阵的增量
for m=2:size(xi,2)
aerfa=Xi*xi(:,m);
c=xi(:,m)*xi(:,m);
t=1/(c-aerfa*train*aerfa);
gama=train*aerfa;
k1=[train,zeros(size(train,1),1);zeros(1,size(train,2)),0];
k2=[gama;-1];
k3=[gama,-1];
train=k1+t*k2*k3;
Xi=[Xi,xi(:,m)];
end
%% 计算回归系数和残差
betai=trai
文档评论(0)