matlab的人脸识别技术的实现Word下载.docx
《matlab的人脸识别技术的实现Word下载.docx》由会员分享,可在线阅读,更多相关《matlab的人脸识别技术的实现Word下载.docx(15页珍藏版)》请在冰豆网上搜索。
现阶段,人脸识别技术已经广泛应用于银行、军队、商务、安保等方方面面,相对于指纹采集和虹膜采集技术而言,人脸识别技术更具发展潜力,因为它不需要信息被采集者与信息采集器的近距离接触,减少了使用场合的不便利性,使用起来更加快捷与灵活。
并且在身份信息识别系统的构建和使用成本方面,人脸识别产品可操作性更强,成本也更为低廉,对于一些密保等级较高的领域,譬如军工、司法和航天领域,其使用年限更长,减少了设备更换的频率和次数,从而也极大地控制了信息和数据外泄的可能性。
因此,随着人工智能技术的进一步发展和普及,人脸识别系统将拥有十分广大的发展前景,将会在越来越多的领域发挥积极作用。
1.3本文的研究内容及研究步骤
根据目前已有的研究成果,本文在研究内容上有以下几个方面的安排。
首先,本文将简单介绍通过利用MATLAB对图像进行预处理,该内容的实现将有助于对某一图像中的人脸图像进行处理,以满足后续人脸特征信息提取的需要。
其次,本文在整理和分析目前较为主流的图像预处理技术手段的基础上,采用多种处理
方法相协同的预处理手段,利用灰度图像的直方图对比来实现对人脸特征信息的甄别和判断,该内容涉及了图像选取,人脸定位,信息处理和识别等关键环节
最后,本文将识别的相关结果进行了仿真模拟,并进行总结。
1.4本文人脸识别系统主要结构
从技术层面来看,要想实现对人脸特征信息的识别,首先该系统能够自动对所采集到的照片信息进行检测,检测其中是否有人脸图像,然后将该数据结果进行初步反馈;
如果检测到了人脸信息,则该系统要能够对人脸信息进行进一步处理,提取主要特征信息,最后将该信息与预存人脸特征信息相比对,从而完成身份识别与检测,得出最后验证的结论。
可见,该系统的顺利运行离不开各个环节的紧密配合,只有每一个环节都不出现差错,才能最终得到满意的结果。
本文人脸识别系统的仿真模拟流程可见图1.10
图1.1人脸识别流程图
2应用Matlab处理图像
2.1数字图像处理
所谓数字图像处理技术,通常认为是通过计算机对所获得图像进行剔除无用信息、强化有用信息、模糊信息复原、关键信息定位、目标信息提取和处理的相关技术手段和处理环节。
该技术能够准确而良好的完成直接关系到后续相关操作能否如设计所愿实现。
2.2.1图像处理的基本操作
在进行图像处理之前,第一步工作是利用imread()函数来实现进行照片读
取,然后利用imshow()函数将所读取到的图片进行输出;
第二步工作是利用save()函数将工作区域的变量加以存储,然后利用load函数将该变量顺利读到
Matlab的工作区域中。
在本文的实际设计过程中,还另外利用了imrisize()函
数对图像的大小进行了裁剪,以满足图像尺寸方面的需要。
2.2.2图像类型的转换
Matlab能够实现对多种图像类型的处理,然而在具有操作过程中,一些环节图像的类型有着特殊的要求,因此完成对相关图像的转换就变得十分关键。
在本文使用的Matlab7.0中,我们可以通过利用Matlab函数rgb2gray(),将彩色图像转换成灰度图像。
另^卜,matlab中DIP工具箱函数im2bw使用threshold方法可以将灰度图像转换成只具有黑色和白色两种颜色的二值图像。
2.2.3图像增强
图像增强对于图像处理而言有着十分重要的意义,在采集图像信息的过程中,图像中的有用信息会存在或多或少的失真,而图像增强的目的就在于要提升图像的视觉感受,将图像中的某些信息有针对性的进行强化或者突出,改善它的清晰状况,减少无用信息的干扰,丰富有用信息的含量和质量,从而满足某种或某几种特定功能的需要。
在本文所模拟的系统中,图像增强技术可以将画面不清晰的图像进行修复,提升图像和可辨识度。
一般而言,图像增加技术可以分为两类,即频率域法和空间域法。
前面的方法是将图像视为一类二维信号的组合,最后通过傅里叶变换来实现增强。
而后面的方法中最为常用的是中值滤波法,它们可以有效将无用信息剔除。
目前诸多方法都能够完成对图像的灰度变换,而使用频率最高的方法是直方图变换。
该种方法一种将输出图像直方图模拟为近似均匀分布的变换方法。
在Matlab7.0中,通过使用histeq()函数、imhist()函数来完成对直方图的计算和显示功能。
2.2图像处理功能的Matlab实现实例
为了能较为清晰地表现本系统的仿真模拟过程,本文将在后续的相关描述中列出实现系统预计功能的主要函数。
(1)改变图像类型由于对人脸有无检测和人脸信息识别过程中所用到的图像信息都是灰度图片或者是二值图片,而采集到的图像信息一般都是RGB格式,因此就必须对所采集到的图像进行灰度处理。
在实际操作过程中,本文采用了Matlab中的
rgb2gray完成了图像灰度转换的功能,并又将灰度图片转换成为了二值图片
具体操作过程的代码如下所示:
ifndims(B)~=2%如果不是二值图像
IM=rgb2gray(B);
else
IM=B;
End
E3Fiqure1
图2.1原始图像
图22灰度处理图像
处理成二值图像:
bw=im2bw(IM
graythresh(IM))
%二值化
图2.3二值化处理图像
3人脸检测的实现
3.1引言
现阶段,人脸识别系统主要由人脸检测与定位、人脸图像预处理、人脸特征
信息采集和特性信息甄别等部分构成。
其中,对人脸图像进行预处理是采集人脸特征信息和识别的基础,也是实现后面人脸自动识别功能的核心步骤。
该步骤的
主要目的是去除无用信息,强化有用信息,对外界不良因素所造成的图像模糊和
失真情况进行修复,从而满足后续人脸特征信息收集的要求。
目前,不同的人脸识别系统由于图像源和识别技术的不同,在图像预处理方法也存在很大的差异。
现阶段应用较为广泛的方法包括灰度变换、边缘检测、灰度归一等方法,在实际应用过程中,越来越多的设计者开始倾向于采用多种方法来进行协同配合,以完成准确预处理的需要。
3.2系统基本机构
人脸识别系统的构建是一个较为繁杂的过程,其具有构建步骤从图像信息采
集开始,首先是通过图像信息采集设备对采集图像中有无人脸进行识别,反馈人
脸有无结果;
其次是对人脸进行定位,将人脸在图像中范围进行提取;
最后是通过预设图像中已知人脸识别信息对提取出的人脸特征进行数据描述和识别,从而
确定了人脸信息被采集者的身份。
具体构建流程,可见图3.1。
图3.1基本框架图
3.3人脸检测定位算法
现阶段,对于人脸检测定位的算法一般可以分为两种,一种是基于显式特征的方法,另外一种是基于隐式特征的方法。
我们一般所认同的显式特征是指人可以通过眼睛所获得的特征,这些特征主要包括人的脸型、肤色、面部特征等等。
归结起来就是基于显式特征的方法能够区别是否是人脸,区别人脸与“非人脸”的相关特征区域,然后根据被检测区域是否符合人脸的相关特征,从而判断检测区域是否包含人脸。
依据所需要的人脸特征信息,基于显式特征的方法可以细化为三个方面,即基于肤色模型的方法、模板匹配的方法、基于先验知识的方法,这三类方法在具体的使用过程中均有着自身的特点,具体情况如表3-1所示。
表3.1基于显示特征方法的特点
检测方法
优点
缺点与需要改进的地方
肤色模型
检测速度快
光线和阴影会影响图像信息采集
模板匹配
较为直观,适应性强
对人脸表情提出要求;
模板参数选择困难
基于知识的方法
复杂图像中的人脸检测效
果较好
检测时间长,依赖先验知识
相比于基于显式特征的方法,基于隐式特征的方法则是将人脸区域视为一类模式,通过海量的人脸与“非人脸”训练,以模式判别的方法来确定检测区域中是否包含人脸。
其中,特征脸法、人工神经网络法、支持向量机法等均属于这类方法,其具体特点如表3.2所示。
表3.2基于隐式特征方法的特征
缺点
本征脸法
标准模板信息全面,检测时间短
模板少,识别率低;
模板多,检测
效率低;
神经网络法
检测效率咼,误报数较少
多样本训练耗时较多
支撑向量机
机法
泛化能力更突出,可以实现有效分类
“非人脸”样本繁杂多样
下面本文通过利用matlab来实现对人脸检测定位的模拟仿真,具体过程可见下文所述。
人脸检测定位结果:
图3.2人脸识别的结果
人脸定位代码:
IM=rgb2gray(B);
end
bw=im2bw(IM,graythresh(IM));
%二值化
[m,n]=size(bw);
row=floor(m/10);
%分成10大块,行
wide=floor(n/10);
%分成10大块,列
a1=1;
a2=row;
%对应行初始化
s=row*wide;
%块面积
fori=1:
10%整个循环表示把图像四周全部变成白色
b1=1;
b2=wide;
%对应列初始化
forj=1:
10
if(b2<
=wide||b2>
=9*wide)||(a1==1||a2==row*10)loc=find(bw(a1:
a2,b1:
b2)==0);
[p,q]=size(loc);
pr=p/s*100;
%
ifpr<
=100
b1=
b1+wide
;
%
列跳跃
b2=
b2+wide
bw(a1:
a2,
a1=
a1+row;
行跳跃
a2=
a2+row;
b1:
b2)=0;
[Array,nu]=bwlabel(bw,8);
%区域标记,返回矩阵和连通数stats=regionprops(Array,'
BoundingBox'
);
Ar=cat(1,stats.BoundingBox);
[s1,s2]=size(Ar);
fa=0;
forz=1:
s1%Z表示返回的N行矩阵数值
area=Ar(z,3)*Ar(z,4);
%宽*高
ifarea>
fa&
&
1.5<
(Ar(z,3)/Ar(z,4))<
1.9
fa=area;
h=z;
h2=axes('
Position'
,[0.70.500.190.45]);
%subplot(2,3,3);
imshow(B);
rectangle('
,[Ar(h,1),Ar(h,2),Ar(h,3),Ar(h,4)],...
'
EdgeColor'
,'
y'
LineWidth'
,1);
3.4人脸图像的预处理
本文基于滤波去噪、边缘检测、灰度变换三种图像预处理方法,设计了一个实用性较好的人脸图像预处理仿真模拟系统。
本系统可以对不同外界环境的人脸图像信息进行预处理,譬如用户可以参照实际使用情况选择合适的滤波方法剔除无用信息,利用合适的边缘检测算子甄别人脸边缘,以及利用合适的灰度变换手段实现灰度处理和二值化处理。
3.4.1仿真系统中实现的人脸图像预处理方法
通过对已有文献的整理和分析,不难发现目前用于人脸图像预处理的技术手段主要包括图像类型转换、滤波去噪、灰度变换、边缘检测及二值化、尺寸归一化、灰度归一化等方法。
成熟的人脸图像处理系统具有较好的自适应性,能够在不同的情况下,譬如人脸大小不同、光线强弱不同等条件下,适应外界条件的差异。
因此,将各种人脸图像预处理方法加以综合应用便变得十分有必要。
在本文的仿真模拟中,将采用滤波去噪、灰度变换、边缘检测的方法来实现相关功能,并通过具体的比较表现出了各种方法的使用情况和突出特点。
(1)滤波去噪
在实际情况中,噪声会或多或少地影响到图像的质量,甚至造成图像信息的失真,因此在对人脸信息进行提取之前,就有必要采用滤波的技术手段来提出无用的噪声干扰,这也是实现人脸准确识别的关键步骤。
目前,滤波技术有多种方法,比如平滑滤波、锐化滤波等等,这些滤波方法在使用过程中都可以参考相关文献和资料来加以运用。
下面,本文将对所采用的滤波方法加以阐述,并简要介绍选择的原因。
在人脸图像的预处理过程中,运用较为广泛的是平滑滤波,而具体细分又可以分为线性滤波、中值滤波、自适应滤波三种。
a.线性滤波最典型的线性滤波方法如,采用邻域平均法的均值滤波器、采用
邻域加权平均的高斯滤波和维纳滤波。
对图像进行线性滤波可以去除图像中某些特定类型的噪声,如图像中的颗粒噪声,高斯噪声、椒盐噪声等。
对扫描得到的人脸图像根据其噪声类型一般采用此种滤波方法。
考虑滤波模板大小对滤波效果影响较大,仿真系统选择算法时对同种滤波算法提供了不同模板大小的情况。
b.中值滤波法中值滤波法是一种非线性滤波方法,它把像素及其邻域中的像素按灰度级进行排序,然后选择该组的中间值作为输出像素值。
中值滤波方法的最大优点是抑制噪声效果明显且能保护边界。
对于使用基于整体的人脸识别算法的系统中,由于失掉小区域的细节对特征提取影响较小,所以这种滤波方法最受欢迎。
c.自适应滤波自适应滤波能够根据图像的局部方差来调整滤波器的输出,其
滤波效果要优于线性滤波,同时可以更好地保存图像的边缘和高频细节信息。
(2)灰度变换灰度变换技术是实现图像提升的常用手段。
通过该种手段,能够对采集到的照片进行光照调节,保障图像在进行人脸识别前能够有着相似的灰度分布情况,保障了处理数据的相似性。
依靠这种处理手段,形式多样的图像信息在特征提取过程中才更具对比,这也是对图像信息进行灰度统一的过程。
目前,灰度变换的常用方法有直方图均衡化、直方图规定化和灰度均值方差标准化三种方法。
而这些都可以用过matlab仿真予以完成。
这三种方法的使用都可以部分消除由于光照而造成的人脸识别的负面影响。
因此,本文的仿真模拟系统设计了三种灰度变换模式供用户实际选择。
(3)边缘检测
在对人脸眼睛、鼻子和嘴巴等主要器官进行定位检测时,边缘检测技术便发挥了十分关键的作用。
在本文的仿真模拟设计中,本文对比了canny、sobel、log、prewitt四种算子在不同灰度要求下,不同方向的边缘检测算法,用户可以根据对比的结果选择合适的算法进行边缘检测。
另外,对所需图像类型的转换、图像的二值化处理和尺寸归一化也是在人脸识别系统中十分常见的预处理手段。
为了实现对多种图像类型的处理范围,因此,对输入的图像进行统一化处理往往是实现人脸图像预处理的首要工作。
本文凭借MATLAB中包含的图像类型转换函数完成了对JPG等格式到BMP格式的转换,同时也实现了图像从彩色到灰色的转换;
然后,利用graythresh()函数来实现了对灰度图像的二值化处理,获得了以黑色和白色为主体的人脸图像信息。
最后,通过尺寸归一化手段实现了对人脸图像的裁剪,保障了人脸图像大小尺寸的统一性。
4基于直方图的人脸识别实现
4.1识别理论
通过灰度直方图来提升图像对比度是图像灰度值统计的一种核心技术手段,该技术以概率论为主要理论基础,在实际应用中则主要通过直方图均衡化和直方图规
定化来加以实现。
众所周知,直方图均衡化技术可以实现对动态范围较小图像反差效果的增强。
其基本技术路线是将初始图像的直方图转换为均匀分布的模式,这样就提升了像素灰度值的可变化区间,也就是实现了提升图像对比度的效果。
而直方图均衡化的优势在于能够实现对图像对比度的自动提升,而在具体使用过
程中则提升效果较难控制,最后的处理结果大多得到的是图像整体均衡化的直方图。
因此,在实际使用过程中,要具有针对性地、有选择性地提升某一灰度区间内的对比度,也是就是说要采用灵活的直方图规定化手段来对初始图像进行处理。
4.2人脸识别的matlab实现
实现结果如图4.1和4.2
曲F3怛丄:
人自腐一舷■■■.■••
_£
iluEdff童ew工cksI养desktopWindowtJdp〜
人脸识別条统
图4.1用户界面
图4.2实现结果
4.3小结
在已经研究成果的应用中,直方图的方法以其简单可用的特点受到相关设计人员的广泛采用。
本文通过使用灰度化处理的图像,将每一个灰度级的频率进行了准确计算,然后并进行保存。
接着,从保存的相关数据中连续抽取九个频率进行后续计算。
得到的数据用于对比预存图像与采集图像的相关性与差异性,从而
最终得出与预存图像差异最小的采集图像,并将其认定为图像匹配。
结论
随着信息技术的快速发展,图像已经成为人们生活和工作中获取信息的重要来源,而建立在图像获取与识别基础上的人脸图像识别技术也逐步深入到人们的生活中赖,得到了广泛的应用和发展。
因此,利用Matlab来对人脸识别系统进行模拟和仿真便具有十分重要的现实意义。
本文以Matlab为主要技术手段,通过大量对相关文献和已经研究成果的梳理和总计,对人脸识别系统进行了简化的模拟。
在本文图像处理环节过程中,用到了灰度处理、格式归一、尺寸归一等技术手段,并最终选择通过人脸图像直方图的对比来实现人脸识别的功能。
通过验证表明,本文设计仿真模拟系统具有较好的图像处理能力和人脸特征信息识别能力,但在实际使用过程中,当采集到的人脸特征信息与预设人脸特征信息进行对比甄别时,还有受到一些外界因素,譬如光照强度、人脸角度、距离远近等因素的影响,因此,本文的设计还具有较大的提升空间。
本次的Matlab的人脸识别系统的仿真设计已经按照预定计划全部完成,但在具体实践过程中仍然发现自身的理论知识和实践能力存在着很多的不足,设计的仿真模拟系统距离实际应用还存在较大差距。
因此,在今后的学习生活中,我将继续提高自己的知识水平,做到理论与实际相结合,提升自身的综合素质和解决问题的能力
参考文献
[1]祝磊,朱善安.人脸识别的一种新的特征提取方法[J].计算机学报,2007,
34(6):
122-1251
[2]何东风,凌捷.人脸识别技术综述[J].计算机学报,2003,13(12)75-78
[3],YounusFazl-e-BasitJaved和UsmanQayyum”,采用直方图的人脸识别和处理”,第三阶段仅相关新兴技术研报告。
[4]何国辉,甘俊英.PCA-LDA算法在性别鉴别中的应用[J].中国图像图形学报,2006,32(19):
208-211.
⑸王聃,贾云伟,林福严•人脸识别系统中的特征提取[J].自动化学报,2005,
21(7-3).
[6]张俭鸽,王世卿,盛光磊•基于小波和DFB-PCA的人脸识别算法研究[J].自
动化学报,2007,23(2-1)
[7]曹林,王东峰,刘小军,邹谋炎.基于二维Gabor小波的人脸识别算法[J].电子学报,2006,28(3)490-494
[8]焦峰,山世光,崔国勤,高文,李锦涛.基于局部特征分析的人脸识别方法
[J].自动化学报,2003,15
(1):
53-58
[9]WangmengZuo,KuanquanWang,DavidZhang,HongzhiZhang.CombinationoftwonovelLDA-basedmethodsforfacerecognition[J].ProceedingsoftheIEEE,2007:
735-742
[10]徐倩,邓伟.一种融合两种主成分分析的人脸识别方法[J].计