matlab中PCA的人脸识别,最后得出的识别率是什么意思啊!

http://www.ilovematlab.cn/thread-235440-1-1.html这个代码最后得出一个识别率。也没有得出识别为哪张图片了?那识别的意义在什么... http://www.ilovematlab.cn/thread-235440-1-1.html
这个代码最后得出一个识别率。也没有得出识别为哪张图片了?那识别的意义在什么呢?
展开
 我来答
tulintou
2015-11-23 · 知道合伙人教育行家
tulintou
知道合伙人教育行家
采纳数:1208 获赞数:12599
毕业于重庆理工大学,硕士学位。参与国家自然科学基金项目。

向TA提问 私信TA
展开全部
  1. 识别率指的是通过人脸识别技术识别正确数占识别总数的百分比。

  2. 人脸识别算法分类

    基于人脸特征点的识别算法(Feature-based recognition algorithms)。

    基于整幅人脸图像的识别算法(Appearance-based recognition algorithms)。

    基于模板的识别算法(Template-based recognition algorithms)。

    利用神经网络进行识别的算法(Recognition algorithms using neural network)。

    神经网络识别

    基于光照估计模型理论

    提出了基于Gamma灰度矫正的光照预处理方法,并且在光照估计模型的基础上,进行相应的光照补偿和光照平衡策略。

    优化的形变统计校正理论

    基于统计形变的校正理论,优化人脸姿态;

    强化迭代理论

    强化迭代理论是对DLFA人脸检测算法的有效扩展;

    独创的实时特征识别理论

    该理论侧重于人脸实时数据的中间值处理,从而可以在识别速率和识别效能之间,达到最佳的匹配效果

光点科技
2023-08-15 广告
通常情况下,我们会按照结构模型把系统产生的数据分为三种类型:结构化数据、半结构化数据和非结构化数据。结构化数据,即行数据,是存储在数据库里,可以用二维表结构来逻辑表达实现的数据。最常见的就是数字数据和文本数据,它们可以某种标准格式存在于文件... 点击进入详情页
本回答由光点科技提供
匿名用户
2014-02-17
展开全部
人脸库包括一部分人脸样本 一部分非人脸样本
识别率就是 程序识别正确的样本数量/训练集的样本总数
程序识别正确的样本数量包括 样本是非人脸实际检测也是费人脸和样本是人脸实际检测也是人脸两部分。
PCA人脸识别一般是做为人脸检测的第二部分,所采用的训练样本一般也都是归一好的同等尺寸的图像(如20*20,50*50,100*100等)。并不是说随便一张照片。

而对实际照片进行人脸检测的时候,一般采用一些办法(如肤色分割)从原始图像中切出部分侯选块作为下一步检测(如PCA)的数据。
更多追问追答
追问
如何做到判定分类的准确与否的呢?
追答
你想问PCA是如何实现的还是什么?每太明白你像问什么
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
夜来雨早来晴
2015-11-13 · TA获得超过3.1万个赞
知道大有可为答主
回答量:9110
采纳率:60%
帮助的人:780万
展开全部
%一个修改后的PCA进行人脸识别的Matlab代码
% calc xmean,sigma and its eigen decomposition
allsamples=[];%所有训练图像
for i=1:40
for j=1:5
a=imread(strcat('D:\rawdata\ORL\s',num2str(i),'\',num2str(j),'.pgm'));
% imshow(a);
b=a(1:112*92); % b是行矢量 1×N,其中N=10304,提取顺序是先列后行,即从上到下,从左到右
b=double(b);
allsamples=[allsamples; b]; % allsamples 是一个M * N 矩阵,allsamples 中每一行数据代表一张图片,其中M=200
end
end
samplemean=mean(allsamples); % 平均图片,1 × N
for i=1:200 xmean(i,:)=allsamples(i,:)-samplemean; % xmean是一个M × N矩阵,xmean每一行保存的数据是“每个图片数据-平均图片”
end;
sigma=xmean*xmean'; % M * M 阶矩阵
[v d]=eig(sigma);
d1=diag(d);
[d2 index]=sort(d1); %以升序排序
cols=size(v,2);% 特征向量矩阵的列数
for i=1:cols
vsort(:,i) = v(:,index(cols-i+1) ); % vsort 是一个M*col(注:col一般等于M)阶矩阵,保存的是按降序排列的特征向量,每一列构成一个特征向量
dsort(i) = d1( index(cols-i+1) ); % dsort 保存的是按降序排列的特征值,是一维行向量
end %完成降序排列
%以下选择90%的能量
dsum = sum(dsort);
dsum_extract = 0;
p = 0;
while( dsum_extract/dsum < 0.9)
p = p + 1;
dsum_extract = sum(dsort(1:p));
end
i=1;
% (训练阶段)计算特征脸形成的坐标系
while (i0)
base(:,i) = dsort(i)^(-1/2) * xmean' * vsort(:,i); % base是N×p阶矩阵,除以dsort(i)^(1/2)是对人脸图像的标准化,详见《基于PCA的人脸识别算法研究》p31
i = i + 1;
end
% add by wolfsky 就是下面两行代码,将训练样本对坐标系上进行投影,得到一个 M*p 阶矩阵allcoor
allcoor = allsamples * base;
accu = 0;
%
for i=1:40
for j=6:10 %读入40 x 5 副测试图像
a=imread(strcat('D:\rawdata\ORL\s',num2str(i),'\',num2str(j),'.pgm'));
b=a(1:10304);
b=double(b);
tcoor= b * base; %计算坐标,是1×p阶矩阵
for k=1:200
mdist(k)=norm(tcoor-allcoor(k,:));
end;
%三阶近邻
[dist,index2]=sort(mdist);
class1=floor( index2(1)/5 )+1;
class2=floor(index2(2)/5)+1;
class3=floor(index2(3)/5)+1;
if class1~=class2 && class2~=class3
class=class1;
elseif class1==class2
class=class1;
elseif class2==class3
class=class2;
end;
if class==i
accu=accu+1;
end;
end;
end;
accuracy=accu/200 %输出识别率
函数调用是定义函数,然后用函数名进行调用就可以了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式