跟踪手部/身体姿势的制作方法

文档序号:11530897阅读:171来源:国知局
跟踪手部/身体姿势的制造方法与工艺



背景技术:

来自图像数据的实时铰接式手动跟踪具有打开新人机交互场景的潜能。然而,人手的灵活性和自由度使得完全地铰接式手动的视觉跟踪更具挑战性。这还适于实时铰接式身体跟踪。

在此所描述的实施例不限于解决已知手部/身体姿势跟踪器的缺点中的任何或全部的实现。



技术实现要素:

以下呈现本公开的简化概要以便向读者提供基本理解。该概要不是本公开的广泛概述并且不标识关键/重要元素或描绘说明书的范围。其唯一目的是以简化形式将在此所公开的概念的选择呈现为稍后呈现的更详细描述的前序。

描述了跟踪来自图像数据的手部或身体姿势,以例如控制游戏系统、自然用户接口或用于增强现实。在各种示例中,预测引擎取得图像数据的单个帧,并且预测图像数据中所描绘的手部或身体的姿势上的分布。在示例中,随机优化器具有其迭代地提炼的手部或身体的候选姿势池,并且来自所预测的分布的样本用于替换池中的一些候选姿势。在一些示例中,来自池的最佳候选姿势被选择作为当前跟踪的姿势并且选择过程使用手部或身体的3d模型。

通过参考结合附图考虑的以下详细描述,由于许多伴随特征将变得更好理解,因此其将被更容易地理解。

附图说明

从根据附图阅读的以下详细描述,将更好地理解本描述。

图1是使用向前、向上或在用户的肩膀上的图像采集设备来跟踪手部姿势的示意图;

图2是手部/身体跟踪器的示意图;

图3是预测引擎(诸如图2的预测引擎)的示意图;

图4是图3的预测引擎处的方法的第一部分的流程图;

图5是图4的方法的第二部分的流程图;

图6是初始化或者更新候选姿势池的方法的流程图;

图7是评分过程的流程图;

图8是随机优化器处的过程的流程图;

图9图示了在其中可以实现手部或身体跟踪器的实施例的示例性的基于计算的设备。

在附图中,相同附图标记被用于指代相同部件。

具体实施方式

以下结合附图提供的详细描述旨在作为本示例的描述并且不旨在表示可以构建或利用本示例的仅有形式。该描述阐述示例的功能和步骤的顺序,以用于构建和操作示例。然而,可以通过不同的示例完成相同或等效功能和序列。

图1是使用向前、向上或在用户100的肩膀上的图像采集设备102来跟踪手部姿势的示意图。在图1的顶部中所示的示例中,用户100坐在桌子处,在显示屏104的前面做出手部姿势,在显示屏104上是图像采集设备102。在该示例中,根据3d手模型和用户的手的跟踪姿势,在显示屏104上绘制手的图像。然而,这仅是示例并且跟踪的姿势可以被用于其他任务,诸如控制图形用户接口、增强现实应用、视频游戏和其他。

在图1的中部所示的示例中,用户站立并且在地板上的图像采集设备102上做出手部姿势。在图1的下部中所示的示例中,用户坐在桌子处,并且图像采集设备102在用户100的肩膀上。

用户的手具有许多自由度,可以进行各种复杂的姿势,存在遮挡的问题并且具有许多局部形状相似性。在此所描述的手动跟踪器的各种示例具有恢复的手动姿势中的改进的准确度。例如,通过使用其中预测引擎能够根据单个帧(如果需要的话)预测手部姿势上的分布的新处理管线。先前的方法尚未预测手部姿势上的分布。术语“手部姿势”在此用于指代手部以及手部的多个连接角的全局位置和全局定向。例如,手部姿势可以包括10或超过20个自由度,这取决于使用的手模型的细节和复杂性。通过使得预测引擎能够在每帧基础上根据单个帧操作,与先前的方法相比较,提高了鲁棒性。这是因为预测引擎能够在没有跟踪历史的情况下从单个帧来预测全自由度手部姿势。术语“鲁棒性”在此用于意指根据出于各种原因发生的跟踪故障而恢复得好的能力。例如,突然的手部运动、由其他对象(诸如另一只手、咖啡杯、用户的头发、照明条件的改变和其他)造成的手的遮挡。

