您好,欢迎访问三七文档
当前位置:首页 > 机械/制造/汽车 > 汽车理论 > 多用途人脸识别系统的设计与实现解析
2007,43(20ComputerEngineeringandApplications计算机工程与应用1引言911事件的发生和国际上普遍出现的恐怖袭击事件,促进了生物特征识别领域研究的快速发展。在众多生物特征识别技术中,人脸识别因为其普遍性、易采集性、高接受性而受到了关注。自上世纪六七十年代起的三十年间,国内外众多的科研机构和科学工作者投身到了人脸识别的研究领域当中,取得了不少令人欣喜的成果,也出现了一些人脸识别系统[2 ̄7]。本文面向算法研究和实时应用建立了一个多用途人脸识别系统,系统参照BioAPI[1]规范设计,即可用作实验室环境下的算法测试,也可作为实际环境中自动智能监控。2系统设计2.1系统设计目标本系统要兼顾两个应用,即实时监控和算法研究,前者要求系统的实时性、鲁棒性和稳定性,后者要求系统具有兼容性(设定标准接口,以面向不同研究人员应用、灵活性(可以针对不同数据源对不同算法进行阶段性测试、高效性。兼顾上述要求,系统采用了基于模块的思想进行设计。2.2系统结构设计按照功能,人脸识别系统包括五个模块:人机交互界面模块、检测模块、正则化模块、识别模块和注册模块,为了同时保证系统的实时性和灵活性,采用多线程设计的思想,将上述模块置于不同的线程上。人机交互界面模块负责接受用户请求,控制其它各模块的加载与启停,调整各模块参数以及获取源数据等功能,该模块所在的线程为系统主线程。检测模块负责完成从输入图像(或视频序列中快速准确地定位人脸。正则化模块将去除光照和姿势对人脸图像的影响,识别模块负责完成人脸的最终识别。上述三个模块位于不同的、相互独立的线程上。注册模块将正则化后的人脸图像保存为人脸模板以备识别算法使用,因其没有实时性要求,因此可以将其统一到主线程上,以降低系统的开销。系统总体结构如图1所示。多用途人脸识别系统的设计与实现尹璐1,何晓光2,毋立芳1,田捷2YINLu1,HEXiao-guang2,WULi-fang1,TIANJie21.北京工业大学电子信息与控制工程学院神经网络与图像识别实验室,北京1000222.中国科学院自动化研究所复杂系统与智能科学重点实验室,北京1000801.LabofNNandIR,CollegeofElectronicInformationandControlEngineering,BeijingUniv.ofTechnology,Beijing100022,China2.KeyLabofComplexSystemsandIntelligenceScience,InstituteofAutomation,ChineseAcademyofSciences,Beijing100080,ChinaE-mail:januaryice09@bjut.edu.cnYINLu,HEXiao-guang,WULi-fang,etal.Designandimplementationofmulti-purposefacerecognitionsystem.ComputerEngineeringandApplications,2007,43(20:225-228.Abstract:Recentlyfacerecognitionresearchisbecomingahotsubject.Inthepaper,amulti-purposefacerecognitionsystemisproposed.Itcanbeusedforintelligentsurveillanceandalgorithmsdevelopment.Thesysteminvolvesthreemodels:facedetection,facealignmentandfacerecognition.Inthesystem,aninternationalstandard,BioAPI,isreferenced,whichensurestheindustrycom-patibility,andfacilitatetheapplicationofalgorithmsandthesystem.Keywords:facerecognitionsystems;BioAPI;facedetection;facealignment摘要:人脸识别技术是近年来研究的一个热点,众多的人脸识别系统应运而生。提出了一种多用途人脸识别系统,可用作实际环境中智能监控,也可用作实验室环境下的算法测试。该系统整合了人脸检测、正则化、识别等模式识别处理技术,可以在复杂环境下实时、鲁棒地进行人脸识别。系统设计过程中引入了BioAPI国际标准,实现了对相关行业标准的兼容性,便利了算法及系统的实用化。关键词:人脸识别系统;BioAPI;人脸检测;人脸正则化文章编号:1002-8331(200720-0225-04文献标识码:A中图分类号:TP3912252007,43(20ComputerEngineeringandApplications计算机工程与应用系统运行时,数据(一般为图像或视频序列首选流入人机交互模块,并在该模块中被封装成利于后续模块处理的形式。而后,封装好的数据在线程控制器的引导下流向缓存。与此同时,三个算法线程在不断地检查缓存器,一旦有数据进入,算法线程将开始对数据进行处理。任意一个算法线程将产生两个结果,一个用来在交互界面中显示,而另一个将作为后继操作的输入。图中实线箭头就标明了一个典型的数据流:(1数据从交互界面流出后被送往缓存A;(2检测线程发现缓存A中有数据后便开始执行,产生检测结果;(3一个检测结果被送往缓存B,另一个被送往同步机构,准备在交互界面上显示;(4正则化模块与识别模块也将执行相同的步骤;(5三个模块的输出结果经同步后,显示在交互界面上,如图7(b所示。当然这不是唯一的数据流动方式。当用户进行正则化算法测试时,数据从交互界面流出后将直接被送往缓存B;当用户进行检测算法测试时,检测的结果将被直接丢进回收站,而不是送往缓存B,这样正则化线程就不会被执行,系统运行界面只显示检测结果,如图7(a所示。图1中的虚线箭头表示可能的数据流方向。2.3开发环境选择C++语言是一种高效的编程语言,可直接调用Windows操作系统的API,是编写Windows可视化应用程序的理想工具。这里选择Borland公司的C++Builder作为系统开发境。3系统内置算法设计本系统中自带了一整套人脸识别算法,在默认情况下(即没有可替换的算法时,系统将自动调用下述人脸检测、正则化和识别算法。性能优良的算法是本系统实时性、鲁棒性的保证。3.1人脸检测人脸检测就是给定任意的一幅图像,要确定其中是否包括有人脸,如有,对每个人脸在图像中的位置及范围进行标记(如对图像中每一个人脸标记它的外切矩形。人脸检测的方法很多,各有优缺点。本文采用了PaulViola和MichaelJones于2001年提出的基于类Haar特征的Adaboost的方法[8]。该方法检测速度快,基本可以满足实时性要求。算法在训练阶段要进行:(1定义一组基本特征,然后让每个基本特征在24×24的图像窗口内任意缩放、平移以得到大量特征,这类特征简单、丰富,可有效地表征人脸与非人脸区域的区别;(2利用AdaBoost算法从众多简单分类器(即特征中选择分类能力较强的作为弱分类器(weakclassifier,多个弱分类器通过线性组合构成强分类器(stageclassifier,最后采用一个多分类器级联的结构(classifiercascade作为最终的分类器,用以检测人脸。在检测过程中采用一个固定大小的窗口,通过滑动窗口抽取图像上的不同区域,送入分类器,用积分图像的方法快速地计算出特征值,从而做出判决。3.2人脸正则化人脸本质上是一个三维对象,不同姿势下的人脸图像是三维人脸在三维空间几何变形后在二维平面上投影的结果。另外,同一人脸肤色区域满足朗伯反射特性,光照变化带来的人脸图像变化同样可以通过三维空间人脸表面反射特性的变化反映出来。因此,从三维人脸模型入手,可以将人脸姿势变化统一为三维空间的线性变换,这样就可以解决人脸正则化问题。总体的流程如图2所示。对于输入的光照和姿势变化的人脸图像,提取其特征点位置,并根据特征点位置估计人脸姿势;结合特征点位置和人脸姿势,得到与输入人脸图像相一致的特定人脸模型;由特定人脸模型和人脸姿势,结合输入人脸图像,估计得到光源方向和人脸表面的反射系数;最后,由特定人脸模型、光源方向和人脸表面的反射系数,结合输入人脸图像,得到正则化的标准人脸图像。正则化去除了绝大部分光照和姿势对人脸图像的影响,保证了系统在复杂环境下的鲁棒性。3.3人脸识别人脸识别模块实现将正则化后的人脸图像进行分类识别的功能。由于人脸图像是一个高维的视觉模式,直接对人脸图像进行分类几乎是不可办到的。为了解决这个问题,本系统首先利用了零子空间(NLDA,NullspaceLinearDiscriminantAnalysis的方法对样本进行降维处理。经过NLDA降维后的人脸图像就变成了一个较低维的向量,本系统就将对这些低维的向量进行识别。最近邻法(NN是较常用的模式识别方法,这种方法计算复杂度低,运算速度快,本系统正是采用了这种方法。4系统内部接口设计为了提高系统的兼容性,最有效的途径就是使用统一接口,本系统选用当前生物特征识别领域中被广泛接受的接口标准BioAPI。4.1BioAPI简介随着生物特征识别产品的面世,每个制造商都使用各自独有的算法和特定接口,这种接口的增多只会减缓生物认证技术的应用,因而有必要采用通用接口。在此情况下,1998年9月由Compaq、IBM、IdenticatorTechnology、Microsoft、Novell等著名公司发起成立了BiometricsAPIConsortium(BioAPI,其出发点是制定生物特征识别(BiometricsAPI工业标准。2001年3月公布BIOAPI规模版本1.1和其它参考实施方案,2002年提交给INCITTS(信息技术标准化国际委员会,规范定义了一系列高层抽象(如注册、比对和识别、基本功能(如图像捕获、处理、特征值匹配和模板生成以及生物特征识别信息记录格式(BIR。BioAPI系统结构如图3所示。4.2BioAPI中对数据的封装在BioAPI中定义了一种叫做BIR(BiometricIdentificationRecord,生物特征识别信息记录格式的数据结构。这种数据结构可以封装任何一种与生物特征识别算法有关的数据。在一个基于BioAPI标准的应用系统中,所有数据都将以BIR的形式出现。BIR的结构如图4所示。2262007,43(20ComputerEngineeringandApplications计算机工程与应用表1本文定义的BIR数据体名称功能ID值Length值SImage描述一幅图像016SFace描述一张一脸164STemplate描述一个人脸模板220从图中不难看出,一个BIR可以分为三个部分:BIR头、数据体和签名。其中BIR头包含BIR的长度、版本号、数据类型以及用途等信息。数据体是真正的生物特征识别数据,它可以由BSP(BiometricServiceProvider,生物特征识别算法的提供者自选定义。BIR签名是可选的,可以由BSP任意定制。4.3系统内部数据封装形式在本文中采用了上述数据类型的定义,将BIR作为系统内部数据流动和存储的唯一形式。定义了3种数据体,分别用来表示图像、人脸及人脸模板。如表1所示。5系统多线程设计如本文2.1节所述,为了同时保证系统的实时性和灵活性,采用多线程编程方式。系统中将人机交互界面、检测算法、正则化算法、识别算法、视频捕捉等功能模块置于不同线程上。(1人机交互界面线程人机交互界面线程是系统的主线程,它即要实时地响应用户按键,又要负责指导数据的流向。同时该线程还负责重绘界面,将算法线程产生的结果显示到屏幕上。(2算法线程检测线程、正则化线程、识别线程统称为算法线程,它们有着类似的结构与运行模
本文标题:多用途人脸识别系统的设计与实现解析
链接地址:https://www.777doc.com/doc-4096762 .html