ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

【图像识别】基于PCA+SVM 表情识别评分系统matlab代码

2021-11-21 22:58:33  阅读:206  来源: 互联网

标签:SVM 图像识别 img pic Cell done PCA


1 简介

PCA(主成分分析)与SVM(支持向量机)技术对于人脸识别而言非常重要,文章结合PCA与SVM来设计一个人脸识别系统.在MATLAB编译环境下,分别探讨PCA技术与SVM技术,总结出一种快速PCA算法以及SVM的测试与训练算法;从orl_faces人脸库中选取训练数据与测试数据进行训练与测试,对其中重要的参数进行调优,最终达到90%的识别成功率.再经真实人脸的训练与测试,达到了73%的真实人脸识别成功率.​

2 部分代码

%-----人脸匹配  
%-----输入:细胞结构体数据Cell_all(包括样本集合,特征值与特征向量)  
%           想要识别的人脸(彩色图像)  
%-----输出:匹配的结果  
%-----------------------------------    
function FaceFind = facefind(Cell_all,img2find)  
%细胞结构体的调用  
img_all = Cell_all{1};  
[m1,n1] = size(img_all);  
V = Cell_all{2};  
D = Cell_all{3};  
namud = 0.5;  %图片缩小的倍数  
%对需要识别的图像进行灰度等的处理  
pic = rgb2gray(img2find);  %灰度处理  
pic = imresize(pic,namud);  %变换大小  
[m2,n2] = size(pic);   
pic = reshape(pic,1,m2*n2);  %重新排列  
pic = double(pic)/255;         
pic_done = pic*V*D;  %处理完的数据  
%% 归一化 --》避免运算出现特别大的数据  
Ma = max(max(pic_done));  
Mi = min(min(pic_done));  
pic_done = pic_done/(Ma - Mi);  
%%  
for i=1:m1  
   % 归一化 --》避免运算出现特别大的数据  
   Ma1 = max(img_all(i,:));  
   Mi1 = min(img_all(i,:));  
   img_all(i,:) = img_all(i,:)/(Ma1 - Mi1);  
   %求范数--》把他们之间的几何距离作为评判与哪一个人脸最近的标准  
   error(i) = norm(img_all(i,:)-pic_done);  
end  
%找到其中最近的就认为是所要识别的人脸  
FaceFind = find(error == min(error));  
% FaceFind = error;

3 仿真结果

4 参考文献

[1]胡沐晗. "基于PCA和SVM的人脸识别系统." 计算机时代 12(2017):5.

图片

标签:SVM,图像识别,img,pic,Cell,done,PCA
来源: https://blog.csdn.net/qq_59747472/article/details/121462282

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有