根据单个帧(如果需要的话)预测手部姿势上的分布不是简单的。在各种示例中,这通过将预测过程分解为阶段或层级实现。例如,通过预测第一阶段中的全局旋转仓上的分布,并且然后预测第二阶段中的进一步的分布。进一步的分布可以是旋转的四元数角表示、平移偏移、以及特定姿势分类内的姿势上的分布。对于机器学习系统而言,通过使用分层方法管理和降低预测手部姿势上的分布的存储器和计算资源的量。这样,手动跟踪器对于实际的应用(诸如对于台式计算机、移动电话、平板计算机和其他操作环境)是可行的。在一些示例中,还通过在不同的层处使用专用类型的机器学习系统实现效率和存储器节省。在一些示例中,特别地有效的方法已经被发现在预测引擎的第一层处使用蕨类(fern)并且在预测引擎的第二层处使用丛林。

在各种示例中,预测引擎与随机优化器组合被用于给出改进的准确度。随机优化器是搜索问题的解的迭代过程,其中迭代过程使用随机生成的变量。例如,手部的候选姿势池由随机优化器迭代地被提炼,并且来自所预测的姿势上的分布的样本用于替换候选姿势池中的值。这样,遍及各种各样的人类手部姿势和运动已经发现手部姿势准确度中的改进。

在一些示例(诸如图1中所述的那些示例)中,用户能够在任意的方向(不仅朝向传感器)上指手指并且手部姿势可以仍然被准确地跟踪。这可以通过将预测引擎配置为预测姿势上的分布而实现,如上文所提到的并且如下面的示例中更详细地描述的。预测引擎还使得手动跟踪器能够针对采集设备102布置(诸如图1中所图示的那些或其他)成功地工作。预测引擎还可以使得手动跟踪器在存在采集设备的运动和/或全身体运动的情况下成功地工作。

在各种示例中,手动跟踪器是利用来自单个采集设备的数据可操作的,其给出成本节省、空间节省和使用多个采集设备的先前的系统上的简单性的益处。在一些示例中(诸如在使用飞行时间深度传感器的情况下),距在其内可以准确地跟踪手部姿势的距离的范围是大约10厘米到数米,其是比许多先前的方法大得多的范围。在一些示例中,手动跟踪器是实时可操作的。

在图1中所示的示例中,采集设备102通过无线连接或有线连接与手部/身体跟踪器202通信。在一些示例中,手部/身体跟踪器202被定位在云中并且作为云服务被提供给本地于用户100的计算设备,诸如pc、平板计算机、移动电话、游戏系统或其他终端用户设备。

图2是计算机实现的手部/身体跟踪器202的示意图。手部/身体跟踪器202将来自至少一个采集设备102的一个或多个图像流200当作输入。采集设备102能够采集一个或多个图像流。例如,采集设备102包括任何适合的类型(诸如飞行时间、结构化光、立体、散斑去相关)的深度照相机。在一些示例中,补充或者取代深度照相机,采集设备102包括彩色(rgb)视频照相机。例如,来自彩色视频照相机的数据可以用于计算深度信息。在一些示例(其中采集设备102是飞行时间传感器)中,在其上使用在此所描述的示例准确地跟踪手部姿势的距离的范围被发现是特别大的。对手部/身体跟踪器的图像流200输入包括图像帧数据,诸如针对彩色帧的红、绿和蓝通道数据、来自结构化光传感器的深度值、针对来自飞行时间传感器的帧的相位数据的三个通道、来自立体照相机的立体图像对、来自散斑去相关传感器的散斑图像。

手部/身体跟踪器202产生跟踪的手(或者身体)姿势值218的流作为输出。姿势可以被表达为值的向量(或其他格式),针对姿势的每个自由度的一个向量被跟踪。例如,10或更多个或20或更多值。在一个示例中,姿势向量包括针对全局旋转分量的3个自由度、针对全局平移分量的3个自由度和针对多个联合转换的每个联合转换的4个自由度。可以在可以或可以不在构造上有效的手的运动模型中指定联合转换。

在一些示例中,手部/身体跟踪器202将输出发送到显示器104(诸如图1中所示的显示器),尽管这不是必要的。输出可以包括从根据用户的手部的当前跟踪的姿势的3d手模型被跟踪、绘制的手部合成图像。

在一些示例中,手部/身体跟踪器202将跟踪的手部姿势218发送到下游应用或装置220,诸如游戏系统222、导航系统224、增强现实系统226、自然用户接口228。这些仅是示例并且可以使用其他下游应用或者装置。下游应用或者装置220能够使用跟踪的手部姿势218以控制和/或更新下游应用或者装置。

手部/身体跟踪器202是计算机实现的。在一些示例中,手部/身体跟踪器的全部或一部分与采集设备102被集成。手部/身体跟踪器202包括感兴趣区域部件204、预测引擎206、随机优化器208、保持3d模型或者具有对3d模型210的访问的存储器、渲染器212、保持候选姿势214的存储器和初始化器/更新器部件216。

