毕业设计人脸识别算法研究与实现附完整源码.docx

上传人:b****4 文档编号:11968126 上传时间:2023-04-16 格式:DOCX 页数:34 大小:960.51KB
下载 相关 举报
毕业设计人脸识别算法研究与实现附完整源码.docx_第1页
第1页 / 共34页
毕业设计人脸识别算法研究与实现附完整源码.docx_第2页
第2页 / 共34页
毕业设计人脸识别算法研究与实现附完整源码.docx_第3页
第3页 / 共34页
毕业设计人脸识别算法研究与实现附完整源码.docx_第4页
第4页 / 共34页
毕业设计人脸识别算法研究与实现附完整源码.docx_第5页
第5页 / 共34页
点击查看更多>>
下载资源
资源描述

毕业设计人脸识别算法研究与实现附完整源码.docx

《毕业设计人脸识别算法研究与实现附完整源码.docx》由会员分享,可在线阅读,更多相关《毕业设计人脸识别算法研究与实现附完整源码.docx(34页珍藏版)》请在冰豆网上搜索。

毕业设计人脸识别算法研究与实现附完整源码.docx

毕业设计人脸识别算法研究与实现附完整源码

河北农业大学信息学院

本科毕业论文

 

 

 

题目:

人脸识别算法研究与实现

学 院:

  信息科学与技术学院    

专业:

 电子信息科学与技术

学生姓名:

       

学 号:

       

指导教师:

        

  职称:

  副教授    

 

提交日期:

2013年6月1日

答辩日期:

2013年 6月4日

中国∙ 河北2013年 5月

摘要

人脸识别技术,作为目前模式识别领域研究的热点也是难点之一,其最早提出可以追溯到1888年”。

然而,到目前为止,由于人脸识别问题自身的复杂性,使得虽然有众多科学研究人员潜心研究多年,也做出了许多的成果,但离彻底解决并达到实用,仍旧有很多关键性的问题需要解决。

本文对人脸识别做了一定的研究。

论文首先介绍了人脸识别的背景、研究范围以及方法,对人脸识别领域的一些理论方法作了总体的介绍。

本文中所采用的人脸识别方法是比较经典的PCA(PrincipleComponent Analysis)主成分分析。

主要包括:

结合人脸库对人脸识别的预处理方法作了较为详细的介绍;介绍了PCA人脸识别的方法;实现了一个基于PCA的实时人脸检测识别原型系统。

关键字:

MATLAB、图形用户界面GUI、人脸识别、PCA

ABSTRACT

  Facerecognitiontechnology,asoneofthehotspotinresearchofpatternrecognitionisalsodifficult,itsfirstsuggesteddatesbackto1888. "sofar, however,becauseofthe complexityofthefacerecognitionproblem itself,that althoughtherearemanyscientificresearchersstudyingfor many years, hasmademanyachievements,but fromtheresolveandachievepractical,therearestill manykeyproblems needtosolve.

  Inthispaper,thefacerecognitionto dosomeresearch.Paper firstintroducesthe background offace recognition,research scopeand method,to sometheoreticalmethodsinthefieldof facerecognitionhasmadetheoverallintroduction.Facerecognitionmethodsusedinthis article istheclassicalPCA (PrincipleComponentAnalysis), principalComponentAnalysis.Mainlyincludes:

combiningfacelibrarypretreatmentmethodoffacerecognitionhas madethedetailed introduction;This paperintroducesthe methods ofPCAfacerecognition;Implementsareal-timefacedetectionprototypesystembased onPCA.

 keywords:

 MATLAB,graphicaluserinterfaceGUI, facerecognition,PCA

 

1.1 概述2

1.1.1介绍2

1.2 课题研究的背景和意义ﻩ3

1.2.1研究的背景ﻩ3

1.2.2研究的意义ﻩ3

1.2.2.1重要的学术价值3

1.2.2.2很好的应用前景3

1.3入脸识别研究的现状与困难4

1.3.1研究的现状4

1.3.2存在的主要困难ﻩ4

1.4 论文的内容及安排5

第二章人脸识别实现所使用的工具5

2.1Matlab简介ﻩ5

