基于matlab的人脸识别技术

上传人:仙*** 文档编号:36386493 上传时间:2021-10-30 格式:DOC 页数:10 大小:1.29MB
收藏 版权申诉 举报 下载
基于matlab的人脸识别技术_第1页
第1页 / 共10页
基于matlab的人脸识别技术_第2页
第2页 / 共10页
基于matlab的人脸识别技术_第3页
第3页 / 共10页
资源描述:

《基于matlab的人脸识别技术》由会员分享,可在线阅读,更多相关《基于matlab的人脸识别技术(10页珍藏版)》请在装配图网上搜索。

1、人脸识别摘要:人脸识别是一门新兴的科研项目,起始于上个世纪60年代。经过几十年的发展,现已成为一项最有上升潜力的人体特征识别技术。具有广泛的应用前景,它的工作原理是借由的生物特征来确认生物个体,利用MATLAB软件实现人脸信息的检测、定位与识别,在输入的整幅图像中寻找人脸区域,把图像分割成两个部分人脸区域和非人脸区域,从而为后续的应用作准备。PCA法实现人脸边缘检测,确定其分布范围,设定门限阀值,实现人脸区域与非人脸区域的分割。再结合长宽比、目标面积等计算方法在图像中分割出人脸区域,经试验该方法能较为精确地定位单人脸图像,对多人脸图像定位不准确。关键词:matlab; 人脸识别; 人脸定位;

2、边缘检测1 引言 人脸识别技术是近年来随着图像处理技术、计算机技术、模式识别技术等的快速进步而出现的一种崭新新生物特征识别技术。相对与指纹、虹膜等其他生物特征识别技术,人脸识别具有直接、友好、方便的特点,尤其是对于个人来说,几乎无任何心理障碍,因此在商业、司法、监控和视频检索等众多领域有着广泛的应用前景。在“9.11”事件以后,各国都投入大量物力,人力研究并发展种类识别技术,使得人脸识别技术受到了前所未有的重视。 如同人的指纹一样,人脸也具有唯一性,也可用来鉴别一个人的身份。人脸图像的自动识别系统较之指纹识别系统、DNA鉴定等更具方便性,然而人脸图像受很多因素的干扰,给识别带来很大难度。国外对

3、于人脸图像识别的研究较早,现己有实用系统面世,只是对于成像条件要求较苛刻,应用范围也就较窄,国内也有许多科研机构从事这方而的研究,并己取得许多成果。2 图像处理的Matlab实现2.1 Matlab简介 由Math Work公司开发的Matlab语言语法限制不严格,程序设计自由度大,程序的可移植性好。Matlab还推出了功能强大的适应于图像分析和处理的工具箱,常用的有图像处理工具箱、小波分析工具箱及数字信号处理工具箱。利用这些工具箱,我们可以很方便的从各个方面对图像的性质进行深入的研究。Matlab图像处理工具箱支持索引图像、RGB图像、灰度图像、二进制图像并能操作.bmp、.jpg、.tif

4、等多种图像格式文件。2.1 数字图像处理及过程 图像是人类获取信息、表达信息和传递信息的重要手段。利用计算机对图像进行去除噪声、增强、复原、分割、提取特征等的理论、方法和技术称为数字图像处理。数字图像处理技术已经成为信息科学、计算机科学、工程科学、地球科学等诸多方面的学者研究图像的有效工具。数字图像处理主要包括图像变换、图像增强、图像编码、图像复原、图像重建、图像识别以及图像理解等内容。 3 matlab人脸识别系统 人脸识别是图像识别的一个重要分支,其基本结构如图所示。为了保证人脸的位置一致性,在一定程度上克服了背景、头发等冗余信息的干扰,首先要对人脸库中的图像进行一些预处理操作。紧接着,进

