智能移动人脸辨识系统——跟我走机器人
摘要: 本文以发展具有人脸辨识和运动跟踪功能的智能机器人为目标。机器人的名称为“跟我走机器人”。它能够根据人脸辨识的结果,判断用户的身份,并跟随该用户。系统的开发建基于英特尔 XScale PXA270 微处理器平台、Linux操作系统和 QT/Embedded 图形使用者接口。为了建构一个智能机器人,我们在系统上加入了基于弹性图匹配 (EBGM) 的人脸辨识程序,运用了块匹配算法的运动跟踪功能。系统提供了简易的用户介面,方便管理和下达指令。“跟我走机器人” 除了应用于娱乐外,亦可胜任各种工业应用。
关键词: PXA270;嵌入式Linux;机器人;人脸辨识;弹性图匹配;运动跟踪;块匹配
前言
机器人在社会中的重要性与日俱增,原因在于我们每日所完成的许多工作都是按部就班进行的,无需思虑。这些工作可以由一个机器人来轻松地完成,有时候,机器人的表现要远远优于人类的表现。随着SONY“机器狗”[1]的流行,近年来涌现出一类新的机器人。这类能模仿人类行为的新型机器人在国际玩具市场上目前极为流行。
为了将这种智能玩具技术推向更高的发展水平,我们开发了“跟我走”机器人,它拥有能识别人并跟踪人的新功能。面部识别的功能使得机器人更为人性化,能辨认出不同的人。这一功能使得机器人在很大程度上实现了人性化,主人的家庭可以轻松地接纳它为家庭中的一员。我们选择人脸作为验证的依据,因为它的可分辨性好,而且难以为其他人所复制。此外,与虹膜识别和指纹识别相比,用户在进行人脸识别时所费的周章更少,而且用户不那么容易察觉到识别过程的存在。
在本系统中,我们选用了弹性图匹配(Elastic Bunch Graph Matching,EBGM)方法作为识别时的面部辨认算法。该算法的细节将在后面详细解释。运动跟踪功能也是机器人的一项基本功能,它可以使机器人自动跟随主人,从而增强了系统的可移动性。
在人脸识别方面存在的主要困难,是如何确定图像中人脸的位置。本系统的解决之道是多次采集用户的图像,并要求用户眨眼睛以便能找到眼睛的所在。这种方法也防止了其他人拿着用户的相片来欺骗系统。
拥有XScale处理器PXA270的LIOD系统成为我们所研制的这款机器人的内核。Xscale处理器的软件经过了优化,使得它能够瞬时执行面部识别算法和运动跟踪功能。XScale PXA270处理器对我们的应用来说已经足够了,因为我们的系统所用的EBGM算法针对运行时间的需求进行了优化,它适合于移植到嵌入式系统。
在本文的余下部分,我们将逐步阐述我们的思想和实现方法,展示系统整体的工作流程,软件和硬件之间的协同以及本项目的实验结果。
这是一个精简版的报告,完整版本可以从如下网址下载:http://pc89225.cse.cuhk.edu.hk/intelcup/。
系统描述
总体结构
本项目需要采用的一个主要部件就是摄像机。一旦系统启动,摄像机就必须完成初始化。
图1示出了系统的总体工作流程。系统由3个部分组成,包括“识别”,“登记”和“运动跟踪”。用户在启动任何其他流程前应该启动“识别模式”。这可以确保机器人能够在执行任何功能前识别出合法主人。如果验证后没有指令发送到系统中,它会保持在“空闲模式”。

