机器视觉特征跟踪系统的制作方法

文档序号:12159013阅读:251来源:国知局
机器视觉特征跟踪系统的制作方法与工艺

本申请涉及跟踪系统,尤其涉及机器视觉特征跟踪系统。



背景技术:

用于自动地标识数字图像和视频中的对象或特征的机器视觉技术被用于各种各样的使用。视频帧中的可见特征(诸如面部或车牌)可移动、旋转或变得有阴影或以其他方式被遮挡,例如随着特征(例如对象)的移动在视频的多个帧上被捕捉。这样的事件可减少机器视觉算法(诸如对象定位、朝向检测、人脸检测和跟踪)的准确性。



技术实现要素:

本发明描述了用于在视频的多个帧上跟踪特征的系统、方法和计算机可读介质。如本文中使用的,“跟踪”指在后续帧中确定在先前帧中检测到的特征的位置。在一些示例中,计算系统可至少部分基于视频的帧和先前特征位置图来产生候选特征位置图。计算系统可至少部分基于候选特征位置图来确定候选特征区域。计算系统接着可通过将视频的帧中测试区域的直方图与视频的先前帧中对应区域的直方图进行比较来定位视频的帧中候选特征区域处的特征。根据本文描述的示例技术,测试区域可至少部分基于候选特征区域来被确定。根据本文描述的示例技术,特征可在来自图像传感器的视频上被跟踪并且被跟踪的特征的指示可例如经由电子显示被呈现。

提供概述以便以简化形式介绍将在以下详细描述中进一步描述的一些概念的选集。本发明内容不旨在标识所要求保护的主题的关键或必要特征,也不旨在用于帮助确定所要求保护的主题的范围。例如术语“技术”可指代上述上下文和通篇文档中所准许的系统、方法、计算机可读指令、模块、算法、硬件逻辑和/或操作。

附图说明

在各附图中,使用相同的标号来指示相同的特征和组件。附图不必缩放。

图1是描绘了用于实现本文描述的视频中的特征跟踪的示例环境的框图。

图2是其中特征被跟踪的视频的示例帧的图形表示。

图3显示了根据本文描述的特征跟踪的一示例的图像数据区域的示例直方图。

图4是描绘了在特征跟踪期间的示例模块交互的数据流图。

图5是示出用于跟踪视频帧中的特征的示例过程的流程图。

图6是示出用于跟踪并检测视频帧中的特征的示例过程的流程图。

图7是示出用于跨可见度减低来跟踪视频帧中的特征的示例过程的流程图。

图8是描绘了根据本文描述的各示例的被配置成参与特征跟踪的示例计算设备的框图。

具体实施方式

概览

本文描述的示例提供跟踪数字视频中的特征的技术和构造。这些技术可使得能够用增加的速度、增加的精确度、减低的计算时间和/或减低的存储器要求来实现跨视频的多个帧的特征跟踪。该跟踪还可允许附加的技术被执行,诸如遮挡或突出显示视频中的特征(诸如面部)或选择视频的相关部分以供进一步分析,例如车牌的字符识别。

本文描述的一些示例提供相比于传统的跟踪算法而言改进的性能。一些现有的方案重新检测视频的每个帧中的特征。本文的一些示例检测多个帧的分组中一个帧中的特征并接着在帧之间跟踪特征,从而减少对跟踪的计算需求。一些示例允许即使在特征不出现在一些帧的情况下(例如,因为它们被遮挡在其他特征后面)依然跟踪它们。

如本文所使用的,术语“视频”指的是数字图像的时间序列。图像可在时间方面被规律地间隔(例如,每秒29.97、30或60帧(fps))或可在时间方面被不规律的间隔。视频可按例如未被压缩的形式或被压缩的形式被存储和操 纵。示例压缩技术可包括但不限于,在可移植网络图形(PNG)、联合图像专家组(JPEG)、运动JPEG和运动图片专家组(MPEG)标准中描述的那些。

用于特征跟踪的一些示例场景和示例技术在以下关于附图的描述中被更加详细地呈现。

说明性环境

图1显示了特征跟踪系统的各示例可在其中操作的或诸如以下描述的特征跟踪方法可在其中被执行的示例环境100。在示出的示例中,环境100的各个设备和/或组件包括计算设备102,其被描绘为服务器计算机。计算设备102表示可接收和处理视频内容的任何类型的设备。作为示例而非限制,计算设备102可被实现为启用因特网的电视机、电视机机顶盒、游戏控制台、台式计算机、膝上型计算机、平板计算机或智能电话。不同的设备或不同类型的设备可具有对特征跟踪数据的不同使用。例如,机器人或工业机器的控制者可使用来自它们的工作场所的视频的特征跟踪信息来确定工作件在移动或工步期间的位置。例如在公共空间中操作的监视或其他视频记录系统可使用特征跟踪数据来在视频中突出显示可疑对象或遮挡人的面部以保护他们的隐私。

在所示示例中,计算设备102包括被描绘为相机的图像源104或通信地与其连接。图像源104可包括一个或多个计算设备或其他被配置成提供视频帧106的系统。在示出的示例中,图像源104提供场景108的视频。视频具有多个视频帧106。场景108包括主体110,在这个示例中为一人。该示例场景108是出于说明的目的,而不是限制。

在一些示例中,计算设备102或图像源104可包括例如被配置成捕捉视频帧106或以其他方式提供视频帧106或能被处理成视频帧106的数据的一个或多个传感器112。例如,图像传感器112可被配置成提供具有多个帧106的视频。示例图像传感器可包括智能电话前向和后向相机、光传感器(例如,CdS光敏电阻器或光敏晶体管)、照片成像器(例如,电耦合器件(CCD)、互补金属氧化物半导体(CMOS)传感器等)、视频成像器(例如,CCD或CMOS)、指纹读取器、视网膜扫描仪、虹膜扫描仪、计算机射线照相扫描仪,等等。一些示例传感器112可包括可见光图像传感器(例如,λ∈[400nm(纳米),700nm])或红外光图像传感器(例如,λ∈[700nm,15μm]或λ∈[700nm, 1mm])。一个或多个传感器112中的各个可被配置成输出对应于至少一个物理特性(例如,设备的环境的物理特性)的传感器数据,诸如环境光或场景图像或视频帧。

在(诸)视频帧106的一个或多个中表示主体110的图像数据具有特征114,在这个示例中为人的面部。除了面部之外,其他示例特征可包括但不限于,标识记号(例如车辆上的车牌或停车证、船体或帆上的船注册标记、飞机尾翼编号(例如,“N38290”或“B-8888”))、显示在建筑物或邮箱上的街道地址号码、衣物上的图案(例如,卡通脸、奇形怪状的图案、或体恤上的企业或政府标志)、或具有可容易地从场景108的背景中区分的颜色或图案的衣物、配饰或车辆,例如红色的雨伞、黑的帽子或条纹裙子。此处的各个方面跨多个视频帧106来跟踪面部或其他特征114。

计算设备102包括至少一个处理器116和被配置成存储例如被处理的(诸)视频帧(106)或其他视频数据的存储器118。存储器118还可存储以下中的一个或多个:被存储在存储器118中并可在处理器116上执行的检测组件120、跟踪组件122和报告组件124。组件120、122或124可包括例如存储在计算机可读介质(诸如计算机存储介质(以下讨论))上并在其上具有计算机可执行指令的模块。示例计算设备102的细节可代表其他计算设备102或图像源104。然而,计算设备102或图像源104中的各个可包括附加的或替换的硬件和/或软件组件。

检测组件120(或它的模块,本文中都如此)可被配置成在一个或多个视频帧106中定位特征114(例如,面部)。跟踪组件122可被配置成跨多个视频帧106来跟踪特征114例如以确定给定特征如何在两个连续的帧之间移动、或基于阴影、遮挡或特征的可见度方面的其他改变来激活或停用针对特定特征的跟踪器。报告组件124可被配置成例如提供视频的(诸)帧106中被定位的特征(诸如面部)的视觉表示。在一些示例中,报告组件124可被配置成渲染帧106和跟踪指示中的至少一些以供经由显示设备126来显示。显示设备126可包括有机发光二极管(OLED)显示器、液晶显示器(LCD)、阴极射线管(CRT)或另一类型的视觉显示器。显示设备126可以是触摸屏的组件,或可包括触摸屏。

在一些示例中,报告组件124可经由显示设备126提供视频帧或特征跟踪数据的视觉表示128,如以下讨论的。在一些示例中,报告组件124可呈现来显示视频的一个或多个帧106以及被定位的特征中被跟踪的那些中的至少一些的视觉表示128。示例视觉表示128(1)–128(3)(本文个别地或共同地使用标记128)被显示在图1中。表示128可表示跟踪和视频信息的可能图形显示,并可表示以下讨论的内部数据结构。

表示128(1)表示在第一时间t=0的视频帧106。在t=0的视频帧包括人类主体110的图像数据。时间可被表示为,例如挂钟时间(小时、分钟或秒)、帧或字段(例如,如被表示为由电影与电视工程师协会(SMPTE)标准化的时间码)或它们的任意组合。显示了突出显示感兴趣的特征(在这个示例中为主体110的面部)的跟踪器130(1)。如本文描述的,跟踪器是跨视频帧106中的一个或多个来表示特定特征的数据结构,并可被图形地表示为突出显示(诸如轮廓(示出的))或被图形地表示为模糊(诸如变暗的或模糊的区域)。其他示例类型的突出显示以及模糊在以下讨论。

表示128(2)表示在稍后时间t=1的视频帧106。相对于在时间t=0的视频帧,主体110移动到了帧106的右边(主体的左边)。类似地,跟踪器130(2)移动到了帧106的右边以便跨在时间t=0,1的视频帧106来指示特征的位置。

表示128(3)表示在稍后时间t=2的视频帧106。主体110移动到帧106的更右边(主体的左边),并开始移动出帧106。跟踪器130(3)也移动到了帧106的更右边以便跨在时间t=0,1,2的视频帧106来指示特征的位置。即使特征被帧106的边缘部分地遮挡,跟踪器130(3)在这个示例中依然能够跟踪特征。

在示出的示例环境100中,检测组件120、跟踪组件122和报告组件124各自可以是操作系统(未示出)的组件或者以其他方式在计算设备102或图像源104上本地地存储或执行。然而,在其他示例中,这些系统组件中的一个或多个可被实现为分布式系统的一部分,例如实现为基于云的服务的一部分或者另一应用的组件。例如,图像源104可被具体化在智能电话中并且计算设备102能被具体化在云或其他托管的特征跟踪服务中。

在一些示例中,图像源104被具体化在计算设备102中或连接到计算设备102。例如,图像源104和计算设备102可被具体化在智能电话、平板、MICROSOFT(微软)SURFACE、APPLE(苹果)IPAD或其他被配置成捕 捉视频并跟踪其中的特征或显示其中的特征的跟踪信息的设备中。这能有利地在即使未连接到网络的情况下允许跟踪特征。在一些示例中,图像源104的处理器(未显示)可经由网络132(诸如因特网)与计算设备102通信。计算设备102可主存检测组件120、跟踪组件122和报告组件124中的一个或多个,并且可以经由网络132与图像源104交换数据以执行本文描述的处理。网络132可包括有线电视网、射频(RF)微波、卫星和/或诸如因特网等数据网络,并且还可使用诸如广播、单播或多播等任何格式和/或协议来支持有线或无线介质。另外,网络132可以是使用任何类型的网络拓扑和任何网络通信协议的任何类型的网络(有线或无线),且可被表示为或以其它方式实现为两个或更多网络的组合。

说明性处理

图2显示了例如场景108的视频的示例帧106的图像表示200,其中特征被跟踪,例如,如在此讨论的。图2显示了四个帧202(1)–202(4)(个别地或共同地本文用标记202来参考)的表示。点状的或短虚线的矩形表示跟踪器204(1)-204(3)(个别地或共同地本文用标记204来参考)的表示。跟踪器204(1)–204(3)对应于帧202的各个被跟踪的区域。帧202显示了总共三个不同的人,即主体206(1)–206(3)(个别地或共同地本文用标记206来参考)。出于阐述的目的而非限制,跟踪器204对应于三个主体206来编号。

在帧202(1)和202(2)之间,主体206(1)(描绘为男人)向帧的右边移动并且主体206(2)(描绘为女人)向帧的左边移动,相比于主体206(1)而言更靠近相机。跟踪器204(1)和204(2)分别突出显示并表示被检测或被跟踪的特征,在这个示例中分别为主体206(1)和206(2)的面部。跟踪器204(1)和204(2)的初始位置可例如由检测组件120来确定。

在帧202(2)中,主体206(2)移动到了主体206(1)的前面(从相机的视角而言)。跟踪组件122确定了跟踪器204(2)的新位置对应于主体206(2)的面部的新(被跟踪的)位置。然而,主体206(1)的面部被遮挡。跟踪组件122检测到了该遮挡并将跟踪器204(1)指定为帧外跟踪器208,出于解释的目的被图形地表示在帧202(2)的下方。即,被跟踪器204(1)跟踪的特征在帧202(2)中不可见。如本文使用的,术语“帧内跟踪器”指不是帧外跟踪器208的跟踪器。

插图210显示了帧202(2)中主体206(1)和206(2)的面部的放大视图。跟踪器204(2)指示主体206(2)的面部的被跟踪的部分。候选特征区域212显示例如通过跟踪组件122确定为对应于帧202(1)中的跟踪器204(1)的被跟踪的区域的区域。跟踪组件122可通过将视频的帧202(2)中测试区域(例如,候选特征区域212)的直方图与视频的先前帧202(1)中对应区域的直方图进行比较来在候选特征区域212中定位感兴趣的特征114,或确定感兴趣的特征114在候选特征区域212中不可见。

在这个示例中,跟踪组件122将直方图214确定为帧202(1)中跟踪器204(1)的被跟踪区域的示例直方图。为了解释的清楚而非限制,直方图214显示了跟踪器204(1)的被跟踪的区域中黑色(“K”)、棕色(“Br”)和肤色(“Fl”)的百分比,例如,25%K、15%Br和60%Fl。在各个示例中,直方图包括帧的一区域中像素的各个颜色分量的直条分组数据(binned data),例如,如以下参考等式(2)讨论的。通常在直方图中表示的具体颜色对应于颜色空间(例如,在RGB颜色空间中红色、绿色和蓝色的具体数量)。黑色、棕色和肤色被用在这个示例中,仅仅是为了简化解释。然而,在一示例实现中,棕色、黑色和肤色实际上被表示为例如红色、绿色和蓝色信息或色调、饱和度和值信息的组合。还在这个示例中,跟踪组件122确定了帧202(2)中候选特征区域212的直方图216。在示出的示例中,主体206(1)具有相对较少量的黑发,并且主体206(2)具有相对较大量的棕发。如显示的,因为候选特征区域212包括主体206(2)的棕发中的一些,直方图216不同于直方图214。在这个示例中,直方图216具有20%K、50%Br和30%Fl。

跟踪组件122可例如通过计算直方图之间的差别或距离来比较直方图。在示出的示例中,跟踪组件122确定直方图214和直方图216之间的距离(或差别,本文中都如此)。跟踪组件122确定该距离大于所选阈值,并且由此该候选特征区域212不对应于被跟踪的特征114,在这个示例中为主体206(1)的面部。跟踪组件122由此将帧202(2)中的跟踪器204(1)标记或以其他方式指定为帧外跟踪器208,如显示的。

在帧202(2)和202(3)之间,主体206(2)移动到了主体206(1)的左边(从相机的视角而言)。跟踪组件122确定了对应于主体206(2)的面部的被跟踪的位 置的跟踪器204(2)的经更新的位置。在一些示例中,由于在先前帧202(2)中存在帧外跟踪器208,所以检测组件120可检测帧202(3)中的特征(例如,面部)。在示出的示例中,检测组件120检测不再被遮挡在主体206(2)后面的主体206(1)的面部。跟踪组件122可将主体206(1)的新检测到的面部与帧内跟踪器、帧外跟踪器208或它们的任意组合进行比较。例如,跟踪组件122可将(诸)帧外跟踪器208(诸如跟踪器204(1))的所存储的位置信息与(诸)检测到的特征的位置信息进行比较。跟踪组件122可附加地或替换地将新发现特征114的直方图与帧内跟踪器或帧外跟踪器208的直方图进行比较。在示出的示例中,跟踪组件122确定了跟踪器204(1)对应于帧202(3)中主体206(1)的检测到的面部。

在一些示例中,跟踪组件122可附加地或替换地至少部分基于不同于被跟踪的区域的测试区域来跟踪特征。这可允许例如替代于或附加于主体面部的图像数据,使用主体穿戴的衣服的图像数据来在主体的面部之间进行区分。由于衣服比肤色而言可更加按人来变化,所以例如当一人在另一人前面穿过(“面部交错”)(例如,如在帧202(1)–202(3)中显示的)时或当面部消失并接着重新出现(“遮挡”)(例如,如帧202(2)和202(3)中显示的)时,使用衣服可提升跟踪面部的准确度。这还可提供例如在跟踪车辆的车牌方面提升的准确度。例如,车辆颜色和保险杠贴纸颜色和图案相比于车牌颜色而言可更加按车辆来变化。因此,附加于(或替代于)车辆的车牌的各部分的图像数据,至少部分基于车辆的保险杠的各部分的图像数据的跟踪可允许更加准确地跟踪场景108中的多辆车。为了解释的清楚,除了被跟踪的区域之外,本文仅描述了一个测试区域。然而,对于给定的被跟踪的区域,可使用任意数量的测试区域。对于给定被跟踪的区域的测试区域的数量可在帧202之间变化。跟踪组件122可基于候选特征区域(诸如候选特征区域212)、基于被跟踪的区域(诸如针对跟踪器204)或它们的任意组合来确定测试区域。

在示出的示例中,跟踪组件122可至少部分基于例如跟踪器204(1)的被跟踪的区域来确定帧202(1)中的测试区域218。跟踪组件122还可至少部分基于帧202(3)中跟踪器204(1)和204(2)的被跟踪的区域(例如,主体206(1)、206(2)的各个被检测到的面部的位置)来确定帧202(3)中的各个测试区域220(1)和220(2)。这些区域的直方图可被用在跟踪中,如以下参考图3讨论的。帧 202(1)–202(4)中由跟踪器204(1)和204(2)显示的部分可以例如是如本文参考跟踪组件122讨论的候选特征区域或测试区域。例如,如果主体206(1)和206(2)具有非常类似的肤色和头发颜色,则对应于主体衣服的测试区域220(1)和220(2)可被用于对主体进行相互区分。