2.2图形用户界面GUIﻩ7

2.2.1图形用户界面GUI简介7

2.2.2图形用户界面 GUI实例ﻩ9

第三章人脸识别PCA算法及其功能实现ﻩ13

3.1.1 主成分的一般定义ﻩ13

3.1.2主成分的性质13

3.1.3主成分数目的选取ﻩ14

3.2PCA算法功能实现14

3.2.1人脸空间的建立ﻩ14

3.2.3人脸识别15

第四章人脸识别算法测试ﻩ15

第五章 个人总结18

致谢18

参考文献19

附录--matlab 源码ﻩ20

第一章 绪论

1.1概述

1.1.1 介绍

随着社会的发展以及技术的进步,尤其是近年内计算机的软硬件性能的飞速提升,各方面对快速高效的自动身份验证的要求日益迫切。

生物识别技术在科研领域取得了极大的重视和发展。

由于生物特征是人的内在属性,具有很强的自身稳定性和个体差异性,因此是身份验证的最理想依据“1。

其中,利用人脸特征进行身份验证又是最自然直接的手段,与指纹、虹膜、掌纹等其他人体生物特征识别系统相比,人脸识别系统更加友好,方便,易于为用户所接受,有广阔的应用领域。

例如:

如:

公安布控监控、监狱监控、司法认证、民航安检、口岸出入控制、海关身份验证、银行密押、智能身份证、智能门禁、智能视频监控、智能出入控制、司机驾照验证、各类银行卡、金融卡、信用卡、储蓄卡持卡人的身份验证,社会保险身份验证等多个方面,还可以应用到医疗和视频会议等方面,表现出其强大的生命力。

所谓人脸识别。

‘43(FaceRecognition)就是利用计算机分析人脸图象,从中提取有效的识别信息,用来辨别身份的一门技术。

即对已知人脸进行标准化处理后,通过某种方法和数据库中的人脸标本进行匹配,寻找库中对应人脸及该人脸相关信息。

  由于生物特征是人的内在属性,具有很强的自身稳定性和个体差异性,因此是身份验证的最理想依据“1。

其中,利用人脸特征进行身份验证又是最自然直接的手段,与指纹、虹膜、掌纹等其他人体生物特征识别系统相比,人脸识别系统更加友好,方便,易于为用户所接受,有广阔的应用领域。

1。

例如:

如:

公安布控监控、监狱监控、司法认证、民航安检、口岸出入控制、海关身份验证、银行密押、智能身份证、智能门禁、智能视频监控、智能出入控制、司机驾照验证、各类银行卡、金融卡、信用卡、储蓄卡持卡人的身份验证,社会保险身份验证等多个方面,还可以应用到医疗和视频会议等方面,表现出其强大的生命力。

从20世纪六十年代末到现在,人脸识别的发展经历了正面人脸识别,基于多姿态和表情的人脸识别,动态跟踪人脸识别和三维人脸识别四个阶段“1。

文献。

·”是对近十年来人脸识别取得的成果进行了总结。

现在,全世界从事人脸识别研究的科研机构很多”1,国外的大学一般都有computerVision研究组,并有从事人脸图象处理课题的研究小组。

其中著名的大学包括MIT,CMU等。

国内的清华大学、浙江大学、哈尔滨工业大学和中国科学院的一些研究机构等都从事这方面的研究。

同时也出现了一批供人脸识别相关产品的公司。

有些国外公司开发的一些人脸识别的产品已经被安全机构使用。

1.2 课题研究的背景和意义

1.2.1研究的背景

自70年代以来.随着人工智能技术的兴起.以及人类视觉研究的进展.人们逐渐对人脸图像的机器识别投入很大的热情,并形成了一个人脸图像识别研究领域,.这一领域除了它的重大理论价值外,也极具实用价值。

在进行人工智能的研究中,人们一直想做的事情就是让机器具有像人类一样的思考能力,以及识别事物、处理事物的能力,因此从解剖学、心理学、行为感知学等各个角度来探求人类的思维机制、以及感知事物、处理事物的机制,并努力将这些机制用于实践,如各种智能机器人的研制。

