基于matlab的人脸识别技术
论文
摘要:随着计算机技术的飞速发展,人脸识别技术逐渐发展壮大起来,并应用到众多领域。 人脸识别是指在人脸检测的基础上针对输入的人脸图像,通过特征提取与特征匹配,找出与人脸库中匹配的人脸图像,从而达到识别效果。当前主要采取的人脸识别方法有:基于几何特征的方法 ,基于模板的方法和基于模型的方法。 这些方法较适合于人脸信息的验证,即待识别者是否为预先指定的对象。不足之处在于,需要建立一个拥有庞大人脸信息的训练样本库,因此就降低了输出结果的时效性和准确性。在应用领域中存在局限性,不适于具有庞大人脸样本训练库的身份鉴别领域。鉴于种种不足,本文提出了一种基于可变人脸库的快速人脸识别方法,使人脸识别技术适用于更多的行业。网络信息化时代的一大特征就是身份的数字化和隐性化,如何准确鉴定一个人的身份,保护信息安全是当今信息化时代必须解决的一个关键社会问题。正在悄然兴起的人脸识别技术正好可以解决这一问题。
关键词:模式识别,K-L变换,人脸识别,图像处理,matlab,图像增强,边缘检测,图像预处理,灰度直方图,特征提取
1.1识别系统构成
自动人脸识别系统具有如图所示的一半框架并完成相应功能的任务。
(1)人脸图像的获取:一般来说,图像的获取都是通过摄像头摄取,氮摄取的图像可以是真人,也可以是人脸的图片或者为了相对简单,可以不考虑通过摄像头来摄取头像,而是直接给定要识别的图像。
(2)人脸的检测:人脸检测的任务是判断静态图像中是否存在人脸。若存在人脸,给出其在图像中的坐标位置,人脸区域大小等信息。而人脸跟踪需要进一步输出所检测到的人脸位置,大小等状态随时间的连续变化情况。
(3)特征提取通过人脸特征点的检测与标定可以确定人脸图像中显著特征点的位置(如眼睛,眉毛,鼻子,嘴巴等器官),同时还可以得到这些器官及其面部轮廓的形状信息的描述。
1.人脸特征提取的算法:K-L变换是图像压缩中的一种最优正交变换,通过它可以把人脸样本从高维空间表示转换到低维空间表示,且由低维空恢复的人脸样本和原人脸样本具有最小的均方误差,从而可用人脸样本在低维空间的变换系数作为对人脸特征的描述。其中主元分析法(PCA)就是基于K-L变换的一种比较流行的算法,它是统计学中分析数据的一种有效的方法,其目的是在数据间中找到一组向量以尽可能地解释数据的方差,将数据从原来的R维空间将维投影到M维空间(R>>M)并保存数据的主要信息,从而使数据更易于处理.按照K-L变换识别算法流程.从人脸样本中提取面部特征.是人脸识别中重要步骤.其实质是一个从高维图像空间到低维数字空间的转换过程,可表示为:Y=T{x}
式中:x表示原始数据,Y表示为特征信息,T表示映射
人脸样本特征提取算法如下:首先计算该库中所有样本的平均值(平均脸): 1pffn Pi1
式中;P表示照片数.f表示每张照片的线性表示然后构建协方差矩阵:
1p
Cf'i(f'i)TAAT
Pi1
式中: f'iff表示每张照片与样本平均值的差。A表示差值形成的矩阵
接着,进行特征的提取:由于此协方差矩阵进行求解特征值和特征向量比较困难的,因此采用奇异值分解的方法得到特征矩阵。
YiUTf'i
式中:U表示的是采用奇异值分解特征向量提取方法。
2.基于协同模式的人脸样本分类:将人脸样本进行分类,采用上文所述方法获取原始图像的非线性最优表示,以消除图像冗余信息的干扰。在获得人脸样本图像的特征值后,运用协同模式识别的方式进行人脸样本的分类。
(1)基于人脸图像对比的身份识别:即人脸识别问题。通过将输入人脸图像于人脸数据库中所有已知原型人脸图像计算相似度并对其排序来给出输入人脸的身份信息。这些包括两类识别问题:一类是闭集,即假定输入的人脸一定是人脸库中得某个个体;另一个是开集识别,即首先要对输入人脸是否在已知人脸库中做出判断,如果是,则给出其身份。
(2)基于人脸图像对比的身份验证:即人脸确认问题。系统在输入人脸图像的同时输入一个用户宣称的该人脸的身份信息,系统要对该输入人脸图像的身份于宣称的身份是否相符作出判断。
1.2实现过程:人脸库的建立
(1)照片预处理
预处理的主要作用有两方面:第一,消除噪音;第二,归一尺度。为了提高识别速度,应该尽量减少入库照片的冗余信息。因此库中的照片中涵盖的信息主要为人脸五官信息,其他与人脸特征提取与比对不相关的信息都视为背景信息,需要剔除 经过尺度归一化处理及灰度均衡化处理,样本照片存储为像素大小112*92的灰度图像
(2)人脸样本分类
通常的人脸识别方法是将人脸库视为一个整体进行训练,得出整个人脸库的特征值,之后再进行人脸识别。把一个常规的人脸库看成是若干个相对较小的人脸库的集合。进行人脸识别时,按照需求查找相应的子库,这样降低了参加训练的样本基数,从而达到了在不降低识别准确性的前提下,降低了人脸识别耗时的效果。
(3)数据库的建立
数据库起到了辅助的作用,是人脸识别算法与人脸库连接的一个桥梁。当识别待测样本时候,首先需要把待测样本进行人脸分类,在确定了该样本属于哪个聚类之后,从数据库中查找与之对应的人脸子库,进而进行人脸识别工作。该数据库中存储了人脸库中的每个照片的数据信息,包括:姓名,照片编号,协同模式分类:存储该样本的物理地址等信息
2.1基于matlab图像处理的基本操作
读取和显示图像可以通过imread()和imshow()来实现;图像的输出用imwrite()函数就可以很方便的把图像输出到硬盘上;另外还可以用imcrp(),imrisize(),imrotate()等来实现图像的裁剪,缩放和旋转。
2.2 图像处理功能的Matlab实现实例
可以通过图像处理工具箱的有关函数对一人脸的彩色图像进行处理
1)图像类型的转换
因后面的图像增强,边缘检测都是针对灰度图像进行的,而我们的原图是RGB图像,所以首先我们要
对原图类型进行转换,实现代码如下:
i=imread(’f:\face1.jpg’);j=rgb2gray(i);
imshow(j);imwrite(j,’f:\face1.tif)
效果图如下:
2)图像增强
(1)灰度图像直方图均衡化,代码如下:
i=imread(’f:\face1.tif’);
j=histeq(i);imshow(j);
figure,subplot(1,2,1),imhist(i);
subplot(1,2,2),imhist(j)
效果入下图:
(1) 灰度图像平滑与锐化处理
采用了预定义高斯滤波器的方法对图像进行锐化滤波。功能实现的代码如下:
i=imread(’f:\face1.tif’);
j=imnoise(i,’gussian’,0,0.02);
subplot(1,2,1),imshow(j);
j1=wiener2(j);subplot(1,2,2),imshow(j1);
h=fspecial(‘gaussian’,2,0.05);j2=imfilter(i,h);figure,subplot(1,2,1),imshow(i) subplot(1,2,2),imshow(j2)
效果图如下:
2)边缘检测
采用canny算子进行边缘检测,代码如下:
i=imread(’f:\face.tif’);
j=edge(i,’canny’,[0.04,0.25],1.5);
imshow(j)
效果如下图:
3.1人脸识别计算机系统
人脸识别是一个复杂的过程,一个计算机人脸识别包括几个步骤:对采集到的图像,首先进行人脸
检测(在输入图像中需找人脸),给出人脸有无的结果;然后进行人脸定位,确定人脸额位置并提取出来。对人脸的定位在输入是图像序列时一般业称之为人脸跟踪。通常检测和定位结合进行。对提取出来的人脸借助人脸描述就可以进行(狭义的)人脸识别,即通过提取特征来确定其身份。下面是运用matlab仿真进行人脸检测定位程序:
%%%%%Reading of a RGB image
i=imread(‘face1.jpg’);
I=rgb2gray(i);
BW=im2bw(I);
figure,imshow(BW)
%%%%%minimisation of background portion
[n1 n2]=size(BW);
r=floor(n1/10);
c=floor(n2/10);
x1=1;x2=r;
s=r*c;
for i=1:10
y1=1;y2=c;
for j=1:10
if(y2=9*c)|(x1==1|x2==r*10)
loc=find(BW(x1:x2,y1:y2)==0);
[o p]=size(loc);
pr=o*100/s;
if pr
BW(x1:x2,y1:y2)=0;
R1=x1;r2=x2;s1=y1;s2=y2;
pr1=0;
end
imshow(BW)
end
y1=y1+c;
y2=y2+c;
end
x1=x1+r;
x2=x2+r;
end
figure,imshow(BW)
%%%%%detection of face object
L=bwlabel(BW,8);
BB= regionprops(L,’BoundingBox’);
BB1=struct2cell(BB);
BB2=cell2mat(BB1);
[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))
mx=p;
j=k;
end
end
figure,imshow(I);
hold on;
rectangle(‘Position’,[BB2(1,j-1),BB2(1,j+1)],’EdgeColor’,’r’)
效果如下图:
4.1结束语
基于matlab的人脸识别,很具有研究和应用价值,并且得到了越来越多的研究机构和公司的
青睐,在国家安全,计算机交互,家庭娱乐等其他很多领域有着举足轻重的作用,对提高办事效率,防止社会犯罪等有着重大的经济和社会意义。因此,通过接触这一比较前沿的技术,了解一些原理算法和系统的设计实现等。比如我了解了很多人脸识别中常用到算法,比如基于二维Gabor小波矩阵表征人脸的识别方法,基于多特征融合和Boosting RBF神经网络的人脸识别方法,以及基于模型匹配人脸识别方法等等算法。
参考文献
[1]祝磊,朱善安.人脸识别的一种新的特征提取方法[J].计算机学报,2007,34(6):122-1251
[2]何东风,凌捷.人脸识别技术综述[J].计算机学报,2003,13(12)75-78
[3]“Younus Fazl-eeBasit Javed 和 Usman Qayyum”,采用直方图的人脸识别和处理,第三阶段仅相关新兴技术研报告。
[4]何国辉,甘俊英.PCA-LDA算法在性别鉴别中得应用[J].中国图像图形学报,2006,32(19):208-211
[5]王聃,贾云伟,林福严.人脸识别系统中得特征提取[J].自动化学报,2005,21(7-3).
[6]张俭鸽,王世卿,盛光磊.基于小波和DFB-PCA的人脸识别算法研究[J].自动化学报,2007,23(2-1).
[7]曹林,王东峰,刘小军,邹谋炎.基于二维Gabor小波的人脸识别算法[J].电子学报,2006,28(3) 490-494
[8]彭辉,张永水,荣钢,边肇祈,基于K-L变换的恋人自动识别方法研究 清华大学学报 1997,67-70
[9]徐倩,邓伟.一种融合两种主成分分析的人脸识别方法[J].计算机学报,2007,43(25):195-197
[10]刘贵喜,杨万海.基于小波分解的图像融合和方法及性能评价[J].
自动化学报,2002,28(6):927-934
[11]周嫔,马少平,苏中.多分类器合成方法综献[J].自动化学报,2000,28(1):122-124