在帧202(4)中,新主体206(3)出现在场景108中。检测组件120在帧202(4)中定位新特征,例如新出现的主体206(3)的面部。跟踪组件122可例如使用本文描述的对位置、直方图或其他数据的比较来确定新特征不对应于现有的跟踪器(例如,帧外跟踪器208)并可由此分配用检测结果初始化的新跟踪器204(3)。在这个示例中,出于说明的目的,跟踪器204(3)的视觉表示被显示为对主体206(3)的面部进行阴影化的模糊。模糊的其他示例在本文中讨论。

在一些示例中,跟踪组件122可使用分配算法来确定被检测的特征114和跟踪器204之间的对应关系。对特征的检测的示例在以上参考帧202(1)和202(4)来讨论。分配算法(诸如匈牙利(Hungarian)算法或其他动态编程或组合优化算法)使用分数,例如给定跟踪器(帧内或帧外)和给定被检测的特征之间的差别或距离。例如,分数可以是被跟踪的区域中的图像数据与保持被检测的特征的区域中的图像数据之间的直方图距离;跟踪器和特征之间的重叠率,以下参考等式(3)讨论的;或它们的组合,例如,加权的和。

分配算法可确定给定一组被检测的特征和给定一组跟踪器(例如,帧内、帧外或两者)之间的对应关系,使得分数在数学上被最大化(例如,对于适合度分数)或最小化(例如,对于距离分数)。其他数学优化算法(例如,梯度下降算法)还可使用或替换地被使用。可使用其他算法,例如将图像分区到各区域并对相同区域中的跟踪器和被检测的特征执行分配或其他测试。

在一些示例中,帧内跟踪器和帧外跟踪器两者均被提供给分配算法(或其他数学优化技术)。例如在处理器116上执行的算法可确定跟踪器和被检测的特征之间的映射。映射可指示一些跟踪器不对应任何被检测的特征。响应于这样的映射,这些跟踪器可接着被指定为帧外跟踪器208。

图3显示了以上参考图2讨论的示例测试区域的示例直方图300。如以上讨论的,在一些示例中,测试区域(例如,衣服区域)而非特征区域(例如,面部区域)被用在例如跨遮挡跟踪特征114中。参考图2和图3两者,在帧202(1) 中,跟踪组件122可至少部分基于例如帧202(1)中跟踪器204(1)的位置信息或其他特性或帧202(1)中的跟踪器204(1)表示的被检测的特征来确定测试区域218。跟踪组件122还可至少部分基于例如帧202(3)中跟踪器204(1)和204(2)的位置信息或其他特性或帧202(3)中的跟踪器204(1)和204(2)表示的被检测的特征来确定测试区域220(1)和220(2)。

在示出的示例中,主体206(1)穿着白色(“Wh”)衬衫并且主体206(2)穿着红色(“R”)裙子。因此,第二测试区域220(1)和220(2)的示出的各自直方图302(1)和302(2)分别显示5%R/95%Wh和100%R/0%Wh。测试区域218的直方图304显示0%R/100%Wh。如以上参考图2提到的,示例直方图是出于解释的目的被显示的,而非限制。在一个示例中,替代于简单红/白直条,直方图可包括以[0°,15°,...,360°)为中心的大小相等的色调直条、以[0%,10%,...,100%]为中心的大小相等的饱和度直条以及以[0%,10%,...,100%]为中心的大小相等的值直条。在这个示例中,红色可被表示为接近0°的色调、接近100%的饱和度以及值(例如,50%或更高)的直方图峰值。白色可被表示为具有接近0%的饱和度和接近100%的值的直方图峰值的像素。

跟踪组件122可计算直方图距离并确定跟踪器204(1)应该与在测试区域220(1)上方的一区域而非与在测试区域220(2)上方的一区域相关联,这是因为直方图304(对应于测试区域218)和直方图302(1)(对应于测试区域220(1))之间的距离小于直方图304和直方图302(2)(对应于测试区域220(2))之间的距离。即,帧202(3)中的由跟踪器204(1)跟踪的特征对应于靠近测试区域220(1)的部分,而非对应于靠近测试区域220(2)的部分,如显示的。在示出的示例中,结果是,即使主体206(1)被遮挡(帧202(2))并接着重新出现(帧202(3)),跟踪器204(1)依然保持与主体206(1)相关联。

因此,在一些示例中,跟踪组件122可通过将视频的帧202(3)中的第二测试区域220(1)的直方图302(1)与视频的先前帧202(1)中的对应的测试区域218的直方图304进行比较来定位在视频的帧202(3)中候选特征区域处的特征(由跟踪器204(2)指示)。

在一些示例中,如果测试区域的直方图对应、或如果候选区域的直方图对应、或如果测试区域和候选区域两者的直方图均对应、或如果大部分直方图(候选区域和任意(诸)测试区域)的直方图对应、或如果所选数量的直方图对应、或它们的任意组合,则跟踪组件122可定位特征。在一些示例中,如果没有直方图、或少数直方图、或少于所选数量的直方图没有对应或具有超过所选阈值 的距离、或它们的任意组合、或在这个段落中任意项的任意组合,则跟踪组件122可定位特征。

图4是示出图1中示出的各组件之间的示例交互以及显示跟踪组件122的示例模块的数据流图400。跟踪组件122的各模块(例如,存储在存储器118中)可包括一个或多个模块,例如外壳(shell)模块或应用编程接口(API)模块,其被示为跟踪模块402和更新模块404。在一些示例中,图像源104提供要被例如检测组件120或跟踪组件122处理的(诸)视频帧106。跟踪组件122可例如使用跟踪信息或候选区域的颜色直方图来跟踪视频的帧106中的特征114。在一些示例中,跟踪组件122被配置成至少部分基于帧106的所选区域的图像内容的直方图来更新来自Kanade-Lucas-Tomasi(KLT)跟踪器的跟踪结果,如本文描述的。

在一些示例中,检测组件120可被配置成定位视频的第一帧106或视频的其他(诸)帧中的(诸)特征114。在一些示例中,检测组件120可被配置成至少部分基于视频的帧106来产生被检测的特征位置图406。被检测的特征位置图406可包括例如帧106中一个或多个被检测的特征114的位置或边界矩形或其他边界部分。这可例如使用在MICROSOFT FACESDK中实现的算法来实现。这样的算法可包括但不限于,动态级联、增强分类器、提升链学习、神经网络分类、支持向量机(SVM)分类器或贝叶斯分类。一个示例算法是使用对使用矩形哈尔型特征的级联式子检测器的适应增强学习(AdaBoost)的Viola-Jones检测器。在一些示例中,跟踪模块402可被配置成至少部分基于视频的后续帧106以及被检测的特征位置图406来产生候选特征位置图408。特征可对应于视频的该帧的至少一些图像数据。跟踪模块402可进一步基于视频的先前帧106、对应的先前特征位置图(例如,先前帧特征位置图410(例如,由检测组件120或跟踪模块402提供的))、或它们的组合来产生候选特征位置图408。这可例如通过使用KLT或其他跟踪技术来实现,例如缩放快速压缩跟踪(SFCT)或撞击(Struck)跟踪器。例如,KLT可被应用到先前帧106和后续帧106。候选特征位置图408可包括例如针对位于被检测的特征位置图406中的各个特征的0个、一个、或多个候选部分。在一些示例中,跟踪模块402可使用对缩放改变稳健的跟踪器(诸如KLT)。这可允许在主体110靠近或远 离相机时跟踪特征114。

在一些示例中,被检测的特征位置图406对应于第一视频帧,而候选特征位置图408对应于紧跟在第一视频帧后的第二视频帧。在一些示例中,被检测的特征位置图406是与被安排在视频中的就在候选特征位置图408针对其被确定的视频的帧之前的先前视频帧相对应的先前特征位置图。对这样的配置的示例在以上参考图2的帧202(1)和202(2)来讨论。

在一些示例中,跟踪模块402使用KLT跟踪器。在一些示例中,KLT跟踪器使用数学优化来确定与较早帧中的区域相对应的较后帧中的区域。较后帧中的该区域的像素与较早帧的所选区域的像素之间的平方强度差的和在数学上被最小化。较后帧的该区域接着是较早帧的该区域的被跟踪的等价物。例如,较早帧(例如,第一帧)的该区域可包括特征114(例如面部)的图像数据。较早帧中的该区域以及较后帧的对应区域(例如,根据KLT算法经由数学最小化来确定的)可以是相应帧中特征114的跟踪器130的区域。较后帧中的该区域可以是候选特征位置图408的一个示例。在一些示例中,可至少部分基于较早帧的一区域中点的所选子集来计算KLT或另一跟踪器。