人脸图像的机器识别研究就是在这种背景下兴起的,因为人们发现许多对于人类而言可以轻易做到的事情,而让机器来实现却很难,如人脸图像的识别,语音识别,自然语言理解等。

如果能够开发出具有像人类一样的机器识别机制,就能够逐步地了解人类是如何存储信息,并进行处理的,从而最终了解人类的思维机制。

同时,进行人脸图像识别研究也具有很大的使用价依。

如同人的指纹一样,人脸也具有唯一性,也可用来鉴别一个人的身份。

现在己有实用的计算机自动指纹识别系统面世,并在安检等部门得到应用,但还没有通用成熟的人脸自动识别系统出现。

人脸图像的自动识别系统较之指纹识别系统、DNA鉴定等更具方便性,因为它取样方便,可以不接触目标就进行识别,从而开发研究的实际意义更大。

并且与指纹图像不同的是,人脸图像受很多因素的干扰:

人脸表情的多样性;以及外在的成像过程中的光照,图像尺寸,旋转,姿势变化等。

使得同一个人,在不同的环境下拍摄所得到的人脸图像不同,有时更会有很大的差别,给识别带来很大难度。

因此在各种干扰条件下实现人脸图像的识别,也就更具有挑战性。

国外对于人脸图像识别的研究较早,现己有实用系统面世,只是对于成像条件要求较苛刻,应用范围也就较窄,国内也有许多科研机构从事这方而的研究,并己取得许多成果。

1.2.2研究的意义

1.2.2.1重要的学术价值

目前人脸识别的研究工作牵涉到模式识别、图像处理、计算机视觉、生理学、心理学、以及认知科学和神经网络等多个领域的诸多知识,并与基于其它生物特征的身份鉴别方法以及计算机人机感知交互领域都有密切联系。

因此人脸识别研究对于开拓新兴技术领域,促进跨领域的多学科综合发展具有重要的科学意义。

1.2.2.2 很好的应用前景

人脸识别已成为计算机视觉及相关领域中的关键技术,在身份验证,刑侦破案,入口控制,视频监视,机器人智能化和医学等方面具有广阔的应用前景和商业价值。

近年来,人脸识别技术研究非常活跃,除了基于KL变换的特征脸方法与以奇异值特征为代表的代数特征方法取得了新进展外,人工神经网络、小波交换技术在人脸识别研究中都得到了很广泛的应用。

而且出现了不少人脸识别的新方法。

下面将介绍人脸识别研究的主要内容和方法。

1.3入脸识别研究的现状与困难

1.3.1研究的现状

目前,国内、外的人脸识别的方法多种多样,并且不断有新的研究成果出现。

但是,由于人脸识别问题巨大的复杂性,要建立一个能够完全自动完成人脸识别任务的计算机系统难度是相当大的,这不仅涉及到数字图像处理,而且还涉及到计算机视觉,人工智能和计算机网络及通讯等的多个学科领域的广泛知识。

解决特定环境下或某种应用背景下的人脸识别问题,仍将是该领域研究的主要课题。

1.3.2存在的主要困难

尽管已经取得了很多的研究成果,但以下几个问题一直会是今后研究工作的主要难点“’2“”所在,将极大影响人脸识别走向实用化。

1、人脸本身的特点

 一方面是由于人脸姿态的多样性,在自然条件下获得的人脸图象并不总是正面的,人脸的偏转或俯仰会造成面部信息的部分缺失,给精确提取人脸的特征造成一定程度的困难;另一方面是人脸是一个柔性体而不是刚体,并且人脸表情丰富且表情的变化细微而复杂。

因此,建立人脸表情模型和情绪分类,把人脸表情描述同面部特征的变

化联系起来,利用计算机进行抽象的概括也是一个重要的问题。

2、环境的影响

  由于受到旋转、距离、尺度,光照,光源方向等不确定因素影响,人脸获取系统取得的人脸图像将表现出非常复杂的模式。

光照变化的环境下,每个像素的亮度值还依赖于环境中的各种因素:

光源的位置、颜色和亮度,周围物体的影响。

