基于人脸检测的人脸跟踪算法
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
1.
人脸跟踪问题
人脸跟踪是确定视频中人脸的位置及其运动轨迹的过程。人脸跟踪的具体问题是与应用 场景相关的。我们所讨论的问题是在作为交互空间研究实验床的“智能房间”概念[12]下提出
作者简介:梁路宏(1973—) ,男(汉),河北, 博士研究生。 基金项目:受重点预研 7B8 及高技术项目 863-512-9805-11 资助。
1
1
的,需要检测并跟踪正面的人脸,以便进一步确定其身份。该房间布置了多个摄象机,包括 安置在屋顶面向整个房间的双摄象机,其中一个为广角镜头监视整个房间,另一个是变焦镜 头朝着门的方向用于检测并跟踪人脸,以便确定其身份。每当有人进入该房间时,系统会自 动发现人脸并进行跟踪。因此我们面对的人脸跟踪问题的典型场景是由远走近的人,这种情 况在需要安全出入控制的视觉监视场合是普遍存在的。与人脸仅在小范围内运动的头肩部人 脸序列不同,此类图象序列中人脸的尺度、位置变化较大,其运动具有一定的随意性且速度 较快,因而基于运动模型的方法难以适用;另一方面,由于人脸的背景较为复杂(如背景可 能是运动的或存在类肤色的区域) , 因此基于肤色、 运动等简单特征的跟踪方法也是不适用的。
R n = f ( F n −1 , F n − 2 ,..., F n − p )
由于人体运动具有随意性 (如突然改变运动方向) , 因而 在对人物行为缺乏高层理解的前提下,难以根据已有的 人脸运动轨迹预测新的监视区域。比较现实的方法是采 用最弱的帧间约束条件,仅使用前一帧的跟踪结果,根 据实际应用的需要限定人脸在两帧间的最大变化,从而 求解新的监视区域。从正面人脸图象的角度来看,人脸 的运动主要表现为平移与尺度变化两种形式,因此求解 监视区域的公式(1)可以写为如下形式:
β = 0.5 γ = 0.2(参
见公式 2) 。处理速度为 17.4 帧/s。需要指出的是,该序列可以归为工作台前的人脸序列,并 不属于本文探讨的大范围运动的人脸跟踪问题,因此可以用如[1,3,4]的简单方法加以解决。上 述实验仅用来说明本文算法对此类简单人脸序列跟踪的有效性。
76 80 84 88 96 100
Yes
检测到 人脸 No
Yes
漏检超时 No
3
3.2.
单人脸的跟踪 单人脸的跟踪问题即假设序列中每一帧中只出现一个人脸。设定初始监视区域为 R0 ,跟
踪算法如图 4 所示。算法首先在各帧的监视区域内检测人脸,若检测到人脸则根据其定位结 果计算下一帧中新的监视区域,如此处理各帧。跟踪中若检测失败,则保持监视区域不变并 在后续帧中继续检测,以防止由于偶然的漏检造成的跟踪失败。若漏检帧超过一定数量(超 时) ,则认为人脸已经消失,算法重新开始,在初始监视区域中检测后续帧中可能出现的新的 人脸。上述过程直到整个视频序列结束停止(为简明起见,图 4 中未画出序列结束的退出流 程) 。 3.3. 多人脸的跟踪 对于多人脸的跟踪问题,采用了与单人脸跟踪相似的方法,对每个新出现的人脸分别按 照图 3 所示的流程进行跟踪。对于可能出现的监视区域相互重叠的问题,采用以下两个步骤 进行处理: (1)对各个监视区域对应的人脸检测结果进行重叠判别,排除同一人脸被多次检 测到的情况; (2)根据最近距离原则,将在两帧间尺度和空间距离较近的检测结果归为同一 人脸,以确定前后帧各个人脸的对应关系。由于视频中人物运动的复杂性,步骤(2)仅在图 象中人物间距相对于人物位置变化较大的情况下有效。需要指出的是,人物的对应关系问题 具有相当的难度,在对人物行为缺乏高层理解的情况下,即使对人脸的运动轨迹进行分析也 不一定能够保证得到正确的对应关系。笔者认为解决对应关系问题的根本途径是利用人物本 身的信息,即采用身份验证技术辨识不同的人物,但这已超出本文的探讨范围,在此不再讨 论。
(1)
在下一帧中 R0 限定 范围内检测人脸
No
检测到 人脸 Yes 使用公式(2)计算 新的监视区域 Rn 在下一帧中 Rn 限定 范围内检测人脸
(2)
Yes
检测到 人脸 No
公式(2)中三个参数 α
β γ 限定了人脸在两帧之
在下一帧中 Rn 限定 范围内检测人脸
间位置和尺度的最大变化,它们与人脸的运动速度以及 人脸与采集设备的相对位置关系等因素有关,可以根据 实际的应用背景取经验值。
n x n −1 x min −α n center n −1 x max xcenter +α y n y n −1 − β −1 min = center + s n face ⋅ n −1 n y center y max + β n n −1 −γ s min s face +γ s n s n −1 max face
基于人脸检测的人脸跟踪算法1
梁路宏 艾海舟 (清华大学计算机科学与技术系,智能技术与系统国家重点实验室,北京 100084) 摘要:本文提出了一种基于人脸检测技术的人脸跟踪算法。该算法利用前一帧的人脸检测结 果预测当前帧中人脸可能的尺度与位置范围,在限定的范围内采用模板匹配与人工神经网分 类的方法定位人脸,从而实现快速而可靠的人脸跟踪。由于使用了人脸检测技术,该方法可 以自动定位初始人脸。实验表明该方法在具有复杂、动态变化背景的图象序列中是很有效的, 速度为 5-11Hz,可用于实时性系统。 关键词:人脸跟踪,人脸检测,模板匹配,人工神经网 中图分类号:TP391.4 人脸跟踪(Face Tracking)是指在输入图象序列中确定某个人脸的运动轨迹及大小变化的 过程。人脸跟踪技术具有重要的潜在应用价值,它作为自动人脸识别、基于模型的编码、视 频检索、视觉监测等领域中的一项关键技术,受到研究者的普遍重视。 文献中的人脸跟踪方法主要有:基于肤色信息的方法[1]、基于运动信息的方法[2]、基于 运动模型的方法[3]、基于局部器官特征的方法[4]等。这些方法的共同出发点是利用相关的启 发性知识(如根据肤色和运动信息限定搜索空间)达到快速跟踪的目的,通常只使用了人脸 的一小部分或局部器官的分布信息,在一些典型的约束环境下(如背景简单静止的视频、工 作台前的人脸或头肩部人脸视频等)可以取得很好的人脸跟踪效果。需要说明的是这些方法 一般建立在人脸初始位置大致已知的基础上,需要使用其它方法解决起始帧中人脸的检测问 题。当我们考虑较大范围的复杂动态变化背景下的人脸跟踪问题(如视觉监视问题)时,由 于存在类似肤色的区域或其它运动的目标,单靠启发性知识是很不可靠的。针对这一问题, 我们以人脸检测技术为基础,利用图象序列前后帧中人脸在位置和大小上存在的关联性限定 搜索空间,实现快速可靠的人脸跟踪。 人脸检测(Face Detection)是指在给定的图片中确定人脸的位置及大小的过程。文献中 的方法主要有:基于启发式规则的方法[5]、基于特征脸的方法[6]、基于聚类学习的方法[7]、 基于人工神经网的方法[8]以及基于支持矢量机的方法[9]等。人脸检测技术可以用来搜索图象 序列中人脸的初始位置,也可用于在跟踪过程中定位人脸。但由于这些方法的计算复杂度比 较高,因而难以满足人脸跟踪的实时性要求。 本文针对复杂动态变化背景下的人脸跟踪问题,特别是非头肩人脸序列的人脸跟踪问题, 提出了一种基于人脸检测技术的人脸跟踪算法。该算法将人脸跟踪问题转化为当前帧中由前 一帧结果提供约束范围的人脸检测问题,采用基于模板匹配与人工神经网的人脸检测技术[10] 定位人脸,从而实现了人脸的跟踪。由于对跟踪问题进行了合理的约束,并且对检测算法进 行了优化,速度为 5-11Hz,可用于实时性系统。实验表明了该算法的有效性和鲁棒性。
输入 图象 双眼模板 匹配 搜索空间 约束 人脸区域灰度 分布标准化 人脸模板 匹配 MLP 分类 检测 结果
优化的搜索策略
图1
人脸检测算法流程图
使用的人脸模板大小为 20×20 象素, 由手工选取的样本标准化后 求平均构造而成,同时拷贝双眼部分作为双眼模板(如图 2) 。算法采 用相关系数作为匹配准则,依次使用双眼模板和人脸模板对待检测窗 图 2 使用的模板 口进行粗筛选。 使用了一个三层感知器(Three Layer Perceptron,简称 MLP)对通过模板匹配的区域进行 进一步的分类。MLP 采用 Sigmoid 非线性函数,374 个输入节点对应于 20×20 象素的图象窗 口(除去四角上的若干象素点) ;20 个隐层节点与输入层全连接;1 个输出节点, “1”代表“人 脸” , “0”代表“非人脸” 。训练采用了带动量项的 BP 算法,使用了约 5000 个人脸样本(由 700 个人脸样本经旋转、拉长、缩放等变换生成)和“自举” [8][10]方法收集的约 5000 个非 人脸样本。 使用多尺度的方法搜索不同大小的人脸, 即在设定的范围内将输入图象以 1.2 的比率不断 重采样缩小,在缩小后的各个图象中采用搜索局部最优点的方法定位人脸。具体而言就是建 立一个侯选人脸列表,在搜索过程中将“人脸”窗口逐个加入,如果该窗口与列表中已有的 候选人脸相重叠,则保留二者中匹配程度高的。 为了提高检测速度,采用了间隔象素搜索的方法。如图 3 所示,首先隔行隔列选取窗口 进行模板匹配和 MLP 分类,若遇到“人脸”输出(图中阴影部分) ,则搜索周围未搜索过的 点,进行精确定位。由于模板匹配与 MLP 具有一定的泛化能力,真实的人脸周围若干象素也 会产生“人脸”输出,因而上述方法能够保证不发生 7 6 5 15 14 遗漏。 1 2 8 3 4 12 13 18
2.
人脸检测算法
我们以基于模板匹配与人工神经网的人脸检测方法[10]为基础,针对实时性的要求进行了 优化,提出了如图 1 所示的快速人脸检测算法。其基本框架是:搜索输入图象中可能尺度和 位置的矩形区域(检测窗口) ,对每个候选窗口按照如下步骤进行处理:首先使用双眼模板匹 配进行粗筛选;然后对窗口内图象进行均方差标准化[11],消除光照变化的影响;接下来使用 人脸模板进行匹配,若匹配度超过阈值,则将窗口区域输入人工神经网进行分类;若超过设 定的阈值,则作为候选人脸输出。
4.
实wk.baidu.com结果
我们对各种典型图象序列进行了实验,取得了很好的效果。这里列举四组实验做说明, 其一是 Miss American 序列,其二是自动人脸识别系统使用的多姿态人脸序列,最后两组是作 为交互空间实验床的“智能房间”中拍摄的序列。实验平台是 PIII-933 微机,在上述四个序列 中,全部精确跟踪成功,处理速度在 5.9 帧/s 到 17.4 帧/s 之间。 图 5 是对序列 Miss American(共 150 帧)跟踪的部分结果。实验设定初始监视区域的位 置范围为整个图象、 尺度范围为 32~48 象素, 跟踪过程中取参数 α = 0.5
9 10 11 16 17 19 20 21 22 23
2
3.
人脸跟踪算法
跟踪算法将人脸的检测与跟踪在同一框架下考虑,不区分检测帧与跟踪帧,这样能保证 对新出现的人脸及时进行检测和定位。 3.1. 帧间约束 我们首先引入 “监视区域”的概念。所谓“监视区域”是指某个人脸在某帧中可能的位
置和尺度范围,用一个六元组表示: R = ( x min , x max , y min , y max , s min , s max ) ,其中各元素依次 描述了人脸中心位置在 x、y 方向的范围以及人脸尺度的范围。这里我们忽略了人脸形状的变 化,即将人脸区域近似为一个正方形,用一个三元组表示: F = ( xcenter , x center , s face ) ,其中各 元素依次描述了人脸的中心位置和大小。 跟踪算法根据已有的人脸定位结果,预测新一帧中各个人脸对应的监视区域并在其约束 的范围内检测人脸。对于第 n 帧图象,根据前 p 帧的跟踪结果求解新的监视区域,可以表示 为如下函数: