超详细基于MATLAB的⼈脸考勤识别系统
基于MATLAB的⼈脸考勤识别系统
摘要
⼈脸识别是模式识别和图像处理等学科的⼀个研究热点,它⼴泛应⽤在⾝份验证、刑侦破案、视频监视、机器⼈智能化和医学等领域,具有⼴阔的应⽤价值和商⽤价值。⼈脸特征作为⼀种⽣物特征,与其他⽣物特征相⽐,具有有好、直接、⽅便等特点,因
此使⽤⼈脸特征进⾏⾝份识别更易于被⽤户所接受。
⼈脸识别技术在过去的⼏⼗年得到了很⼤的发展,但由于⼈脸的⾮刚性、表情多变等因素,使得⼈脸识别技术在实际应⽤中⾯临着巨⼤的困难。本⽂针对近年来国内外相关学术论⽂及研究报告进⾏学习和分析的基础上,利⽤图像处理的matlab实现⼈脸识别⽅法,这种实现简单且识别准确率⾼,但其缺点是计算量⼤,当要识别较多⼈员时,该⽅法难以胜任。
利⽤MATLAB实现了⼀个集多种预处理⽅法于⼀体的通⽤的⼈脸图像预处理仿真系
统,将该系统作为图像预处理模块可嵌⼊在⼈脸识别系统中,并利⽤灰度图像的直⽅图⽐对来实现⼈脸图像的识别判定。
参考源码:
第1章绪论
本章提出了本⽂的研究背景及应⽤前景。⾸先阐述了⼈脸图像识别意义;然后介绍了⼈脸图像识别研究中存在的问题;接着介绍了⾃动⼈脸识别系统的⼀般框架构成;最后简要地介绍了本⽂的主要⼯作和章节结构。
1.1 研究背景
⼈脸识别是⼈类视觉最杰出的能⼒之⼀。它的研究涉及模式识别、图像处理、⽣物学、⼼理学、认知科学,与基于其它⽣物特征的⾝份鉴别⽅法以及计算机⼈机感知交互领域都有密切联系。⼈脸识别早在六七⼗年代就引起了研究者的强烈兴趣。20世纪60年代,Bledsoe提出了⼈脸识别的半⾃动系统模式与特征提取⽅法。70年代,美、英等发达国家开始重视⼈脸识别的研究⼯作并取得进展。1972年,Harmon⽤交互⼈脸识别⽅法在理论上与实践上进⾏了详细的论述。同年,Sakai设计了⼈脸图像⾃动识别系统。80年代初T. Minami研究出了优于Sakai的⼈脸图像⾃动识别系统。但早期的⼈脸识别⼀般都需要⼈的某些先验知识,⽆法摆脱⼈的⼲预。进⼊九⼗年代,由于各⽅⾯对⼈脸识别系统的迫切需求,⼈脸识别的研究变的⾮常热门。
⼈脸识别的⽅法有了重⼤突破,进⼊了真正的机器⾃动识别阶段,如Karhunen-Loève变换等或新的神经⽹络技术。⼈脸识别研究得到了前所未⼈脸识别⽅法的分析与研究 有的重视,国际上发表有关⼈脸识别等⽅⾯的论⽂数量⼤幅度增加,仅从1990年到2000年之间,SCI及EI可检索到的相关⽂献多达数千篇,这期间关于⼈脸识别的综述也屡屡可见。国外有许多学校在研究⼈脸识别技术,研究涉及的领域很⼴。这些研究受到军⽅、警⽅及⼤公司的⾼度重视和资助,国内的⼀些知名院校也开始从事⼈脸识别的研究。
⼈脸识别是当前模式识别领域的⼀个前沿课题,但⽬前⼈脸识别尚处于研究课题阶段,尚不是实⽤化领域的活跃课题。虽然⼈类可以毫不困难地由⼈脸辨别⼀个⼈,但利⽤计算机进⾏完全⾃动的⼈脸识别存在许多困难,其表现在:⼈脸是⾮刚体,存在表情变化;⼈脸随年龄增长⽽变化;发型、眼镜等装饰对⼈脸造成遮挡;⼈脸所成图像受光照、成像⾓度、成像距离等影响。⼈脸识别的困难还在于图像包括⼤量的数据,输⼊的像素可能成百上千,每个像素都含有各⾃不同的灰度级,由此带来的计算的复杂度将会增加。现有的识别⽅法中,通过从⼈脸图像中提取出特征信息,来对数据库进⾏检索的⽅法速度快,⽽利⽤拓扑属性图匹配来确定匹配度的⽅法则相对较快。
1.2 ⼈脸图像识别的应⽤前景
⼈脸识别系统现在在⼤多数领域中起到举⾜轻重的作⽤,尤其是⽤在机关单位的安全和考勤、⽹络安
全、银⾏、海关边检、物业管理、军队安全、智能⾝份证、智能门禁、司机驾照验证、计算机登录系统。我国在这⽅⾯也取得了较好的成就,国家863项⽬“⾯像检测与识别核⼼技术”通过成果鉴定并初步应⽤,就标志着我国在⼈脸识别这⼀当今热点科研领域掌握了⼀定的核⼼技术。
就从⽬前和将来来看,可以预测到⼈脸图像识别将具有⼴阔的应⽤前景,如表1-1中所列举就是其中已经实现或逐步完善的应⽤。
表1-1 ⼈脸识别的应⽤
应⽤优点存在问题
信信⽤卡、汽车驾照、护照以及个⼈⾝份验证等图像摄取可控图像分割可控图像质量好需要建⽴庞⼤的数据库
嫌疑犯照⽚匹配图像质量不统⼀多幅图像可⽤潜在的巨⼤图像库
互联⽹应⽤视频信息价值⾼多⼈参与存在虚假
互联⽹应⽤视频信息价值⾼多⼈参与存在虚假
银⾏/储蓄安全监控效果好图像分割不可控图像质量较差
⼈监测图像质量⾼可利⽤摄像图像图像分割⾃由图像质量低、实时性
1.3 本⽂研究的问题
本⽂介绍了⼈脸图像识别中所应⽤MATLAB对图像进⾏预处理,应⽤该⼯具箱对图像进⾏经典图像处理,通过实例来应⽤matlab图像处理功能,对某⼀特定的⼈脸图像处理,进⽽应⽤到⼈脸识别系统。本⽂在总结分析⼈脸识别系统中⼏种常⽤的图像预处理⽅法基础上,利⽤MATLAB实现了⼀个集多种预处理⽅法⼀体的通⽤的⼈脸图像预处理仿真系统,将该系统作为图像预处理模块可嵌⼊在⼈脸识别系统中,并利⽤灰度图像的直⽅图⽐对来实现⼈脸图像的识别判定。
其中涉及到图像的选取,脸部定位,特征提取,图像处理和识别⼏个过程。
1.4 识别系统构成
⼈类似乎具有“与⽣俱来”的⼈脸识别能⼒,赋予计算机同样的能⼒是⼈类的梦想之⼀,这就是所谓的“⼈脸识别”系统。假设我们把照相机、摄像头、扫描仪等看作计算机的“眼睛”,数字图像可以看作计算机观察到的“影像”,那么AFR赋予计算机根据其所“看到”的⼈脸图⽚来判断⼈物⾝份的能⼒。
⼴义的讲,⾃动⼈脸识别系统具有如图1.1所⽰的⼀般框架并完成相应功能的任务。
(1)⼈脸图像的获取
⼀般来说,图像的获取都是通过摄像头摄取,但摄取的图像可以是真⼈,也可以是⼈脸的图⽚或者为了相对简单,可以不考虑通过摄像头来摄取头像,⽽是直接给定要识别的图像。
(2)⼈脸的检测
⼈脸检测的任务是判断静态图像中是否存在⼈脸。若存在⼈脸,给出其在图像中的坐标位置、⼈脸区域⼤⼩等信息。⽽⼈脸跟踪则需要进⼀步输出所检测到的⼈脸位置、⼤⼩等状态随时间的连续变化情况。
(3)特征提取
通过⼈脸特征点的检测与标定可以确定⼈脸图像中显著特征点的位置(如眼睛、眉⽑、⿐⼦、嘴巴等器官),同时还可以得到这些器官及其⾯部轮廓的形状信息的描述。
根据⼈脸特征点检测与标定的结果,通过某些运算得到⼈脸特征的描述(这些特征包括:全局特征和局部特征,显式特征和统计特征等)。
(4)基于⼈脸图像⽐对的⾝份识别
即⼈脸识别(Face Identification)问题。通过将输⼊⼈脸图像与⼈脸数据库中的所有已知原型⼈脸图像计算相似度并对其排序来给出输⼊⼈脸的⾝份信息。这包括两类识别问题:⼀类是闭集(Close Set)⼈脸识别问题,即假定输⼊的⼈脸⼀定是⼈脸库中的某个个体;另⼀类是开集(Open Set)识别,即⾸先要对输⼊⼈脸是否在已知⼈脸库中做出判断,如果是,则给出其⾝份。
(5)基于⼈脸图像⽐对的⾝份验证
即⼈脸确认(Face Verification)问题。系统在输⼊⼈脸图像的同时输⼊⼀个⽤户宣称的该⼈脸的⾝份信息,系统要对该输⼊⼈脸图像的⾝份与宣称的⾝份是否相符作出判断。
1.5 论⽂的内容及组织
第⼆章主要介绍⼈脸识别系统中所⽤到的仿真软件Matlab,介绍了在⼈脸图像识别过程中所需要的图像处理技术,包括:⼀些基本操作、格式转换、图像增强等。并做了⼀个Matlab图像处理功能的实例
第三章主要始涉三个⽅⾯:⾸先是对⼈脸识别系统的构成做详细论述;其次就是对⼈脸识别过程中的关键环节⼈脸检测、特征提取和图像预处理做详细介绍;最后就是Matlab在⼈脸识别系统中的具体应⽤,即⼈脸图像识别的具体技术,并⽤Matlab进⾏仿真试验并得到结果。
第四章是对⼈脸图像识别体系构架的设计,并给出了⼈脸识别⽤到的理论知识即直⽅图差异对⽐,并编写matlab代码实现⼈脸图像识别。第2章图像处理的Matlab
2.1 Matlab简介
MATLAB是由美国mathworks公司发布的主要⾯对科学计算、可视化以及交互式程序设计的⾼科技计算环境。它将数值分析、、科学数据可视化以及⾮动态系统的和仿真等诸多强⼤功能集成在⼀个易于使⽤的视窗环境中,为科学研究、⼯程设计以及必须进⾏有效数值计算的众多科学提供了⼀种全⾯的解决⽅案,并在很⼤程度上摆脱了传统⾮交互式程序设计语⾔(如C、Fortran)的编辑模式,代表了当今国际科学计算软件的先进⽔平。 
  MATLAB和、并称为三⼤软件。它在数学类科技应⽤软件中在⽅⾯⾸屈⼀指。MATLAB可以进⾏运算