感兴趣区域部件204处理图像数据以提取描绘用户的手部或身体的前景区域。可以使用任何众所周知的前景提取技术。例如,前景提取技术可以使用由采集设备102采集的彩色图像中的彩色信息,以检测和跟踪描绘用户的手部的图像元素。

如上文所提到的,预测引擎206包括可以被布置在分层结构中的机器学习技术。预测引擎206将由感兴趣区域部件204所标识的感兴趣区域图像元素当作输入。预测引擎计算手部或身体姿势上的分布。参考图3至图5更详细地描述了图像引擎。

随机优化器208可以是粒子群优化器、遗传算法过程、粒子群优化器和遗传算法过程的混合、或者迭代地提炼候选姿势池214的任何其他随机优化器。粒子群优化器是通过迭代地尝试以考虑其他候选解(群中的粒子)的方式改进候选方案搜索问题的解的方式。候选解(被称为粒子)的解根据数学公式在搜索空间中到处移动。每个粒子的移动由其局部最好已知位置影响,而且被引导朝向搜索空间中的最好已知位置,其根据更好的位置由其他粒子找到而更新。这被期望朝向最好解移动群。遗传算法过程是通过使用继承、拼接和由演变所激发的其他技术生成候选解搜索问题的解的方式。

下面参考图8给定可以使用的随机优化器208的示例。然而,可以使用其他随机优化器。

可以使用图形处理单元或者任何其他适合的技术来实现渲染器212。可以使用任何众所周知的渲染器,其能够使用跟踪的姿势218根据3d模型210绘制合成图像。在一些示例中,尽管可以使用其他类型的3d模型,但是3d模型是基础姿势中的手部或身体的三角网格模型。

初始化器/更新器216行动以初始化候选姿势池214或者更新候选姿势池214。参考图6描绘了由该部件所执行的示例方法。

备选地或者附加地,可以至少部分通过一个或多个硬件逻辑组件执行手部/身体跟踪器的功能。例如,并且非限制性地,可以使用的说明性类型的硬件逻辑组件包括:现场可编程门阵列(fpga)、专用集成电路(asic)、专用标准产品(assp)、芯片上系统(soc)、复杂可编程逻辑设备(cpld)、图形处理单元(gpu)。

图3是预测引擎(诸如图2的预测引擎)的示意图。在该示例中,预测引擎206具有分层架构,其包括作为全局旋转分类器302的第一层和包括经训练的专家的第二层。经训练的专家是在该情况下专用于姿势的全局旋转值的子集的经训练的机器学习系统。预测引擎206将感兴趣区域像素300当作输入并且产生姿势314上的分布作为输出。

在示例中,全局旋转分类器302计算全局旋转仓上的分布。例如,给定感兴趣区域,其计算指定的多个全局旋转仓上的分布(诸如直方图),其中分布表达感兴趣区域中所描绘的手部或身体的姿势具有落到仓中的全局旋转的可能性。

可以使用任何适合的数目的全局旋转仓。在示例中,通过将全局旋转统一地量子化为指定数目的仓(诸如128或者任何其他数目的仓)来指定仓。

在一些示例中,通过统一地在3d旋转的空间上采样并且使用任何众所周知的聚类方法对样本进行聚类来计算全局旋转仓。该方法已经被发现为给出特别好的手动跟踪结果。

在示例中,使用四元数来计算3d旋转的空间上的样本,其中四元数旋转是表示所有可能3d旋转集的单位长度的4d向量。许多随机四元数样本根据单位球面被计算并且使用k-means聚类或者另一众所周知的聚类方法被聚类。

然而,不是必须使用如上文所描述的四元数。其他方法是可能的,其中通过使用以特定的方式围绕全局旋转4d单位球面移动的计算过程来根据单位球面来计算粗略地统一地间隔的四元数样本。在该方法中,不需要计算聚类。

训练包括图像的数据,旋转仓对用于训练全局旋转分类器302。可以使用任何适合类型的分类器,诸如随机森林、决策丛林、有区别的蕨类集成、神经网络、支持向量机或其他。

各种不同的类型的分类器的经验主义调查研究已经发现手部姿势以特别高的速度并且以其中使用有区别的蕨类集成的高准确度被跟踪。例如,具有深度13的50个蕨类的区别的蕨类集成以高速度(6毫秒)提供好的分类准确度。