5、行特征抽取,将得到的人脸特征和训练样本进行对比,根据相似程序的高低决定最后的识别结果。 图像采集预处理特征提取测试 训练 特征匹配 目标图像提取库 识别结果图1-1 人脸识别系统框图3.1 图像的采集3.1.1人脸图像的获取 图像的获取都是通过摄像头摄取,摄取的图像可以是真人也可以是人脸的图片,为了方便计算直接使用需要识别的人脸图像 。3.1.2人脸检测 人脸检测主要任务是判断所给图像是否存在人脸,若存在人脸需要给出人脸的大小(区域面积),坐标位置,是否为二值图像 等信息。3.2人脸图像的预处理 常应用于人脸图像的预处理方法有图像类型转换、滤波去噪、灰度变换、边缘检测及二值化、尺寸归一化、作为

6、通用人脸图像预处理模块要能够充分适应不同人脸库中图像在人脸大小、光照强度、成像系统等方面的任意性和差异性不能单独采用某种单一的滤波、灰度变换和边缘检测方法。灰度归一化等所以在本仿真系统中对上述的每种预处理方法全部加以实现的同时还对三种最常用预处理方法滤波去噪、灰度变换、边缘检测提供了多种不同的具体算法。3.2.1滤波去噪 由于噪声给图像带来的失真和降质在特征提取之前采用滤波的方式来去除噪声是实际人脸识别系统中所必须的步骤。滤波的方法有很多如各种平滑滤波、各种锐化滤波等。在人脸图像预处理中使用较多的滤波是平滑滤波方法可分为以下三类线性滤波、中值滤波、自适应滤波。 (1)线性滤波最典型的线性滤波方

7、法如采用邻域平均法的均值滤波器、采用邻域加权平均的高斯滤波和维纳滤波。线性滤波可以去除图像中某些特定类型的噪声如图像中的颗粒噪声高斯噪声、椒盐噪声等。对扫描得到的人脸图像根据其噪声类型一般采用此种滤波方法。考虑滤波模板大小对滤波效果影响较大仿真系统选择算法时对同种滤波算法提供了不同模板大小的情况。 (2)中值滤波法中值滤波法是一种非线性滤波方法它把像素及其邻域中的像素按灰度级进行排序然后选择该组的中间值作为输出像素值。中值滤波方法的最大优点是抑制噪声效果明显且能保护边界。对于使用基于整体的人脸识别算法的系统中由于失掉小区域的细节对特征提取影响较小所以这种滤波方法最受欢迎。 (3)自适应滤波自适

8、应滤波能够根据图像的局部方差来调整滤波器的输出其滤波效果要优于线性滤波同时可以更好地保存图像的边缘和高频细节信息。3.2.1灰度变换 灰度变换是图像增强技术中的一种。通过灰度变换可对原始图 像中的光照不均进行补偿使得待识别人脸图像遵循同一或相似的灰度分布。只有这样不同图像在特征提取和识别时才具有可比性。这一过程也被称作灰度归一化。常用在人脸识别系统中的灰度变换方法主要有基于图像统计特征的直方图均衡化、直方图规定化和灰度均值方差标准化三种方法。直方图均衡化和直方图规定化的灰度变换原理和实现方法可由matlab仿真来实现。三种灰度变换方法均能在一定程度上消除由于光照条件不同而对人脸识别带来的影响。

9、故在仿真系统中提供了三种灰度变换效果比较及选择界面用户可根据需要选用。 3.2.3 边缘检测对输入人脸图像进行边缘检测是很多人脸识别系统在人脸粗定位及人脸主要器官眼睛、鼻子、嘴巴定位时采用的预处理方法。边缘检测的方法有很多主要有微分算子法、Sobel算子法、拉普拉斯算子法、canny算子法等。每种算子对不同方向边缘的检测能力和抑制噪声的能力都不同。所以和灰度变换及滤波去噪部分的设计思路相同在仿真系统中给出了canny、sobel、log、prewitt四种算子在不同灰度阈值下、不同方向的边缘检测算法使用者可从检测结果中加以比较、选择合适的算法。图像类型转换、图像二值化、尺寸归一化也是一些人脸识