图1 系统工作原理图
处于“空闲模式”时,系统连续捕捉和显示图像,同时等待进一步指令。用户此时可以选择“登记模式”还是“运动跟踪模式”。
“登记模式”允许有新用户添加到系统中。在“运动跟踪”模式中,机器人将自动跟踪它的主人。下面,我们将依次讨论这3个部分。
识别/登记模式
“识别模式”和“登记模式”基本上是类似的。
为了执行“识别/登记步骤”,系统必须首先通过基于图像差异技术的“眼部检测算法”来获取眼睛的位置。当用户眨眼睛时,在由摄像机连续捕捉到的图像上,除了其眼睛位置出现差异外,其余部分将始终保持不变。于是,一旦用户进入“识别/登记模式”,系统将连续捕捉图像,并传递给“眼睛捕捉算法”,以找出眼睛的位置。如果系统能正确找出眼睛的位置,用户可以选择进入“识别”或是登记步骤,这将触发弹性图匹配(EBGM)算法。
“眨眼”判断法利用了网络摄像头可以轻松捕捉多幅图像的特点,可以让用户参与到验证过程中,从而增强了机器人的可交互特性。
在“登记步骤”中将存储一个记录,以备进一步的匹配。对于“识别步骤”来说,它是一个“1对N”的过程。系统将对每项记录进行比较,如果用户与那些已登记的图像一致,则显示一个记号。这一工作流程的优点在于,在传递到“识别/登记步骤”(人脸识别算法)之前,对眼睛位置的识别的正确性得到了保证。该工作流程提高了人脸识别算法的检测成功率。
运动跟踪模式
当运动跟踪功能启动时,程序以固定的间隔连续运行。为了实现图像的平滑显示,一旦用户进入“运动跟踪模式”,程序控制就转回主程序执行。“以QT捕捉和显示”则与“运动跟踪步骤”并行执行。不利之处在于“运动跟踪步骤”可能会丢弃部分图像。系统可能无法保持对微小运动的敏感性。但是,这样的安排仍然适合于我们的应用,能够跟踪人的移动。
具体实现
硬件
*总体结构
图2示出了系统的总体架构。我们下面将对这些部件逐个进行讨论。

图2 硬件之间的交互关系
*机器人(见图3)

图3 机器人设计的总体框图
87C552微控制器
87C552微控制器起到PXA270开发板与电机驱动之间的桥梁作用。我们之所以选用87C552,是因为它支持一个集成化的脉宽调制(PWM)模块,它可以提供2个8bit PWM通道。MCU接收来自于PXA270板的控制指令,从而产生输出到L298电机驱动器的PWM信号。
·其他元件
MAX232-RS232电平转换器。
L298电机驱动器——提供驱动电机所需的大电流。
软件
*概述
为了支持人脸识别,捕获的图像必须有足够高的分辨率。期望值是320×420,因为如果分辨率低于该值,图像品质就太差,不能保证余下算法的执行,此时即指“人脸识别”和“运动跟踪”算法。如果分辨率被设为640×480,图像的采集就需要花费接近1s的时间。由于嵌入式系统的计算能力极为有限,故难以在执行余下的算法时处理分辨率如此之高的图像,。
系统使用1对N识别流程来找出哪位用户将会使用该系统,该流程将在剩下的部分进行讨论。
系统的GUI利用QT/Embedded进行编程。编译工具是ARM Linux g++。系统中所包括的模块数极少(参见图1、图2和图3):多线程的GUI界面、网络摄像头捕捉、眼睛检测算法、人脸识别算法和运动跟踪算法。
*多线程GUI界面
参见图3,因为图像的捕捉和显示功能必须与运动跟踪功能同步执行,故需要采用多线程程序。不过,缺省的QT库并不支持这一功能。为了实现该功能特色,我们已经用version 2.3.7对QT库进行了重新编译,该库现在支持多线程功能。
*带解压的USB网络摄像头驱动
虽然内核中可以启用驱动程序,我们后来发现该驱动只能支持160×120分辨率图像的捕捉。如要捕捉320×420的图像,我们还需要向Linux系统添加一个解压缩驱动程序。它的作用是让摄像机对摄像机内部进行过压缩的图像进行解压缩处理,然后再传回LIOD。
*眼睛检测流程
在大多数人脸识别算法中,眼睛都被视为面部构建启动所需的一个主要的基准点。机器人对眼睛进行识别辨认出用户,就显得极为重要。一般来说,眼睛的虹膜可以通过红内(intra-red)发射器和传感器来确定,但所用的设备将非常昂贵,而且极为复杂,难以集成到嵌入式系统中。因此,在我们的系统中,用户眨一次眼睛的动作也将作为一个信号,触发眼部检测流程。该技术只需要单个摄像机。它也可以帮助系统从被染色的图像中识别出真正的人的图像。(图4中示出了眨眼的实例)