随机森林包括多个决策树,其各自具有根节点、多个分叉节点和多个叶节点。在测试时间处(当先前未看到的示例被应用到已经训练的随机森林时),可以通过在其中在每个分叉节点处做出决策的过程中将图像的图像元素通过随机决策森林的树从根推动到叶节点。根据图像元素的特性和由分叉节点处的参数所指定的空间偏移从其位移的测试图像元素的特性,来做出决策。在分叉节点处,图像元素向下转到下一级树,根据决策的结果所选择分支。随机决策森林可以使用回归或分类。在访问训练期间,到达来自森林中的每个树的一个叶节点并且将数据存储在那些叶节点处。例如,该数据包括以聚集的形式的标记的训练数据。从每个树找到的叶节点数据可以被聚集以产生最后的结果。

在训练期间,参数值(还被称为特征)被学习用于在分叉节点处使用并且数据被积累在叶节点处。例如,包括标记的图像的训练数据通过树被传递,并且根据分叉节点测试参数处理分叉节点处的训练数据多么好,来在每个分叉节点处(根据随机地生成的可能性)选择分叉节点测试参数。信息增益准则或其他众所周知的准则可以用于评估分叉节点测试参数如何有效地处理分叉节点处的训练数据。

除了多个分叉节点被合并在一起之外,决策丛林是被配置用于随机决策森林的多个有向无环图。也就是说,不是如在随机决策森林中的二叉树,丛林的个体成员是有向无环图。

有区别的蕨类集成是包含由索引值索引的聚集的训练数据的多个查找表,其中聚集的训练数据(诸如在图像分类的情况下的图像标记)和索引值在训练阶段期间被学习。在测试时间处,索引值根据未看到的示例(诸如图像或者图像元素的分片)(在不需要遍历有向无环图或者决策树的情况下)被计算并且用于从集成中的每个蕨类表查找聚集的训练数据。从每个蕨类表所查找的数据被聚集以计算输出预测,诸如分类标记上的分布(在分类任务的情况下)。有区别的蕨类集成用于分类或者回归任务。

专家选择器304使用全局旋转分类器302的输出来从组成预测引擎206的第二阶段的大量的经训练的专家306选择多个经训练的专家。在示例中,选择三个经训练的专家:旋转回归量308、平移回归量310和姿势分类器312。例如,存在针对每个全局旋转仓的三个经训练的专家。在存在128个全局旋转仓的情况下,这给定128×3=384个经训练的专家。专家选择器304从全局旋转分类器获得全局旋转仓上的分布并且其使用该信息来选择一个或多个全局旋转仓。对于所选择的每个全局旋转仓,存在(例如)三个经训练的专家,并且感兴趣区域像素被推送到那些经训练的专家中。在示例中,专家选择器304从全局旋转分类器选择全局旋转仓上的分布中的前五个排名的全局旋转仓。

由于因此许多经训练的专家306存在于预测引擎206的第二阶段中,因而有限的存储器和处理资源处于压力。对机器学习技术的类型的仔细选择使得大量的经训练的专家306能够被容纳在实际的工作方案中。例如,决策丛林用于实现经训练的专家306。

在示例中,旋转回归量308使用对四元数的高斯熵估计而被训练,通过选择最接近姿势聚类中心的符号来求解四元数符号。由于姿势聚类器占据单位4球面的相对小的区域,因而高斯模型是合理的适合。

在示例中,平移回归器310是将高斯熵估计用作分叉准则而训练的偏移回归丛林。

在示例中,姿势分类器312被训练以将图像元素分类为多个手部姿势分类(诸如打开的、平坦的、半开的、闭合的、指向的、捏着的)。实验工作已经发现这些六个手部姿势分类给出好的结果;尽管也可以使用其他手部姿势分类。

在一些示例中,姿势分类器312由姿势回归量替换,其回归针对手指接合的接合旋转。在一些示例中,使用姿势分类器312和姿势回归量二者。

图4是图3的预测引擎处的方法的第一部分的流程图。在该示例中,预测引擎的第一阶段被使用并且包括已经被训练的有区别的蕨类集成(也即,图4的方法是其中先前未由跟踪器看到的新帧或帧的图像正被处理的测试时间过程)。感兴趣区域400从感兴趣区域部件被输入到过程。根据感兴趣区域像素计算402比特向量。例如,通过针对感兴趣区域的个体像素(例如,感兴趣区域的像素的子集)计算像素周围的分片中的成对像素比较来计算比特向量。在一些示例中,使用像素对的随机选择。可以使用可用像素对的子集。每个比较的结果可以被表达为0或者1的单个比特值。例如,比较可以是测试,诸如“是大于像素2处的像素1处的深度值”或者“是大于像素2处的像素1处的红外强度值”或者“是大于像素2处的像素1处的平均亮度值”。对于每个蕨类和像素而言,存在计算的k个比特并且这些比特可以以k维比特向量中被表示。比特数k是根据应用域并且根据准确度/速度折衷设置而被选择。阈值化过程或者heaviside函数可以被应用到比特向量以便移除由于噪声而导致的小振荡的影响。这导致许多比特向量。每个蕨类产生针对感兴趣区域的每个像素的一个比特向量。