在一些示例中,跟踪模块402可被配置成在视频的后续第二帧上跟踪被定位的特征。例如,在帧1,2,……的序列中,跟踪模块402可使用KLT或另一跟踪技术来从帧1到帧2、接着从帧2到帧3等来跟踪特征。跟踪模块402可被配置成确定第二帧中的特定一帧的第一特征区域的直方图不对应于第一帧的第一特征区域的直方图。作为响应,跟踪模块402可记录指示对应于第一特征区域的被跟踪的特征已移动出该帧(例如,移动出第二帧中的至少一个)的指示。这在以上关于帧外跟踪器208被更加详细地讨论。这可允许即使特征被遮挡(例如,对于少数的帧),依然能够跟踪它们。

在一些示例中,更新模块404可被配置成至少部分基于候选特征位置图408来确定候选特征点。例如,更新模块404可统一地或不统一地从候选特征位置图408中的给定区域选择预定数量的点,例如10×10网格。在一些示例中,更新模块404可选择给定区域的预定数量的点,所选点具有该区域内相对高的幅度梯度,例如,对于整数n而言,具有该区域内的最高幅度梯度的n个点。在一些示例中,更新模块404可选择具有曲率局部最大值的点,例如如通过海赛 矩阵或使用Haar(哈尔)滤波器的对海赛矩阵的近似的行列式来测量的。在一些示例中,更新模块404可通过例如使用哈尔小波来分解和下采样并选择被分解的图像中具有所选幅度(例如,在小波变换后最高幅度值的一定百分比内)的点来选择点。

在一些示例中,更新模块404可应用跟踪器(诸如KLT)或使用来自跟踪模块402的结果来双向地跟踪所选点,例如从第一帧到第二帧,并接着从第二帧中被跟踪的点返回到第一帧。在双向跟踪后第一帧中的起始点和该点可以不是同一点;它们之间的距离被称为“前后误差”(FBE)。在一些示例中,更新模块404可为所选点中的各个点确定FBE。更新模块404可接着确定代表性FBE值,例如所确定的FBE中的至少一些的中间值或平均值,或所确定的FBE中的全部、或这些中任意的所选百分比。在一些示例中,更新模块404可接着将点中满足所选规则(例如,具有少于所确定的代表性FBE值的相应FBE)的一个或多个确定为候选特征点。这可有利地减少跟踪中的噪音,例如由于一个帧和下一帧之间阴影或光照的改变引起的噪音。

在一些示例中,更新模块404可被配置成至少部分基于所确定的候选特征点来确定候选特征区域。在一些示例中,更新模块404可为候选特征点中的一个或多个确定在较早帧中的该点与较后帧中被跟踪的点之间的点位移向量。更新模块404可接着将区域位移向量确定为例如点位移向量中的一个或多个的中间值或平均值。在一些示例中,更新模块404可将候选特征点的各对的对比例因子确定为在较早帧中的该对中的点与较后帧中的该对中的被跟踪的点之间的距离的商。更新模块404可接着将区域比例因子确定为例如对比例因子中的一个或多个的中间值或平均值。在一些示例中,更新模块404可接着将区域位移向量和区域比例因子应用到先前帧特征位置图410的一区域以确定候选特征位置图408中的对应区域。

在一些示例中,更新模块404可被配置成至少部分基于FBE值来确定候选特征区域。例如,对于任一特定候选特征区域,如果中间值(或平均值或其他代表性)FBE大于所选阈值,则更新模块404可例如忽略该候选特征区域或认为对应于该候选特征区域的跟踪器130是帧外跟踪器,如以上参考图2的帧外跟踪器208所讨论的。这可允许检测跟踪失败,例如由于雨伞造成的对面部特 征的遮挡或由于建筑物造成的对车牌特征的遮挡。

在一些示例中,更新模块404可被配置成通过将视频的帧中测试区域的直方图与视频的先前帧中对应区域的直方图进行比较来定位在视频的帧中候选特征区域处(或至少部分地在候选特征区域中、上、内、上方或下方,本文中都如此)的特征114。这可例如如以上参考图2中显示的直方图214和216以及图3中显示的直方图302(1)、302(2)和304所讨论的那样来实现。在一些示例中,更新模块404可被配置成如果视频帧106的被候选特征区域定义的一部分的图像数据的直方图在对应于特征114的先前确定的图像数据直方图的所选距离内,则定位特征114。至少部分基于直方图比较来定位特征可改进跟踪器的稳健性以在帧序列上漂移。

在一些示例中,直方图之间的距离可使用各种度量来计算,包括但不限于,χ2(卡方)、Kolmogorov-Smirnov(KS)、Cramer/von Mises(CvM)、二次形式(QF)、推土机(Wasserstein-Rubinstein-Mallows)距离、Kullback-Liebler(KL)、对称KL、Jeffrey散度(JD)、在具有与直方图的各直条一样多的维度的特征空间中的欧几里得距离或Overton的直方图交叉。

在一些示例中,两个直方图H1和H2之间的距离如等式(1)中那样被计算:

其中L是直方图中直条的数量,并且是直方图的平均。在一些示例中,如果对于选择阈值TH,d(H1,H2)<TH,则两个直方图(例如,被检测的直方图和被跟踪的候选直方图)被确定为相对应。在一些示例中,通过计算各个颜色分量的相应直方图(例如,色调直方图、饱和度直方图和值直方图)来形成直方图Hi。每个直方图可通过使用图像的对应颜色分量的值来被计算。可接着通过串接所计算的各个直方图来形成直方图Hi。例如,给定色调直方图[h1,...,hn]、饱和度直方图[s1,...,sn]和值直方图[v1,...,vn],Hi可如等式(2)中那样形成:

Hi=[h1,...,hn,s1,...,sn,v1,...,vn] (2)

色调、饱和度和值分量可替换地被交错(例如,h1,s1,v1,h2,……),或直方图的一部分(例如,特定分量或范围)可被交错并且一部分不被交错或它们 的任意组合。

参考图2中显示的示例,由于直方图216和直方图214之间的距离超过所选阈值TH,则跟踪组件122确定候选特征区域212不与跟踪器204(1)指示的被检测的区域相关联。在这些示例中的一些中,响应于这个确定或其他直方图匹配或直方图距离准则,跟踪组件122将被跟踪的候选特征区域212选择为对应于帧外跟踪器208的区域。在一些示例中,跟踪组件122可在以下情况下确定跟踪器204是帧外跟踪器208:例如当前帧中没有候选区域直方图与该跟踪器204相关联的先前帧直方图匹配或在与该跟踪器204相关联的先前帧直方图的所选距离内。

在一些示例中,更新模块404可被配置成至少部分基于候选特征区域来确定测试区域。例如,测试区域可在大小上等于或大于或小于候选特征区域,并可具有覆盖候选特征区域的(诸)角或质心或与其隔开的(诸)角或质心。在一些示例中,测试区域可与候选特征区域覆盖或与它隔开。测试区域可例如基于存储的空间关系来确定。在一些示例中,测试区域是或包括候选特征区域。在这些示例或其他示例的一些中,特征是面部。在一些示例中,测试区域相比于候选特征区域而言具有不同的大小或位置。以上参考图2的测试区域220(1)和220(2)讨论了确定测试区域的一些示例。

在一些示例中,两个区域基于颜色距离被认为是对应的。例如,两个区域可在以下情况下被认为是对应的:这些区域中的相应主要颜色(例如,最频繁出现的颜色或颜色直条)在颜色空间中的指定距离内(例如,≤1.0的CIELAB ΔE*)。其他示例色差度量包括L2范数||·||2(即颜色空间(例如L*a*b*或RGB)中的欧几里得距离)、L1范数||·||1(Manhattan(曼哈顿)距离)和颜色空间中的其他Lp范数。其他示例色差度量包括颜色表示或颜色空间中一个或多个分量的数字表示之间的色调角差、每分量或多分量差(例如CIELAB ΔL*、ΔC*、Δh*、Δa*或Δb*)、汉明距离以及CIE 1976 UCS Δu’v’。

在一些示例中,更新模块还被配置成至少部分基于候选特征区域和测试区域之间存储的空间关系来确定测试区域。例如,存储的空间关系可以是指定测试区域与候选特征区域例如以预定方向隔开预定量的近端不相交关系。这可允许使用附近图像数据来定位特征。存储的空间关系可用比例不变项(例如,特 征区域的大小的百分比)来表示。这可允许即使特征在大小或比例方面改变(例如,由于主体110移动地更靠近相机(例如,图像传感器112)或更远离相机),至少部分基于测试区域来跟踪。

例如,当特征114是面部时,由于人类皮肤具有有限范围,可能难以基于颜色来区分面部。然而,衣服趋向于在人们之间变化并趋向于靠近面部并与面部隔开。类似地,保险杠贴纸趋向于靠近车牌,但与车牌隔开。使用具有与候选特征区域的(诸)近端不相交关系的(诸)测试区域允许使用靠近特征114的图像数据来区分并跟踪那些特征114。以上参考图2的测试区域220(1)和220(2)讨论了其他示例。