图4 在眼部检测过程中,用户正在眨眼睛
眼部检测的步骤流程

图5 运动跟踪算法的工作流。
A. 输入 来自于系统的两幅连续的图像,一幅记录了睁开的眼睛,另一幅记录了合上的眼睛。
B. 预处理:首先,计算出图像间的差异。然后执行分区和组合,以减少计算的复杂性。此外,要除去不规则的分区和噪声,以减少虚假的检测结果。执行该操作后,我们可以获得我们感兴趣的用于搜索的区域。
C. 检测: 每个所关心的区域与预先确定的眼睛标记模板进行比较。对于在阈值之上的最近似的结果,其坐标将传递到后面的阶段,用于进行人脸识别。
限制和不足
我们的眼睛识别算法存在一些限制和不足。首先,摄像机的捕捉帧速率决定了检测的有效性。所用的帧速率越低,在两幅图像间检测出噪声的机会就越大。不过,无需让帧速率高于人眨眼的速率,试验表明该速率大致为50-100ms。如果帧速率高于20Hz,在眼睛真正开始眨动时,噪声可能会被错误地识别为眼睛动作的信号。在开发过程中我们发现,每秒进行3~10次捕捉就足以供眼睛检测之用。
其次,眨眼仅是一个指示标记,用于告诉系统可能存在眼睛的位置。系统不能认定所有的图像变化都是由眨眼所造成的。因此,在某些条件下(例如,人摇头时),眉毛或者头发会被错误地识别为眼睛。
虽然眨眼睛并不是纯自然的眼部运动,有时甚至可以被视为有意的行为,但它在发现眼睛位置方面是一种简单而有效的指示标志。于是它被选为我们的眼睛检测算法。
*人脸识别流程
人脸识别是一系列模式识别问题。有两种主要的表示方式:基于局部特征(部件)的和基于全局特征的系统。前一种系统强调了从面部不同部位,如眼睛、鼻子、嘴唇和耳朵,来获取人脸特征。后一种系统将面部作为整体来处理,提取整个面部的统计信息。

基于全局特征的系统将来自于同一个人的所有的面部图像作为不同的类来处理。它在针对单个人的各部位分辨率中可以起到很好的效果,但在不同人员间的识别方面则效果不佳。因此它并不适合于我们的识别系统,该系统必须能通过验证才能赢得对机器人的控制的授权。另一方面,基于局部特征的系统,使用几何方法来表征一个面部的结构。它在面部特征提取中允许出现合理的位移量,从而能减缓图像变形问题的出现。由于弹性图匹配算法对图像变形和姿势变化具有鲁棒性,我们在面部识别方面采用了这种有代表性的和流行的局部特征型识别系统。