每个比特向量用于访问来自蕨类表404的权重并且权重被添加到分类得分。(在训练阶段期间,蕨类表被创建并且利用权重进行填充)。针对来自感兴趣区域的更多图像元素以及针对集成407中的更多蕨类,重复414步骤400到步骤406的过程。因此,有区别的蕨类集成输出全局旋转聚类408上的分布,其被用于所选择的专家410。感兴趣区域像素被输入到所选择的专家。

在训练期间,蕨类表被创建并且利用权重进行填充。例如,访问包括被标记有全局旋转仓的感兴趣区域的训练数据。根据标记的感兴趣区域来计算比特向量,如上文所描述的。聚合来自个体蕨类的比特向量。例如,通过采用平均、中值、模式或者以任何其他方式。在一些示例中,以考虑在感兴趣区域中关于彼此的像素的位置的方式来完成聚合。例如,通过将感兴趣区域分为子区域并且计算子区域上的比特向量的直方图。蕨类直方图的连结被标记有针对分类器(诸如线性分类器)的训练数据。在分类器的训练期间学习的分类器的权重是被存储在蕨类表中的权重。可以使用任何众所周知的分类器,诸如支持向量机。

图5是预测引擎的第二层处的、图4的测试时间过程的第二部分的流程图。来自感兴趣区域的图像元素被推送通过旋转回归量丛林500、偏移平移回归量丛林508和姿势分类丛林514。这些过程可以并行或串行操作。

旋转回归器丛林计算对姿势的全局旋转分量的四元数角表示上的分布502。偏移平移回归量丛林计算平移偏移510上的分布(来自由对根连接(例如,腕)的分类器处理的图像元素的偏移)。姿势分类器计算姿势分类516上的分布。

可以根据由旋转回归量丛林和偏移平移回归量丛林所计算的分布取得样本504、512。这些样本用于形成输出姿势向量506的一部分。姿势分类使用姿势分类上的分布被选择518并且被用于访问520针对分类的预指定的姿势分布。该预指定的分布被采样522以获得进入输出姿势向量506的值。

预指定的姿势分布各自是具有对应于姿势分类名称(诸如打开的、平坦的、半开的、闭合的、指向的、捏着的)的平均形状的姿势空间的子集和定义可以根据模型绘制的姿势集的随机化规则集的一般性模型。这些是可以使用的姿势分类的示例。然而,可以使用其他姿势分类。

图6是初始化或更新候选姿势池的方法的流程图。可以通过初始化器/更新器216执行该方法。在其中根据先前帧可用的姿势可用的情况中,该姿势被扰乱600以创建被存储在候选606池中的候选姿势值。可以省略步骤600(例如,在来自先前帧的姿势不可用的情况下)。样本从由预测引擎所计算的姿势分布被取得602并且用于初始化候选606池和/或替换池中的不好的评分候选。评分部件被用于计算得分,如下面更详细地描述的。使用随机优化器来提炼604池中的候选。例如,如参考图8所解释的。可以输出最好评分姿势608。

图7是可以通过随机优化器或者人/身体姿势跟踪器202的其他部件中的任一个来执行的评分过程的流程图。姿势和感兴趣区域700被输入到评分过程。姿势由渲染器212用于绘制702来自3d模型210的合成深度图像704。合成深度图像与感兴趣区域相比较以计算706得分并且输出708得分。渲染器可以考虑遮挡。

比较过程可以包括计算图像像素上的、经绘制的图像与所观察的图像之间的绝对或者平方差的总和。在一些示例中,该总和使得鲁棒的惩罚项(诸如geman-mcclure或者cauchy)应用于帮助降低异常值的影响。还可以使用其他类型的比较过程。

图8是在随机优化器是粒子群优化器和遗传算法的混合的情况下随机优化器处的示例方法的流程图。在该示例中,随机优化器使用拼接,其是一种类型的遗传算法过程。随机优化器还使用池中的候选解来影响池中的其他候选解,其是一种类型的粒子群优化过程。然而,这些仅是示例并且遗传算法和粒子群过程的其他特征可以组合在混合中。

