基于matlab人脸识别.docx

上传人:b****6 文档编号:4353880 上传时间:2022-11-30 格式:DOCX 页数:19 大小:835.37KB
下载 相关 举报
基于matlab人脸识别.docx_第1页
第1页 / 共19页
基于matlab人脸识别.docx_第2页
第2页 / 共19页
基于matlab人脸识别.docx_第3页
第3页 / 共19页
基于matlab人脸识别.docx_第4页
第4页 / 共19页
基于matlab人脸识别.docx_第5页
第5页 / 共19页
点击查看更多>>
下载资源
资源描述

基于matlab人脸识别.docx

《基于matlab人脸识别.docx》由会员分享,可在线阅读,更多相关《基于matlab人脸识别.docx(19页珍藏版)》请在冰豆网上搜索。

基于matlab人脸识别.docx

基于matlab人脸识别

 

基于MATLAB的人脸初识别

王宇轩

(电子信息工程学系指导老师:

翁亚滨)

摘要:

人脸识别是一门新兴的科研项目,起始于上个世纪60年代。

经过几十年的发展,现已成为一项最有上升潜力的人体特征识别技术。

具有广泛的应用前景,它的工作原理是借由的生物特征来确认生物个体,报告利用MATLAB软件实现人脸信息的检测与识别,在输入的整幅图像中寻找人脸区域,把图像分割成两个部分——人脸区域和非人脸区域,从而为后续的应用作准备。

报告利用YCbCr空间以及二值图像实现人脸边缘分割,将真彩图像转换为YCbCr图像,根据面部肌肤在YCbCr色度空间的分布范围,设定门限阀值,实现人脸区域与非人脸区域的分割,通过膨胀腐蚀等一系列运算剔除干扰因素,再结合长宽比、目标面积等计算方法在图像中分割出人脸区域,经试验,该方法能够排除面部表情、发型、衣着背景等干扰而确定人脸区域。

关键词:

matlab程序;YCbCr空间;灰度图像;人脸区域;边缘检测

Abstract:

Facerecognitionisanewresearchproject,Begininthe1960s,Afterdecadesofdevelopment,Nowitbecomesthemostpotentialhumancharacteristicsidentificationtechnology.Ithasabroadprospectofapplication.Itsworkingprincipleistoconfirmindividualorganismsthroughthebiologicalcharacteristics.ThearticleusestheMATLABsoftwaretoachievehumanfacialinformation'sdetectionandrecognition,findingthehumanfacialareaintheinputedimage,thendevidetheimageintotwoparts,thefaceregionandnon-faceregion,toprepareforthesubsequentapplication.ThisreportusesYCbCrspaceandbinaryimagetoachievehumanfacialedgedivisionandconvertTruecolorpicturesintoYCbCrpictures.AccordingtothefaceskindistributionintheYCbCrChromaticityspace,setthresholdthresholdtorealizethesegmentationofhumanfaceregionandnon-faceregion.Eliminateinterferencefactorsthroughdilationandcorrosionoperations,thenCombinewiththeaspectratiocalculationsandthecalculationoftheareatosegmentthefaceregionintheimage.Throughthetest,thismethodcaneliminatefacialexpressions,hair,clothingbackgroundinterferencetofixthefaceregion.

Keywords:

matlab;YCbCrspace;grayimage;faceregion;edgedetection

1引言

1.1基本介绍与概念

人脸识别就是构建一种人脸识别系统的技术,它的功能是对人脸进行定位,同时采集人脸图像,作出预处理,以确定人脸位置[1]。

作为生物特征识别技术的一项发展,在计算机领域中,人脸识别是一门新兴的,借由生物特征来确认生物个体的技术。

在这里生物特征以及所对应的识别方法分别是:

脸部特征——人脸识别、人体掌纹、指纹——掌纹识别、指纹识别、视网膜、虹膜——视网膜识别、虹膜识别、声音频率——语音识别、目标个体体形——体形识别、形体动作幅度及力度——敲击识别、签字——签字识别等[1]。

报告中采用的人脸识别是特指对于给定的一副任意真彩图像,借由一定的图像处理及特定算法对真彩图像进行扫描从中检测出报告需要的人脸,如果是则通过对人类范围进行加框在真彩图像中标示人脸位置[2]。

1.2研发历史与发展现状

早在20世纪六十年代,人脸识别的研究就以经开始起步,到了今天,这项研究已经越发的成熟。

根据计算机的发展规模可将其分为三个阶段:

