健壮的在线脸部跟踪的制作方法

文档序号:6569473阅读:144来源:国知局
专利名称:健壮的在线脸部跟踪的制作方法
健壮的在线脸部跟踪
些旦 冃眾
对于在线视频应用以及新兴的计算机视觉领域,跟踪诸如人脸表现的可视 对象仍然具有挑战性。尽管已有了很多研究,但是开发实际系统仍然面临诸多 挑战,诸如如何处理屏幕上脸部外观的改变、如何在突然移动时保持跟踪、以 及如何最小化抖动等。
按照惯例,某些脸部跟踪技术使用能够显著改善性能的基于粒子的滤波器 跟踪。然而,在实际应用中,这类脸部跟踪通常最终会因复杂的背景噪声、外 观变化和快动作而失败。比单独由粒子滤波器跟踪所能提供的更为健壮的脸部 跟踪技术是诸如控制台游戏、即时消息应用、影片编辑、数字媒体生成等实际 系统所不可或缺的。
为了投入实际应用,例如用于在线视频的脸部跟踪系统应该是快速的,带 有较高的检测率;并且是有效的,带有较低的跟踪失败率。这一脸部跟踪系统 应该实时跟踪而不占据计算机处理资源的主要份额,也不会遭遇明显的抖动。 在发生脸部跟踪的同时应该能够执行其他的处理任务。
概述
描述了用于健壮的在线脸部跟踪的系统和方法。在一个实现中, 一种系统 导出描绘可视对象运动的视频序列的每一视频帧的多种分辨率。系统以较低分 辨率跟踪可视对象的运动,作为以更高分辨率跟踪可视对象的输入。该系统 能够大大减少抖动,同时保持可靠地跟踪快速移动可视对象的能力。
提供本概述以便以简化形式介绍概念精选,这些概念将在以下的详细描述 中被进一步描述。本概述并不旨在标识要求保护的主题的关键特征或本质特 征,也不旨在用于帮助确定要求保护的主题的范围。附图简述


