多用途人脸识别系统的设计与实现解析.docx
- 文档编号:9560295
- 上传时间:2023-02-05
- 格式:DOCX
- 页数:12
- 大小:27.52KB
多用途人脸识别系统的设计与实现解析.docx
《多用途人脸识别系统的设计与实现解析.docx》由会员分享,可在线阅读,更多相关《多用途人脸识别系统的设计与实现解析.docx(12页珍藏版)》请在冰豆网上搜索。
多用途人脸识别系统的设计与实现解析
2007,43(20ComputerEngineeringandApplications计算机工程与应用1引言
911事件的发生和国际上普遍出现的恐怖袭击事件,促进
了生物特征识别领域研究的快速发展。
在众多生物特征识别技术中,人脸识别因为其普遍性、易采集性、高接受性而受到了关注。
自上世纪六七十年代起的三十年间,国内外众多的科研机构和科学工作者投身到了人脸识别的研究领域当中,取得了不少令人欣喜的成果,也出现了一些人脸识别系统[2 ̄7]。
本文面向算法研究和实时应用建立了一个多用途人脸识别系统,系统参照BioAPI[1]规范设计,即可用作实验室环境下的算法测试,也可作为实际环境中自动智能监控。
2系统设计
2.1系统设计目标
本系统要兼顾两个应用,即实时监控和算法研究,前者要求系统的实时性、鲁棒性和稳定性,后者要求系统具有兼容性(设定标准接口,以面向不同研究人员应用、灵活性(可以针对不同数据源对不同算法进行阶段性测试、高效性。
兼顾上述要求,系统采用了基于模块的思想进行设计。
2.2系统结构设计
按照功能,人脸识别系统包括五个模块:
人机交互界面模
块、检测模块、正则化模块、识别模块和注册模块,为了同时保证系统的实时性和灵活性,采用多线程设计的思想,将上述模
块置于不同的线程上。
人机交互界面模块负责接受用户请求,控制其它各模块的加载与启停,调整各模块参数以及获取源数据等功能,该模块所在的线程为系统主线程。
检测模块负责完成从输入图像(或视频序列中快速准确地定位人脸。
正则化模块将去除光照和姿势对人脸图像的影响,识别模块负责完成人脸的最终识别。
上述三个模块位于不同的、相互独立的线程上。
注册模块将正则化后的人脸图像保存为人脸模板以备识别算法使用,因其没有实时性要求,因此可以将其统一到主线程上,以降低系统的开销。
系统总体结构如图1所示。
多用途人脸识别系统的设计与实现
尹璐1,何晓光2,毋立芳1,田捷2
YINLu1,HEXiao-guang2,WULi-fang1,TIANJie2
1.北京工业大学电子信息与控制工程学院神经网络与图像识别实验室,北京1000222.中国科学院自动化研究所复杂系统与智能科学重点实验室,北京100080
1.LabofNNandIR,CollegeofElectronicInformationandControlEngineering,BeijingUniv.ofTechnology,Beijing100022,China2.KeyLabofComplexSystemsandIntelligenceScience,InstituteofAutomation,ChineseAcademyofSciences,Beijing100080,ChinaE-mail:
januaryice09@bjut.edu.cnYIN
Lu,HEXiao-guang,WU
Li-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
中图分类号:
TP391
225
2007,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所示。
226
2007,43(20ComputerEngineeri
ngand
Applications计算机工程与应用表1
本文定义的BIR数据体
名称功能ID值Length值
SImage描述一幅图像016
SFace描述一张一脸164
STemplate
描述一个人脸模板
220
从图中不难看出,一个BIR可以分为三个部分:
BIR头、数
据体和签名。
其中BIR头包含BIR的长度、版本号、数据类型以及用途等信息。
数据体是真正的生物特征识别数据,它可以由BSP(BiometricServiceProvider,生物特征识别算法的提供者自选定义。
BIR签名是可选的,可以由BSP任意定制。
4.3系统内部数据封装形式
在本文中采用了上述数据类型的定义,将BIR作为系统内
部数据流动和存储的唯一形式。
定义了3种数据体,分别用来表示图像、人脸及人脸模板。
如表1所示。
5系统多线程设计
如本文2.1节所述,为了同时保证系统的实时性和灵活
性,采用多线程编程方式。
系统中将人机交互界面、检测算法、正则化算法、识别算法、视频捕捉等功能模块置于不同线程上。
(1人机交互界面线程
人机交互界面线程是系统的主线程,它即要实时地响应用户按键,又要负责指导数据的流向。
同时该线程还负责重绘界面,将算法线程产生的结果显示到屏幕上。
(2算法线程
检测线程、正则化线程、识别线程统称为算法线程,它们有着类似的结构与运行模式。
当系统启动时,三个算法线程启动并处于等待状态,此时算法线程的优先级较低。
在等待过程中,各算法线程不断检查与之对应的缓存器,当发现缓存器中出现待处理数据后,算法线程便进入了运行状态。
在运行状态中,算法线程具有与人机交互界面线程相同的优先级。
当算法线程完成了相应的操作并发现缓存器中没有出现新的数据时,它们将回到等待状态,直到新数据到达缓存器为止。
(3视频捕捉线程
视频捕捉线程主要负责从视频序列中截取单帧图像,只有
在系统需要从视频序列中获取图像时该线程才会启动。
6系统内存管理设计
在系统的运行过程中经常需要动态分配内存,内存分配是
否可靠、高效将在很大程度上决定系统是否能够快速、稳定地运行。
堆式分配是一种常用的动态存储分配方式,但它会引起内存碎片,也有可能出现申请失败的情况。
此外如果频繁的动态分配任意大小的内存效率会较低。
出于实时性、可靠性考虑,
系统采用了一种栈式分配存储策略[9]
。
先申请一定大小的存储空间作为栈底,通过栈顶指针的移动分配内存。
这样即保证了内存申请的可靠性,也避内存碎片的问题。
提升了系统的稳定性与效率。
7系统特点
(1实时性与鲁棒性本系统在线程、内存管理等方面进行了优化,并内置了高效的检测算法,这就使得系统可实时检测到人脸,保证了系统
的实时性。
同时又内置了高效实用的人脸正则化和识别算法,
保证了系统的鲁棒性。
(2兼容性本系统在设计时参照了BioAPI国际标准,无论对于哪种算法,都可以依据BioAPI将其封装为如图5所示的形式。
这就确保了本系统具有了对任何符合BioAPI标准的算法的兼容性。
(3高效性
由于采用了多线程编程方式,系统可以充分利用高性能计算机的软硬件资源,提高运行效率。
这里以系统进行一次完整的人脸识别操作为例,来比较一下本系统和单线程的系统在运行速度上的差异,为了说明方便,假设系统只能接受一个算法结果。
这样的假设严重地削弱了多线程系统效能,因为在这种情况下多线程系统只能在完成第一个运行周期的识别操作后,才能进行下一周期的检测操作,而在实际情况下,这是完全没必要的。
即便是在这种情况下,多线程系统的运行周期仍要小于单线程系统,如图6所示。
这就是说,较之单线程系统,本系统具有更高的运行效率,具有高效性。
(4灵活性在本系统中,为每个算法线程都设计了一个缓存器。
系统运行时,各算法线程都在不停地检查对应的缓存器,一旦发现缓存器中有待处理的数据,算法线程便会进入运行状态。
也就是说,各算法执行与否只与对应缓存器中是否有数据相关,而不受其它算法线程运行状态的影响。
这种线程运行的独立性保证了系统的灵活性。
(5稳定性在本系统中,参照BioAPI国际标准中对异常的定义,设计了一套较为完备的异常处理机制,当算法出现问题时,系统能够正常运行并反馈算法信息,这对于一个算法测试平台十分重
尹璐,何晓光,毋立芳,等:
多用途人脸识别系统的设计与实现227
2007,43(20ComputerEngineeringandApplications计算机工程与应用
要。
因为在研究阶段,算法本身是不成熟、不稳定的,有可能出现各种各样的问题。
如果算法发生错误时,测试平台也随之崩溃,那么算法的研究人员就无法快速准确地发现问题的根源,测试平台也就失去了存在的意义。
8系统演示
本文提出的多用途人脸识别系统,文件大小3.93M,运行时占用内存30M,在P42.4G,512M的PC机上运行时可以实时运行。
图7为以视频序列为数据源的系统运行界面,当选中控制台上的“检测”复选框时,系统将仅执行人脸检测操作,如图7(a所示;如果同时选中“检测”、“正则化”和“识别”,系统将进行完整的人脸识别操作,并将检测、正则化、识别三算法产生的结果同时显示在界面上,如图7(b所示。
同时,系统采用“时_分_秒_毫秒”的形式给出了算法结果显示在屏幕上时的操作系统时间。
如图7(a中所示的“4_10_39_15”,它表示当时的时间为:
4时10分39秒15。
通过计算两次结果产生时间间隔可以发现:
系统对一幅320*280(摄像头分辨率的图像完成一次人脸检测并将结果显示在屏幕上所耗费的时间不超过80ms。
系统对同样尺寸的图像完成一次完整的人脸识别操作并将结果显示在屏幕上,所耗费的时间不超过265ms。
9结束语
本文基于BIOAPI设计并实现了一个多用途人脸识别系统。
系统大小3.93M,系统运行时占用内存30M,在P42.4G,512M的PC机上运行时可以实时运行。
系统具有实时性、鲁棒性、兼容性、高效性、灵活性和稳定性等特点,达到了系统设计要求。
本系统即可用作实际环境中自动智能监控系统,在机场、海关、建筑物出入口等人员来往场所自动地对出现在视频采集设备范围内的人脸进行检测和识别,也可作为实验室环境下的算法测试、演示平台,为算法的研制过程提供方便。
总之,本系统是一个即有商业价值,又可为科学研究带来便利的多用途人脸识别系统。
(收稿日期:
2006年12月
参考文献:
[1]BioAPI[EB/OL].http:
//www.bioapi.org/.
[2]李铭,袁保宗,游亚平.AFRS人脸自动识别系统的设计与开发[J].信号处理,2004(6:
541-544.
[3]杜成.THFACE2000人脸识别系统的设计与实现[J].计算机工程与应用,2002,38(14:
233-234.
[4]于东亮,苏光大.人脸指纹综合识别系统的实现[J].计算机工程与应用,2002,38(16:
115-117.
[5]孔凡芝,张兴周,谢耀菊.基于Adaboost的人脸检测技术[J].应用科技,2005(6:
7-9.
[6]王孝国,张雄伟.基于DSP的嵌入式图像识别系统设计与实现[J].电视技术,2006(2:
82-84.
[7]许成亮,胡剑凌,徐盛.基于VFW的人脸监控系统实现[J].电视技术,2005(5:
93-96.
[8]ViolaP,JonesM.Rapidobjectdetectionusingaboostedcascadeofsimplefeatures[C]//ProcofIEEEConferenceonCVPR,2001,1:
511-518.
[9]魏宁.机顶盒EPG软件设计实现与通用软件升级规范研究[D].北京工业大学,
2006.228
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 多用途 识别 系统 设计 实现 解析