在1963年至1991年期间,人脸识别只是作为一种针对事物外形,现象进行识别描述的技术来研究,所针对的人脸图象具有较强的约束条件,比如不提供图像背景或图像背景不会对识别产生干扰,再其次用于研究的图片中人脸部位总是处于任意获得的位置,因此在这一时期人脸识别技术还未受到人们的重视[2]。

之后的1991年到1997年期间,借助计算机技术的革新以及各类工程软件的出现,人脸识别技术得到了喷发式的发展。

在商业领域上的应用被人们不断的发掘出来,由此诞生了若干具有代表性的人脸识别算法,其中最为著名的便是美国军方的FaceIt系统[3]。

1998年至今,电子商务领域,安全领域等方面对人脸识别技术的创新需求越发迫切。

人脸识别研究的重点也逐渐倾向于人脸形体,图像亮度等问题[3]。

与此同时,人脸识别的商业应用进一步提高,进入21世纪,人脸识别技术的研发硕果越发丰盛,活动图象专家组(MPEG)已将人脸检测算法征集进了人脸识别草案小组的范围之内[3]。

清华大学,北京工业大学,中国科学院计算计研究所和自动化研究所等,人脸识别技术已经成为一项世界性的课题受到世人的高度关注,其技术上的创新将会给人们的生活带来方方面面的便利[3]。

1.3研究背景与意义

人脸识别作为一项新兴的科学研究项目,有着广泛的应用前景,而且随着计算机技术的更新发展,它的科学研究价值也越发凸显[3]。

经过几十年的研发探讨,世界各大研究结构的研发人员的不断努力下,人脸识别技术一已取得丰硕的成果,可在一定限制条件下完成人脸的自动识别。

这些成果的取得更促进了人们对人脸识别这一课题的深入研究。

人脸识别与其他识别方法相比较,起优势在于所具备的仿生物学流程以及不易被目标人物察觉的隐蔽性。

人们观察一项事物的流程是通过眼睛扫描事物形体,并录入脑中,将眼前画面与脑海中的记忆相比较,借由比较结果得出识别判断。

人脸识别采用的识别方式正是于此相同,这便是仿生物学流程,而这点正是眼角膜识别、虹膜识别、指纹识别等所不具备的。

再来,人脸识别这种方法不会引起人的反感,可在目标人物未察觉时识别完成,只需要可见光就可以完成人脸信息的获取,不同于虹膜识别需要借助红外线采集图像,指纹识别需要依靠电子压力传感器活得指纹,获取时间短,识别精度高[4]。

在电子商务飞速发展的今天,人脸识别系统的范畴一不足以涵括人脸识别的应用范围,在数字图像处理、视频领域、基于内容的检索等方面有着重要的应用价值。

作为一项具有最广泛应用前景的人体识别技术,人脸识别将得到越来越多的重视[4]。

2设计方案与分析

2.1YCbCr空间

光照强度的不同、人脸肤色的不同、图片背景的不同往往导致每张图片都具有自身的特色,将人脸区域从背景、衣着、发型等非人类区域中分割出来。

一般使用的RGB图片不适合于建立人脸皮肤模型,因为在RGB空间中,使用三基色(r,g,b)表示图片的亮度以及颜色。

在不同的环境下光照条件的改变,很难将肤色点从非肤色点中分离出来,如果在RGB图像上进行处理,将产生离散的肤色点,图片中间嵌有很多的非肤色点,提高了人脸检测的难度,容易产生不可靠的肤色分割。

解决方法是隔离颜色表达式中的亮度信息与色度信息,充分利用色度空间中肤色所表示出来的聚类性。

为此需要创造这样一个色彩空间,这个空间能把R、G、B所代表的色度信息与亮度信息分开表示。

色彩空间常用的的转换颜色模型主要有:

YIQ、YCbCr、HSV等。

这里,采用YCrCb色彩空间作为报告的设计空间[5]。

YCbCr色彩空间一般是在数字视频领域内应用于高品质的视频播放。

在这种色彩空间中,用单个分量Y来表示亮度信息,用两个色差分量Cb和Cr来存储彩色信息。

其中分量Cb表示蓝色分量和一个参考值的差,分量Cr表示红色分量和一个参考值的差[5]。

RGB转换为YCbCr所用的变换公式是:

转换函数是:

YCBCR=rgb2ycbcr(RGB)。

2.2灰度图像转换

灰度图像就是一个数组描述,通常由一个uint8、uint16或双精度类型表示,是使用一个特殊的图像来表示图片中的所有像素[5]。