目前许多识别方法对光照条件有着不同程度的依赖,过亮、过暗或偏光现象的存在都可能导致识别的急剧下降。

因此,对人脸图象进行特征提取和分类之前一般要作预处理。

3、计算机本身的限制

 三维人脸投影在二维的图像上,虽然有信息的损失,但仍是一种复杂的具有非常高维数的视觉信息,包含了大量的像素数据,并且每一像素都携带了大量的信息。

如何利用计算机正确处理巨大的信息量,同时,保证人脸识别系统的实时性要求也是计算机研究的主要难点之一。

1.4论文的内容及安排

第一章即本章主要介绍人脸识别的前景和发展方向以及在现实生活中的应用,同时也讲解了在实际研究中仍存在的一些问题。

主要介绍人脸识别系统中所用到的仿真软件Matlab、Matlab图像处理工具GUI、PCA算法。

分别介绍了各自的简介和一些典型的算法实例介绍。

第三章着重介绍了PCA算法在人脸识别上的应用和功能实现。

PCA算法应用中主成分的一般定义、主成分的性质、主成分数目的选取,以及PCA算法功能实现步骤:

人脸空间的建立、特征向量的选取和人脸识别。

第四章是将已经编写好的程序代码在PC机上运行,选择测试图片与人脸库进行识别,最终计算准确率以进一步改进算法。

最后总结了全文的工作并对以后的需要进一步研究的问题进行了展望。

第五章是对整个人脸识别研究的总结以及今后的研究方向。

第二章人脸识别实现所使用的工具

2.1Matlab简介

MATLAB是由美国mathworks公司发布的主要面对科学计算、可视化以及交互式程序设计的高科技计算环境。

它将数值分析、矩阵计算、科学数据可视化以及非线性动态系统的建模和仿真等诸多强大功能集成在一个易于使用的视窗环境中,为科学研究、工程设计以及必须进行有效数值计算的众多科学领域提供了一种全面的解决方案,并在很大程度上摆脱了传统非交互式程序设计语言(如C、Fortran)的编辑模式,代表了当今国际科学计算软件的先进水平。

MATLAB的优势:

1) 高效的数值计算及符号计算功能,能使用户从繁杂的数学运算分析中解脱出来;

2)具有完备的图形处理功能,实现计算结果和编程的可视化;

3)友好的用户界面及接近数学表达式的自然化语言,使学者易于学习和掌握;

4) 功能丰富的应用工具箱(如信号处理工具箱、通信工具箱等) ,为用户提供了大量方便实用的处理工具。

编程环境:

MATLAB由一系列工具组成。

这些工具方便用户使用MATLAB的函数和文件,其中许多工具采用的是图形用户界面。

包括MATLAB桌面和命令窗口、历史命令窗口、编辑器和调试器、路径搜索和用于用户浏览帮助、工作空间、文件的浏览器。

随着MATLAB的商业化以及软件本身的不断升级,MATLAB的用户界面也越来越精致,更加接近Windows的标准界面,人机交互性更强,操作更简单。

而且新版本的MATLAB提供了完整的联机查询、帮助系统,极大的方便了用户的使用。

简单的编程环境提供了比较完备的调试系统,程序不必经过编译就可以直接运行,而且能够及时地报告出现的错误及进行出错原因分析。

简单易用:

Matlab是一个高级的矩阵/阵列语言,它包含控制语句、函数、数据结构、输入和输出和面向对象编程特点。

用户可以在命令窗口中将输入语句与执行命令同步,也可以先编写好一个较大的复杂的应用程序(M文件)后再一起运行。

新版本的MATLAB语言是基于最为流行的C++语言基础上的,因此语法特征与C++语言极为相似,而且更加简单,更加符合科技人员对数学表达式的书写格式。

使之更利于非计算机专业的科技人员使用。

而且这种语言可移植性好、可拓展性极强,这也是MATLAB能够深入到科学研究及工程计算各个领域的重要原因。

强处理能力:

MATLAB是一个包含大量计算算法的集合。

其拥有600多个工程中要用到的数学运算函数,可以方便的实现用户所需的各种计算功能。

函数中所使用的算法都是科研和工程计算中的最新研究成果,而前经过了各种优化和容错处理。