随机优化器维持粒子群体(候选解池各自具有相关联的感兴趣区域),并且并行对群体评价上文所描述的评分功能,这产生针对每个候选解的得分。每个这样的评价包括一代。实验发现,考虑到当前粒子对过程的性能产生大的影响,如何填充下一代。图8的特定过程被发现给出好的结果,虽然也可以使用其他类型的随机优化过程。

当前候选800池用于计算个体粒子802的得分。这导致值的元组,每个元组包括得分、姿势和感兴趣区域。执行每代重新随机化过程804。这包括调节池中的粒子的50%的姿势。重新随机化的粒子可以使其年龄设定806到最大年龄值。

针对已经到达第三代的任何粒子做出808检查。尚未到达其第三代的粒子保持在候选池中并且在过程中继续。已经到达其第三代的粒子进入第二重新随机化过程810。在第二重新随机化过程中,由从由预测引擎所计算的姿势分布所采样的姿势来替换粒子的第一部分。粒子的第二部分经受局部随机扰动。粒子的第三部分经受拼接操作,其中随机粒子选自粒子的排名第一的子集并且当前粒子根据所选择的粒子来重写姿势参数的子集。重新随机化的粒子可以使其年龄设定到零。

在其中粒子具有年龄并且年龄被设定为在步骤806和步骤810中上文所描述的情况下,图8的过程将给定年龄内的所有粒子视为独立群。这将具有不同的年龄的候选姿势视为在不同的候选姿势池中。然后,通过降低跨越姿势参数(诸如全局旋转参数)的内插改进准确度。然而,考虑粒子年龄不是必要的。

图9图示了可以被实现为计算和/或电子设备的任何形式并且在其中可以实现运动手部/身体跟踪器的实施例的示例性的基于计算的设备904的各种部件。例如,移动电话、平板计算机、膝上型计算机、个人计算机、web服务器、云服务器。

基于计算的设备904包括一个或多个处理器900,其可以是微处理器、控制器、或者用于处理计算机可执行指令以控制设备的操作以便实时准确地跟踪手部或身体的姿势的任何其他适合的类型的处理器。在一些示例中,例如在使用片上系统架构的情况下,处理器900可以包括以硬件(而不是软件或固件)实现图4至图8中的任一附图的方法的一部分的一个或多个固定功能块(还被称为加速器)。包括操作系统913的平台软件或者任何其他适合的平台软件可以被提供在基于计算的设备处以使得应用软件916能够在设备上被执行。数据存储库920存储候选姿势、感兴趣区域、图像数据、跟踪的姿势和/或其他数据。手部/身体跟踪器918包括用于执行图4至图8中的任一附图的方法的一部分的指令。

可以使用由基于计算的设备904可访问的任何计算机可读介质来提供计算机可执行指令。计算机可读介质可以包括例如计算机存储介质912(诸如存储器和通信介质)。计算机存储介质(诸如存储器912)包括在任何方法或技术中实现的易失性和非易失性、可移除和不可移除介质,以用于信息(诸如计算机可读指令、数据结构、程序模块或其他数据)的存储。计算机存储介质包括但不限于ram、rom、eprom、eeprom、闪速存储器或其他存储器技术、cd-rom、数字多用光盘(dvd)或其他光学存储装置、磁带盒、磁带、磁盘存储装置或其他磁性存储设备或可以被用于存储信息以用于由计算设备访问的任何其他非传输介质。相反,通信介质可以实现计算机可读指令、数据结构、程序模块、调制数据信号(诸如载波或其他传输机制)中的其他数据。如在此所定义的,计算机存储介质不包括通信介质。因此,计算机存储介质不应当被解释为是传播信号自身。传播信号可以存在于计算机存储介质中,但是传播信号自身不是计算机存储介质的示例。虽然计算机存储介质(存储器912)被示出在基于计算的设备904内,但是将理解到,可以经由网络或其他通信链路(例如,使用通信接口913)分布或远程定位并且访问存储装置。

基于计算的设备904还包括输出接口910,其被布置为将显示信息输出给可以与基于计算的设备904分离或集成到基于计算的设备904的显示设备104。例如,在平板计算机的情况下,显示设备104与基于计算的设备集成。显示信息可以提供图形用户接口。输入接口902还被布置为接收并且处理来自一个或多个设备(诸如用户输入设备(例如鼠标907、键盘906、游戏控制器905))和来自上文所描述的采集设备102的输入。在一些示例中,用户输入设备可以检测语音输入、用户手势或其他用户动作并且可以提供自然用户接口(nui)。在实施例中,如果其是触敏显示设备,则显示设备104还可以充当用户输入设备。输出接口910还可以将数据输出到了除显示设备之外的设备(例如,本地连接打印设备)。

