《多用途人脸识别系统的设计与实现解析(共16页).doc》由会员分享,可在线阅读,更多相关《多用途人脸识别系统的设计与实现解析(共16页).doc(16页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、精选优质文档-倾情为你奉上2007, 43(20 Com put er Engi neer i ng and A ppl i cat i ons 计算机工程与应用 1引言911事件的发生和国际上普遍出现的恐怖袭击事件, 促进了生物特征识别领域研究的快速发展。 在众多生物特征识别技 术中, 人脸识别因为其普遍性、 易采集性、 高接受性而受到了关 注。自上世纪六七十年代起的三十年间, 国内外众多的科研机 构和科学工作者投身到了人脸识别的研究领域当中, 取得了不 少令人欣喜的成果, 也出现了一些人脸识别系统 27。本文面向算法研究和实时应用建立了一个多用途人脸识 别系统, 系统参照 Bi oA PI
2、 1规范设计, 即可用作实验室环境下 的算法测试, 也可作为实际环境中自动智能监控。2系统设计2. 1系统设计目标本系统要兼顾两个应用, 即实时监控和算法研究, 前者要 求系统的实时性、 鲁棒性和稳定性, 后者要求系统具有兼容性 (设定标准接口, 以面向不同研究人员应用 、 灵活性(可以针对 不同数据源对不同算法进行阶段性测试 、 高效性。 兼顾上述要 求, 系统采用了基于模块的思想进行设计。2. 2系统结构设计按照功能, 人脸识别系统包括五个模块:人机交互界面模块、 检测模块、 正则化模块、 识别模块和注册模块, 为了同时保 证系统的实时性和灵活性, 采用多线程设计的思想, 将上述模块置于不
3、同的线程上。人机交互界面模块负责接受用户请求, 控制其它各模块的 加载与启停, 调整各模块参数以及获取源数据等功能, 该模块 所在的线程为系统主线程。检测模块负责完成从输入图像(或 视频序列 中快速准确地定位人脸。正则化模块将去除光照和 姿势对人脸图像的影响,识别模块负责完成人脸的最终识别。 上述三个模块位于不同的、 相互独立的线程上。注册模块将正 则化后的人脸图像保存为人脸模板以备识别算法使用, 因其没 有实时性要求, 因此可以将其统一到主线程上, 以降低系统的 开销。系统总体结构如图 1所示。多用途人脸识别系统的设计与实现尹 璐 1, 何晓光 2, 毋立芳 1, 田 捷 2Y I N Lu
4、 1, H E X i ao-guang 2, W U Li -f ang 1, TI A N J i e 21. 北京工业大学 电子信息与控制工程学院 神经网络与图像识别实验室, 北京 . 中国科学院 自动化研究所 复杂系统与智能科学重点实验室, 北京 1. Lab of N N and I R , Col l ege of El ect r oni c I nf or m at i on and Cont r ol Engi neer i ng, Bei j i ng U ni v. of Technol ogy, Bei j i ng , Chi na 2. K ey Lab of Co
5、m pl ex Sys t em s and I nt el l i gence Sci ence, I ns t i t ut e of A ut om at i on, Chi nese A cadem y of Sci ences , Bei j i ng , Chi na E-m ai l :j anuar yi ce09bj ut . edu. cn Y INL u, H E X i ao -guang, W UL i-f ang, et al . D es i gn and i m pl em ent at i on of m ul t i-purpose f ace recogn
6、i t i on syst em .C om put er E ngi neeri ng and A ppl i cat i ons, 2007, 43(20 :225-228.A bs t ract :R ecent l y f ace r ecogni t i on r esear ch i s becom i ng a hot subj ect . I n t he paper , a m ul t i -pur pose f ace r ecogni t i on syst em i s pr oposed. I t can be us ed f or i nt el l i gent
7、 s ur vei l l ance and al gor i t hm s devel opm ent . The syst em i nvol ves t hr ee m odel s:f ace det ect i on, f ace al i gnm ent and f ace r ecogni t i on. I n t he syst em , an i nt er nat i onal st andar d, Bi oA PI , i s r ef er enced, whi ch ensur es t he i ndust r y com -pat i bi l i t y,
8、and f aci l i t at e t he appl i cat i on of al gor i t hm s and t he syst em . K ey w ords:f ace r ecogni t i on syst em s ; Bi oA PI ; f ace det ect i on; f ace al i gnm ent摘 要:人脸识别技术是近年来研究的一个热点, 众多的人脸识别系统应运而生。提出了一种多用途人脸识别系统, 可用作实际环境 中智能监控, 也可用作实验室环境下的算法测试。该系统整合了人脸检测、 正则化、 识别等模式识别处理技术, 可以在复杂环境下实 时
9、、 鲁棒地进行人脸识别。系统设计过程中引入了 Bi oA PI国际标准, 实现了对相关行业标准的兼容性, 便利了算法及系统的实用化。 关键词:人脸识别系统; Bi oA PI ; 人脸检测; 人脸正则化 文章编号:1002-8331(2007 20-0225-04文献标识码:A中图分类号: TP3912252007, 43(20 Com put er Engi neer i ng and A ppl i cat i ons 计算机工程与应用系统运行时, 数据(一般为图像或视频序列 首选流入人机 交互模块,并在该模块中被封装成利于后续模块处理的形式。 而后, 封装好的数据在线程控制器的引导下流向
10、缓存。与此同 时, 三个算法线程在不断地检查缓存器, 一旦有数据进入, 算法 线程将开始对数据进行处理。 任意一个算法线程将产生两个结 果, 一个用来在交互界面中显示, 而另一个将作为后继操作的 输入。图中实线箭头就标明了一个典型的数据流:(1 数据从交互界面流出后被送往缓存 A ;(2 检测线程发现缓存 A 中有数据后便开始执行, 产生检 测结果;(3 一个检测结果被送往缓存 B, 另一个被送往同步机构, 准备在交互界面上显示;(4 正则化模块与识别模块也将执行相同的步骤;(5 三个模块的输出结果经同步后, 显示在交互界面上, 如 图 7(b 所示。当然这不是唯一的数据流动方式。 当用户进行
11、正则化算法 测试时, 数据从交互界面流出后将直接被送往缓存 B; 当用户 进行检测算法测试时, 检测的结果将被直接丢进回收站, 而不 是送往缓存 B, 这样正则化线程就不会被执行, 系统运行界面 只显示检测结果, 如图 7(a 所示。图 1中的虚线箭头表示可能 的数据流方向。2. 3开发环境选择C+语言是一种高效的编程语言, 可直接调用 W i ndows 操 作系统的 A PI ,是编写 W i ndows 可视化应用程序的理想工具。 这里选择 Bor l and 公司的 C+Bui l der作为系统开发境。3系统内置算法设计本系统中自带了一整套人脸识别算法, 在默认情况下(即 没有可替换
12、的算法时 , 系统将自动调用下述人脸检测、 正则化 和识别算法。 性能优良的算法是本系统实时性、 鲁棒性的保证。 3. 1人脸检测人脸检测就是给定任意的一幅图像, 要确定其中是否包括 有人脸, 如有, 对每个人脸在图像中的位置及范围进行标记(如 对图像中每一个人脸标记它的外切矩形 。人脸检测的方法很 多,各有优缺点。本文采用了 Paul V i ol a 和 M i chael J ones 于 2001年提出的基于类 H aar特征的 A daboos t的方法 8。该方法 检测速度快, 基本可以满足实时性要求。算法在训练阶段要 进行:(1 定义一组基本特征, 然后让每个基本特征在 2424
13、的 图像窗口内任意缩放、 平移以得到大量特征, 这类特征简单、 丰 富, 可有效地表征人脸与非人脸区域的区别;(2 利用 A daBoost算法从众多简单分类器(即特征 中选 择分类能力较强的作为弱分类器(weak cl assi f i er , 多个弱分类 器通过线性组合构成强分类器(s t age cl assi f i er , 最后采用一个 多分类器级联的结构(cl assi f i er cascade 作为最终的分类器, 用以检测人脸。在检测过程中采用一个固定大小的窗口, 通过滑动窗口抽 取图像上的不同区域, 送入分类器, 用积分图像的方法快速地 计算出特征值, 从而做出判决。3
14、. 2人脸正则化人脸本质上是一个三维对象, 不同姿势下的人脸图像是三 维人脸在三维空间几何变形后在二维平面上投影的结果。另 外, 同一人脸肤色区域满足朗伯反射特性, 光照变化带来的人 脸图像变化同样可以通过三维空间人脸表面反射特性的变化 反映出来。 因此, 从三维人脸模型入手, 可以将人脸姿势变化统 一为三维空间的线性变换,这样就可以解决人脸正则化问题。 总体的流程如图 2所示。对于输入的光照和姿势变化的人脸图像, 提取其特征点位 置, 并根据特征点位置估计人脸姿势; 结合特征点位置和人脸 姿势, 得到与输入人脸图像相一致的特定人脸模型; 由特定人 脸模型和人脸姿势, 结合输入人脸图像, 估计
15、得到光源方向和 人脸表面的反射系数; 最后, 由特定人脸模型、 光源方向和人脸 表面的反射系数, 结合输入人脸图像, 得到正则化的标准人脸 图像。正则化去除了绝大部分光照和姿势对人脸图像的影响, 保证了系统在复杂环境下的鲁棒性。3. 3人脸识别人脸识别模块实现将正则化后的人脸图像进行分类识别 的功能。由于人脸图像是一个高维的视觉模式, 直接对人脸图 像进行分类几乎是不可办到的。为了解决这个问题, 本系统首 先 利 用 了 零 子 空 间 (N LD A , N ul l space Li near D i s cr i m i nant A nal ysi s 的方法对样本进行降维处理。 经过
16、 N LD A 降维后的人 脸图像就变成了一个较低维的向量, 本系统就将对这些低维的 向量进行识别。 最近邻法(N N 是较常用的模式识别方法, 这种 方法计算复杂度低, 运算速度快, 本系统正是采用了这种方法。4系统内部接口设计为了提高系统的兼容性,最有效的途径就是使用统一接 口, 本系统选用当前生物特征识别领域中被广泛接受的接口标 准 Bi oA PI 。4. 1Bi oA PI简介随着生物特征识别产品的面世, 每个制造商都使用各自独 有的算法和特定接口, 这种接口的增多只会减缓生物认证技术 的应用, 因而有必要采用通用接口。在此情况下, 1998年 9月 由 Com paq、 I BM
17、、 I dent i cat or Technol ogy、 M i cr osof t 、 N ovel l 等 著 名公司发起成立了 Bi om et r i cs A PI Consor t i um (Bi oA PI , 其出 发点是制定生物特征识别(Bi om et r i cs A PI工业标准。 2001年 3月公布 BI O A PI规模版本 1. 1和其它参考实施方案, 2002年提 交给 I N CI TTS(信息技术标准化国际委员会 , 规范定义了一系 列高层抽象(如注册、 比对和识别 、 基本功能(如图像捕获、 处 理、 特征值匹配和模板生成 以及生物特征识别信息记录
18、格式 (BI R 。Bi oA PI系统结构如图 3所示。4. 2Bi oA PI中对数据的封装在 Bi oA PI中定义了一种叫做 BI R (Bi om et r i c I dent i f i cat i on R ecor d, 生物特征识别信息记录格式 的数据结构。 这种数据结 构可以封装任何一种与生物特征识别算法有关的数据。 在一个 基于 Bi oA PI标准的应用系统中,所有数据都将以 BI R 的形式 出现。BI R 的结构如图 4所示。2262007, 43(20 Com put er Engi neer ing and A ppl i cat i ons 计算机工程与应用
19、 表 1本文定义的 BI R 数据体名称 功能 I D 值 Lengt h 值SI m age 描述一幅图像 016SFace 描述一张一脸 164STem pl at e描述一个人脸模板220从图中不难看出, 一个 BI R 可以分为三个部分:BI R 头、 数据体和签名。其中 BI R 头包含 BI R 的长度、 版本号、 数据类型 以及用途等信息。数据体是真正的生物特征识别数据, 它可以 由 BSP(Bi om et r i c Ser vi ce Pr ovi der , 生物特征识别算法的提供 者 自选定义。BI R 签名是可选的, 可以由 BSP 任意定制。4. 3系统内部数据封装
20、形式在本文中采用了上述数据类型的定义, 将 BI R 作为系统内部数据流动和存储的唯一形式。定义了 3种数据体, 分别用来 表示图像、 人脸及人脸模板。如表 1所示。5系统多线程设计如本文 2. 1节所述,为了同时保证系统的实时性和灵活性, 采用多线程编程方式。系统中将人机交互界面、 检测算法、 正则化算法、 识别算法、 视频捕捉等功能模块置于不同线程上。(1 人机交互界面线程人机交互界面线程是系统的主线程, 它即要实时地响应用 户按键, 又要负责指导数据的流向。同时该线程还负责重绘界 面, 将算法线程产生的结果显示到屏幕上。(2 算法线程检测线程、 正则化线程、 识别线程统称为算法线程, 它
21、们有 着类似的结构与运行模式。当系统启动时, 三个算法线程启动 并处于等待状态, 此时算法线程的优先级较低。 在等待过程中, 各算法线程不断检查与之对应的缓存器, 当发现缓存器中出现 待处理数据后, 算法线程便进入了运行状态。 在运行状态中, 算 法线程具有与人机交互界面线程相同的优先级。 当算法线程完 成了相应的操作并发现缓存器中没有出现新的数据时, 它们将 回到等待状态, 直到新数据到达缓存器为止。(3 视频捕捉线程视频捕捉线程主要负责从视频序列中截取单帧图像, 只有在系统需要从视频序列中获取图像时该线程才会启动。6系统内存管理设计在系统的运行过程中经常需要动态分配内存, 内存分配是否可靠
22、、 高效将在很大程度上决定系统是否能够快速、 稳定地 运行。堆式分配是一种常用的动态存储分配方式, 但它会引起 内存碎片, 也有可能出现申请失败的情况。此外如果频繁的动 态分配任意大小的内存效率会较低。 出于实时性、 可靠性考虑,系统采用了一种栈式分配存储策略 9。先申请一定大小的存储 空间作为栈底, 通过栈顶指针的移动分配内存。这样即保证了 内存申请的可靠性, 也避内存碎片的问题。提升了系统的稳定 性与效率。7系统特点(1 实时性与鲁棒性 本系统在线程、 内存管理等方面进行了优化, 并内置了高 效的检测算法, 这就使得系统可实时检测到人脸, 保证了系统的实时性。同时又内置了高效实用的人脸正则
23、化和识别算法,保证了系统的鲁棒性。(2 兼容性 本系统在设计时参照了 Bi oA PI国际标准,无论对于哪种 算法, 都可以依据 Bi oA PI将其封装为如图 5所示的形式。 这就 确保了本系统具有了对任何符合 Bi oA PI 标准的算法的兼 容性。(3 高效性由于采用了多线程编程方式, 系统可以充分利用高性能计 算机的软硬件资源, 提高运行效率。这里以系统进行一次完整 的人脸识别操作为例, 来比较一下本系统和单线程的系统在运 行速度上的差异, 为了说明方便, 假设系统只能接受一个算法 结果。这样的假设严重地削弱了多线程系统效能, 因为在这种 情况下多线程系统只能在完成第一个运行周期的识别
24、操作后, 才能进行下一周期的检测操作, 而在实际情况下, 这是完全没 必要的。即便是在这种情况下, 多线程系统的运行周期仍要小 于单线程系统, 如图 6所示。这就是说, 较之单线程系统, 本系 统具有更高的运行效率, 具有高效性。(4 灵活性 在本系统中, 为每个算法线程都设计了一个缓存器。系统 运行时, 各算法线程都在不停地检查对应的缓存器, 一旦发现 缓存器中有待处理的数据, 算法线程便会进入运行状态。也就 是说,各算法执行与否只与对应缓存器中是否有数据相关, 而 不受其它算法线程运行状态的影响。 这种线程运行的独立性保 证了系统的灵活性。(5 稳定性 在本系统中, 参照 Bi oA PI
25、国际标准中对异常的定义, 设计 了一套较为完备的异常处理机制, 当算法出现问题时, 系统能 够正常运行并反馈算法信息, 这对于一个算法测试平台十分重尹 璐, 何晓光, 毋立芳, 等:多用途人脸识别系统的设计与实现 2272007, 43(20 Com put er Engi neer i ng and A ppl i cat i ons 计算机工程与应用要。因为在研究阶段, 算法本身是不成熟、 不稳定的, 有可能出 现各种各样的问题。如果算法发生错误时, 测试平台也随之崩 溃,那么算法的研究人员就无法快速准确地发现问题的根源, 测试平台也就失去了存在的意义。8系统演示本文提出的多用途人脸识别系
26、统, 文件大小 3. 93M , 运行 时占用内存 30M ,在 P42. 4G , 512M 的 PC 机上运行时可以 实时运行。图 7为以视频序列为数据源的系统运行界面, 当选 中控制台上的“ 检测” 复选框时, 系统将仅执行人脸检测操作, 如图 7(a 所示; 如果同时选中“ 检测” 、 “ 正则化” 和“ 识别” , 系 统将进行完整的人脸识别操作, 并将检测、 正则化、 识别三算法 产生的结果同时显示在界面上, 如图 7(b 所示。同时, 系统采用“ 时 _分 _秒 _毫秒” 的形式给出了算法结 果显示在屏幕上时的操作系统时间。如图 7(a 中所示的“ 4_ 10_39_15” ,
27、它表示当时的时间为:4时 10分 39秒 15。通过计 算两次结果产生时间间隔可以发现:系统对一幅 320*280(摄像头分辨率 的图像完成一次人 脸检测并将结果显示在屏幕上所耗费的时间不超过 80m s。 系统对同样尺寸的图像完成一次完整的人脸识别操作并 将结果显示在屏幕上, 所耗费的时间不超过 265m s。9结束语本文基于 BI O A PI设计并实现了一个多用途人脸识别系 统。 系统大小 3. 93M , 系统运行时占用内存 30M , 在 P42. 4G , 512M 的 PC 机上运行时可以实时运行。 系统具有实时性、 鲁棒 性、 兼容性、 高效性、 灵活性和稳定性等特点, 达到了
28、系统设计 要求。本系统即可用作实际环境中自动智能监控系统,在机场、 海关、 建筑物出入口等人员来往场所自动地对出现在视频采集 设备范围内的人脸进行检测和识别, 也可作为实验室环境下的 算法测试、 演示平台, 为算法的研制过程提供方便。总之, 本系 统是一个即有商业价值, 又可为科学研究带来便利的多用途人 脸识别系统。(收稿日期:2006年 12月参考文献:1Bi oA PI EB/O L. ht t p:/www. bi oapi . or g/.2李铭, 袁保宗, 游亚平. A FR S 人脸自动识别系统的设计与开发J . 信 号处理, 2004(6 :541-544.3杜成. TH FA
29、CE2000人脸识别系统的设计与实现J . 计算机工程与 应用, 2002, 38(14 :233-234.4于东亮, 苏光大. 人脸指纹综合识别系统的实现J . 计算机工程与应 用, 2002, 38(16 :115-117.5孔凡芝, 张兴周, 谢耀菊. 基于 A daboos t的人脸检测技术J . 应用科 技, 2005(6 :7-9.6王孝国, 张雄伟. 基于 D SP 的嵌入式图像识别系统设计与实现J . 电 视技术, 2006(2 :82-84.7许成亮, 胡剑凌, 徐盛. 基于 V FW 的人脸监控系统实现J . 电视技 术, 2005(5 :93-96.8V i ol a P, J ones M . R api d obj ect det ect i on us i ng a boos t ed cas cade of s i m pl e f eat ur esC/Pr oc of I EEE Conf er ence on CV PR , 2001, 1: 511-518.9魏宁. 机顶盒 EPG 软件设计实现与通用软件升级规范研究D . 北京 工业大学, 2006. 228专心-专注-专业
限制150内