在通常情况下,可以用它来代替底层编程语言,如C和C++ 。

在计算要求相同的情况下,使用MATLAB的编程工作量会大大减少。

MATLAB的这些函数集包括从最简单最基本的函数到诸如矩阵,特征向量、快速傅立叶变换的复杂函数。

函数所能解决的问题其大致包括矩阵运算和线性方程组的求解、微分方程及偏微分方程的组的求解、符号运算、傅立叶变换和数据的统计分析、工程中的优化问题、稀疏矩阵运算、复数的各种运算、三角函数和其他初等数学运算、多维数组操作以及建模动态仿真等。

图形处理:

MATLAB自产生之日起就具有方便的数据可视化功能,以将向量和矩阵用图形表现出来,并且可以对图形进行标注和打印。

高层次的作图包括二维和三维的可视化、图象处理、动画和表达式作图。

可用于科学计算和工程绘图。

新版本的MATLAB对整个图形处理功能作了很大的改进和完善,使它不仅在一般数据可视化软件都具有的功能(例如二维曲线和三维曲面的绘制和处理等)方面更加完善,而且对于一些其他软件所没有的功能(例如图形的光照处理、色度处理以及四维数据的表现等),MATLAB同样表现了出色的处理能力。

同时对一些特殊的可视化要求,例如图形对话等,MATLAB也有相应的功能函数,保证了用户不同层次的要求。

另外新版本的MATLAB还着重在图形用户界面(GUI)的制作上作了很大的改善,对这方面有特殊要求的用户也可以得到满足。

MATLAB对许多专门的领域都开发了功能强大的模块集和工具箱。

一般来说,它们都是由特定领域的专家开发的,用户可以直接使用工具箱学习、应用和评估不同的方法而不需要自己编写代码。

目前,MATLAB已经把工具箱延伸到了科学研究和工程应用的诸多领域,诸如数据采集、数据库接口、概率统计、样条拟合、优化算法、偏微分方程求解、神经网络、小波分析、信号处理、图像处理、系统辨识、控制系统设计、LMI控制、鲁棒控制、模型预测、模糊逻辑、金融分析、地图工具、非线性控制设计、实时快速原型及半物理仿真、嵌入式系统开发、定点仿真、DSP与通讯、电力系统仿真等,都在工具箱(Toolbox)家族中有了自己的一席之地。

2.2图形用户界面GUI

2.2.1图形用户界面GUI简介

图形用户界面(Graphical UserInterface,简称GUI,又称图形用户接口)是指采用图形方式显示的计算机操作用户界面。

与早期计算机使用的命令行界面相比,图形界面对于用户来说在视觉上更易于接受。

如Windows是以“wintel标准”方式操作的,因为你可以用鼠标来点击按钮来进行操作,很直观。

而DOS就不具备GUI,所以他只能输入命令。

DOS 的这种界面叫CLI(CommandlineUserInterface)命令行模式的人机接口。

GUI是GraphicalUserInterface的简称,即图形用户界面,通常人机交互图形化用户界面设计经常读做“goo-ee”准确来说GUI就是屏幕产品的视觉体验和互动操作部分。

GUI是一种结合计算机科学、美学、心理学、行为学,及各商业领域需求分析的人机系统工程,强调人—机—环境三者作为一个系统进行总体设计。

这种面向客户的系统工程设计其目的是优化产品的性能,使操作更人性化,减轻使用者的认知负担,使其更适合用户的操作需求,直接提升产品的市场竞争力。

GUI即人机交互图形化用户界面设计。

纵观国际相关产业在图形化用户界面设计方面的发展现状,许多国际知名公司早已意识到 GUI在产品方面产生的强大增值功能,以及带动的巨大市场价值,因此在公司内部设立了相关部门专门从事GUI的研究与设计,同业间也成立了若干机构,以互相交流GUI设计理论与经验为目的。

随着中国IT 产业,移动通讯产业,家电产业的迅猛发展,在产品的人机交互界面设计水平发展上日显滞后,这对于提高产业综合素质,提升与国际同等业者的竞争能力等等方面无疑起了制约的作用。