、绘制和数据、实现、创建⽤户界⾯、连接其他编程语⾔的程序等,主要应⽤于⼯程计算、控制设计、信号处理与通讯、、、⾦融建模设计与分析等领域。MATLAB的基本数据单位是矩阵,它的指令表达式与数学、⼯程中常⽤的形式⼗分相似,故⽤MATLAB来解算问题要⽐⽤C,FORTRAN等语⾔完成相同的事情简捷得多,并且MATLAB也吸收了像Maple等软件的优点,使MATLAB成为⼀个强⼤的。在新的版本中也加⼊了对,,,的⽀持。可以直接调⽤,⽤户也可以将⾃⼰编写的实⽤程序导⼊到MATLAB函数库中⽅便⾃⼰以后调⽤,此外许多的MATLAB爱好者都编写了⼀些经典的程序,⽤户可以直接进⾏下载就可以⽤。基本应⽤
MATLAB 的应⽤范围⾮常⼴,包括信号和图像处理、通讯、控制系统设计、测试和测量、财务建模和分析以及计算学等众多应⽤领域。附加的⼯具箱(单独提供的专⽤MATLAB 函数集)扩展了MATLAB 环境,以解决这些应⽤领域内特定类型的问题。20世纪70年代,美国新墨西哥⼤学计算机科学系主任Cleve Moler为了减轻学⽣编程的负担,⽤FORTRAN编写了最早的MATLAB。1984年由Little、Moler、Steve Bangert合作成⽴了的MathWorks公司正式把MATLAB推向市场。到20世纪90年代,MATLAB已成为国际控制界的标准计算软件。
2.2 数字图像处理及过程
数字图像处理(Digital Image Processing)是通过对图像进⾏去除噪声、增强、复原、分割、提取特征
等处理的⽅法和技术。数字图像处理的产⽣和迅速发展主要受三个因素的影响:⼀是计算机的发展;⼆是数学的发展(特别是理论的创⽴和完善);三是⼴泛的农牧业、林业、环境、军事、⼯业和医学等⽅⾯的应⽤需求的增长。
2.2.1图像处理的基本操作
读取和显⽰图像可以通过imread()和imshow()来实现;图像的输出⽤imwrite()函数就可以很⽅便的把图像输出到硬盘上;另外还可以⽤imcrop()、imrisize()、imrotate()等来实现图像的裁剪、缩放和旋转等功能。
2.2.2图像类型的转换
Matlab⽀持多种图像类型,但在某些图像操作中,对图像的类型有要求,所以要涉及到对图像类型进⾏转换。Matlab7.0图像处理⼯具箱为我们提供了不同图像类型相互转换的⼤量函数,如mat2gray()函数可以将矩阵转换为灰度图像,rgb2gray()转换RGB图像或颜⾊映像表为灰度图像。在类型转换的时候,我们还经常遇到数据类型不匹配的情况,针对这种情况,Matlab7.0⼯具箱中,也给我们提供了各种数据类型之间的转换函数,如double()就是把数据转换为双精度类型的函数。
2.2.3图像增强
matlab直方图
图像增强的⽬的是为了改善图像的视觉效果,提⾼图像的清晰度和⼯艺的适应性,以及便于⼈与计算机的分析和处理,以满⾜图像复制或再现的要求。图像增强的⽅法分为空域法和频域法两⼤类,空域法主要是对图像中的各个像素点进⾏操作;⽽频域法是在图像的某个变换域内对整个图像进⾏操作,并修改变换后的系数,如傅⽴叶变换、DCT变换等的系数,然后再进⾏反变换,便可得到处理后的图像。下⾯以空域增强法的⼏种⽅法加以说明。
(1).灰度变换增强
有多种⽅法可以实现图像的灰度变换,其中最常⽤的就是直⽅图变换的⽅法,即直⽅图的均衡化。这种⽅法是⼀种使输出图像直⽅图近似服从均匀分布的变换算法。Matlab7.0图像处理⼯具箱中提供了图像直⽅图均衡化的具体函数histeq(),同时我们可以⽤函数imhist()函数来计算和显⽰图像的直⽅图。
(2).空域滤波增强
空域滤波按照空域滤波器的功能⼜可分为平滑滤波器和锐化滤波器。平滑滤波器可以⽤低通滤波实现,⽬的在于模糊图像或消除噪声;锐化滤波器是⽤⾼通滤波来实现,⽬的在于强调图像被模糊的细节。在Matlab中,各种滤波⽅法都是在空间域中通过不同的滤波算⼦实现,可⽤fspecial()函数来创建预定义的滤波算⼦,然后可以使⽤imfilter()或filter2()函数调⽤创建好的滤波器对图像进⾏滤波。
2.2.4边缘检测
数字图像的边缘检测是图像分割、⽬标区域识别、区域形状提取等图像分析领域⼗分重要的基础,也是图像识别中提取图像特征的⼀个重要属性。边缘检测算⼦可以检查每个像素的邻域并对灰度变化率进⾏量化,也包括对⽅向的确定,其中⼤多数是基于⽅向导数掩模求卷积的⽅法。常⽤的有Sobel算⼦,Prewitt算⼦,Roberts算⼦,Log算⼦等。Matlab7.0⼯具箱中提供的edge()函数可以进⾏边缘检测,在其参数⾥⾯,可以根据需要选择合适的算⼦及其参数。
2.3 本章⼩结
以上实例只是对Matlab图像处理⼯具箱函数的⼀⼩部分运⽤,从这些功能的运⽤可以看出,Matlab语⾔简洁,可读性强。作为⼈脸识别系统中图像预处理⼯具,有⾮常好的处理功能。
在这段学习Matlab图像处理软件的过程中,也遇到了很多的问题,感谢在⽼师和同学的帮助下让我更熟练的掌握这款软件,这将会在我以后⼯作和运⽤当中受⽤⼀⽣。其中最⼤的阻碍是软件⾥是全英⽂的,因此我得更加要学好英语、重视英语。也同时学会了要善于利⽤各种资源。
第3章⼈脸区域定位
3.1⼈脸区域粗定位
3.1.1肤⾊区域标记编码
经在进⾏区域分析和计算之前,先对其进⾏统计编码,已确定筛选的对象。
区域标记的具体算法流程如下:
(1)扫描整幅图像.把所有肤⾊,类肤⾊区域的边界点标记出来:
(2)从每个区域的⼀个边界点出发并标记,利⽤四邻域的原则搜索所有为标记的边界点,并标记出来。根据连通性的原理,在编码处理过程中,属于同样码号的像素就属于同⼀个区域。同时编码后可得到肤⾊像素点的数量,也即该区域的⾯积。
(3)根据每个连通区域边界点的不同标记把所有的连通区域分割开来,这样就得到了所有可能的⼈脸区域。边界由肤⾊像素点和⾮肤⾊像素点所组成。
3.1.2基于区域⾯积和长宽⽐的粗定位
在进⾏⼈脸区域筛选之前,⾸先考虑到这样⼀个问题:⼈的⾯部近似为椭圆形,在长宽⽐上存在⼀定的⽐例。但是⼀些肤⾊区域也可能在长宽⽐上存在⼀定⽐例,如⼈的⼿攥成拳头时,这就需要考虑另⼀个因素——区域的⾯积。⼈脸区域在图像中(除去背景)相对占有较⼤的⽐例。基于这些想法,结合⽂献,本⽂采⽤如下的⽅法:
⾸先对⼈脸图像进⾏处理,将其分为⽹格状,由于部分⼈脸可能存在⼀些旋转倾斜,因此直接利⽤区域的上、下、左、右4个顶点的坐标值进⾏判断存在⼀定的困难。利⽤提取区域边界进⾏操作,⽽区域边界是根据对图像各区域进⾏编码时获得的。然后对其各⽹格进⾏⼆值分析,通过像素⽐例来做处理,满⾜⾯积⽐例的再对其长宽⽐进⾏筛选,最后得到选出的⼈脸区域。
详细操作如下:
1. 统计并提取构成该区域边界的所有点的坐标值,记录下X轴上具有最⼩、最⼤分量的坐标值,以此作为⼈脸的长宽参数,同理求出Y轴
上具有最⼩、最⼤分量的坐标值。
2. 令B等于其中较⼤者,S等于其中较⼩者,B与S的⽐值B/S(=r)即为所求的区域长宽⽐。
3. 对于垂直正⾯的⼈脸,则该⽐值近似于1。但由于图像中⼈脸或有偏差或侧脸,且肤⾊相似度分割可能造成⼈脸头颈部作为同⼀个区域
分割,并为防⽌把正确的分割区域作为错误的判断,故将r的上限适当放⼤。本⽂选取r的取值范围为[0.4,2.4],不属于这个范围的候选区域则直接删除。
4. 区域长宽求出后,区域的⾯积即为该区域中⽩⾊像素点的个数,⽤公式可表达为
利⽤该⽅法,对图像进⾏处理,结果如下图所⽰:
图3.1粗定位后的图像
3.2特征点定位
经过上述步骤之后,可得到粗略定位的⼈脸区域。可将该图作为姿态估计的输⼊图像,但是利⽤没有进⾏⼈脸对齐的图像进⾏⼈脸姿态估计.效果往往不是很好。这⾥进⼀步采取了特征点定位算法来提取出⼈脸上的特征点,根据特征点的相对位置来进⾏输⼊图像的规范化,进⼀步提⾼姿态估计的精确度。
3.2.1特征点选取
⼈体⾯部结构组成的有眼睛、⿐⼦、嘴巴、下巴、颧⾻,还有部分⽑发特征⽐如胡须,眉⽑等。这些特征是⼈与⼈区别的主要标志,因此对这些器宫的形状和结构关系的⼏何描述,可以作为⼈脸特征描述的重要特征。⼏何特征提取即是⽤适当的⽅法对眼睛、⿐⼦、嘴巴、下巴等器官的形状、⼤⼩和结构关系进⾏⼏何描述。
本⽂选取了眼靖和嘴融作为特征点来进⾏特征点定位。眼睛⽤作⼈脸检测验证⽅法的依据是:两眼之间的间距和嘴⾓距离不受光照或表情变化影响,特征突出易于定位。
3.2.2嘴唇定位
在⾊彩空间中,嘴唇的颜⾊与⾯部的其他部位的区别是很明显的: ⼀是亮度⽐其他肤⾊暗⼀些,⼆是红⾊在三基⾊中占⽐例较⼤。具有这些特征的区域可假设为嘴唇。
由嘴唇和肤⾊⾊度分析可知,在YCbCr ⾊彩空间中,嘴唇⽐肤⾊具有较⾼的Cr 分量。因此,构建嘴唇的提取模型:
在CVL图像库中,选取肤⾊和嘴唇像素,进⾏统计,得到:
3.2.3眼睛定位
⽬前实现眼睛定位的算法很多,主要有区域分割法、灰度投影法、边缘提取法、统计学习法,模板法等。
区域分割法⾸先对⼈脸的⼆值图像进⾏区域分割,然后设定⼀系列经验值和⽀持函数定位眼睛;
灰度投影法对⼈脸图像进⾏⽔平和垂直⽅向的投影,根据波峰、波⾕的分布信息来定位眼睛;

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。