这个特殊图像就是灰度,一般表示为图像的最黑暗色到图像的最白亮色。

灰度图像不同于黑白图像,黑白图像只有0、1两种取值颜色,而灰度图像的实质是一个数据矩阵I,该矩阵中使用了一定范围内的灰度级来代表图片中的数据,每一个元素对应着图像中的一个像素点,灰度级的取值范围[0,255][5]。

(0代表黑色,255代表白色)

在数字图像中,不同的肤色在YCbCr彩色空间内呈现不同的聚类分布,分布在很小的范围,其色度上的区别远大于在亮度上的区别,同样的肤色在YCbCr彩色空间中,在不同的光照条件下只有亮度值Y会随之改变。

不同的肤色可以具有相同的2D模型G(m,V^2)。

为此笔者借助设定门限值实现肤色的区分。

人体肤色在YCbCr色度空间的灰度范围为:

程序如下:

sum=0;

iptsetpref('ImshowBorder','tight')

f=imread('333.jpg');

Ori_Face=f;

copy=f;

img=f;

f=rgb2ycbcr(f);

f_cb=f(:

:

2);

f_cr=f(:

:

3);

f=(f_cb>=100)&(f_cb<=127)&(f_cr>=138)&(f_cr<=170);

figure

(1);

imshow(f);

2.3噪声消除

在转换后图片出现了噪声,这里采用开闭运算的方法消除噪声。

这里涉及到了形态学描述。

膨胀是二值图像的形态操作,具体功能是使图像变得粗长。

其举例程序与结果如下:

i=imread('9991.jpg');

imshow(i);%%%%%显示原图

se=strel('line',8,6);%创建一个线形结构元素

i2=imdilate(i)%%%%显示膨胀结果

图1膨胀举例图

图2膨胀结果图

数学上,膨胀是作为一种集合运算存在的,是所有结构运算原点位置组合成的集合,这里指定A为i,B为i2,则A被B膨胀定义为:

其中A与B的某些部位将会产生重合。

腐蚀同样二值图像的形态操作,具体作用是将图像变得细小,如同膨胀操作,腐蚀的大小与程度取决于事先所设定的结构元素[6]。

举例程序与结果如下:

i=imread('3212.jpg');%载入图片

imshow(i);%显示图片

se=strel('line',5,3);%生成线形结构元素

i2=imerode(i,se);%用线形结构元素来进行腐蚀操作

imshow(i2)%显示腐蚀结果

图3腐蚀举例图

图4腐蚀结果图

在数学定义上,腐蚀与膨胀相类似,A指代为,B指代为i2,A被B腐蚀记为A

B,定义为:

A被B腐蚀是所有结构元素的原点位置的集合,其中平移的B与A的背景并不叠加。

开启运算就是将膨胀与腐蚀通过各种方式进行整合的运算,其间使用相同的结构元素。

在数字图像处理中的作用通常是起到平滑图像轮廓,消除图像边缘毛刺,截断狭窄的山谷[6]。

举例程序与结果如下:

i=imread('9991.jpg');

imshow(i)%显示原图

se=strel('square',3);%定义方形结构元素

i2=imopen(i,se);%进行开运算

imshow(i2)

图5开运算举例图

图6开运算结果图

开启运算就是对图像进行先腐蚀,后膨胀的操作,运算定义为:

闭合运算同样能平滑图像边缘,与开启运算相反,它一般能融合窄的缺口和细长的弯口,去掉小洞,填补轮廓上的缝隙[6]。

举例程序与结果如下:

i=imread('9991.jpg');

imshow(i)%显示原图

se=strel('square',9);%定义方形结构元素

i2=imclose(i,se);%进行闭运算

imshow(i2)

图7闭运算举例图

图8闭运算结果图

闭运算是对原图像做先膨胀,后腐蚀的操作,闭合运算定义为:

2.4图像填孔

图像的填孔处理是将一些不必要的小孔填充掉,使得图像更加简单,易于处理[6]。

其小孔是指较亮像素包围的暗像素区。

标记一副图像为m,该图像的边缘部分的值为fm,其余部分的值为0:

则图像填孔处理结果为:

调用程序为:

g=imfill(f,'holes')

2.5图像重构

在形态学中,腐蚀通常会除去小的对象,而随后的膨胀往往会还原所保留对象的形状,然而,这种还原的精度取决于形状和结构元素之间的相似性。

在这里,采用重构做开运算,用于恢复图片之后的对象形状[7]。