输入接口902、输出接口910、显示设备104和用户输入设备中的任一个可以包括nui技术,其使得用户能够以自然的方式与基于计算的设备相互作用、免于由输入设备(诸如鼠标、键盘、遥控器等)强加的人工约束。可以被提供的nui技术的示例包括但不限于:依赖于语音和/或语言识别、触摸和/或触针识别(触敏显示器)、屏幕上和屏幕附近二者的手势识别、空中手势、头部和眼部跟踪、语音和语言、视觉、触摸、手势和机器智能的那些nui技术。可以使用的nui技术的其他示例包括:意图和目标理解系统、使用深度照相机的运动手势检测系统(诸如立体照相机系统、红外照相机系统、rgb照相机系统和这些的组合)、使用加速度计/陀螺仪的运动手势检测、面部识别、3d显示、头部、眼睛和视线跟踪、用于使用电场感测电极来感测脑部活动的沉浸式增强现实和虚拟现实系统和技术(eeg和相关方法)。

在示例中,存在一种跟踪手部或身体的姿势的方法,包括:

接收描绘手部或身体的图像的流;

将图像之一的至少一部分输入到预测引擎以获得手部或身体的姿势上的分布;

访问手部或身体的候选姿势池并且使用随机优化器迭代地提炼候选姿势;以及

利用来自手部或身体的姿势上的分布的样本周期性地替换池中的候选姿势的子集。

在示例中,方法包括利用来自手部或身体的姿势上的分布的样本来初始化候选姿势池。

在示例中,方法包括将图像之一的至少一部分输入到预测引擎包括:将图像之一的所述至少一部分输入到预测引擎的多个层。

在先前的段落中所描述的实施例还可以组合将图像之一的至少一部分输入到预测引擎的、包括分类器的第一层,其被布置为计算姿势的全局旋转分类上的分布。

在示例中,将图像之一的至少一部分输入到预测引擎包括:将图像之一的至少一部分输入到预测引擎的第一层,并且从第一层接收结果,并且将图像之一的至少一部分输入到预测引擎的第二层的一部分,并且第二层的所述部分使用结果而被选择。

上文紧接地段落中的示例可以包括将图像之一的至少一部分输入到预测引擎的、包括有区别的蕨类集成的第一层。

以上示例可以包括将图像之一的至少一部分输入到预测引擎包括将图像之一的至少一部分输入到预测引擎的、包括分类器的第一层,以及输入到预测引擎的、包括多个决策丛林的第二层。

在一些示例中,使用随机优化器迭代地提炼候选姿势包括:通过做出本地随机扰动/或利用来自另一姿势候选的参数替换姿势候选的参数的子集来随机地调节候选姿势的子集的姿势。

在一些示例中,使用随机优化器包括:向每个候选姿势分配年龄,如果候选姿势被随机地调节则递增年龄,并且将具有不同年龄的候选姿势视为不同的候选姿势池中。

在一些示例中,使用随机优化器包括:通过考虑遮挡的方式绘制来自3d手部或身体模型的合成图像来计算池的候选姿势的得分。

在示例的一个或多个中,描绘手部或身体的图像流从移动采集设备被接收。

在示例中,描绘手部或身体的图像流从定位用户的肩膀上的采集设备被接收。

在示例中,多个决策丛林包括旋转回归量、平移回归量以及姿势分类器。

一些示例包括通过使用针对多个姿势分类的每个姿势分类的姿势上的预指定的分布来计算样本。

在示例中,被存储在计算机可读介质上的计算机程序执行上文所描述的方法中的任一种方法。

在示例中,一种手部或身体姿势跟踪器,包括:

输入接口,其被布置为接收描绘手部或身体的图像;

处理器,其被布置为将图像的至少一部分输入到预测引擎以获得手部或身体的姿势上的分布;

随机优化器,其被布置为访问手部或身体的候选姿势池并且迭代地提炼候选姿势;

处理器,其被布置为利用来自手部或身体的姿势上的分布的样本来周期性地替换池中的候选姿势的子集。

在示例中,上文紧接地所描述的手部或身体姿势跟踪器包括至少部分在平行处理单元上实现的渲染器,被配置为将渲染器用作评分过程的一部分的随机优化器。