10、别系统中经常使用的预处理方法。为了在不修改其他算法的基础上扩大系统处理图像的类型和范围将输入图像首先转换为统一的类型是多数人脸图像预处理中的第一步。仿真系统中通过调用MATLAB中提供的各种图像类型转换函数来实现TIF、JPG转换为BMP格式及彩色到灰度图像的转换对图像二值化采用了graythresh()函数来自动选择阈值的二值化方法尺寸归一化采用的算法是对人脸图像进行剪裁和尺寸缩放实现去除大部分头发、服饰和背景的干扰并将人脸图像大小统一。 3.3 特征提取 通过人脸特征点的检测与标定可以确定人脸图像中显著特征点的位置如眼睛、眉毛、鼻子、嘴巴等器官,同时还可以得到这些器官及其面部轮廓的形状信息

11、的描述。根据人脸特征点检测与标定的结果,通过某些运算得到人脸特征的描述。3.3.1 人脸识别的算法 通过判别图像中所有可能区域是否属于“人脸模式”的方法来实现人脸检测。这类方法有:特征脸法、人工神经网络法、支持向量机法;积分图像法。 本次使用的是PCA(主成分分析法)其原理是:利用K-L变换抽取人脸的主要成分,构成特征脸空间,识别时将测试图像投影到此空间,得到一组投影系数,通过与各个人脸图像比较进行识别。对于一幅M*N的人脸图像,将其每列相连构成一个大小为D=M*N维的列向量。D就是人脸图像的维数,即是图像空间的维数。设n是训练样本的数目;Xj表示第j幅人脸图像形成的人脸向量,则所需样本的协方

12、差矩阵为: (1)其中U为训练样本的平均图像向量: (2) 令A=x1-u,x2-u,.xn-u,则有Sr=AAT,其维数为DD。根据K-L变换原理,需要求得的新坐标系由矩阵AAT的非零特征值所对应的特征向量组成。直接计算的计算量比较大,所以采用奇异值分解(SVD)定理,通过求解ATA的特征值和特征向量来获得AAT的特征值和特征向量。依据SVD定理,令li(i=1,2,r)为矩阵ATA的r个非零特征值,vi为ATA对应于li的特征向量,则AAT的正交归一特征向量Ui为: (3)则“特征脸”空间为:w=(U1,U2,.,Un) 将训练样本投影到“特征脸”空间,得到一组投影向量=wTu,构成人脸识

13、别的数据库。在识别时,先将每一幅待识别的人脸图像投影到“特征脸”空间,再利用最邻近分类器比较其与库中人脸的位置,从而识别出该图像是否是库中的人脸,如果是,是哪一幅人脸。以下为运行结果图: 图 1-2人脸定位图 图1-3人脸检测 不过该算法具有局限性,对于多张人脸基本上就不能准确定位如下图: 图1-4失败的人脸定位图4结论 特征脸算法(PCA)使得压缩前后的均方误差最小,且变换后的低维空间有很好的分辨能力,但是在种方法在处理人脸图像时,要将二维图像矩阵转换成一维的列向量,使图像的维数达到上万维,计算工作量非常大,特征提取速度慢。 为了克服传统PCA的不足,研究者们相继提出了二维PCA(2DPCA

14、)方法、PCA+2DPCA等一些方法。这些方法的提出不仅有效地解决了图像处理的高维问题,而且大大提高了人脸的识别率。参考文献1 祝磊,朱善安.人脸识别的一种新的特征提取方法J.计算机学报,2007,34(6):122-12512 何东风,凌捷.人脸识别技术综述J.计算机学报,2003,13(12):75-78 3 何国辉,甘俊英.PCA-LDA算法在性别鉴别中的应用J.中国图像图形学2006,32(19):208-211.4 孙艳丰,梁永涛,苏世前.等.基于肤色模型和重心模板的人脸检测J.北京工业大学报,2006,5:467- 472. 5 王伟,张佑生,等. 人脸检测与识别技术综述J.合肥工