在一些示例中,如本文描述的直方图可在一个或多个颜色空间中计算,诸如由国际照明委员会(CIE)、国家电视制式委员会(NTSC)或国际电工委员会(IEC)定义的那些颜色空间。可被使用的示例颜色空间包括CIE L*a*b*(CIELAB)、CIE L*u*v*(CIELUV,1976)、CIE Yu’v’(CIE 1976统一坐标比例,UCS,加亮度Y)、YIQ(NTSC 1953)、sRGB(IEC 61966-2-1:1999)、线性RGB或其他颜色空间。在一些示例中,直方图可在具有至少色调和彩度维度的颜色空间中计算或以其他方式确定。这样的颜色空间的示例包括但不限于,色调/饱和度/值(HSV)、色调/饱和度/亮度(HSL)、色调/饱和度/强度(HSI)和CIE L*C*h*。例如,图像可包括对应于颜色空间的各维度的相应颜色分量。

在一些示例中,跟踪组件122被配置成例如在所选颜色空间中计算一帧中第一特征区域的直方图和较早帧中第一特征区域的直方图之间的距离。跟踪组件122还可被配置成响应于所计算的距离超过所选阈值(例如ΔE*≥1.0),确定那些直方图不对应。

在一些示例中,特征跟踪系统可包括显示设备126。在一些示例中,报告组件124可被配置成提供视频的帧中被定位的特征的视觉表示以供显示。在一些示例中,报告组件124可被配置成经由显示设备126来提供视觉表示。以上参考图1中的表示128讨论了各示例。在一些示例中,报告组件124可被配置成呈现视频的各帧以及被检测和/或被跟踪的特征的至少一些的视觉表示以供显示。

在一些示例中,视觉表示可包括至少一个模糊。示例模糊可包括例如,变 暗(例如,黑色)的部分、变亮(例如,白色)的部分、在其中图像数据在空间上失真的部分、或在其中图像数据被模糊的部分。使用模糊可减少在查看表示128时视觉地标识特征的可能性,例如以保护走过交通摄像头的人的隐私。

在一些示例中,视觉表示可包括至少一个突出显示。示例突出显示可包括例如,特征的轮廓或包括特征的部分的轮廓(例如,如图1中图形表示的跟踪器130)、在被检测的特征之下或覆盖被检测的特征的变亮的或变暗的背景(例如,覆盖在特征的图像数据上的半透明的有色的突出显示)、或指向或以其他方式指示特征的箭头或其他形状。在一些示例中,表示128可包括用于各个被跟踪的特征的模糊或突出显示的任意组合。

在一些示例中,报告组件124可被配置成提供被检测和/或被跟踪的特征的至少一些的指示。例如,报告组件124可被配置成呈现被检测组件120检测的特征114、被跟踪模块402或更新模块404跟踪的特征114、或它们的任意组合的表示128。例如,检测突出显示和跟踪突出显示可用不同的颜色或线条样式来呈现以允许在表示128中容易地区别它们。

说明性过程

图5-7示出了用于跟踪视频帧中的特征的示例过程。方法被示为作为分立框示出的操作组。方法可用任何合适的硬件、软件、固件或其组合来实现。例如,图5-7中显示的功能可被实现在一个或多个计算设备102或图像源104上或以其他方式体现在一个或多个计算设备102或图像源104中(例如,通过使用运行在这样的设备上的软件)。在软件的上下文中,各个操作表示在由一个或多个处理器执行时使得一个或多个处理器执行既定操作的计算机可执行指令。在硬件的上下文中,操作表示在电路中实现的逻辑功能,例如数据路径控制和有限状态机定序功能。

描述操作的次序并不旨在被解释为限制,并且所述操作中任何数量的操作可以按任何次序和/或并行地组合以实现每个过程。为了解释清楚,引用可执行或参与示例性方法的各步骤的图1-4所示的各种组件和数据项。然而,应注意,可使用其他组件;即,图5-7所示的示例性方法不限于由所标识的组件执行。

图5示出了用于跟踪视频帧中的特征的示例过程500。

在框502,一个或多个特征在第一帧中被检测。例如,检测组件120检测 视频的第一帧内的一个或多个特征以及对应的被检测的第一帧特征区域。视频可包括第一帧和之后的第二帧。视频帧可按任意次序被接收和处理。以下描述的处理步骤除非特别指定,可被交错或按任意次序执行。例如,检测(框502)可在第一和第二帧都被接收到之后来针对第一帧执行。

在框504,被检测的特征中的一个或多个在第二帧中被跟踪。例如,跟踪模块402至少部分基于第一帧、第二帧以及被检测的第一帧特征区域来确定第二帧中对应的被跟踪的候选第二帧特征区域。在一些示例中,框504包括将第二帧的至少一些图像数据与第一帧的至少一些图像数据进行比较。在一些示例中,跟踪模块402可使用跟踪算法(诸如KLT)来通过寻找第一帧特征区域中第一帧的图像数据与第二帧的图像数据之间数学上的最佳拟和来确定候选第二帧特征区域。

在一些示例中,框504包括将第二帧的至少一些图像数据与第一帧的至少一些图像数据和在第二帧之后的一帧的至少一些图像数据进行比较。这在本文被称为“双向”跟踪。双向跟踪可允许跨三个或更多帧的集合来更准确地跟踪特征例如以供对其中在特征在帧中被标识以前多个帧能被接收到的所记录的视频或其他应用的分析。在一些示例中,图像源104或计算设备102可将帧重新安排成例如序列,诸如在一个或多个MPEG视频标准(例如,MPEG-2、MPEG-4部分2、或MPEG-4部分10)中指定的I-、P-和B-图片序列。这可允许在具有视频中较早的时戳的帧之前来处理具有视频中较后的时戳的帧,例如以供双向跟踪。

在框506,被跟踪的候选第二帧特征区域的直方图与被检测的第一帧特征区域的直方图进行比较。例如,更新模块404在具有至少色调和彩度维度的颜色空间中确定直方图。在一些示例中,更新模块404通过计算被跟踪的候选第二帧特征区域的直方图与被检测的第一帧特征区域的直方图之间的距离来比较直方图。

在一些示例中,在框506,替代于或附加于被跟踪的候选第二帧特征区域或被检测的第一帧特征区域,计算测试区域的直方图。这可例如如以上参考图3中显示的直方图302(1)、302(2)和304(其可与图2中显示的直方图214和216单独地或结合地来使用)所讨论的那样来实现。

在框508,该比较对其指示至少阈值程度的相似性的被跟踪的候选第二帧特征区域可被选为被跟踪的第二帧特征区域。例如,更新模块404在以下情况下不将候选第二帧特征区域考虑为被跟踪的第二帧特征区域:该候选区域的直方图和被检测的区域的直方图之间的距离超过所选阈值。

图6示出用于例如使用计算设备(诸如计算设备102)来跟踪和检测视频的帧中的特征的示例过程600。图6的框502-508可例如如以上参考图5描述的那样来执行。框508随后可以是框602。

在一些示例中,视频的帧包括晚于第二帧的第三帧。在一些示例中,视频的帧包括晚于第三帧的第四帧。标记“第一”、“第二”、“第三”和“第四”被用于阐述的清楚而非限制,除非明确指出。在一些示例中,本文关于第一、第三和第四帧描述的操作可在没有第二帧的情况下被使用。这样的示例可包括例如,检测第一帧(例如,图2的帧202(1))中的特征、确定一个或多个特征在第二帧(例如,图2的帧202(2))中不可见以及确定该一个或多个特征中的至少一些在第三和第四帧(例如,图2的帧202(3)和202(4))中可见。

在框602,跟踪(框504)针对第三帧来重复。在一些示例中,跟踪组件122至少部分基于第二帧、第三帧以及包括被跟踪的第二帧特征区域的一个或多个被跟踪的第二帧特征区域来确定第三帧的一个或多个被跟踪的候选第三帧特征区域。

在框604,比较(框506)针对第三帧来重复。在一些示例中,跟踪组件122在第三帧中的候选区域和第一帧中的被检测的区域之间比较直方图。在一些示例中,跟踪组件122在第三帧中的候选区域和第二帧中的被跟踪的区域之间比较直方图。

在框606,选择(框508)针对第三帧被重复以确定一个或多个被跟踪的候选第三帧特征区域。框602-606中的操作可如以上参考图2-5(例如,参考图2的帧202(2)或202(3)或参考图3)所描述的那样来执行。如以上提到的,一些跟踪器204可不被选择并可被标记为帧外跟踪器208,本文中都如此。

在框608,检测(框502)针对第三帧被重复以确定一个或多个被检测的第三帧特征区域。这可例如如以上参考图2的帧202(3)中的跟踪器204(1)所讨论的那样来实现。

在框610,被跟踪的候选第三帧特征区域中的至少一些与被检测的第三帧特征区域相关联。这可例如如以上参考图2的帧202(3)描述的以及例如至少部分基于测试区域220(1)和测试区域218中的直方图的帧外跟踪器204(1)与主体206(1)的关联来实现。

在一些示例中,框610包括针对候选第三帧特征区域和被检测的第三帧特征区域的成对组合来计算相应的重叠率。被跟踪的特征的区域RT和被检测的特征的区域RD的重叠率R(RT,RD)可如等式(3)中那样计算:

其中RT和RD是相应区域中的像素位置的集合并且|·|表示集合势。

在框612,不与被检测的第三帧特征区域相关联的被跟踪的候选第三帧特征区域被选为帧外区域。这可例如如以上参考图2的帧202(2)所描述的那样来实现。在一些示例中,框612之后可以是框614和/或框620。

在框614,跟踪(框504)针对第四帧来重复。

在框616,比较(框506)针对第四帧来重复。