*运动跟踪算法
完成人脸识别后,我们的机器人可以跟随用户运动。于是实现了一种运动跟踪算法。我们的目标是要实现一种鲁棒性的运动跟踪算法,以使机器人不至于错过目标。
为了实现鲁棒性的运动跟踪,必须同时找到某个人的位置和运动方向。其概念是,当一个人从场景的中央移向某一侧时,机器人应该旋转,跟随人的运动。不过,如果一个人出现在右侧而向左侧行走,机器人不应当把自己旋转到右侧,否则它将有可能错过这个人。
我们的项目将图像差异比较和块匹配算法结合起来。机器人根据每一对连续的灰度级图像来估计目标的位置和运动方向。目标的位置是根据图像的差异来获得的,目标的运动方向通过在目标位置处执行块匹配算法来找出。
运动方向
欲找出运动的方向,就需要对区域位置的检测结果的历史进行记录并执行运动检测算法。第一种办法并不现实,因为摄像机的角度将频繁更新。一旦机器人发生旋转,位置的历史记录就无法给出移动物体的运动方向。因此,我们需要另一种运动检测算法来找出运动的方向。
现在已经有若干种运动检测算法,包括块匹配算法(BMA),基于梯度的技术和立体视觉。基于梯度的技术是一种计算密集的方法,因此并不适合于嵌入式系统。立体视觉很高的I/O开销将会显著地降低视频捕捉的帧速率。因此,块匹配算法被选为运动检测算法。
块匹配算法的思想是将视频帧划分为尺寸相等的小块。在视频帧中的每一块,我们都试图找出在下一帧中的对应方块区域。一个块区与下一帧中所对应的块区之间的相对位置变化与一个运动矢量联系起来(该运动矢量在图7中用箭头标注出来)。通过运动矢量的平均,我们就可以得到对物体的移动情况的总体描述。在我们的项目中,为了提高运行时间性能,在执行块匹配算法时视频帧的分辨率被调低。
系统测试
全系统的试验
处理一幅图像所需要的平均时间:
识别模式(在眼睛检测流程中)
结果表明,QT显示占用了很多资源。为了找出眨眼时图像的差异,时间滞后应该极小。否则,由于背景噪声的存在,两幅图像间会出现多处差异。这就是为何我们选择在执行眼睛检测算法时不显示第二幅所捕获图像的原因。
眼部检测试验
我们在真实条件下对眼睛算法的可靠性进行了测试。眼睛检测的性能在室内和室外环境中进行了测试。室内的照明采用荧光灯,而室外的主要背景照明光源为日光。3位系统不熟悉的候选人被选中作为测试对象,每人站在网络摄像头前面,由系统进行眼睛探测算法,直到完成50次成功检测为止。所需眨眼的总次数以及完成一次成功的检测所需的错误接受的次数被记录下来。计算公式是:总的眨眼次数=错误接受-错误拒绝-1。试验结果列在表1中。
试验结果表明,在室内和室外环境中完成一次成功的眼睛检测所需的平均眨眼次数少于4次,这对于实时应用来说是可以接受的。很高的“错误拒绝/错误接受比”还表明所用的算法会抑制可疑的情况。它可以更准确地让系统找到眼睛的位置。
结语
我们已经利用人脸识别算法和运动跟踪算法成功地实现了我们的“跟我走”机器人。样机的设计存在某些限制,例如,机器人在人群拥挤的区域会失去对用户的跟踪。机器人仍然认为用户会从前面接近它从而捕捉他/她的正面图像。机器人不支持自动对焦。
不过,我们最初的目标已经在机器人设计中实现了。快速和可靠的面部识别程序已得到实验。只需眨几次眼睛,就能以很高的正确率自动检测出眼睛的位置。我们预计,正确的眼睛位置的获取,将把人脸识别性能的精确度提高到80%以上。该例程可以在几秒内完成,这对于嵌入式系统来说是可以接受的。运动跟踪功能还可以让机器人在无人控制与干预的情况下跟随人移动。拥有完全自行通过逻辑判断来决定行动的能力,正是机器人具有智能的原因。
经过进一步改进后,我们相信,我们的低成本通用型机器人可以用于家政管理、玩具、儿童和老人的看护、运输及后勤物流,并可以用于娱乐用途。
由于“跟我走”机器人具有很高的可扩展性,我们预计未来将出现更多的工业和商业应用。
参考文献:
1. AIBO Entertainment Robot, http://www.sony.net/Products/aibo/
2. Wiskott, L., Fellous, J.M., Krüger, N., and von der Malsburg, C., "Face Recognition by Elastic Bunch Graph Matching", In Intelligent Biometric Techniques in Fingerprint and Face Recognition, eds. L.C. Jain et al., publ. CRC Press, ISBN 0-8493-2055-0, Chapter 11, pp. 355-396, 1999
本文来源:电子产品世界 作者:香港中文大学 张立志 傅家权 张小明 张建宏
关于 智能移动 人脸辨识系统 的相关解决方案
- 2007-03-14智能移动人脸辨识系统——跟我走机器人

