收藏 分销(赏)

数字图像处理课程设计——人脸检测与识别.doc

上传人:可**** 文档编号:948451 上传时间:2024-04-08 格式:DOC 页数:8 大小:1.10MB 下载积分:10 金币
下载 相关 举报
数字图像处理课程设计——人脸检测与识别.doc_第1页
第1页 / 共8页
数字图像处理课程设计——人脸检测与识别.doc_第2页
第2页 / 共8页


点击查看更多>>
资源描述
数字图像处理 课 程 设 计 人脸检测与识别课程设计 一、 简介 人脸检测与识别是当前模式识别领域的一个前沿课题,人脸识别技术就是利用计算机技术,根据数据库的人脸图像,分析提取出有效的识别信息,用来“辨认”身份的技术。人脸识别是模式识别研究的一个热点, 它在身份鉴别、信用卡识别, 护照的核对及监控系统等方面有着广泛的应用。人脸图像由于受光照、表情以及姿态等因素的影响, 使得同一个人的脸像矩阵差异也比较大。因此, 进行人脸识别时, 所选取的特征必须对上述因素具备一定的稳定性和不变性. 主元分析(PCA)方法是一种有效的特征提取方法,将人脸图像表示成一个列向量, 经过PCA 变换后, 不仅可以有效地降低其维数, 同时又能保留所需要的识别信息, 这些信息对光照、表情以及姿态具有一定的不敏感性. 在获得有效的特征向量后, 关键问题是设计具有良好分类能力和鲁棒性的分类器. 支持向量机(SVM ) 模式识别方法,兼顾训练误差和泛化能力, 在解决小样本、非线性及高维模式识别问题中表现出许多特有的优势。  本此课程设计基于MATLAB,将检测与识别分开进行。其中检测部分使用实验指导书上的肤色模型算法进行,不进行赘述。识别部分采用PCA算法对检测出的人脸图像进行特征提取, 再利用最邻近距离分类法对特征向量进行分类识别,将在后文具体表述。仿真结果验证了本算法是有效的。 二、 人脸检测 1. 源码 img=imread('D:\std_test_images\face3.jpg'); figure; imshow(img); R=img(:,:,1); G=img(:,:,2); B=img(:,:,3); faceRgn1=(R>95)&(G>40)&(B>20)&max(img,[],3)-min(img,[],3)>15&abs(R-G)>15&R>B; figure; imshow(faceRgn1); r=double(R)./double(sum(img,3)); g=double(G)./double(sum(img,3)); Y=0.3*R+0.59*G+0.11*B; faceRgn2=(r>0.333)&(r<0.664)&(g>0.246)&(g<0.398)&(r>g)&g>=0.5-0.5*r; figure; imshow(faceRgn2); Q=faceRgn1.*faceRgn2; P=bwlabel(Q,8); BB=regionprops(P,'Boundingbox'); BB1=struct2cell(BB); BB2=cell2mat(BB1); figure; imshow(img); [s1 s2]=size(BB2); mx=0; for k=3:4:s2-1 p=BB2(1,k)*BB2(1,k+1); if p>mx&(BB2(1,k)/BB2(1,k+1))<1.8 mx=p; j=k; hold on; rectangle('position',[BB2(1,j-2),BB2(1,j-1),BB2(1,j),BB2(1,j+1)],'linewidth',3,'edgecolor','r'); hold off; end end 2.处理过程 三、 人脸识别 1. 算法简述 在Matlab 2012a版本中添加了对PCA算法的支持,由于水平有限我选择直接调用。在本次课程设计中,PCA算法又分为样本训练和人脸识别两个过程,在样本训练阶段,将样本库(每组15张共15组人脸图像,对每组前11张进行特征提取用于训练,后4张用于检测)中的人脸图像转换为特征向量表示,并投影到PCA子空间,最终将这些向量数据保存到训练数据库中。而在识别阶段,同样将待识别的人脸图像使用PCA子空间的向量表示,通过计算待识别图像的向量与样本中的向量之间的距离,寻找其中最相近的人脸图像,作为识别结果。 2. 源码 clear clc % 样本数量15*11 people_count=15; face_count_per_people=11; % 训练比率,设置为75%识别正确率可达100% training_ratio=.75; % 能量 energy=90; training_count=floor(face_count_per_people*training_ratio); training_samples=[]; path_mask='D:\\pca_face_rec\\%03d\\%02d.jpg'; % 训练 for i=1:people_count for j=1:training_count img=im2double(imread(sprintf(path_mask,i,j))); img=imresize(img,[10 10]); % 归一化至50*50 if ndims(img)==3 img=rgb2gray(img); end training_samples=[training_samples;img(:)']; end end mu=mean(training_samples); [coeff,scores,~,~,explained]=pca(training_samples); idx=find(cumsum(explained)>energy,1); coeff=coeff(:,1:idx); scores=scores(:,1:idx); % 测试 acc_count=0; for i=1:people_count for j=training_count+1:face_count_per_people img=im2double(imread(sprintf(path_mask,i,j))); img=imresize(img,[10 10]); if ndims(img)==3 img=rgb2gray(img); end score=(img(:)'-mu)/coeff'; [~,idx]=min(sum((scores-repmat(score,size(scores,1),1)).^2,2)); if ceil(idx/training_count)==i acc_count=acc_count+1; end end end test_count=(people_count*(face_count_per_people-training_count)); acc_ratio=acc_count/test_count; fprintf('测试样本数量:%d,正确识别率:%2.2f%%',test_count,acc_ratio*100) 3. 仿真结果及说明 样本库举例: 结果为:测试样本数量:45,正确识别率:100.00% 四、 总结 人脸识别是一个多学科领域的挑战性难题,近30年来人脸识别的研究虽然取得了巨大的进步,但与人类的感知能力相距甚远。人脸识别还涉及到很多理论和技术问题,这一技术的不断进步还需要研究者们的不断创新和努力。本次课程设计让我对人脸识别算法有了初步的认识,了解到了PCA算法,K-L变换及特征向量的提取,最近邻分类器等人脸识别所需要的知识,为我的进一步学习指明了方向。
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 包罗万象 > 大杂烩

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2025 宁波自信网络信息技术有限公司  版权所有

客服电话:4009-655-100  投诉/维权电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服