在框618,选择(框508)针对第四帧被重复以确定一个或多个被跟踪的候选第四帧特征区域。框614-618中的操作可如以上参考图2-5(例如,参考图2中显示的帧202(3))所描述的那样来执行。

在框620,检测(框502)针对第四帧被重复以确定一个或多个被检测的第四帧特征区域。这可例如如以上参考图2的帧202(3)或202(4)所讨论的那样来实现。

在框622,被跟踪的候选第四帧特征区域中的至少一些与对应的帧外区域相关联。这可例如如以上参考图2中显示的帧202(3)中的跟踪器204(1)所描述的那样来实现。如以上提到的,这可允许即使特征被遮挡(例如,对于少于所选数量的帧),依然能够跟踪它们。在一些示例中,被跟踪的候选第四帧特征区域中的至少一些可与对应的被检测的第四帧特征区域相关联。

图7示出了用于例如跨遮挡事件或其他在特征的可见性方面的降低来跟踪视频的帧中的特征的示例过程700。图7的框502和504可如以上参考图5描 述的那样来执行。图7中显示的框502和504以及其他框可针对视频的一个或多个帧来执行。

在决策框702,确定是否任意跟踪器例如由于不能与被检测的特征相关联而被移动出帧。这可例如如以上参考图6的框610所讨论的那样或如以上参考图2中显示的直方图214和216所讨论的那样来实现。

如果确定存在帧外跟踪器(来自决策框702的“是”分支),则在框704,帧外跟踪器的信息被记录。这可例如如以上参考图2的帧202(2)所讨论的那样来实现。在一些示例中,框704之后可以是框708、框704之后可以是框714或者框704之后可以按例如直接是框708和714的次序或通过诸如决策框710等中间框的框708和714的次序。

如果确定不存在帧外跟踪器(来自决策框702的“否”分支),则在决策框706,确定是否检测时隙已过期。例如,跟踪组件122对自对其执行检测的最近帧以来被处理的视频帧进行计数,如参考框502或框708所讨论的。每一帧或每n帧,跟踪组件122就将该计数与存储的计数器TG时间进行比较以确定检测时隙是否过期。在这个示例中,在框502和在框708中,跟踪组件122将计数器重置为0。

示例检测时隙可包括但不限于,所选的挂钟时间的量、所选的其中跟踪已被执行的帧的数量、或所选的接收到的视频的帧的数量。在一些示例中,检测时隙是30帧、或如构成视频的1秒那样多的帧。在一些示例中,跟踪(例如,KLT)按每帧来执行并且检测(例如,FACESDK)仅按每n帧来执行(对于检测时隙n)。

如果确定检测时隙没有过期(来自框704的“否”分支),则处理如上参考框504所述那样继续。

另一方面,如果确定检测时隙已过期(来自框704的“是”分支),则在框708,特征可在视频中被检测。这可例如以上参考检测组件120和框502所讨论的那样完成。例如,如以上参考帧202(3)和202(4)所讨论的那样,先前被遮挡的特征可在帧中重新出现或新特征可出现在帧中。

在决策框710,确定是否任意特征在框708处被检测。这可如以上参考检测组件120所讨论的那样来实现。

如果没有特征被检测到(来自决策框710的“否”分支),则在决策框712,跟踪组件122确定是否存在任意帧内跟踪器,例如图2的跟踪器204(2)。如果存在帧内跟踪器(来自决策框712的“是”分支),则处理如以上参考框504所述那样继续。另一方面,如果没有活动的帧内跟踪器(来自决策框712的“否”分支),则处理如以上参考框708所述那样继续。因此,检测跨多个视频帧来重复,直到在视频帧中存在要被跟踪的特征。

参考回决策框710,如果特征被检测到(来自决策框710的“是”分支),则在框714,一个或多个帧内或帧外跟踪器被更新例如以与被检测的特征相关联。这可例如如以上参考图6的框610或622所描述的那样来实现。

在一些示例中,在框716,跟踪组件122可删除过期的跟踪器。在一些示例中,跟踪组件122丢弃未被更新达预定时隙(诸如多个帧、流逝的时间、或其他以上描述的时间,例如10帧、30帧或1秒)的帧外跟踪器208。在这些示例中的跟踪组件122移除针对没有重新出现的特征(例如,已经离开传感器112的视野的人的面部)的跟踪器。

在一些示例中,例如其中特征在颜色上类似于背景,跟踪器可在若干帧上漂移以跟踪背景的静止部分(例如,墙)而非特征。在一些示例中,在框716,跟踪组件122丢弃未被更新达所选数量TA个帧(例如,50帧或100帧)的帧内跟踪器。在这些示例中的跟踪组件122移除例如已漂移到背景的跟踪器。跟踪组件122可在以下情况下确定帧内跟踪器未被更新:该跟踪器在TA帧期间未被移动超过所选距离、或该跟踪器在TA帧期间未被调整大小达超过所选绝对百分比部分改变(例如,±5%)。

说明性组件

图8示出了示例计算设备102,800的选择组件。在所示示例中,计算设备102包括一个或多个处理器116、存储器118、输入/输出(I/O)接口802和/或通信接口804。存储器118可被实现为各种类型的存储器组件的任意组合,例如计算机可读介质或计算机存储介质组件。可能的存储器组件的示例包括随机存取存储器(RAN)、盘驱动器、大容量组件以及非易失性存储器(例如,ROM、闪存、EPROM、EEPROM等)。计算设备102的替代实现可包括一定范围的处理和存储器能力。例如,全资源计算设备可被实现为具有大量存储器 和处理资源,包括用于存储供查看者回放的内容的盘驱动器。然而,低资源计算设备可具有有限的处理和存储器能力,诸如有限量的RAM、没有盘驱动器和有限的处理能力。

处理器116处理各种指令以控制计算设备102的操作并与其他电子和计算设备通信。例如,(诸)处理器116可被配置成在存储器118上执行多个模块中的各模块,如以下讨论的。在一些示例中,存储在存储器118上的计算机可执行指令在执行之际,可配置计算机(诸如计算设备102(例如计算设备102或图像源104))来执行本文关于例如检测组件120、跟踪组件122、报告组件124或这些中的任意的模块所描述的操作。存储器118中存储的模块可包括当被一个或多个处理单元116执行时使得一个或多个处理器116执行本文描述的操作的指令。

存储器118存储各种信息和/或数据,包括例如,检测组件120、跟踪组件122(包括例如图4的跟踪模块402和更新模块404)、报告组件124以及任选地操作系统806和/或一个或多个其他应用808。与示出的组件或模块相关联描述的功能可被组合以由更少数量的组件或模块执行或可被划分并由更多数量的组件或模块执行。其他应用808可包括例如包括视频能力的因特网浏览器、媒体播放器应用、视频编辑应用、视频流传输应用、电视观看应用,等等。在一些示例中,存储在一个或多个计算机可读介质(例如,存储器118)中的检测组件120、跟踪组件122、报告组件124和应用808的计算机可执行指令当在计算设备102的处理器116上执行时指示计算设备102执行本文参考存储器118中的相关组件列出的功能。

在示出的示例中,存储器118包括数据存储810。在一些示例中,数据存储810可包括用于存储一个或多个视频帧812(例如,图1的视频帧106)的第一存储器。各个视频帧可包括例如多个像素的数据。各个像素的数据可包括各个颜色通道(平面)的相应值,例如红(R)、绿(G)以及蓝(B)颜色通道;亮度(Y)、蓝色度(Cb)和红色度(Cr)颜色通道;或其他色彩组织。在一些示例中,数据存储810可存储一个或多个特征位置图814,该一个或多个特征位置图814例如保持检测到的特征的位置(例如,图4的检测到的特征位置图406)、先前帧特征的位置(例如,图4的先前帧特征位置图410)或 候选特征的位置(例如,图4的候选特征位置图408)。在一些示例中,数据存储810可存储诸如以上参考等式(1)描述的TH等参数或例如参考以下给出的说明性结果的本文描述的(诸)其他参数。

通信接口804使计算设备102能够与其他计算设备通信,并且可表示计算设备102可用来接收视频内容的其他装置。例如,在支持通过IP网络传输视频内容的环境中,通信接口804可表示连接,计算设备102能经由该连接,例如通过特定的统一资源定位符(URL)来接收视频内容。在一些示例中,通信接口804可包括但不限于,用于以太网、蜂窝式(3G、4G或其他)、WI-FI、超宽带(UWB)、BLUETOOTH(蓝牙)、卫星或其他无线传输的收发器。通信接口804可包括有线I/O接口,如以太网接口、串行接口、通用串行总线(USB)接口、INFINIBAND接口或其他有线接口。

视频或视频的帧106可附加地或替换地经由I/O接口802接收。I/O接口802可包括例如一个或多个调谐器、视频捕捉设备、视频编码器或格式转换器或通信地与其连接,以使得计算设备102能够接收和存储视频。在一些示例中,I/O接口802可包括一个或多个传感器112或通信地与其连接,如以上参考图1描述的。(诸)传感器112可被配置成捕捉例如场景108的视频帧106,如以上讨论的。

I/O接口802可附加地或替换地包括例如显示设备126或通信地与其连接,以使得计算设备102能够呈现视频内容。在示例实现中,I/O接口802向电视或其他显示视频数据的显示设备提供信号,例如以上关于图1讨论的。