在示例中,手部或身体姿势跟踪器包括预测引擎,预测引擎具有分层架构。

在示例中,手部或身体姿势跟踪器包括预测引擎,预测引擎具有包括全局旋转分类器的第一层。

在示例中,手部或身体姿势跟踪器包括预测引擎,预测引擎具有作为决策丛林的多个经训练的专家。

在示例中,存在一种计算机可读介质,其存储指令,指令当由计算设备执行时控制设备:

接收描绘用户的手部的图像的流;

将图像之一的至少一部分输入到分层预测引擎以获得手的姿势上的分布;

访问手部或身体的候选姿势池并且使用随机优化器来迭代地提炼候选姿势;以及

利用来自手部或身体的姿势上的分布的样本来周期性地替换池中的候选姿势的子集。

术语“计算机”或“基于计算的设备”在此用于指代具有处理能力的任何设备,使得其可以执行指令。本领域的技术人员将认识到,这样的处理能力被并入许多不同的设备中并且因此术语“计算机”和“基于计算的设备”各自包括pc、服务器、移动电话(包括智能电话)、平板计算机、机顶盒、媒体播放器、游戏控制台、个人数字助理和许多其他设备。

在此所描述的方法可以由以有形存储介质上的机器可读形式(例如,以包括适于当程序被运行在计算机上时并且在计算机程序可以被实现在计算机可读介质上的情况下执行在此所描述的方法中的任一方法的所有步骤的计算机程序代码装置的计算机程序的形式)由软件实现。有形存储介质的示例包括包含计算机可读介质(诸如磁盘、拇指驱动器、存储器等)的计算机存储设备,并且不包括传播信号。传播信号可以存在于有形存储介质中,但是传播信号自身不是有形存储介质的示例。软件可以适于在并行处理器或串行处理器上执行,使得可以以任何适合的顺序或同时地执行方法步骤。

这确认软件可以是有价值的可分离地交易的商品。其旨在涵盖在“无声”或标准硬件上运行或控制“无声”或标准硬件以执行期望功能的软件。其还旨在涵盖“描述”或定义硬件的配置的软件(诸如hdl(硬件描述语言)软件),如被用于设计硅片或用于将通用可编程芯片配置为执行期望功能。

本领域的技术人员将认识到,用于存储程序指令的存储设备可以跨网络分布。例如,远程计算机可以存储被描述为软件的过程的示例。局部或终端计算机可以访问远程计算机并且下载软件的一部分或全部来运行程序。备选地,本地计算机可以根据需要下载软件,或者在本地终端处执行一些软件指令或在远程计算机(或计算机网络)处执行一些软件指令。本领域的技术人员还将认识到,通过利用本领域的技术人员已知的常规技术,可以通过专用电路(诸如dsp、可编程逻辑阵列等)执行软件指令的全部或一部分。

在不损失所寻求的效果的情况下,可以延伸或更改本文给定的任何范围或值,如对于技术人员而言将明显的。

虽然已经以特定于结构特征和/或方法动作的语言描述了主题,但是应理解到,所附的权利要求中定义的主题不必限于上文所描述的特定特征或动作。相反,上文所描述的特定特征和动作被公开为实现权利要求的示例形式。

将理解到,上文所描述的益处和优点可以涉及一个实施例或可以涉及若干实施例。实施例不限于解决上述问题中的任何或全部的那些实施例或具有上述益处和优点中的任何或全部的那些实施例。将进一步理解到,对“一”项的引用指代那些项中的一个或多个。

可以以任何适合的顺序或在适当的情况下同时地执行在此所描述的方法的步骤。此外,在不脱离在此所描述的主题的精神和范围的情况下,可以从方法中的任一方法删除个体框。上文所描述的示例中的任一个示例的各方面可以与所描述的其他示例中的任一个的各方面组合,以在不损失所寻求的效果的情况下形成进一步的示例。

术语“包括”在此用于意指包括所标识的方法框或元素,但是这样的框或元素不包括排他性列表并且方法或放置可以包含附加框或元素。

术语“子集”在此用于指代适当的子集,使得集合的子集不包括集合的所有元素(即,集合的元素中的至少一个元素将从子集丢失)。

将理解到,仅通过示例给出以上描述,并且可以由本领域的技术人员做出各种修改。以上说明书、示例和数据提供示例性实施例的结构和使用的完整描述。虽然上文已经以一定程度上的特殊性或者参考一个或多个个体实施例描述各种实施例,但是在不脱离本说明书的精神或范围的情况下,本领域的技术人员可以对所公开的实施例做出许多变型。

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