1、题目基于OPENCV的视频人脸识别系统的设计与实现学生姓名学号201184250317院系电气与信息工程系专业电子信息工程年级2011级二零一四年十月基于OPENCV的视频人脸识别系统的设计与实现1摘要基于生物特征识别的身份认证方法和系统研究一直以来都是计算机图形学和模式识别领域研究的热点,其中,由于人脸的稳定性和可见性,针对人脸识别的算法研究和系统应用最为广泛,本文针对校园内实验室和宿舍安全管理需求,设计和实现了一套针对监控视频的基于OPENCV的人脸识别原型系统,开发语言选用C,全文内容包括(1)构建了基于OPENCV的视频人脸识别的技术框架。针对实验室和宿舍安全管理需要,构建了基于OPE
2、NCV的视频人脸识别的技术框架,能够完成基于视频的实时人脸识别和身份认定;(2)设计了基于OPENCV的视频人脸快速检测算法。人脸检测是人脸识别的前提,本文采用基于OPENCV的快速人脸检测算法实现视频图像中人脸的快速定位和提取;(3)设计了基于ADABOOST算法的视频人脸识别方法。应用ADABOOST算法实现了针对视频流的快速人脸定位和身份识别,能够实现实时身份认定。系统基于NET平台设计,使用C语言进行实现,完成了基于视频的实时人脸身份认定。关键词人脸检测;OPENCV;人脸识别;C;基于OPENCV的视频人脸识别系统的设计与实现2目录摘要1目录21序言411人脸识别的背景介绍412人脸
3、识别国内外发展状况413人脸识别研究的意义614人脸识别的技术应用615主要章节内容和章节结构716本章小结72人脸识别系统的技术框架和功能模块821OPENCV简介822人脸识别的功能模块823人脸识别的技术框架924本章小结113人脸识别的方法1131人脸识别算法原理1132常用人脸识别方法1233基于神经网络的人脸识别方法1234本章小结144人脸检测核心算法1441人脸检测算法在人脸识别中的作用1442人脸检测算法1543ADABOOST算法1544本章小结185原型系统实现1951系统模块划分19基于OPENCV的视频人脸识别系统的设计与实现352模块实现19421系统运行流程图19
4、422系统的功能界面20423实验结果及分析2153本章小结22总结与展望24参考文献25基于OPENCV的视频人脸识别系统的设计与实现41序言11人脸识别的背景介绍近几年来,已开发应用了声音识别、签字识别、指纹识别、掌形识别、眼虹膜识别等人体生物特征识别技术,与上述识别技术相比较,而最近开发的人脸识别技术则具有简便、准确、经济及可扩展性良好等众多优势,因此可广泛应用于出入口控制、安全验证、安防监控与搜寻罪犯等有关方面。人体生物特征识别技术是依靠人体的生物特征来进行人的身份验证的一种高科技识别技术。而人脸识别技术具有比其他生物特征识别技术更直观、简便、准确、可靠及可扩展性良好等众多优势,因而应
5、用广泛。随着安全入口控制和金融贸易方面应用需要的快速增长,生物统计识别技术得到了新的重视。目前,微电子和视觉系统方面取得的新进展,使该领域中高性能自动识别技术的实现代价降低到了可以接受的程度。而人脸识别是所有的生物识别方法中应用最广泛的技术之一1,人脸识别技术是一项近年来兴起的,但不大为人所知的新技术。人们更多的是在电影中看到这种技术的神奇应用警察将偷拍到的嫌疑犯的脸部照片,输入到电脑中,与警方数据库中的资料进行比对,并找出该嫌犯的详细资料和犯罪记录。这并非虚构的情节。在国外,人脸识别技术早已被大量使用在国家重要部门以及军警等安防部门。在国内,对于人脸识别技术的研究始于上世纪90年代,目前主要
6、应用在公安、金融、网络安全、物业管理以及考勤等领域。12人脸识别国内外发展状况人脸识别技术从应用层面上主要可分为人脸检测、人脸识别查询、人脸识别身份认证,目前,我国从事人脸识别技术研究的单位有很多,使得生物特征识别技术形成缩小了与国外的差距2。2008年,以清华大学和中科院自动化研究所为代表的北京奥运会实名制票证系统的实施将生物特征识别技术又推到了一个新的水平,为我国生物识别技术在安防领域的应用打下了坚实的基础。人脸识别检测研究,主要包括人脸检测技术和人脸识别技术的研究3。人基于OPENCV的视频人脸识别系统的设计与实现5脸识别检测是指对于任意一幅给定的图像,采用一定的策略对其进行搜索以确定其
7、中是否含有人脸,如果是,则返回人脸的位置、大小和姿态,接着对人脸进行识别。它是一个复杂的具有挑战性的模式检测问题。同时,人脸检测要走向实际应用,精度和速度是亟需解决的两个关健问题4,自20世纪90年代以来,人脸检测的精度得到了大幅度的提高,但是速度却一直达不到应用系统用户满意的程度,为此研究者们付出艰辛的努力,直到21世纪VIOLA基于ADABOOST算法的人脸检测器的发表8,人脸检测的速度才得到了实质性的提高,该算法的发表也促进了人脸检测研究的进一步蓬勃发展。按照人脸识别的自动化程度,人脸识别的发展经历了以下三个阶段第一阶段是机械式识别阶段早期的人脸识别,是在已经得到一个正面人脸图像的基础上
8、进行的,以BERTILLON、ALLEN、PARKE为代表,主要研究人脸识别所需要的面部特征10。在BERTILLON的系统中,用一个简单的语句与数据库中的某一张脸相联系,同时与指纹分析相结合,提供了一个较强的识别系统。为了提高脸部识别率,ALLEN为待识别脸设计了一种有效且逼真的摹写。PARKE则用计算机实现了这一想法,并产生了较高质量的人脸灰度图模型。但是,这一阶段的人脸识别过程全部依赖于操作人员,没有实现系统的自动识别功能。第二阶段是人机交互式识别阶段这一阶段所采用的主要技术方案是基于人脸几何结构特征(GEOMETRICFEATUREBASED)的研究方法,此方法的思想是首先检测出眼、鼻
9、、嘴等脸部主要部件的位置和大小,然后利用这些部件的总体几何分布关系以及相互之间的参数比例来识别人脸,忽略了局部细微特征,更适合于粗分类。代表性工作有GOLDSTION、HARMON和LESK等人用几何特征参数来表示人脸正面图像。他们采用21维特征矢量表示人脸面部特征,并设计了基于这一特征表示法的识别系统。KAYA和KOBAYASHI则采用了统计识别的方法11,用欧氏距离来表示人脸特征如嘴唇与鼻子之间的距离,嘴唇的高度等。更进一步地,TKANAD设计了一个高速且有一定知识导引的半自动回溯识别系统,创造性地运用积分投影法从单幅图像上计算出一组脸部特征参数,再利用模式分类技术与标准人脸相匹配。KAN
10、AD的系统实现了快速、实时的处理,促进了人脸识别系统走向实际应用领域。不足的是,此类方法仍需要利用操作员的某些先验知识,仍然摆脱不了人的干预。基于OPENCV的视频人脸识别系统的设计与实现6第三阶段是真正的机器自动识别阶段20世纪90年代以来,人脸识别技术发展非常迅速,所提出的算法在较理想图像采集条件、用户配合、中小规模正面人脸数据库上达到了非常好的性能,也因此出现了若干知名的人脸识别商业公司,人脸识别的商业系统得到了进一步发展。从技术角度上看,2D人脸图像线性子空间判别分析、统计表观模型、统计模式识别方法是这一阶段内的主流技术。但是,主流的人脸识别技术在非约束环境下多姿态、遮挡等多种变化因素
11、,识别率下降非常快,不能满足实际应用。总体而言,目前建立一个鲁棒的人脸识别系统仍然是一个很困难的问题。非理想成像条件下(尤其是光照和姿态)、用户不配合、大规模人脸数据库上的人脸识别问题逐渐成为研究的热点问题。13人脸识别研究的意义人脸识别是机器视觉和模式识别领域最富有挑战性的课题之一,同时也具有较为广泛的应用意义。人脸识别技术是一个非常活跃的研究领域,它覆盖了数字图像处理、模式识别、计算机视觉、神经网络、心理学、生理学、数学等诸多学科的内容。如今,虽然在这方面的研究已取得了一些可喜的成果,但是FRT在实际应用中仍面临着很严峻的问题,因为人脸五官的分布是非常相似的,而且人脸本身又是一个柔性物体,
12、表情、姿态或发型、化妆的千变万化都给正确识别带来了相当大的麻烦。如何能正确识别大量的人脸并满足实时性要求是迫切需要解决的问题。14人脸识别的技术应用随着技术的进一步成熟和社会认同度的提高,人脸识别技术将应用在更多的领域。1电子护照及身份证。这或许是未来规模最大的应用,国际民航组织ICAO已确定,从2010年起,其118个成员国家和地区,必须使用机读护照,人脸识别技术是首推识别模式6,该规定已经成为国际标准。中国的电子护照计划公安部一所正在加紧规划和实施。2公安、司法和刑侦。如利用人脸识别系统和网络,在全国范围内搜捕逃犯。3自助服务。如银行的自动提款机,如果用户卡片和密码被盗,就会被他人冒基于O
13、PENCV的视频人脸识别系统的设计与实现7取现金。如果同时应用人脸识别就会避免这种情况的发生。4信息安全。如计算机登录、电子政务和电子商务。在电子商务中交易全部在网上完成,电子政务中的很多审批流程也都搬到了网上。而当前,交易或者审批的授权都是靠密码来实现,如果密码被盗,就无法保证安全。但是使用生物特征,就可以做到当事人在网上的数字身份和真实身份统一,从而大大增加电子商务和电子政务系统的可靠性7。新增加的技术简而言之,首先是人脸检测并提取出特征表达,随后再据此进行数据库对比,最后按照相似度排序返回结果。其实,人脸检测并不是新技术,相关研究已有三十年历史,然而直到去年底,百度才决定推动这一技术付诸
14、实施。全球60亿人口,人脸相关技术应用前景不可限量15主要章节内容和章节结构全文共分为五章,其具体内容如下第一章序言。主要介绍人脸识别的背景、国内外发展状况、研究的意义和应用前景。第二章概述人脸识别的技术框架和功能模块。第三章概述了人脸识别相关算法,介绍了本文基于OPENCV的视频人脸识别算法的设计。第四章概述了人脸检测相关算法,介绍了本文基于ADABOOST算法的人脸检测算法。第五章人脸识别系统原型的设计实现。介绍了本文设计的基于OPENCV的人脸识别原型系统的实现16本章小结本章概括性的介绍了人脸表情识别的背景、发展现状、应用需求。人脸识别在身份认证、信息安全、媒体娱乐、图像搜索方面的重要
15、应用。人脸检测是人脸信息处理领域中的一个重要课题,具有很高的学术价值和应用潜力;同时人脸检测又是一个极具挑战性的问题。本文研究其中最具普遍性,也是最困难的复杂背景下静止灰度图像中的人脸检测、以及在得到人脸区域后进行识别的问题。基于OPENCV的视频人脸识别系统的设计与实现82人脸识别系统的技术框架和功能模块21OPENCV简介OPENCV的全称是OPENSOURCECOMPUTERVISIONLIBRARY,OPENCV于1999年由INTEL建立,如今由WILLOWGARAGE提供支持。OPENCV是一个基于(开源)发行的跨平台计算机视觉库,可以运行在LINUX、WINDOWS和MACOS操
16、作系统上。它轻量级而且高效由一系列C函数和少量C类构成,同时提供了PYTHON、RUBY、MATLAB等语言的接口,实现了图像处理和计算机视觉方面的很多通用算法,它不依赖于其它的外部库,但可以使用某些外部库。OPENCV为INTELINTEGRATEDPERFORMANCEPRIMITIVESIPP提供了透明接口。这意味着如果有为特定处理器优化的的IPP库,OPENCV将在运行时自动加载这些库。OPENCV有几个显著的特点1免费、开源2速度快、代码优化3方便灵活的用户接口4跨平台WINDOWSLINUXMASOS5强大的图像和矩阵运算功能6统一的结构和功能定义本次设计所用的开发工具是MICRO
17、SOFTVISUALC60。VISUALC60是MICROSOFT公司推出的一种可视化编程工具。它支持多平台和交叉平台的开发,将各种编程工具如编辑器、连接器、调试器等巧妙的结合在一起,构成一个完美的可视化开发环境。用户无需通过繁杂的编程操作,即可完成WINDOWS下应用程序的编辑、编译、测试和细化等工作。22人脸识别的功能模块人脸捕获与跟踪功能人脸捕获是指在一幅图像或视频流的一帧中检测出人像并将人像从背景中分离出来,并自动地将其保存。人像跟踪是指利用人像捕获技术,当指定的人像在摄像头拍摄的范围内移动时自动地对其进行跟踪。基于OPENCV的视频人脸识别系统的设计与实现9人脸识别比对功能人脸识别分
18、核实式和搜索式二种比对模式。核实式是对指将捕获得到的人像或是指定的人像与数据库中已登记的某一对像作比对核实确定其是否为同一人。搜索式的比对是指,从数据库中已登记的所有人像中搜索查找是否有指定的人像存在。人脸的建模与检索可以将登记入库的人像数据进行建模提取人脸的特征,并将其生成人脸模板(人脸特征文件)保存到数据库中9。在进行人脸搜索时(搜索式),将指定的人像进行建模,再将其与数据库中的所有人的模板相比对识别,最终将根据所比对的相似值列出最相似的人员列表。真人鉴别功能系统可以识别得出摄像头前的人是一个真正的人还是一幅照片。以此杜绝使用者用照片作假。此项技术需要使用者作脸部表情的配合动作。图像质量检
19、测图像质量的好坏直接影响到识别的效果,图像质量的检测功能能对即将进行比对的照片进行图像质量评估,并给出相应的建议值来辅助识别。23人脸识别的技术框架本文的人脸识别系统的功能有人脸图像采集、人脸图像预处理、人脸图像训练、人脸图像识别、增加人脸图像、删除人脸图像和修改人脸图像信心等。按照人脸识别的功能,本文的人脸识别系统框架可以用图21来表示。基于OPENCV的视频人脸识别系统的设计与实现10图21人脸识别系统框架1采集人脸图像。使用摄像机对进入重要场所的合法人员进行人脸图像的采集,采集图像时保持拍摄环境的一致性,同时拍摄的图像要保持人脸信息的完成性。2预处理人脸图像。对采集到的人脸图像进行统一的
20、处理,将其处理为大小统一,存储格式一致的灰度图像。3训练人脸图像。对预处理的人脸图像进行人脸特征的提取,通过多次的人脸特征的选择,最终用选中的人脸特征作为识别时的依据。4识别人脸图像。识别阶段的前期处理和训练阶段是一样的,也需要首先采集需要识别的人脸图像,通过相同的预处理和人脸特征选择方法,提取和选择人脸的特征,然后将这些特征和数据库中已经存在的人脸特征进行对比匹配,然后输出确定该人员是否是合法的人员。5增加、删除、修改人脸图像。即对数据库中的人脸图像进行增加、删除、和修改等操作。人脸识别系统训练完成后,对人脸识别时的基本过程如图22所示。图22人脸识别基本过程人脸识别系统在对人脸图像进行识别
21、之前必须首先对需要进行识别的合法人员的人脸图像进行训练,训练后的系统才可以用来完成识别的功能。其中识别时登录身份验证退出采集人脸图像预处理人脸图像添加人脸图像修改人脸图像删除人脸图像识别人脸图像训练人脸图像采集人脸图像人脸图像匹配识别人脸图像特征提取人脸图像预处理基于OPENCV的视频人脸识别系统的设计与实现11训练过的人员的人脸图像是系统默认合法的人员,因此可以以此来限制进入重要场所的人员。在实际的应用过程中,人脸识别系统的应用框架如图23所示。图23应用技术框架图人脸识别不管是训练阶段还是识别阶段都首先需要采集人脸图像,然后对人脸图像进行预处理、特征提取、然后再进行训练和识别,最后形成训练
22、结果或识别结果,其中训练阶段和识别阶段使用的数据不同。24本章小结本章介绍了人脸识别系统的技术框架和功能模块,人脸检测具有简单、方便、成本低、识别速度快等优点。人脸识别包括三个方面的内容人脸检测、人脸对比和人脸跟踪。其识别过程分为三步首先建立人脸的面像档案,其次获取当前的人体面像,最后用当前的面纹编码与档案库存的比对。3人脸识别的方法31人脸识别算法原理人脸识别算法的原理系统输入一般是一张或者一系列含有未确定身份的人脸输入训练集人脸图像图像预处理神经网络训练特征提取特征提取输入检测集人脸图像图像预处理决策输出神经网络分类器基于OPENCV的视频人脸识别系统的设计与实现12图像,以及人脸数据库中
23、的若干已知身份的人脸图象或者相应的编码,而其输出则是一系列相似度得分,表明待识别的人脸的身份。32常用人脸识别方法人脸识别包括两个方面一是人脸检测和定位,二是人脸识别。人脸识别系统包括图像摄取、人脸定位、图像预处理、以及人脸识别。人脸识别的方法有很多。一是基于特征点的人脸识别方法,该方法是基于KL变换的人脸识别方法,这种方法需要较多的训练样本,而且完全是基于图像灰度的统计特性。二是弹性图匹配的人脸识别方法,这种方法在二维的空间中定义了一种对于通常的人脸变形具有一定的不变性的距离,并采用属性拓扑图来代表人脸,拓扑图的任意顶点均包含一特征向量,用来记录人脸在顶点位置附近的信息。三是基于神经网络的人
24、脸识别方法,该方法模拟人类大脑神经网络的结构和工作机理,构建一种类似人脑的计算模型。本文主要用基于神经网络的方法进行人脸识别,下一节将详细介绍这一方法。其次还有线段HAUSDOR距离(LHD)的人脸识别方法和支持向量机的人脸识别方法。33基于神经网络的人脸识别方法人工神经网络是通过模拟人类大脑神经网络的结构和工作机理,构建一种类似人脑的计算模型。人工神经网络的识别方法在人脸识别中的应用有很长的历史,它有其特殊的适合于人脸识别的优势。它不像其他的方法那样要用一套由人来确定的规则,同时也避免了复杂的特征提取工作,他能根据有代表性的样本进行学习。神经网络以并行方式处理信息,如果能用硬件实现,就能显著
25、提高速度。神经网络在人脸识别、性别识别中都有广泛的应用。人工神经网络进行人脸识别主要有两种结构。第一,为所有已知人脸建立一个神经网络可对所有已知人脸进行分类和识别。这种结构要求用所有人脸的特征对网络进行训练,训练好的网络连接权值是所有人脸特征的隐含表示,这种形式只需一个神经网络,但网络规模很大,权系数要求较多,存储量要求也较大,训练时间较长。由于系统每增加一个人,都要对网络经行重新训练,因此这种系统性能不佳。第二,对每一个人建立一种神经网络这种神经网络的目的是区分每基于OPENCV的视频人脸识别系统的设计与实现13一对人,因此只需对着一对人进行训练,网络的权系数隐含区分这一对人脸的个性特征,固
26、网络的规模小,权系数少,存储量和训练时间也少。同时,对每一对人的训练只需这一对人的特征,与其他人无关,固系统具有良好的模块化结构,可扩展性能好。本节介绍基于多层感知器神经网络的人脸识别方法。多层感知器是一个多层前馈神经网络,由输入层、一个或多个隐层以及一个输出层组成,其学习算法采用BP算法。多层感知器在训练的过程中,第一层权值决定了超平面在空间的取向,网络的不断训练,标志着由超平面所形成的超空间在不断的变化。在隐层数足够多的情况下,由超平面所形成的线性区域将无穷多,其第一隐层可以在模式空间实现各种超平面分割;第二隐层实现第一隐层的逻辑“与”运算,即将其分割的模式超平面空间按类别进行空间划分;而
27、输出层由第二隐层的输出值进行逻辑“或”运算,即将进行逻辑“与”运算的属于同一类的超平面进行归类。BP神经网络分三层,即输入层、隐层、输出层。记输入层神经元数为I,隐含层神经元数为H,输出层神经元数为J。对于人脸识别数为P的人脸识别问题来说,网络输出层的神经元数J就取为人脸类别数P,对于任意一个人脸测试图像,可根据网络输出层输出矢量的最大分量分类。人脸图像矢量的维数N通常比较大,而训练样本数K通常比较小,所以设计用于人脸识别的BP神经网络分类器比较困难。为了实现具有推广能力强的BP分类器,可以从特征压缩着手,压缩输入矢量的维数,并适当的选择隐层的神经元数。为了加快网络训练的收敛速度,可对输入矢量
28、做标准化处理,并给个连接权适当的赋予初值。网络的隐层可以认为是输入层和隐层之间的连接权值的“自组织化”对输入模式进行特征抽取,并将抽取出的特征传递给输出层,关于隐层的神经元数H的选取尚无理论上的指导。一般地,隐层的神经元数H大,网络的冗余性大,增加了网络一次训练的训练时间,尽管使网络收敛的训练次数会减少,但会降低分类器的推广能力。为了保证分类器的稳定性,显然网络未知连接权值的个数不宜超过训练样本值的个数,所以隐层的神经元数H应该满足一下要求(I1)HH1KI人脸识别网络输出层的神经元数J取为人脸类别数P,而通过特征压缩网络输入层的神经元数I也是取为人脸类别数P,这样可按下式选取隐层的神经元数H
29、。基于OPENCV的视频人脸识别系统的设计与实现14HK/2即网络隐层的神经元数是取为训练样本数的一半。由于BP常采用的SIGMOID激励函数的曲线两端平坦,中间部分变化剧烈,为了提高网络的收敛速度对网络输入矢量的每个分量化为均值为0,方差为1的标准形式。一般认为连接权值初值可在区间05,05内随机选取。对人脸校准图像用类间相关矩阵作为KL变换的产生矩阵,可抽取出P维的识别特征,将P维的识别特征矢量做为网络的输入矢量,每训练一个样本,修正一次连接权值。训练好网络后,就可用它对新输入的人脸进行识别。34本章小结本章主要介绍了人脸识别的一些方法以及人脸识别和生物特征识别的区别,主要的人脸识别方法有
30、几何特征的人脸识别、基于特征脸的人脸识别方法、神经网络的的人脸识别、弹性匹配的人脸识别方法、线段HAUSDOR距离(LHD)的人脸识别方法和支持向量机的人脸识别方法。本文主要用基于神经网络的人脸识别方法进行人脸识别。4人脸检测核心算法41人脸检测算法在人脸识别中的作用人脸检测是人脸识别中的一项关键技术,人脸检测是指判定任意给定一幅图像或者一组图像序列中是否存在人脸。如果存在,则返回其位置和各个人脸所占的区域。在输入图像中确定所有的人脸存在的位置,大小,位姿的过程。是自动人脸识别系统的一个关键环节。人脸检测最初是随着人脸识别的研究而提出的,但随着计算机视觉技术的发展,人脸检测受到越来越高的重视而
31、作为一个独立的课题提出。人脸检测长期以来受检测的精度和检测的速度困扰,直到上世纪90年代,由VIOLA提出的基于ADABOOST算法极大地提高了人脸检测地速度的和精度,使人脸检测技术真正走向实用。人脸识别技术是基于人的脸部特征,对输入的人脸图象或者视频流进行检测,首先判断其是否存在人脸,如果存在人脸,则进一步的给出每个脸的位置、大小和各基于OPENCV的视频人脸识别系统的设计与实现15个主要面部器官的位置信息。并依据这些信息,进一步提取每个人脸中所蕴涵的身份特征,并将其与已知的人脸进行对比,从而识别每个人脸的身份。42人脸检测算法人脸检测的算法有很多。一是基于模版匹配的算法,其核心思想是利用人
32、的脸部特征规律建立一个立体可调的模型框架,在定位出人的脸部位置后用模型框架定位和调整人的脸部特征定位,解决人脸识别过程中的观察角度、遮挡和表情变化等影响因素。二是主成份分析,它具有描述性强、计算代价小、易实现等特点。三是主成份分析法,该方法随着样本的增加需要不断的舍弃一些PC以维持子空间维数不变,因而该方法精度稍差。四是ADABOOST算法,该算法是目前检测最为成功的算法之一,检测速度快。下一节将详细介绍这一算法。43ADABOOST算法PAULVIOLA和MICHAELJONES于2001年将ADABOOST算法应用于人脸检测中,其基本思想是针对不同的训练集训练同一个分类器(弱分类器),然后
33、把这些不同训练集上的得到的分类器联合起来,构成一个最终的强分类器。ADABOOST算法中不同的训练集是通过调整每个样本对应的权重来实现的。开始时,每个样本对应的权重是相同的,对于H1分类错误的样本,加大其对应的权重;而对于分类正确的样本,降低其权重,这样分错的样本就被突出出来,从而得到一个新的样本分布U2。在新的样本分布下,再次对弱分类器进行训练,得到弱分类器H2。依次类推,经过T次循环,得到T个弱分类器,把这T个弱分类器按一定的权重叠加(BOOST)起来,得到最终想要的强分类器。每个HAAR特征对应看一个弱分类器,但并不是任何一个HAAR特征都能较好的描述人脸灰度分布的某一特点,如何从大量的
34、HAAR特征中挑选出最优的HAAR特征并制作成分类器用于人脸检测,这是ADABOOST算法训练过程所要解决的关键问题。训练系统总体框架,由“训练部分”和“补充部分”构成。依据系统框架,如图41,本文的训练系统可分为以下几个模块1以样本集为输入,在给定的矩形特征原型下,计算并获得矩形特征集基于OPENCV的视频人脸识别系统的设计与实现162以特征集为输入,根据给定的弱学习算法,确定闽值,将特征与弱分类器一一对应,获得弱分类器集3以弱分类器集为输入,在训练检出率和误判率限制下,使用ADABOOST算法,挑选最优的弱分类器构成强分类器4以强分类器集为输入,将其组合为级联分类器5以非人脸图片集为输入,
35、组合强分类器为临时的级联分类器,筛选并补充非人脸样本。基于OPENCV的视频人脸识别系统的设计与实现17图41训练系统框架训练过程分为3个步骤首先需要提取HAAR特征;然后将HAAR特征转化成对应的弱分类器;最后从大量的弱分类器中迭代选择出最优弱分类器。1提取HAAR特征确定阀值,由矩形特征生成对应的弱分类器矩形特征原型非人脸样本集强分类器集非人脸图片集计算样本积分图补充非人脸样本若分类器集挑选最优弱分类器,调用ADABOOST算法训练强分类器特征集人脸样本集计算矩形特征值训练部分补充部分基于OPENCV的视频人脸识别系统的设计与实现18图42常用的四中HAAR特征常用的HAAR特征有4种,如
36、图42所示。当然也可以在这4种特征的基础上设计出更多、更复杂的特征,上述4种特征的总个数超过了160000个。这样庞大的数字给后续的迭代训练工作带来了庞大的计算量,直接导致ADABOOST算法训练过程极为费时,这恰恰是算法需要改进的关键问题之一。2生成弱分类器每一个HAAR特征都对应着一个弱分类器,每一个弱分类器都是根据它所对应的HAAR特征的参数来定义的。利用上述HAAR特征的位置信息,对训练样本进行统计就可以得到对应的特征参数。ADABOOST算法中所训练的弱分类器是任何分类器,包括决策树,神经网络,隐马尔科夫模型,如果弱分类器是线性神经网络,那么ADABOOST算法每次将构造多层感知器的
37、一个节点。3采用ADABOOST算法选取优化的弱分类器。ADABOOST算法训练过程就是挑选最优弱分类器,并赋予权重的过程。44本章小结本章主要讲了人脸识别常见算法以及人脸识别算法的原理,有二维人脸识别算法和三维人脸识别算法。二维人脸识别算法有基于模版匹配的方法、基于奇异值特征方法、子空间分析法、主成分分析法(PCA)、积分图像特征法(ADABOOST)。ADABOOST算法应用于人脸检测中,其基本思想是针对不同的训练集训练同一个分类器,然后把这些不同训练集上的得到的分类器联合起来,构成一个最终的强分类器。基于OPENCV的视频人脸识别系统的设计与实现195原型系统实现51系统模块划分该系统共
38、分为六个功能模块(1)图像获取模块。该模块主要是从摄像头捕捉到的或者用户设定的路径获取图片,随后能够在用户的软件的界面当中显示出来。(2)图像预处理模块。图像预处理就是对获取的图像进行适当的处理,使得无用信息被剔除,有用信息被保存并增强效果。(3)人脸区域获取。该模块主要是从获得的图像中检测发现是否有人脸的存在并将人脸区域用绿色圆圈圈出来。(4)人脸定位模块。人脸定位是将描述人脸特征的关键点(如两眼中点、鼻尖、嘴角等等)标记出来。利用眼睛的对称性以及五官之间的相对关系可以迅速的定位各器官。(5)特征提取模块。再找到眼睛嘴巴的中心以及鼻尖位置之后,要计算出两眼之间的距离以及眼睛的倾斜度。接着用矩
39、形标出每一个特征。随后用特定算法来标定特定值并存入后台数据库。(6)识别模块。将后台数据库中的特定值与人脸数据库中的数据进行比对,确定与该特征值最接近的参数,如果该参数在允许误差范围内就可以认为其与人脸数据库中的某个信息相匹配。接着从人脸库中提取出该人的相关信息,并显示出来。如果不在误差范围内,那么就认为是新的人脸,并会提示是否存入新的人脸库。52模块实现421系统运行流程图图51系统运行流程图图像预处理检测有无人脸对人脸进行定位并标出关键部位启动系统进入人脸检测界面点击摄像键拍照保存特征提取对比识别退出基于OPENCV的视频人脸识别系统的设计与实现20422系统的功能界面(1)系统的主界面。
40、系统的主界面主要有四个按钮组成。点击第一个就可以人脸识别与检测的进程了。点击第二个进入人脸库管理界面,实现对人脸库的添加删除等操作。第三个按钮和第四个按钮的功能分别是进行日志管理和退出系统。如图52所示。图52系统主界面(2)人脸库界面。在人脸库管理界面,可以添加、删除、修改人员信息的操作,也可以自动或者手动提取人脸特征,以及进行人脸训练。具体功能界面如下53所示。图53人脸库界面基于OPENCV的视频人脸识别系统的设计与实现21(3)检测与标注界面。系统功能包括人脸检测、特征标注、特征提取、人脸识别四个部分。启动系统后进入人脸检测界面,点击摄像键后进入如下54界面进行人脸区域检测、图像预处理
41、、特征标注、特征提取等步骤。特征提取与人脸识别在特征标注完成后进行的,而且是自动的无需手动。图54检测与标注界面在启动系统后可以手动载入指定图像,也可以由摄像头自动载入图像。首先检测图片中是否有人脸存在(用到了ADABOOST算法),如果没有那么就提示用户手动输入或者是否等待摄像头读入。接着对图像进行预处理(比如灰度化等),然后将人脸大致范围用圆圈圈出来。最后就可以进行边缘提取和特征标注了。423实验结果及分析本文采用ADABOOST算法来实现对人脸的检测,其重点在于对弱分类器的选取。所以在前期训练的时候,训练样本集的选取就显得很重要。本文使用MIT样本库,它有人脸样本2052张,非人脸图片5
42、021张。此样本库中,各样本尺寸相同,只将正面、正向、无遮挡的人脸图片归入人脸图片训练集。用本库训练出来的强分类器只对此类图片敏感。由于特征数量过于巨大,所以在训练的时间空间成本都非常巨大。必须进行优化。为了提高训练速度只能减少特征数量,可以在特征生基于OPENCV的视频人脸识别系统的设计与实现22成阶段,人为地提出剔除,或者在训练阶段动态的减少。效果如下55所示。图45检测结果该图总数15/漏检0/错检553本章小结本章介绍人脸识别系统原型的实现,共划分为六个模块图像获取模块、图像预处理模块、人脸区域获取模块、人脸定位模块、特征提取模块和识别模块。接着介绍原型系统的实现,首先启动系统进入人脸
43、检测界面,点击摄像键摄像并保存,对图像预处理检测有无人脸,对人脸进行定位并标出关键部位,提取特征与数据库中的特征进行对比识别身份。基于OPENCV的视频人脸识别系统的设计与实现23总结与展望本文讨论了人脸检测的研究背景、研究意义、发展前景。主要介绍了人脸识别的方法、人脸检测的常见算法。最后,采用了ADABOOST算法实现了基于OPENCV的人脸检测系统。人脸检测在国防军事、防火防盗、制度考勤、身份识别等方面有着重要的应用。但是该技术仍然不够成熟,在思想和算法上面还需要不断的改进,以提高识别的准确率。随着对人脸识别技术的不断深入研究,我相信人脸识别技术在不久的将来一定能够得到更广泛的应用。本次毕
44、设我收获很大,喜不胜收,希望今后能够学习相关知识,更加深入的学习几种编程语言,多做实际项目,将理论用于实践,以便提高自己的综合素质。基于OPENCV的视频人脸识别系统的设计与实现24参考文献1周德华,毛敏峰,徐浩一种多人脸跟踪算法的研究与实现J,电视技术,2005,275588902王伟张佑生方芳人脸检测与识别技术综述J2006,53高建坡,王煜坚,杨浩等一种基于KL变换的椭圆模型肤色检测方法J电子与信息学报2007,V0129,NO74李刚,高政、人脸自动识别方法综述、计算机应用研究、2003,VOL8495高建坡,王煜坚,杨浩等一种基于KL变换的椭圆模型肤色检测方法J电子与信息学报2007
45、,V0129,NO76高建坡视频序列中的人脸检测与跟踪算法研究东南大学博士学位论文2007,37基于五官特征定位的人脸识别技术在防盗门中的应用D中国海洋大学20068HUANGFJ,CHENTTRACKINGOFMULTIPLEFACESFORHUMANCOMPUTERINTERFACESANDVIRTUALENVIRONMENTSCIEEEINTLCONFONMULTIMEDIAANDEXPONEWYORK,JULY20009张翠平,苏光大人脸识别技术综述中国图像图形学报J2000年11期10VIOLAP,JONESMRAPIDOBJECTDETECTIONUSINGABOOSTEDCASCADEOFSIMPLEFEATURECINPROCEEDINGSOFIEEECONFERENCEONCOMPUTERVISIONANDPATTERNRECOGNITION,KAUAI,HAWAII,USA,2001,1I51L51811VIOLAP,JONESMJ、ROBUSTREALTIMEFACEDETECTION、INTERNATIONALJOURNALOFCOMPUTERVISION572,137154,200412张宏林VISUALC数字图像模式识别技术及工程实践北京人民邮电出版社,2003年4月