图1是示例性脸部跟踪系统的框图。 图2是示例性脸部跟踪引擎的框图。
图3是示例性多尺度(multi-scale)跟踪器的框图。 图4是示例性脸部跟踪方法的流程图。
详细描述 概览
在此描述的系统和方法例如为在线视频应用提供了对人脸或其他可视对 象的健壮跟踪。示例性的脸部跟踪系统具有可靠地执行快动作跟踪(即,跟踪 可视对象的突然快速位置改变)同时减小抖动的能力。这通过以不同分辨率跟 踪可视对象来实现"多尺度跟踪"。示例性系统还对由于光照、表情、身体 位置等的改变造成的可视对象(例如,脸部)外观的改变表现稳定。在一个实 现中,示例系统利用全局脸部检测器和局部脸部检测器两者。因此,示例系统 通常包括脸部检测组件和多尺度跟踪组件两者。
示例性系统
图1示出了示例性可视对象跟踪系统,在此情况下为脸部跟踪系统100。 示例性脸部跟踪系统100是其中可以执行在此描述的脸部跟踪的计算环境。示 例性脸部跟踪系统100包括通常连接至因特网104的计算设备102,诸如台式 计算机。计算设备102在显示监视器106上显示图形输出,并且执行各应用, 诸如例示出的生成具有逼真运动的现实图形场景的游戏应用108。示例性脸部 跟踪引擎112在视频帧(诸如来自在线应用的视频帧)序列中自动找出每张脸 114,并跟踪每张脸114的位置。这一脸部跟踪在许多在线环境下很重要,例 如在连接至因特网104的另一远程玩家或远程进程控制诸如动画角色脸部的可 视对象的局部移动时。示例性脸部跟踪引擎112是健壮的,也就是说即便在快 速移动和外观改变的情况下仍不会轻易丢失对脸部位置的跟踪,并且能够可靠 地消除抖动同时保持高效计算。
示例性引擎
图2更为详细地示出了图1中的示例性脸部跟踪引擎112。虽然示例性引擎112在此称为"脸部跟踪引擎",但是跟踪脸部只是提供作为该示例性引擎 112能够执行的更为普遍的"可视对象跟踪"的一个示例。
示例性脸部跟踪引擎112的所示配置旨在为概览目的而提供一个示例性
安排。所示组件或类似组件的许多其他安排在主题范围内也是可能的。这一示
例性脸部跟踪引擎112可以用硬件、软件或硬件、软件、固件的组合等来执行。
示例性脸部跟踪引擎112包括其内包含全局脸部检测器204的跟踪初始器 202、分辨率金字塔生成器206、多尺度跟踪器208、其内包含局部脸部检测器 212的区域扫描器210、所存储的脸部模板214、以及脸部模板评估器216。
分辨率金字塔生成器206可以进一步包括原始图像缓冲器218、图像缓冲 器220、层数选择器222和图像下采样器224。
示例性多尺度跟踪器2.08捕捉脸部114的快动作同时控制抖动。按照惯例, 粒子滤波器用于处理非线性和非高斯跟踪问题,并且有能力捕捉快动作。然而, 单独使用粒子滤波器获得的跟踪结果会遭受很多抖动,这是并对实际系统不利 的。示例性多尺度跟踪器208要在快动作检测和抖动控制之间达成折衷。
多尺度跟踪器208因此就可包括两个或多个脸部跟踪器,用来在每个给定 视频帧的分层分辨率版本("各层")中跨显示图像IIO跟踪脸部移动。例如, 第一跟踪器226、第二跟踪器228、第三跟踪器230、和"第]^"跟踪器232 可被通信地耦合,用以跟踪其对应分辨率层内的脸部,而每个分辨率层都作为 原始图像的一个版本存储在图像缓冲器220内。多尺度跟踪器208还包括层间 初始器234,用来将脸部114的当前位置从跟踪器传送至跟踪器,也就是说传 送脸部位置以便在越来越高的分辨率下供连续跟踪器细化。
为了开始脸部跟踪,跟踪初始器202通过接收视频内容的第一帧并在该帧 内找出脸部114来开始多尺度跟踪。跟踪初始器202的全局脸部检测器204经 由脸部特征来检测脸部114的出现,并且还确定脸部114相对于整个帧的位置。 跟踪初始器202随后把这一脸部最初位置提供给多尺度跟踪器208。打开全局 脸部检测器204,以在脸部跟踪分段的开始或者在脸部跟踪任务的间断(例如, 场景改变或者跟踪失败)之后执行其全局脸部检测任务。在整幅视频帧内对脸 部114的全局"搜索"是精确但耗时的,即计算量巨大,所以仅在刚才描述的 不知道脸部在帧内何处的情况下才打开该全局脸部检测器204。将脸部114的外观特征保持在已存储的脸部模板214内。这些己存储的 脸部特征由多尺度跟踪器208内的多个跟踪器用来识别脸部,从而可以随着脸 部114的移动跨各视频帧来确定脸部114位置变化。
在全局脸部检测器204在第一视频帧内找出脸部114之后,至少部分后续 视频帧被提供给分辨率金字塔生成器206。原始图像缓冲器218存储其接收到 的视频帧,随后图像下采样器224就(例如,通过滤波)导出原始图像的不同 分辨率以便存储在图像缓冲器220内。由图像下采样器224导出的不同分辨率 数由层数选择器222确定。快动作跟踪能力通过添加更多的层而得到提升,也 就是说通过使用更多的不同分辨率版本以及在多尺度跟踪器208内使用更多的 对应跟踪器来得到提升。
在较低(或最低)分辨率下工作的第一跟踪器226可以包括或者包含粒子 滤波跟踪器,用以捕捉目标脸部114的高度动态运动。另一方面,在较高(或 最高)分辨率下工作的"第N"跟踪器232可以包括或者包含均值偏移(mean shift)跟踪器。 一旦(最低分辨率)第一跟踪器226接收到来自跟踪初始器202 的初始脸部位置,第一跟踪器226随后就对后续视频帧进行处理,来跟踪脸部 位置的变化。
层间初始器234将无把握的脸部位置从跟踪器传送到跟踪器,也就是说, 从每一较低分辨率器的跟踪器(例如,226)传送到更高分辨率的跟踪器(例 如,228)。这一传送将由每一连续跟踪器输出的脸部位置作为近似开始位置 输入到下一更高分辨率水平的下一跟踪器(即,从第一跟踪器226到第二跟踪 器228,再到第三跟踪器230,依此类推,直到最高跟踪器232)。
以此方式,最高分辨率跟踪器232就能达到脸部114的最佳目标位置236, 而无需该最高分辨率跟踪器232以高分辨率执行所有跟踪,即无需专门在高分 辨率下通过扫描视频帧的局部区域来找出脸部114,这样将会是计算量极大的。 所以在多尺度跟踪器208中,高分辨率跟踪器只细化由较低分辨率跟踪器转发 的脸部位置,而不是在相对较大的面积内以高分辨率跟踪脸部114 (这一面积 在脸部114在视频场景内快速移动时特别大)。
取决于为不同分辨率层选择的分辨率,脸部114的快动作在较低分辨率下 "减缓",这是因为例如在高分辨率下覆盖20像素距离的脸部移动在较低分辨率下仅覆盖4像素的距离。因为在低分辨率下能更有效地跟踪相对较大的移
动距离,所以多尺度跟踪器208仍然非常高效并能减少抖动。
按照惯例,脸部114的外观特征可以随时间改变(例如,因为光照、脸部 表情、身体位置、与观察者的察觉距离等),这极大地影响了跟踪性能。按照 惯例,在常规跟踪技术中利用在线学习算法来更新跟踪目标的模板。然而,在 线更新过程的累计误差通常会导致这些学习算法失败。于是,对于示例性脸部 跟踪引擎112而言,在每个多尺度跟踪循环结尾处,例如在处理每一视频帧的 结尾处,当输出最佳目标位置236时,脸部模板评估器216检测与存储的脸部 模板214中的模板相比较,脸部特征是否发生变化。如果脸部外观的变化已超 出阈值,则区域扫描器210就重新读取脸部114的外观特征。局部脸部检测器 212读取位于刚由多尺度跟踪器208输出的最佳目标位置236中央的视频帧局 部矩形中的外观特征。在一个实现中,如果脸部特征的变化尚未超过阈值,则 区域扫描器210根本不会打开。有时候,虽然局部脸部检测器212很快,但是 它仍可能在存在快动作时失败,那么在这种情况下该系统就回到全局脸部检测 器204。
如果脸部模板评估器216在最佳目标位置236处找到脸部114,则无论区 域扫描器210是否更新脸部外观特征,最佳目标位置236仍被馈至(最低)第 一跟踪器226用以下一脸部躍踪循环,诸如用于视频帧序列中的下一视频帧。 如果脸部模板评估器216无法找出脸部114,则全局脸部检测器204就针对脸 部114扫描整个视频帧,而跟踪初始器202则重新开始多尺度跟踪。
图3示出了另一示例性多尺度跟踪器302。在此实现中,分辨率金字塔仅 有两层。因此,多尺度跟踪器302的这一版本只有两个跟踪器,低分辨率粒子 滤波跟踪器304和高分辨率均值偏移跟踪器306。各种己知的粒子滤波跟踪过 程可由该粒子滤波跟踪器304使用,而各种均值偏移过程则可由该均值偏移跟 踪器306执行。例如,均值偏移跟踪器306可以从梯度导出位置,就如同找出 作为位置的函数的梯度的根一样,反之亦然。通过使用均值偏移跟踪器306来 找出图像最高分辨率层中的最佳目标位置,就可以通过单独使用粒子滤波器 304来减少抖动。于是,通过将这两类跟踪器组合在分辨率层方案中,示例性 多尺度跟踪器302能够提供合理的抖动控制,同时维持快动作跟踪性能。而且,能够如以上对图2的脸部跟踪引擎112所描述的那样,通过添加更多的分辨率 层和更多的跟踪器来提升快动作跟踪。 示例性方法
图4示出了示例性脸部跟踪方法400。在流程图中,将操作概括为各个独 立的块。示例性方法400的各部分可由硬件、软件、或软硬件组合来实现,例 如由示例性脸部跟踪引擎112的组件实现。
在框402,执行全局脸部检测,这包括在必要时对视频序列的第一输入视 频帧进行全扫描,以找出脸部并找出脸部在该视频帧内的对应位置。位置信息 将被用于初始化多尺度跟踪。全局脸部检测可由全局脸部检测器204来执行。
在框404,执行多尺度跟踪来跟踪脸部位置。多尺度跟踪可以包括导出原 始图像的多个分辨率版本("图像金字塔"或"分辨率金字塔")的步骤。随 后在原始图像的低分辨率版本下执行脸部跟踪。随后,.使用来自低分辨率跟踪 的跟踪结果来开始更高分辨率的脸部跟踪。这种在越来越高的图像分辨率下的 迭代脸部跟踪可以随着脸部的目标位置从分辨率金字塔的每一较低层传送至 该金字塔的更高一层而得到理解。
在分辨率金字塔的最高分辨率层,使用均值偏移跟踪来对目标位置进行最 终细化,也就是说确定脸部的位置,并将其作为当前视频帧的最终结果由多尺 度跟踪方法输出。这一多尺度跟踪可由多尺度跟踪器208执行。
在框406,对正被跟踪的对象的各特征,诸如脸部特征进行评估以找出是 否期望对这些特征进行更新。也就是说,多尺度跟踪的每一级都使用跟踪模板 来识别正被跟踪的对象(脸部)。因为在视频序列中,移动的脸部或其他物体 的可视特征可能会有所变化,所以要周期性地更新各跟踪模板。于是,评估可 以包括将当前目标的模板与已存储目标的模板相比较。如果不希望更新跟踪模 板信息,则方法400返回在框404的多尺度跟踪。
在框408,如果在框406,当前可视特征和先前存储的一组例如脸部的可 视特征之间的相似度落在阈值之下,则在框408,激活局部脸部检测以用正被 跟踪的脸部的当前可视特征来更新跟踪模板。局部脸部检测只在从上一跟踪器 执行获取的当前跟踪位置的紧邻位置上进行扫描。这节省了在框402中使用全 局脸部检测重新扫描整个视频帧的计算成本。局部脸部检测可由局部脸部检测在框410,该过程评估跟踪是否失败。如果局部脸部检测在框408发现脸 部,则可以将脸部的当前可视特征存储在当前跟踪模板内,并且还可以将这些 当前可视特征发送到执行多尺度跟踪一部分(即在框404处)的下一 (或当前 正工作的)跟踪器。
如果在框408内的局部脸部检测无法在由多尺度跟踪确定的当前位置处 检测到脸部或可视对象,则跟踪失败并且该方法分支回到框402处的全局脸部 检测以在必要时在整个视频帧的范围内找出脸部。
结论
以上描述的主题可以用硬件、软件、固件等或其组合来实现。在某些实现 中,本主题可在诸如程序模块等由计算设备或通信设备执行的计算机可执行指 令的通用语境中描述。 一般而言,程序模块包括例程、程序、对象、组件、数 据结构等,它们执行特定任务或实现特定抽象数据类型。本主题还能在分布式 通信环境中实现,其中任务由通过通信网络链接的远程处理设备通过无线通信 完成。在无线网络中,程序模块可以位于包括存储器存储设备在内的本地和远 程通信设备存储介质中。
以上讨论描述了示例性健壮的在线脸部跟踪。虽然己经用具体到结构功能 部件和/或方法动作的语言对主题进行了描述,但是应该理解,在所附权利要求 中定义的该主题不必限于上述具体的功能部件或动作。相反,上述具体功能部 件和动作是作为实现权利要求的示例形式而公开的。
权利要求
1.一种方法,包括导出视频序列的各视频帧的多个分辨率,其中所述视频序列包括移动中的可视对象;在所述多个分辨率的较低分辨率下跟踪所述可视对象的移动;以及在所述多个分辨率的较高分辨率下跟踪所述可视对象的移动,其中在较低分辨率下所述跟踪的输出用作在较高分辨率下所述跟踪的输入。
2. 如权利要求l所述的方法,其特征在于,对于每个视频帧 在较低分辨率下的所述跟踪包括获得所述可视对象的当前位置;以及 在较高分辨率下的所述跟踪包括从所述较低分辨率跟踪获得的当前位置附近开始,以及获得所述可视对象的细化当前位置。
3. 如权利要求l所述的方法,其特征在于,还包括 接收所述视频序列的第一视频帧; 在所述第一视频帧中找出所示可视对象; 接收所述视频序列的后续视频帧;以及 导出每个后续视频帧的多个分辨率。
4. 如权利要求1所述的方法,其特征在于,在较低分辨率下的所述跟踪 包括使用粒子滤波器而在较高分辨率下的所述跟踪包括使用均值偏移跟踪器。
5. 如权利要求l所述的方法,其特征在于,所述可视对象是脸部表示。
6. 如权利要求5所述的方法,其特征在于,还包括存储所述脸部特征的 模板,以及在所述较高分辨率下跟踪移动之后评估所述模板。
7. 如权利要求6所述的方法,其特征在于,还包括如果所述脸部特征 的变化已超过阈值,随后则通过在所述模板中存储脸部的当前特征来刷新所述 模板。
8. 如权利要求1所述的方法,其特征在于,如果所述可视对象已经移动 使得无法找到该可视对象以进行在所述较低分辨率下的所述跟踪,则在整个视 频帧内检测该可视对象的位置。
9. 如权利要求1所述的方法,其特征在于,还包括增加所述多个分辨率的数量以提升快动作跟踪能力。
10. 如权利要求9所述的方法,其特征在于,还包括在所述多个分辨率的 分层结构中,传送每一较低分辨率层的跟踪输出以初始化每个更高一层分辨率 层的跟踪。
11. 一种系统,包括 视频序列输入,用以接收视频帧序列;包含每个视频帧的多个版本的图像缓冲器,其中每一版本拥有不同的分辨率;多尺度跟踪器,用以在不同的分辨率下跟踪所述视频序列中可视对象的移 动,以减少该视频序列中的抖动,其中使用由所述多尺度跟踪器在较低分辨率 下检测到的所述可视对象的移动作为该多尺度跟踪器的输入以便在较高分辨 率下检测所述可视对象的移动。
12. 如权利要求11所述的系统,其特征在于,还包括层数选择器,用以 选择在所述图像缓冲器中数量更多的所述多个版本,以增进对所述可视对象的 快速移动的检测。
13. 如权利要求12所述的系统,其特征在于,还包括在所述多尺度跟踪 器内的多个跟踪器,其中在所述图像缓冲器中的多个版本的每一个具有一对应 的跟踪器。
14. 如权利要求13所述的系统,其特征在于,最低分辨率跟踪器使用粒 子滤波器来跟踪所述可视对象的运动,而最高分辨率跟踪器使用均值偏移跟踪 器来跟踪所述可视对象的运动。
15. 如权利要求13所述的系统,其特征在于,还包括层间初始器,用以 将较低分辨率跟踪器的输出传送到分辨率稍高一级的跟踪器,以初始化该分辨 率稍高一级的跟踪器的跟踪。
16. 如权利要求11所述的系统,其特征在于,所述多尺度跟踪器能够使 用所述多个视频帧分辨率来跟踪脸部的可视表示。
17. 如权利要求16所述的系统,其特征在于,还包括跟踪初始器,用以 扫描视频帧直到检测到脸部并存储该脸部特征的模板。
18. 如权利要求17所述的系统,其特征在于,还包括脸部模板评估器,其中响应于所述多尺度跟踪器使用最高分辨率对脸部当前位置进行检测,所述 脸部模板评估器将所述脸部的当前特征与所存储的模板内的所述脸部的已存 储特征相比较。
19. 如权利要求18所述的系统,其特征在于,如果所述当前特征从所述 模板内特征的变化已经超过阈值,则通过在所述模板中存储该脸部的当前特征 来刷新所述模板。
20. —种系统,包括用于导出各视频帧的多个分辨率的装置,其中所述视频帧的序列示出了可 视对象的移动;用于在所述多个分辨率下跟踪所述可视对象的移动的装置,其中将在较低 分辨率下检测到的所跟踪的移动作为用于在较高分辨率下跟踪所述可视对象 的输入。
全文摘要
描述了用于健壮的在线脸部跟踪的系统和方法。在一个实现中,一种系统导出描绘可视对象运动的视频序列的每一视频帧的多个分辨率。该系统以较低分辨率跟踪可视对象的运动,作为用于以高分辨率跟踪可视对象的输入。该系统能够大大减少抖动,同时维持可靠跟踪快速移动可视对象的能力。
文档编号G06T17/00GK101297322SQ200680040318
公开日2008年10月29日 申请日期2006年10月31日 优先权日2005年11月2日
发明者R·肖, 张伟伟, 汤晓鸥 申请人:微软公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1