I/O接口802可附加地或替换地包括例如用户可操作输入设备816(图形地表示为游戏垫)或通信地与其连接,以使得用户能够例如指示计算设备102跟踪特定特征。用户可操作输入设备816还可被用于例如经由快进、回放、播放、暂停和停止功能来控制视频的回放。报告组件124可至少部分基于经由用户可操作输入设备816接收的输入来调节显示设备126上视频的显示。这可允许例如在实时安全性或监视上下文中使用系统。

在一些示例中,当被(诸)处理器116执行时(本文中都如此),检测组件120至少部分基于视频的第一帧来产生特征位置图。这可如以上参考图4来描述,例如使用诸如那些以上描述的FACESDK算法。

在一些示例中,跟踪组件122至少部分基于例如来自检测组件120的视频的帧和先前特征位置图来产生候选特征位置图。特征对应于视频的帧的至少一些图像数据。这可如以上参考图4的跟踪模块402所描述的那样。跟踪组件122接着至少部分基于候选特征位置图来确定候选特征点,至少部分基于所确定的候选特征点来确定候选特征区域,以及通过将视频的帧中测试区域的直方图与视频的先前帧中对应区域的直方图进行比较来定位视频的该帧中候选特征区域处的特征,其中测试区域至少部分基于候选特征区域来确定。这可如以上参考图4的更新模块404所描述的那样。

在一些示例中,报告组件124例如经由图形用户界面提供视频的帧中被定位的特征的视觉表示。这可如以上参考图1和图4所描述的那样。

在例如提供特征跟踪服务的计算设备102的一些示例中,计算设备102可包括跟踪组件122、但不包括传感器112。在例如诸如使用特征跟踪服务的智能电话之类的图像源104的一些示例中,表示图像源104的计算设备102可包括传感器112,但不实现跟踪组件122。在例如实现特征跟踪服务和对其的使用两者的计算设备102或图像源104的一些示例中,计算设备102可包括传感器112并实现跟踪组件122。在一些示例中,特征跟踪服务系统(诸如计算设备102或图像捕捉系统(诸如图像源104))可实现检测组件120或报告组件124。

尽管被分开地显示,但是计算设备102的各组件中的一些可被一起实现在单个硬件设备中,诸如在现场可编程门阵列(FPGA)、应用专用集成电路(ASIC)、应用专用标准产品(ASSP)、片上系统(SOC)、复杂可编程逻辑器件(CPLD)、数字信号处理器(DSP)或其他类型的可定制处理器中。例如,处理器116可表示混合设备,诸如来自包括内嵌在FPGA结构中的CPU核的ALTERA或XILINX的设备。这些或其他硬件逻辑组件可独立地操作,或在一些实例中,可由CPU驱动。在一些示例中,处理器116可以是或可包括一个或多个单核处理器、多核处理器、中央处理单元(CPU)、图形处理单元(GPU)、通用GPU(GPGPU)或例如经由来自模块或API的专用编程配置以执行本文描述的功能的硬件逻辑组件。

另外,系统总线818通常连接计算设备102内的各个组件。系统总线818 可被实现为若干类型的总线结构中的任一个或多个,包括存储器总线或存储器控制器、外围总线、加速图形端口或使用各种总线体架构中的任一种的局部总线。作为示例,这样的架构可以包括工业标准体系结构(ISA)总线、微通道体系结构(MCA)总线、增强型ISA(EISA)总线、视频电子标准协会(VESA)局部总线、以及外围部件互连(PCI)总线,例如夹层(Mezzanine)总线。

