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

上传人:b****1 文档编号:13181397 上传时间:2022-10-07 格式:DOC 页数:8 大小:1.10MB
下载 相关 举报
数字图像处理课程设计——人脸检测与识别文档格式.doc_第1页
第1页 / 共8页
数字图像处理课程设计——人脸检测与识别文档格式.doc_第2页
第2页 / 共8页
数字图像处理课程设计——人脸检测与识别文档格式.doc_第3页
第3页 / 共8页
数字图像处理课程设计——人脸检测与识别文档格式.doc_第4页
第4页 / 共8页
数字图像处理课程设计——人脸检测与识别文档格式.doc_第5页
第5页 / 共8页
点击查看更多>>
下载资源
资源描述

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

《数字图像处理课程设计——人脸检测与识别文档格式.doc》由会员分享,可在线阅读,更多相关《数字图像处理课程设计——人脸检测与识别文档格式.doc(8页珍藏版)》请在冰豆网上搜索。

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

经过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)>

R>

B;

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;

imshow(faceRgn2);

Q=faceRgn1.*faceRgn2;

P=bwlabel(Q,8);

BB=regionprops(P,'

Boundingbox'

BB1=struct2cell(BB);

BB2=cell2mat(BB1);

[s1s2]=size(BB2);

mx=0;

fork=3:

4:

s2-1

p=BB2(1,k)*BB2(1,k+1);

ifp>

mx&

(BB2(1,k)/BB2(1,k+1))<

1.8

mx=p;

j=k;

holdon;

rectangle('

position'

[BB2(1,j-2),BB2(1,j-1),BB2(1,j),BB2(1,j+1)],'

linewidth'

3,'

edgecolor'

'

r'

holdoff;

end

end

2.处理过程

三、人脸识别

1.算法简述

在Matlab2012a版本中添加了对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='

\\pca_face_rec\\%03d\\%02d.jpg'

;

%训练

fori=1:

people_count

forj=1:

training_count

img=im2double(imread(sprintf(path_mask,i,j)));

img=imresize(img,[1010]);

%归一化至50*50

ifndims(img)==3

img=rgb2gray(img);

end

training_samples=[training_samples;

img(:

)'

];

mu=mean(training_samples);

[coeff,scores,~,~,explained]=pca(training_samples);

idx=find(cumsum(explained)>

energy,1);

coeff=coeff(:

1:

idx);

scores=scores(:

%测试

acc_count=0;

forj=training_count+1:

face_count_per_people

score=(img(:

-mu)/coeff'

[~,idx]=min(sum((scores-repmat(score,size(scores,1),1)).^2,2));

ifceil(idx/training_count)==i

acc_count=acc_count+1;

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变换及特征向量的提取,最近邻分类器等人脸识别所需要的知识,为我的进一步学习指明了方向。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 表格模板 > 调查报告

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1