GUI的广泛应用是当今计算机发展的重大成就之一,他极大地方便了非专业用户的使用。

人们从此不再需要死记硬背大量的命令,取而代之的是可以通过窗口、菜单、按键等方式来方便地进行操作。

而嵌入式GUI具有下面几个方面的基本要求:

轻型、占用资源少、高性能、高可靠性、便于移植、可配置等特点。

GUI组成部分:

在启动时显示,也是界面中最底层,有时也指代包括窗口、文件浏览器在内的“桌面环境”。

在桌面上由于可以重叠显示窗口,因此可以实现多任务化。

一般的界面中,桌面上放有各种应用程序和数据的图标,用户可以以此开始工作。

桌面与既存的文件夹构成里面相违背,所以要以特殊位置的文件夹的参照形式来定义内容。

比如在微软公司的WindowsXP系统中,各种用户的桌面内容实际保存在系统盘(默认为C盘):

\Documentsand Settings\[用户名]\桌面文件夹里。

墙纸,即桌面背景。

可以设置为各种图片和各种附件,成为视觉美观的重要因素之一。

应用程序为使用数据而在图形用户界面中设置的基本单元。

应用程序和数据在窗口内实现一体化。

在窗口中,用户可以在窗口中操作应用程序,进行数据的管理、生成和编辑。

通常在窗口四周设有菜单、图标,数据放在中央。

在窗口中,根据各种数据/应用程序的内容设有标题栏,一般放在窗口的最上方,并在其中设有最大化、最小化(隐藏窗口,并非消除数据)、最前面、缩进(仅显示标题栏)等动作按钮,可以简单地对窗口进行操作。

在窗口中,一个数据在一个窗口内完成的方式。

在这种情况下,数据和显示窗口的数量是一样的。

若要在其他应用程序的窗口使用数据,将相应生成新的窗口。

因此窗口数量多,管理复杂。

在一个窗口之内进行多个数据管理的方式。

这种情况下,窗口的管理简单化,但是操作变为双重管理。

将系统可以执行的命令以阶层的方式显示出来的一个界面。

一般置于画面的最上方或者最下方,应用程序能使用的所有命令几乎全部都能放入。

重要程度一般是从左到右,越往右重要度越低。

命定的层次根据应用程序的不同而不同,一般重视文件的操作、编辑功能,因此放在最左边,然后往右有各种设置等操作,最右边往往设有帮助。

一般使用鼠标的第一按钮进行操作。

即时菜单(又称功能表)

与应用程序准备好的层次菜单不同,在菜单栏以外的地方,通过鼠标的第二按钮调出的菜单称为“弹出菜单”。

根据调出位置的不同,菜单内容即时变化,列出所指示的对象可以进行的操作。

 显示在管理数据的应用程序中的数据,或者显示应用程序本身。

数据管理程序,即在文件夹中用户数据的管理、进行特定数据管理的程序的情况下,数据通过图标显示出来。

通常情况下显示的是数据的内容或者与数据相关联的应用程序的图案。

另外,点击数据的图标,一般可以之间完成启动相关应用程序以后再显示数据本身这两个步骤的工作。

应用程序的图标只能用于启动应用程序。

  菜单中,利用程度高的命令用图形表示出来,配置在应用程序中,成为按钮。

应用程序中的按钮,通常可以代替菜单。

一些使用程度高的命令,不必通过菜单一层层翻动才能调出,极大提高了工作效率。

但是,各种用户使用的命令频率是不一样的,因此这种配置一般都是可以由用户自定义编辑。

2.2.2 图形用户界面 GUI实例

这里先简单实现选择图片并在坐标系上显示图片的功能。

1、新建图形用户界面模板。

在菜单栏依次选择FILE---NEW---GUI---BlankGui.选择PushButton 和Axes

两个控件。

如下图

图2-1 用户图形界面实例图

保存文件为test.fig,同时系统自动产生一个同名的test.m文件。

在test.m文件的PushButton的回调函数中加入如下的代码:

function pushbutton1_Callback(hObject,eventdata,handles)

%hObject

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

当前位置:首页 > 求职职场 > 自我管理与提升

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

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