资源描述
本科毕业设计(论文)
人脸辨认技术及实现
学 院 信息工程学院
专 业 信息工程
(电子信息工程方向)
年级班别 2023级(1)班
学 号
学生姓名 XXX
指导教师 XXX
2023年 5 月
摘要
随着经济的快速发展以及生活方式的改变,社会各方面对于身份辨认技术的需求快速增长。使得生物记录辨认技术得到了新的重视。目前得到重要应用的是指纹辨认和人脸辨认。研究人脸辨认在理论和技术上都有重要的意义:一是可以推动对人类视觉系统自身的结识;二是可以满足人工智能应用的需要。而人脸辨认相比较其他生物辨认技术而言具有:1、非接触的,用户不需要和设备直接接触;2、非强制性,被辨认的人脸图像信息可以积极获取;3、并发性,即实际应用场景下可以进行多个人脸的分拣、判断及辨认这几大优点而取得了快速的发展。采用人脸辨认技术,建立自动人脸辨认系统,用计算机实现对人脸图像的自动辨认有着广阔的应用领域和诱人的应用前景。
本文在总结分析人脸辨认系统中几种常用的图像预解决方法基础上,运用MATLAB实现了一个集多种预解决方法于一体的通用的人脸图像预解决仿真系统。通过实现图像的选取,脸部定位,特性提取,图像解决和辨认这几个过程,运用灰度图像的直方图比对最终实现人脸图像的辨认。
关键词:人脸辨认, MATLAB,灰度图像直方图,特性提取
Abstact
With the fast development of economy and the change of life style, the demand for the identity recognition technology is increasing rapidly. Meanwhile, The technology of biometric identification is emphasized. The main application is fingerprint recognition and face recognition nowdays. The research of face recognition has important meaning both in theory and technology.Firstly, it can advance the recognition of human vision system.Secondly, it is the need of artificial intelligence application. And face recognition compared to other biometrics has much advantages.Firstly, users do not need to equipment and direct contact.Secondly,it is recognition of the face image information can take the initiative to obtain.Thirdly, the actual application scenarios can be of multi face sorting, judgment, and recognition. Using computer to achieve automatic recognition of the face image has a broad application areas and attractive prospects for application by face recognition technology, automatic face recognition system.
Based on the summary analysis of face recognition system and several common image pre processing method , author finally used MATLAB realize a set a variety of pre processing method in one of the generic face image pre processing simulation system. With the image selection, facial localization, feature extraction, image processing and recognition these processes, the author successfully use the histogram ratio of gray image to realize the recognition of face image.
Key words:Face recognition;MATLAB; Gray image histogram; Feature extraction
目录
1 绪论 1
1.1引言 1
1.2人脸辨认技术的背景 1
1.3 人脸辨认技术国内外发展 2
1.4人脸辨认技术的应用前景 4
1.5 论文研究的问题 5
1.6本文人脸辨认系统重要结构 6
1.7论文的内容及组织 7
2 应用Matlab解决图像 8
2.1 Matlab介绍 8
2.2 数字图像解决 8
2.2.1图像解决的基本操作 8
2.2.2图像类型的转换 9
2.2.3图像增强 9
2.3图像解决功能的Matlab实现实例 10
2.4 本章小结 12
3 人脸检测的实现 13
3.1 引言 13
3.2系统基本机构 13
3.3 人脸检测定位算法 14
3.4 人脸图像的预解决 19
3.4.1 仿真系统中实现的人脸图像预解决方法 19
4 基于直方图的人脸辨认实现 22
4.1辨认理论 22
4.2 人脸辨认的matlab实现 22
结论 24
参考文献 25
致谢 27
1 绪论
1.1引言
本章提出了人脸辨认的研究背景及应用前景。(1)一方面为我们阐述人脸图像辨认的现实意义;(2)然后说明当前人脸图像辨认存在的问题;(3)接着介绍主流人脸辨认系统的一般框架组成;(4)最后再简要地介绍了论文的重要章节和人脸辨认系统重要设计思想和实现技术。
1.2人脸辨认技术的背景
人脸辨认,是一种基于人的脸部特性信息进行身份辨认的生物辨认技术。通过摄像机或摄像头采集具有人脸的图图片,采用适当的图像技术解决后,自动检测出和跟踪图片当中的人脸,然后对系统检测到的人脸进行脸部的一系列相关技术解决,从而辨认人脸图像的身份。通常又叫做人像辨认、面部辨认。
人脸辨认系统的研究最早开始于20世纪60年代,但是受限制于计算机技术和光学成像技术发展水平,研究进程比较缓慢。然而,随着着80年代后计算机技术和光学成像技术的快速发展,但真正进入初级的应用阶段则在90年后期,并且以美国、德国和日本的技术实现为主;人脸辨认系统成功的关键在于两个方面。(1)是否拥有尖端的核心算法,(2)辨认结果是否具有实用化的辨认率和辨认速度;“人脸辨认系统”是集成了人工智能、机器辨认、机器学习、模型理论、专家系统、视频图像解决等多种专业技术的一种系统,同时需结合中间值解决的理论与实现,属于生物特性辨认的最新应用,其核心技术的实现,展现了弱人工智能向强人工智能的转化。随着经济的快速发展以及生活方式的改变,社会各方面对于身份辨认技术的需求快速增长。使得生物记录辨认技术得到了新的重视。目前得到重要应用的是指纹辨认和人脸辨认。但是指纹辨认规定被检测的人高度配合,采集比较困难。相对来讲,用户不需要跟设备或者仪器直接结束就能获得人脸图像,只需要一些简朴的配合,几乎可以在非强制性的情况下完毕。人脸图像的机器辨认研究就是在这种背景下兴起的,是所有的生物辨认方法中应用最广泛的技术之一。同时,人脸辨认是机器视觉和模式辨认领域最富有挑战性的课题之一,由于人脸图像受很多因素的干扰:人脸表情的多样性,以及外在的成像过程中的光照,图像尺寸,旋转,姿势变化等。使得同一个人,在不同的环境下拍摄所得到的人脸图像不同,有时更会有很大的差别,这些影响都会给人脸图像的辨认带来很大难度。因此在各种干扰条件下实现人脸图像的辨认,也就更具有挑战性。并且它覆盖了数字图像解决、模式辨认、计算机视觉、神经网络、心理学、生理学、数学等诸多学科的内容。
目前人脸辨认技术已经相对成熟,其应用也随之日益广泛。人脸辨认产品已广泛应用于金融、司法、军队、公安、边检、政府、航天、电力、工厂、教育、医疗及众多企事业单位等领域。随着技术的进一步成熟和社会认同度的提高,更多成本低廉,结构简朴,操作性强的,更加实用的人脸辨认技术将应用在更多的领域。
1.3 人脸辨认技术国内外发展
回顾人脸辨认技术的发展历程,可以将其划分为4个发展阶段。20世纪60年代是生物辨认技术的萌芽阶段,以1965年研究人员设计的人脸辨认系统为代表,启动了生物辨认技术的新时代;1991年,美国麻省理工学院的研究人员提出了特性脸人脸辨认的理论和方法,标志着人脸辨认技术作为一个新兴学科正式起步;2023年,美国“9•11”事件发生后,世界各国意识到人脸辨认技术的重要价值,投入大量资金进行研发;2023年,人脸辨认技术应用于北京奥运会,标志着人脸识进入大规模应用阶段。
在国内,中科院计算所跟哈工大的一个联合面像实验室是最早研究人脸检测辨认的。该实验室的高文专家,陈熙林专家,山世光专家,直到今天,都一直活跃在人脸辨认领域并且发表了很多学术论文。另一方面,是现为模式辨认国家重点实验室研究员和生物辨认与安全技术研究中心主任,智能视觉物联网研发中心主任的李子青专家。李子青和他所领衔研发的“中科奥森”人脸辨认系统和智能视频监控系统已在涉及北京奥运会、上海世博会边检通关等多个国家重大安全项目中实行并发挥作用。李子青为SAC/TC100/SC2副主任委员,代表中国国家体撰写了中国第一个ISO/IEC JTC1/SC37生物辨认国际标准工作草案获采纳,并在2023年会全体会议上作了“生物特性辨认在中国”的主题演讲。他的著作《图像分析中的马尔可夫随机场模型》 (Springer 1995, 2nd edition 2023, 3rd edition 2023) 被誉为"图像分析领域里程碑意义的工作。接着,是清华大学的丁晓青和艾海洲专家。艾海洲专家目前重要从事与人脸人体相关的计算机视觉方面的研究,在人脸及人体图像理解领域提出了一系列性能优越的算法,具有重要的学术价值和明显的应用价值。丁晓青专家在OCR(字符辨认)领域,可谓国内第一人。但是,最近几年转行做人脸辨认,也是非常有成就的。不说别的,就只从FRVT2023(美国国家标准研究所2023年全球人脸辨认供应商系统性能测试)的测试结果来看,丁晓青专家的研究团队是唯一一个完毕大规模3D人脸辨认性能测试的参赛团队。由此可见,在国内人脸辨认领域来说,她们的算法,在3D领域,绝对排名第一。此外,在汉字辨认领域,取得了一系列国际领先的研究成果,先后荣获国家科技进步二等奖三次。有11项发明专利被授权。
在国外,当前很多国家展开了有关人脸辨认的研究,重要有美国、欧洲国家、日本等著名的研究机构20世纪90年代以来,随着高速高性能计算机的出现,人脸辨认方法有了重 大突破,进入了真正的机器自动辨认阶段。国外有许多大学在此方面取得了很大进展,他们研究涉及的领域很广,其中有从感知和心理学角度探索人类辨认人脸机理的,如美国Texas at Dallas大学的Abdi和Toole小组,重要研究人类感知人脸的规律;由Stirling大学的Bruce专家和Glasgow大学的Burton专家合作领导的小组,重要是研究人类大脑在人脸认知中的作用,并在此基础上建立了人脸认知的两大功能模型,他们对熟悉和陌生人脸的辨认规律以及图像序列的人脸辨认规律也进行了研究;也有从视觉机理角度进行研究的,英国Aberdeen大学的Craw小组,重要研究人脸视觉表征方法,他们对空间频率在人脸辨认中的作用也进行了分析;荷兰Groningen大学的Petkov小组,重要研究人类视觉系统的神经生理学机理并在此基础上发展了并行模式辨认方法。更多的学者则从事运用输入图像进行计算机人脸辨认的研究工作。在人脸辨认的领域中,国际上逐步形成了以下几个研究方向:①基于几何特性的人脸辨认方法,重要代表是MIT的Brunelli和Poggio 小组,他们采用改善的积分投影法提取出用欧氏距离表征的35维人脸特性矢量用于模式分类;②基于模板匹配的人脸辨认方法,重要代表是Harvard大学Smith-Kettlewell眼睛研究中心的Yuille,他采用弹性模板来提取眼睛和嘴巴的轮廓,Chen和Huang则进一步提出用活动轮廓模板提取眉毛、下巴和鼻孔等不拟定形状; ③基于K-L变换的特性脸的方法,重要研究者是MIT媒体实验室的Pentland ④基于隐马尔可夫模型的方法,重要代表有Cambridge大学的Samaria小组和Georgia技术研究所的Nefian小组;⑤神经网络辨认的方法,如Poggio小组提出的HyperBF神经网络辨认方法,英国Sussex大学的Buxton和Howell小组提出的RBF网络辨认方法等;⑥基于动态链接结构的弹性图匹配方法,重要研究者是由C.Von derMalsburg领导的德国Bochum大学和美国Southern California大学的联合小组; ⑦运用运动和颜色信息对动态图像序列进行人脸辨认的方法,重要代表是Queen Mary和Westfield大学的Shaogang Gong小组。
1.4人脸辨认技术的应用前景
人脸辨认技术已广泛用于政府、军队、银行、社会福利保障、电子商务、安全防务等领域。相对而言其它的生物身份验证手段,如指纹、眼睛虹膜等必须通过与目的接触或相称接近来取得样木,在某些场合,这些辨认手段有很大的不便之处。而人脸辨认可以不与目的相接触就取得样本图像,进而进行身份的辨认。
目前,应用最广泛的方面有(1)公司、住宅的安全和管理。如人脸辨认门禁考勤系统,人脸辨认防盗门等。(2)电子护照及身份证。中国的电子护照计划公安部一所正在加紧规划和实行。(3)公安、司法和刑侦。如运用人脸辨认系统和网络,在全国范围内搜捕逃犯。(4)银行自助服务。(5)信息安全。如计算机登录、电子政务和电子商务。在电子商务中交易所有在网上完毕,电子政务中的很多审批流程也都搬到了网上。
以下是目前国内外人脸辨认技术的重要应用情况:
表1.1国内外人脸辨认技术的重要应用
应用领域
技术优势
存在问题
个人身份验证,身份证,信用卡,护照,驾照
图像质量好
图像摄取可控
图像可操作性强
必须建立功能强大的数据库用于存储照片
计算机登陆、电子商务,电子政务
应用范围广
大大增长网络安全性
图片真实性待考究
银行/储蓄
/金融安全
图像摄取方便
监控性很强
图像真实度高
图像质量不高
图片可解决性差
图片需要有强大的数据库支撑
人群监测
可运用摄像图像
图像方便易得
图像质量不好
对系统精确规定高
图像分割自由
嫌疑犯/犯罪分子
照片匹配
应用范围广
图片获得容易
图片质量不好
需强大的数据库支撑
1.5 论文研究的问题
本文介绍了人脸图像辨认中所应用MATLAB对图像进行预解决,应用该工具箱对图像进行经典图像解决,通过实例来应用matlab图像解决功能,对某一特定的人脸图像解决,进而应用到人脸辨认系统。本文在总结分析人脸辨认系统中几种常用的图像预解决方法基础上,运用MATLAB实现了一个集多种预解决方法于一体的通用的人脸图像预解决仿真系统,将该系统作为图像预解决模块可嵌入在人脸辨认系统中,并运用灰度图像的直方图比对来实现人脸图像辨认鉴定。
其中涉及到图像的选取,脸部定位,特性提取,图像解决和辨认几个过程。
1.6本文人脸辨认系统重要结构
一、人脸辨认流程
人脸检测重要是检测获取到的图片是否有人脸的图像,然后根据检测到的人脸结果进一步解决,提取特性,接着进行身份确认,进而得出结论。这个系统的实现规定各个环节互相配合,紧密联系,才干得到最终抱负的结果。
本文人脸辨认仿真系统流程图如下所示:
图像获取
图片灰度图像解决解决
得出辨认结果
根据算法找到最接近的两幅图
与图片库中图片比较
记录原图灰度值
二值化解决
根据算法找出合适人脸部位
检测到人脸图像
人人脸检测
人人脸辨认
图1.1 人脸辨认流程图
二、人脸辨认的重要环节:
(1 )人脸图像的获取
通常,图片都是通过摄像机来完毕。可以得到各种图片,作为本文辨认的系统来说,为了增长可操作性,所选取的图片都是比较清楚的人脸图像。
(2)人脸的检测
人脸检测是为了检测获取的图片是否存在人脸。解决过程中,先对图片进行灰度图片解决,然后二值化。得到的图片将呈现出黑白效果。这时只要用适当的算法,检测出最像人脸的区域即可。然后根据判断出的人脸区域画适当的矩形。
(3)人脸辨认
在本文中人脸辨认的重要方式是,在人脸辨认的基础上。通过记录图片各像素点的灰度值,对灰度值进行均衡化,将记录结果与图片库中的图片进行对比,返回对比差距最小的图片,判断相似度。根据相似度伐值的比较,得到辨认的结果。
(4)基于人脸图像比对的身份辨认
即人脸辨认(Face Identification)问题。通过将输入人脸图像与人脸数据库中的所有已知原型人脸图像计算相似度并对其排序来给出输入人脸的身份信息。这涉及两类辨认问题:一类是闭集(Close Set)人脸辨认问题,即假定输入的人脸一定是人脸库中的某个个体;另一类是开集(Open Set)辨认,即一方面要对输入人脸是否在已知人脸库中做出判断,假如是,则给出其身份。本文采用的是开集辨认,没有假定输入的人脸一定是人脸数据库中的个体。
1.7论文的内容及组织
由于本文的人脸辨认系统是基于Matlab的,所以在第二章,一方面介绍重要在人脸辨认系统中用到的仿真软件Matlab。以及在人脸辨认过程中所要用到图像解决的基本操作。重要涉及:GUI界面的设计,图像操作的基本解决(图片读取,图像输出,图像裁剪,灰度变换,二值化等),并且展示一部分具体操作的结果实例。
论文第三章重要涉及三个方面:
(1)对人脸辨认系统构成的进一步具体分析;(2)具体介绍获得图片的预解决方法;(3)分析该系统中人脸检测和人脸定位这两个重要环节实现方法;
第四章是对人脸图像辨认体系构架的设计,并给出了人脸辨认用到的理论知识即直方图差异对比,并编写matlab代码实现人脸图像辨认。
第五章对整篇论文做一个总结,并且对人脸辨认的研究和实现系统中存在的问题做一个探讨。
2 应用Matlab解决图像
2.1 Matlab介绍
MATLAB是美国MathWorks公司出品的商业数学软件,用于算法开发、数据可视化、数据分析以及数值计算的高级技术计算语言和交互式环境,重要涉及MATLAB和Simulink两大部分。Matlab的重要优势有:(1)高效的数值计算及符号计算功能,能使用户从繁杂的数学运算分析中解脱出来;(2) 具有完备的图形解决功能,实现计算结果和编程的可视化;(2)和谐的用户界面及接近数学表达式的自然化语言,使学者易于学习和掌握;(4)功能丰富的应用工具箱(如信号解决工具箱、通信工具箱等) ,为用户提供了大量方便实用的解决工具。Matlab还推出了功能强大的适应于图像分析和解决的工具箱,常用的有图像解决工具箱。一般来说,它们都是由特定领域的专家开发的,用户可以直接使用工具箱学习、应用和评估不同的方法而不需要自己编写代码。在人脸辨认的研究和实现中,就应用了Mtalab强大的图形解决功能进行图片解决。如:图像打开、图像二值化、灰度图像解决、图片裁剪等。
2.2 数字图像解决
数字图像解决(Digital Image Processing)是通过计算机对图像进行去除噪声、增强、复原、分割、提取特性等解决的方法和技术。数字图像解决的产生和迅速发展重要受三个因素的影响:一是计算机的发展;二是数学的发展(特别是离散数学理论的创建和完善);三是广泛的农牧业、林业、环境、军事、工业和医学等方面的应用需求的增长。
数字图像解决常用的方法有以下几个方面:
图像变换、图像增强和复原、图像编码压缩、图像描述、图像分割和图像辨认(分类)等内容。
2.2.1图像解决的基本操作
一方面,读取用imread()函数来完毕。输出图片用imshow()函数来实现;用save()函数可以将工作空间的变量保存,然后用load函数可以将变量读入到Matlab的工作空间中。在本文中还使用到了imrisize()函数对图像进行裁剪,使其以合适的大小的输出。
2.2.2图像类型的转换
Matlab支持多种图像类型,但在某些图像操作中,对图像的类型有规定,所以要涉及到对图像类型进行转换。Matlab7.0图像解决工具箱为我们提供了不同图像类型互相转换的大量函数,如Matlab函数rgb2gray(),将真彩色图像转换为灰度图像。matlab中DIP工具箱函数im2bw使用阈值(threshold)变换法把灰度图像(grayscale image)转换成二值图像。所谓二值图像, 一般意义上是指只有纯黑(0)、纯白(255)两种颜色的图像。
2.2.3图像增强
图像增强的意义:增强图像中的有用信息,它可以是一个失真的过程,其目的是要改善图像的视觉效果,针对给定图像的应用场合,有目的地强调图像的整体或局部特性,将本来不清楚的图像变得清楚或强调某些感爱好的特性,扩大图像中不同物体特性之间的差别,克制不感爱好的特性,使之改善图像质量、丰富信息量,加强图像判读和辨认效果,满足某些特殊分析的需要。在本文系统中,图像增强可以使图片质量不高的图像得到一个补偿和修复作用,增长图像辨认的成功率。
图像增强的分类:图像增强可提成两大类:频率域法和空间域法。前者把图像当作一种二维信号,对其进行基于二维傅里叶变换的信号增强。采用低通滤波(即只让低频信号通过)法,可去掉图中的噪声;采用高通滤波法,则可增强边沿等高频信号,使模糊的图片变得清楚。后者空间域法中具有代表性的算法有局部求平均值法和中值滤波(取局部邻域中的中间像素值)法等,它们可用于去除或减弱噪声。
(1).灰度变换增强
有多种方法可以实现图像的灰度变换,其中最常用的就是直方图变换的方法,即直方图的均衡化。这种方法是一种使输出图像直方图近似服从均匀分布的变换算法。Matlab7.0图像解决工具箱中提供了图像直方图均衡化的具体函数histeq(),同时我们可以用函数imhist()函数来计算和显示图像的直方图。
(2).空域滤波增强
空域滤波按照空域滤波器的功能又可分为平滑滤波器和锐化滤波器。平滑滤波器可以用低通滤波实现,目的在于模糊图像或消除噪声;锐化滤波器是用高通滤波来实现,目的在于强调图像被模糊的细节。在Matlab中,各种滤波方法都是在空间域中通过不同的滤波算子实现,可用fspecial()函数来创建预定义的滤波算子,然后可以使用imfilter()或filter2()函数调用创建好的滤波器对图像进行滤波。
2.3图像解决功能的Matlab实现实例
下面列出本系统功能实现过程中重要使用的相关函数:
(1)改变图像类型
由于后续人脸检测定位过程,以及辨认过程中都是解决的灰度图片和二值图像,但是原本的图像是RGB格式的,因此要对获得的图片进行灰度图像转换。我们可以用Matlab工具箱提供的rgb2gray将其转化成灰度图像,然后再转化成二值图像。实现过程代码如下:
if ndims(B)~= 2 %假如不是二值图像
IM=rgb2gray(B);
else
IM = B;
End
图2.1 原始图像
图2.2 灰度解决图像
解决成二值图像:
bw = im2bw(IM, graythresh(IM)); % 二值化
图2.3 二值化解决图像
2.4 本章小结
以上实例只是对Matlab图像解决工具箱函数的一小部分运用,从这些功能的运用可以看出,Matlab语言简洁,可读性强。作为人脸辨认系统中图像预解决工具,有非常好的解决功能。
3 人脸检测的实现
3.1 引言
计算机人脸辨认是一个非常活跃的研究领域,因其在公安刑侦破案、银行密码系统、计算机安全系统以及动态监视系统等方面都有广泛应用,已成为当前模式辨认、计算机视觉领域的研究热点。人脸辨认系统一般涉及人脸检测与定位、人脸图像预解决、特性提取和匹配辨认四个组成部分。其中,人脸图像预解决,作为特性提取和辨认的前提环节,是计算机人脸辨认系统中的必要环节。其目的是在去除噪声,加强有用信息,对输入设备或其他因素导致的退化现像进行复原,为后续的特性提取和辨认作准备。
不同的人脸辨认系统根据其采用的图像来源和辨认算法需要不同,采用的预解决方法也不同。常用的人脸图像预解决方法有:滤波去噪、灰度变换、图像二值化、边沿检测、尺寸归一化、灰度归一化等。用在同一系统中的也许只有其中一种或几种预解决方法,但一旦库中采集到的原始图像质量发生较大变化(如人脸大小、光照强度、拍摄条件、成像系统等方面变化),原有的预解决模块便不能满足特性提取的需要,还要更新,这是极不方便的。
3.2系统基本机构
人脸辨认是一个复杂的过程,一个计算机人脸辨认的流程如图3-1所示。它涉及几个环节:对采集到的图像,一方面进行人脸检测(在输入图像中寻找人脸),给出人脸有无的结果;然后进行人脸定位,拟定人脸的位置并提取出来。对人脸的定位在输入是图像序列时一般也称之为人脸跟踪。通常检测和定位结合进行。对提取出来的人脸借助人脸描述就可以进行(狭义的)人脸辨认,即通过提取特性来拟定其身份。
图3.1 基本框架图
3.3 人脸检测定位算法
人脸检测定位算法大体可分为两大类:基于显式特性的方法和基于隐式特性的方法。
所谓显式特性是指对人类肉眼来说直观可见的特性,如肤色、脸部轮廓、脸部结构等。基于显式特性的方法是指由人通过肉眼观测,总结出人脸区别于“非人脸”区域的特性,然后根据被检测区域是否满足这些“人脸特性”,来鉴定该区域是否包含人脸。根据所选择的“人脸特性”,基于显式特性的方法分以下三类:基于肤色模型的方法、模板匹配的方法、基于先验知识的方法。
在彩色图像中,颜色是人脸表面最为显著的特性之一,运用颜色检测人脸是很自然的想法。Yang等在考察了不同种族、不同个体的肤色后,认为人类的肤色能在颜色空间中聚成单独的一类,而影响肤色值变化的最重要因素是亮度变化。因此他们采用广泛使用的RGB颜色空间,在滤去亮度值的图像中通过比较像素点的r、g值与肤色范围来推断该像素点及其邻域是否属于人脸区域。除了RGB颜色空间,尚有诸如HIS,LUV,GLHS等其它颜色空间被使用。寻找到肤色区域后,必须进行验证,排除类肤色区域。Yoo等运用肤色像素的连通性分割出区域,使用椭圆拟合各个区域,根据椭圆长短轴的比率判断是否为人脸。
模板匹配的方法一般是人为地先定义一个标准人脸模板,计算输入图像与模板的似然度;然后,拟定一个似然度阈值,用以判断该输入图像中是否包含人脸。标准人脸模板可以是固定的样板,也可以是带参变量的曲线函数。
基于先验知识的方法则采用符合人脸生理结构特性的人脸镶嵌图(mosaic image)模型,并在分析了足够多的人脸图像样本的基础上,针对人脸的灰度、边沿、纹理等信息,建立一种关于人脸的知识库。在检测中,一方面抽取这些灰度、边沿等信息,然后检查它是否符合知识库中关于人脸的先验知识。
以上三种方法的优缺陷比较见表3-1。
表3.1 基于显示特性方法的特点
检测方法
优点与合用场合
缺陷与需要改善的地方
肤色模型
检测速度快
高光和阴影会导致人脸区域被分割而被漏检;肤色区域的存在提高了预警率
模板匹配
直观性好,具有较好的适应性
对表情、尺度变换敏感;可变模板的选择和参数的拟定非常困难
基于知识的方法
合用复杂图像中的人脸检测
依赖先验知识;多尺度空间遍历工作量大,运算时间长
基于隐式特性的方法将人脸区域当作一类模式,使用大量“人脸”、“非人脸”样本训练、构造分类器,通过判别图像中所有也许区域是否属于“人脸模式”的方法来实现人脸检测。这类方法有:特性脸法、人工神经网络法、支持向量机法;积分图像法。
特性脸法(eigenface)把单个图像当作一维向量,众多的一维向量形成了人脸图像特性空间,再将其变换到一个新的相对简朴的特性空间,通过计算矩阵的特性值和特性向量,运用图像的代数特性信息,寻找“人脸”、“非人脸”两种模式在该特性空间中的分布规律。
人工神经网络(Artificial Neural Network,ANN)的方法是通过训练一个网络结构,把模式的记录特性隐含在神经网络的结构和参数之中。基于人工神经网络的方法对于复杂的、难以显式描述的模式,具有独特的优势。
支撑向量机(Support Vector Machine,SVM)法是在记录学习理论基础上发展出的一种新的模式辨认方法,它基于结构风险最小化的原理,较之于基于经验风险最小化的人工神经网络,一些难以逾越的问题,如:模型选择和过学习问题、非线性和维数劫难问题、局部极小点问题等都得到了很大限度上的解决。但是直接使用SVM方法进行人脸辨认有两方面的困难:第一,训练时需规定解二次规划问题计算复杂度高,内存需求量巨大;第二,在非人脸样本不受限制时,需要极大规模的训练集合,得到的支持向量会很多,使得分类器的计算量过高。
基于积分图像(Integral Image)特性的人脸检测方法是Viola等新近提出的一种算法,它综合使用了积分图像描述方法、Adaboost学习算法及训练方法、级联弱分类器。
以上四种方法的优缺陷比较见表3.2
表3.2 基于隐式特性方法的特性
检测方法
优点
缺陷与需要改善的地方
本征脸法
标准人脸模板能抽象人脸所有信息,运算不涉及迭代花费时间短
但模板检测效率低,多模板提高了效率也增长了检测时间
神经网络法
检测效率高,错误报警数目不多,训练成熟的网络监测速度快
多样本训练花费时间多,但网络监测错误报警数目多
支撑向量机机法
比神经网络方法具有更好的泛化能力,能对为观测到的例子进行有效分类
“非人脸”样本复杂多样,导致支持向量数目多,运算复杂度大
基于积分图像分析法
检测速度快,基本满足实时检测规定,检测效率可以与神经网络法比较
错误报警数目少时,检测率不高
运用matlab仿真进行人脸检测定位实例:
人脸检测定位结果:
图3.2 人脸辨认的结果
人脸定位代码:
if ndims(B)~= 2 % 假如不是二值图像
IM=rgb2gray(B);
else
IM = B;
end
bw = im2bw(IM, graythresh(IM)); % 二值化
[m, n] = size(bw);
row = floor(m/10); % 提成10大块,行
wide = floor(n/10); % 提成10大块,列
a1 = 1; a2 = row; % 相应行初始化
s = row*wide; % 块面积
for i = 1:10 %整个循环表达把图像四周所有变成白色
b1 = 1; b2 = wide; % 相应列初始化
for j = 1:10
if (b2<=wide|| b2>=9*wide) || (a1==1 || a2==row*10)
loc = find(bw(a1:a2, b1:b2)==0);
[p, q] = size(loc);
pr = p/s*100; %
if pr <= 100
bw(a1:a2, b1:b2) = 0;
end
end
b1 = b1+wide; % 列跳跃
b2 = b2+wide; % 列跳跃
end
a1 = a1+row; % 行跳跃
a2 = a2+row; % 行跳跃
end
[Array, nu] = bwlabel(bw, 8); % 区域标记,返回矩阵和连通数
stats = regionprops(Array, 'BoundingBox');
Ar= cat(1, stats.BoundingBox);
[s1, s2] = size(Ar);
fa = 0;
for z = 1:s1 %Z表达返回的N行矩阵数值
area = Ar(z, 3)*Ar(z, 4); % 宽*高
if area>fa && 1.5<(Ar(z, 3)/Ar(z, 4))<1.9
fa = area;
h = z;
end
end
h2=axes('Position',[0.7 0.50 0.19 0.45]);
%subplot(2,3,3);
imshow(B);
rectangle('Position', [Ar(h,1),Ar(h,2),Ar(h,3),Ar(h,4)], ... 'EdgeColor', 'y', 'LineWidth', 1);
3.4 人脸图像的预解决
不同的人脸辨认系统根据其采用的图像来源和辨认算法需要不同,采用的预解决方法也不同。常用的人脸图像预解决方法有:滤波去噪、灰度变换、图像二值化、边沿检测、尺寸归一化、灰度归一化等。用在同一系统中的也许只有其中一种或几种预解决方法,但一旦库中采集到的原始图像质量发生较大变化(如人脸大小、光照强度、拍摄条件、成像系统等方面变化),原有的预解决模块便不能满足特性提取的需要,还要更新,这是极不方便的。鉴于此,作者在总结分析了滤波去噪、边沿检测、灰度变换三种广泛应用于不同人脸辨认系统中的预解决方法基础上,设计了一个通用的人脸图像预解决仿真系统。该系统可对不同条件下的原始图像进行相应的预解决。如,用户可根据需要选择使用不同的滤波方法去除噪声、不同的边沿检测算子检测人脸边沿、选择不同的灰度变换算法实现图像的灰度校正和灰度归一化,仿真系统同时还实现了尺寸归一化、二值化等其他常用的图
展开阅读全文