图8所示的任一组件可以是硬件、软件或硬件和软件的组合。此外,图8所示的任一组件(例如,存储器118)可使用可由计算设备102本地或远程(包括通过网络132)访问的任何形式的计算机可读介质来实现。计算机可读介质包括两种类型的计算机可读介质,即计算机存储介质和通信介质。计算机存储介质(例如,一计算机存储介质)包括有形存储单元,诸如在用于存储信息(诸如计算机可读指令、数据结构、程序模块或其他数据)的任意方法或技术中实现的易失性存储器、非易失性存储器和/或其他持久和/或辅助计算机存储介质、可移动和不可移动计算机存储介质。计算机存储介质包括有形或物理形式的介质,该介质被包括在设备或作为设备的一部分或外置于设备的硬件组件中,该介质包括但不限于:随机存取存储器(RAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、相变存储器(PRAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM)、电可擦除可编程只读存储器(EEPROM)、闪存、光盘只读存储器(CD-ROM)、数字多功能盘(DVD)、光卡或其它光存储介质、磁带盒、磁带、磁盘存储、磁卡或其他磁存储设备或介质、固态存储器设备、存储阵列、网络附连存储、存储区域网络、被托管的计算机存储或存储器、存储、设备和/或可用于存储并维护供计算设备102或图像源104访问的信息的存储介质。

与计算机存储介质相反,通信介质可在诸如载波之类的已调制数据信号或其他传输机制中体现计算机可读指令、数据结构、程序模块或其他数据。如本文所定义的,计算机存储介质不包括通信介质。在一些示例中,存储器118可以是或包括计算机存储介质。

说明性结果

SFCT和Struck跟踪器(相当的)作为根据本文中的各个方面的跟踪器(示例)在两个不同的视频序列上被测试。示例跟踪器的参数按经验被确定,并包 括至少每50帧的检测、丢弃已在帧外达55帧的帧外跟踪器、丢弃未被更新达100帧的帧内跟踪器、0.3的最小重叠率(等式(3))、10的阈值中间值FBE(超过该值则跟踪器被认为是帧外的)以及0.5的阈值直方图距离(超过该值则跟踪器被认为是帧外的)。针对这两个序列,被测试的示例配置相比于SFCT和Struck而言提供了相当或提升的成功率,并针对偏离地面真值高于大约20的位置错误阈值提供了相比于SFCT和Struck而言提供了提升的精确度率。被测试的示例配置还提供了相比SFCT或Struck而言更快的结果,如表1中显示的。

表1显示了按毫秒的每帧处理时间。如显示的,被测试的示例配置能够在包括INTEL CORE(英特尔核)i7 3.40GHz CPU的计算系统上处理超过100fps。

示例条款

A:一种系统,包括:处理单元:可操作地耦合到处理器的计算机可读介质(CRM);跟踪模块,其被存储在CRM中并可由处理单元执行以至少部分基于视频的一帧以及先前特征位置图来产生候选特征位置图,其中候选特征位置图指示一个或多个特征的候选位置以及对应于视频的该帧的至少一些图像数据的特征中的各个特征;以及更新模块,其被存储在CRM中并可由处理单元执行来:至少部分基于候选特征位置图来确定候选特征区域;以及通过将视频的帧中测试区域的直方图与视频的先前帧中对应区域的直方图进行比较来定位视频的帧中候选特征区域处的特征,其中测试区域至少部分基于候选特征区域来确定。

B:如段落A中引用的系统,进一步包括检测组件,其被存储在CRM中并可由处理单元执行以至少部分基于视频的先前帧来产生先前特征位置图。

C:如段落A或B引用的系统,其中先前特征位置图对应于视频的先前帧,并且视频的先前帧在视频中被安排在就在视频的帧之前。

D:如段落A-C中的任一引用的系统,其中测试区域包括候选特征区域并且特征是面部。

E:如段落A-D中的任一引用的系统,其中更新模块可由处理单元进一步执行来:至少部分基于候选特征区域或测试区域来确定第二测试区域;以及通过将视频的帧中第二测试区域的直方图与视频的先前帧中对应区域的直方图进行比较来在视频的帧中定位候选特征区域处的特征。

F:如段落A-E中的任一引用的系统,其中更新模块可由处理单元进一步执行来至少部分基于候选特征区域和测试区域之间的空间关系来确定测试区域。

G:如段落F引用的系统,其中空间关系是近端不相交关系。

H:如段落A-G中的任一引用的系统,还包括显示设备和报告组件,该报告组件被存储在CRM中并可由处理单元执行来经由显示设备提供视频的帧中被定位的特征的视觉表示。

I:如段落A-H中的任一引用的系统,其中一个或多个特征包括一个或多个面部或标识符号。

J:一种方法,包括:检测视频的多个帧的第一帧中的特征,该视频的多个帧包括第一帧和之后的第二帧;确定第一帧的对应于被检测的特征的被检测的第一帧特征区域;至少部分基于第一帧、第二帧和被检测的第一帧特征区域来确定第二帧的被跟踪的候选第二帧特征区域;将被跟踪的候选第二帧特征区域的直方图与被检测的第一帧特征区域的直方图进行比较;以及响应于指示至少阈值程度的相似性的比较,将被跟踪的候选第二帧特征区域选择为被跟踪的第二帧特征区域。

K:如段落J引用的方法,其中比较包括计算被跟踪的候选第二帧特征区域的直方图和被检测的第一帧特征区域的直方图之间的距离。

L:如段落K引用的方法,进一步包括在具有至少色调和彩度维度的颜色空间中确定直方图。

M:如段落J-L中任一所引用的方法,其中确定被跟踪的候选第二帧特征区域包括将Kanade-Lucas-Tomasi跟踪器应用到第一帧和第二帧。

N:如段落J–M中任一所引用的方法,其中视频的多个帧包括晚于第二帧的第三帧,并且其中该方法进一步包括:至少部分基于第二帧、第三帧以及包 括被跟踪的第二帧特征区域的一个或多个被跟踪的第二帧特征区域来确定第三帧的一个或多个被跟踪的候选第三帧特征区域;检测第三帧中的一个或多个特征;确定第三帧的对应于第三帧中被检测的特征的相应被检测的第三帧特征区域;将被跟踪的候选第三帧特征区域中的至少一些与被检测的第三帧特征区域中的多个相关联;以及将不与被检测的第三帧特征区域中的各个相关联的被跟踪的候选第三帧特征区域中的各个选为帧外区域。

O:如段落N引用的方法,其中视频的多个帧包括晚于第三帧的第四帧,并且其中该方法进一步包括:针对第四帧来重复该检测以确定被检测的第四帧特征区域;以及将帧外区域之一与被检测的第四帧特征区域相关联。

P:如段落J–O中任一所引用的方法,其中确定被跟踪的候选第二帧特征区域包括将第二帧的至少一些图像数据与第一帧的至少一些图像数据以及在第二帧之后的一帧的至少一些图像数据进行比较。

Q:如段落J–P中任一所引用的方法,其中特征包括一个或多个面部或标识符号。

R:一种系统,包括:用于检测视频的多个帧的第一帧中的特征的装置,该视频的多个帧包括第一帧和之后的第二帧;用于确定第一帧的对应于被检测的特征的被检测的第一帧特征区域的装置;用于至少部分基于第一帧、第二帧和被检测的第一帧特征区域来确定第二帧的被跟踪的候选第二帧特征区域的装置;用于将被跟踪的候选第二帧特征区域的直方图与被检测的第一帧特征区域的直方图进行比较的装置;以及用于响应于指示至少阈值程度的相似性的比较,将被跟踪的候选第二帧特征区域选择为被跟踪的第二帧特征区域的装置。

S:如段落R引用的系统,其中用于比较的装置包括用于计算被跟踪的候选第二帧特征区域的直方图和被检测的第一帧特征区域的直方图之间的距离的装置。

T:如段落S引用的系统,进一步包括用于在具有至少色调和彩度维度的颜色空间中确定直方图的装置。

U:如段落R–T中任一所引用的系统,其中用于确定被跟踪的候选第二帧特征区域的装置包括用于将Kanade-Lucas-Tomasi跟踪器应用到第一帧和第二帧的装置。

V:如段落R–U中任一所引用的系统,其中视频的多个帧包括晚于第二帧的第三帧,并且其中该系统进一步包括:用于至少部分基于第二帧、第三帧以及包括被跟踪的第二帧特征区域的一个或多个被跟踪的第二帧特征区域来确定第三帧的一个或多个被跟踪的候选第三帧特征区域的装置;用于检测第三帧中的一个或多个特征的装置;用于确定第三帧的对应于第三帧中被检测的特征的相应被检测的第三帧特征区域的装置;用于将被跟踪的候选第三帧特征区域中的至少一些与被检测的第三帧特征区域中的多个相关联的装置;以及用于将不与被检测的第三帧特征区域中的各个相关联的被跟踪的候选第三帧特征区域中的各个选为帧外区域的装置。

W:如段落V引用的系统,其中视频的多个帧包括晚于第三帧的第四帧,并且其中该系统进一步包括:用于针对第四帧来重复该检测以确定被检测的第四帧特征区域的装置;以及用于将帧外区域之一与被检测的第四帧特征区域相关联的装置。

X:如段落R–W中任一所引用的系统,其中用于确定被跟踪的候选第二帧特征区域的装置包括用于将第二帧的至少一些图像数据与第一帧的至少一些图像数据以及在第二帧之后的一帧的至少一些图像数据进行比较的装置。

Y:如段落R–X中任一所引用的系统,其中特征包括一个或多个面部或标识符号。

Z:一种系统,包括:处理单元;可操作地耦合到处理器的计算机可读介质;检测组件,其被存储在CRM中并可由处理单元执行来定位视频的第一帧中的特征;跟踪组件,其被存储在CRM中并可由处理单元执行来在视频的后续多个第二帧上跟踪被定位的特征中的各个,其中跟踪组件被配置成在以下情况下记录被定位的特征中被跟踪的各个的第一特征已被移动出多个第二帧的特定帧的指示:该特定帧的第一特征区域的直方图不对应于第一帧的第一特征区域的直方图;以及报告组件,其被存储在CRM中并可由处理单元执行来提供被定位的特征中的被跟踪的各个的至少一些的指示。

AA:如段落Z引用的系统,其中报告组件可由处理单元进一步执行来呈现以供显示视频的一个或多个帧以及被定位的特征中被跟踪的各个的至少一些的视觉表示。

AB:如段落AA引用的系统,其中视觉表示包括至少一个模糊或至少一个突出显示。

AC:如段落Z–AB中任一引用的系统,其中跟踪模块可由处理单元进一步执行来:计算特定帧的第一特征区域的直方图与第一帧的第一特征区域的直方图之间的距离;以及响应于计算出的超过所选阈值的距离,确定特定帧的第一特征区域的直方图和第一帧的第一特征区域的直方图不相互对应。

AD:如段落Z–AC中任一引用的系统,进一步包括图像传感器,其被配置成提供视频的帧的一个或多个。

AE:如段落Z–AD中任一所引用的系统,其中被定位的特征包括一个或多个面部或标识符号。

AF:

其上具有计算机可执行指令的计算机可读介质(例如,计算机存储介质),该计算机可执行指令在被执行时将计算机配置成执行段落J–Q中的任一段所述的操作。AG:一种设备,包括:处理器;以及其上具有计算机可执行指令的计算机可读介质(例如,计算机存储介质),该计算机可执行指令在由处理器执行时将该设备配置成执行段落J–Q中的任一段所述的操作。

AH:一种系统,包括:用于处理的装置;以及用于在其上存储有计算机可执行指令的装置,这些计算机可执行指令包括用于将该设备配置成执行如段落J–Q中的任一段所述的方法的装置。

结语

本文描述的视频分析技术可使用相比于现有方案而言减少的处理时间和存储器消耗来提供特征跟踪,例如面部跟踪。这可提供在各种各样的上下文中使用特征跟踪数据的能力,诸如实时地突出显示或模糊化视频中可见的感兴趣的面部或车牌。

虽然已经用对结构特征和/或方法步骤专用的语言描述了检测和跟踪特征,但是应当理解,所附权利要求书中定义的本发明不必限于所描述的具体特征或步骤。相反,各具体特征和步骤是作为实现所要求保护的本发明的优选形式来公开的。

示例过程的操作在单独的框中示出,并且参考这些框来概括。这些过程被 示为逻辑框流,其每个框可表示可用硬件、软件或其组合实现的一个或多个操作。在软件的上下文中,这些操作表示存储在一个或多个计算机可读介质上的计算机可执行指令,这些指令在由一个或多个处理器执行时使得一个或多个处理器执行既定操作。一般而言,计算机可执行指令包括执行特定功能或实现特定抽象数据类型的例程、程序、对象、模块、组件、数据结构等。描述操作的次序并不旨在解释为限制,并且任何数量的所述操作可以按任何次序执行、按任何次序进行组合、细分成多个子操作、和/或并行执行,以实现所描述的过程。可由与一个或多个计算设备102相关联的资源(诸如一个或多个内部或外部CPU或GPU)和/或硬件逻辑的一个或多个片段(诸如FPGA、DSP或其他类型的加速器)来执行所描述的过程。

上述方法和过程可以用由一个或多个通用计算机或处理器执行的软件代码模块来具体化,并且可经由这些软件代码模块来完全自动化。这些代码模块可以存储在任何类型的计算机可执行存储介质或其他计算机存储设备中。这些方法中的某些或全部可另选地用专用计算机硬件来具体化。

除非另外具体声明,否则在上下文中可以理解条件语言(诸如“能”、“能够”、“可能”或“可以”)表示特定示例包括而其他示例不包括特定特征、元素和/或步骤。因此,这样的条件语言一般并非旨在暗示对于一个或多个示例需要特定特征、元素和/或步骤,或者一个或多个示例必然包括用于决定的逻辑、具有或不具有用户输入或提示、在任何特定实施例中是否要包括或要执行特定特征、元素和/或步骤。除非另外具体声明,应理解联合语言(诸如短语“X、Y或Z中至少一个”)表示项、词语等可以是X、Y或Z中的任一者、或其组合。

本文所述和/或附图中描述的流程图中任何例行描述、元素或框应理解成潜在地表示包括用于实现该例程中具体逻辑功能或元素的一个或多个可执行指令的代码的模块、片段或部分。替换实现被包括在本文描述的示例的范围内,其中各元素或功能可被删除,或与所示出或讨论的顺序不一致地执行,包括基本上同步地执行或按相反顺序执行,这取决于所涉及的功能,如本领域技术人也将理解的。应当强调,可对上述示例作出许多变型和修改,其中的元素如同其他可接受的示例那样应被理解。所有这样的修改和变型本文旨在包括在本公开的范围内并且由以下权利要求书保护。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1