15、业大学学报,2006,(2).6 王金庭,杨敏.人脸检测技术研究J.计算机系统应用,2006(4):31-33.7 樊振萍,人脸检测与识别技术综述J.电脑知识与技,,2008,07(5):1292-1295 附件:程序Img = imread(D:1.jpg);if ndims(Img) = 3I=rgb2gray(Img);elseI = Img;endBW = im2bw(I, graythresh(I); % 二值化figure;imshow(Img) title(原图像);hold on;xt, yt = meshgrid(round(linspace(1, size(I, 1), 1

16、0), .round(linspace(1, size(I, 2), 10);mesh(yt, xt, zeros(size(xt), FaceColor, .None, LineWidth, 3, .EdgeColor, r);imshow(BW)title(二值图像);n1, n2 = size(BW);r = floor(n1/10); % 分成10块,行c = floor(n2/10); % 分成10块,列x1 = 1; x2 = r; % 对应行初始化s = r*c; % 块面积for i = 1:10y1 = 1; y2 = c; % 对应列初始化for j = 1:10if (y

17、2=9*c) | (x1=1 | x2=r*10)% 如果是在四周区域loc = find(BW(x1:x2, y1:y2)=0);p, q = size(loc);pr = p/s*100; % 黑色像素所占的比例数if pr mx & (Bd(k, 3)/Bd(k, 4)1.8% 如果满足面积块大,而且宽/高1 )%特征值大于1时 L_eig_vec = L_eig_vec V(:,i);%集中对应的特征向量 endendEigenfaces = A * L_eig_vec; % 计算机协方差矩阵C的特征向量,得到降维了的特征,A为每一张图像与均值图像的方差构成的矩阵Recognition

18、.mfunction OutputName = Recognition(TestImage, m, A, Eigenfaces)ProjectedImages = ;%映射图像Train_Number = size(Eigenfaces,2);%列,降维后,for i = 1 : Train_Number%对于每一个训练特征 temp = Eigenfaces*A(:,i); ProjectedImages = ProjectedImages temp; %得到 L_eig_vec;endInputImage = imread(TestImage);%读入测试图片temp = rgb2gray

19、(InputImage);%取其中的一维来处理irow icol = size(temp);%测试图片大小InImage = reshape(temp,irow*icol,1);%转置后转为一维Difference = double(InImage)-m; % L_eig_vecProjectedTestImage = Eigenfaces*Difference; % 测试图像的特征向量Euc_dist = ;for i = 1 : Train_Number%对每列 q = ProjectedImages(:,i);%取出训练图像 temp = ( norm( ProjectedTestIma

20、ge - q ) )2;%欧氏距离 Euc_dist = Euc_dist temp;%endEuc_dist_min , Recognized_index = min(Euc_dist);%得到差值最小的图像的索引号OutputName = strcat(int2str(Recognized_index),.jpg);%得到文件名Example.m% A sample script, which shows the usage of functions, included in% PCA-based face recognition system (Eigenface method)% Se

21、e also: CREATEDATABASE, EIGENFACECORE, RECOGNITIONclear allclcclose all% You can customize and fix initial directory pathsTrainDatabasePath = uigetdir(D:人脸库PCA_based Face Recognition System,. Select training database path );TestDatabasePath = uigetdir(D:人脸库PCA_based Face Recognition System,. Select

22、test database path);prompt = Enter test image name (a number between 1 to 10):;dlg_title = Input of PCA-Based Face Recognition System;num_lines= 1;def = 1;TestImage = inputdlg(prompt,dlg_title,num_lines,def);TestImage = strcat(TestDatabasePath,char(TestImage),.jpg);im = imread(TestImage);T = CreateD

23、atabase(TrainDatabasePath);m, A, Eigenfaces = EigenfaceCore(T);OutputName = Recognition(TestImage, m, A, Eigenfaces);SelectedImage = strcat(TrainDatabasePath,OutputName);SelectedImage = imread(SelectedImage);imshow(im)title(测试图像);figure,imshow(SelectedImage);title(识别图像);str = strcat(Matched image is : ,OutputName);disp(str)

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!