图像重构是数字图像处理的重要组成部分,其工作原理是以选定图像的图像特征对标记图像进行一系列的膨胀运算,通过运算对选定图像中的重要部分起到强调作用。

标记图像的峰值作为膨胀运算的起始点,结果重复的膨胀过程,以图像的像素值稳定作为终止[8]。

举例程序与结果如下:

i=imread('999.jpg');%载入图片,作为掩模图片

imshow(i)

fe=imerode(i,ones(5,1));%用线形结构元素为5行1列的全1矩阵进行腐蚀操作

fo=imopen(i,ones(5,1));%用线形元素做开运算

fobr=imreconstruct(fe,i);%使用线形元素由重构做开运算,fe为标记图像

imshow(fobr)

图9重构举例图

图10重构结果图

使用结构元素B对由重构做开运算在数学上的定义为:

对图像的再处理为:

se=strel('square',8);

f=imerode(f,se);

f=imdilate(f,se);

figure(6),imshow(f);

2.6人脸区域确定

在录入的真彩图片中,人脸的最大长度(指在图片中的距离)为2.00厘米,宽度在1.3厘米左右浮动。

如果只是简单的对人脸的长度,宽度进行限定,通过阈值进行排除,所得到的程序是不能适用到图片上的所有部位。

对此,可使用长宽比,借由比值来第一步限定人脸区域。

在长宽比限定的基础上,可以对剩余的物体进行第二步骤,在录入的RGB图片中,人脸的大小是有一定限制的,在得到的灰度图像上,人脸的灰度维数通过多次的设定修改,最终限定在14000一下,凡大于这个数值的问题均归类到非人脸区域。

如果图片中的物体,它的长宽比符合条件,维数符合条件,但是它的边缘轮廓有内陷外凸,拉长变形等奇怪的形状,一样是不属于人脸的范畴。

对此,笔者对物体矩形面积与实际面积的比例设定一个阈值,借由这个阈值进行最终的人脸区域确定。

人脸区域的确定方法如下:

(1)在输入的真彩照片中,人脸的长宽比例应在1.54到2.4之间,凡不在此范围内的均认为是非人脸区域,删除之。

(2)在符合上述条件下,若目标区域面积过大,则认定为非人脸区域,删除。

经测算,在二值图像中,人脸维数应小于14000.

(3)人脸部位的矩形面积设定area_sq=人脸区域长度*宽度,人脸实际面积设定area,当area/area_sq值小于0.55,则认定该部位不是人脸区域。

其中:

条件1排除了图片中与人脸肤色相近但长宽不符合要求的区域,依据比例大小限定了人脸区域。

条件2剔除了比例相同但面积不符合的区域,第二次对图片进行划分,赛选。

条件3借助最大面积和实际面积的比值,将一些色调相近但形状不规则的背景,四肢等部位去除。

具体程序如下:

[L,num]=bwlabeln(f,4);%设定操作类型4-领域,返回在f图像中标记得到的连通域数目num

fori=1:

num;

[r,c]=find(L==i);%返回矩阵X中非零元素的行和列的索引

r_temp=max(r)-min(r);%计算长度

c_temp=max(c)-min(c);%计算宽度

temp=size(r);%计算数组r的每一维大小赋值给temp文件

sum=sum+temp

(1);

area_sq=r_temp*c_temp;%计算矩形面积

area=size(find(L==i),1);%目标区面积

ratio=area/area_sq;%将结果赋值于ratio

if(r_temp/c_temp<1.54)|(r_temp/c_temp>2.4)|temp

(1)<14000|ratio<0.55

%利用脸部长宽比的大概上下限(1.54~2.4)来确定一个人脸范围.

%脸部区域小于14000的去掉,一般为手或其他干扰.

%矩形面积area_sq=目标区长度*宽度,目标区面积为area,若area_sq/area小于0.55,认为不是人脸区,删除.

forj=1:

temp

(1);

L(r(j),c(j))=0;

end

else

continue;

end

end

2.7边缘检测

对于一副图像,人们所需要提取图片与背景的分界线就是边缘。

不断变化的灰度值产了边缘,边缘存在在两个不相同的灰度区域之间。

边缘检测是一种提取边缘点集的算法,使用matlab自带的边缘增强算子,将图像的边缘部分加以突出,通过定义图像边缘以及设定阀值最终提取阀值[8]。

运用形态学的腐蚀运算可以得到图像的边界。

假设给定一幅图像A以及一个适当的结构元素B,则关于图像A的边界b(A)可以由计算式[9]:

笔者使用函数bwperim提取包含在图像f中的对象的边界,其语法格式为:

bw=bwperim(A,conn)

其中A为输入的二值图像;conn为二位图像的领域类别,取值4或8(决定于希望的是4连接还是8连接,一般默认为8)。

举例程序如下:

i=imread('3216.jpg');%装入图片,虽然只是黑白色彩,但系统仍然认定为JPG格式

bw=im2bw(i);%变换为二值图像

f=bwperim(bw);%提取周长

imshow(f)%显示结果

图11边缘检测举例图

图12边缘检测结果图

3程序与识别结果

sum=0;

iptsetpref('ImshowBorder','tight')%%%设置图像处理工具箱的参数

f=imread('333.jpg');

Ori_Face=f;

copy=f;

img=f;

f=rgb2ycbcr(f);%rgb空间转换为ycbcr空间

f_cb=f(:

:

2);

f_cr=f(:

:

3);

f=(f_cb>=100)&(f_cb<=127)&(f_cr>=138)&(f_cr<=170);%皮肤颜色在ycbcr色度空间的分布范围为:

100<=cb<=127,138<=cr<=170

figure

(1);

imshow(f);

se=strel('square',3);%%构建一个3*3单位矩阵作为结构元素

f=imopen(f,se);%%图片开运算

f=imclose(f,se);%%图片闭运算

figure

(2),imshow(f);%%消除噪声

f=imfill(f,'holes');%%%填孔处理

figure(3),imshow(f);

se1=strel('square',8);

f=imerode(f,se1);

f=imdilate(f,se1);

figure(4),imshow(f);%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%区域连通

[L,num]=bwlabeln(f,4);设定操作的邻域类型为4-领域

fori=1:

num;

[r,c]=find(L==i);

r_temp=max(r)-min(r);

c_temp=max(c)-min(c);

temp=size(r);

sum=sum+temp

(1);

area_sq=r_temp*c_temp;

area=size(find(L==i),1);

ratio=area/area_sq;

if(r_temp/c_temp<1.54)|(r_temp/c_temp>2.4)|temp

(1)<14000|ratio<0.55

%利用脸部宽长比的大概上下限(1.54-2.4)来确定一个人脸范围.

%脸部区域<14000的去掉,一般为手或其他干扰.

%矩形面积area_sq=目标区长度*宽度,目标区面积为area,若area/area_sq<0.55,认为不是人脸区,删除之.

forj=1:

temp

(1);

L(r(j),c(j))=0;

end

else

continue;

end

end

L=bwperim(L,8);%边缘检测,检测出人脸的边缘区域

L=uint8(L);

z=find(L(:

)>0);L(z)=255;

figure(5),imshow(L);

L_r=L;L_g=L;L_b=L;

L_rgb=cat(3,L_r,L_g,L_b);%在原图上加框

img1_r=min(L_r+img(:

:

1),255);

img1_g=min(L_g+img(:

:

2),255);

img1_b=min(L_b+img(:

:

3),255);

img1=cat(3,img1_r,img1_g,img1_b);

figure(6),imshow(img1);

图13YCbCr空间转换

图14噪声消除

图15图像填孔

图16图像重构

图16人脸区域的确定

图17最终结果图

4讨论

人脸识别容易受光照条件、面部表情、背景等影响,为此,笔者在第一步就将RGB空间转换为YCbCr空间,剔除光照因素,转换灰度图像剔除背景因素,之后的填孔重构等一系列动作则把面部表情等影响排除,只留下笔者要的脸型。

再之后通过测量、计算一步步的限定长宽比、目标面积的范围限定来剔除干扰区域,从而确定脸部区域。

最后利用边缘检测给予识别出来的脸部加框,实验结束。

从结果上看,笔者使用的方法是有一定的局限性。

首先,图片所拍摄下的人脸必须是正对着摄像机镜头,对于俯视,侧视的拍摄并识别人脸,在目前看来仍然是一个世界性的研究课题。

其次,如结果图左起第一位所示,笔者所使用的方法不能有效的将人脸锁骨部分在图片中剔除,因为当真彩图片转换为YCbCr空间时人脸的下颚和脖颈,锁骨部分是默认为不具有层次感的,直接作为一张灰度图片存储到计算机中进行后续处理,这是笔者还需改进的地方。

5结论

笔者对基于matlab人脸识别技术从理论和实践上分别给予了浅层次的探讨和一定的研究。

在对国内外

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

当前位置:首页 > 高中教育 > 初中教育

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

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