根据三维捕获的图像流来跟踪身体运动范围的方法和系统

申请号 CN200810002628.X 申请日 2008-01-10 公开(公告)号 CN101238981B 公开(公告)日 2010-06-16
申请人 国际商业机器公司; 发明人 A·J·赛萨; M·A·保利尼; S·D·高曼; J·C·阿尔伯特森; K·C·阿诺德;
摘要 本 发明 涉及一种根据三维捕获的图像流来 跟踪 身体运动范围的方法和系统,包括:运动处理系统,用于捕获用户的第一三维运动和捕获用户的至少另一个三维运动,其中使用至少一个指向用户身体的图像捕获设备来确定所述三维运动。预定运动系统根据所述用户的所述第一三维运动来预测运动基线,并且根据所述用户的所述至少另一个三维运动来预测至少一个后续运动范围。根据所述运动基线与所述至少一个后续运动范围的比较,所述预定运动系统预测用户的预定运动以便跟踪用户的身体运动范围的变化。
权利要求

1.一种用于跟踪用户的身体运动范围的计算机实现的方法,所述方法包括:
捕获用户的第一三维运动,其中使用至少一个指向用户身体的图像捕获设备来确定所述三维运动;
捕获所述用户的至少另一个三维运动,其中使用所述至少一个指向用户身体的图像捕获设备来确定所述至少另一个三维运动;
根据所述用户的所述第一三维运动来预测运动基线;
根据所述用户的所述至少另一个三维运动来预测至少一个后续运动范围;
通过将所述运动基线与所述至少一个后续运动范围相比较来预测所述用户的预定运动;以及
将所述预定运动输出到可由所述用户访问的输出设备和可由监视代理访问的系统中的至少一个。
2.根据权利要求1的计算机实现的方法,还包括:
对于所述用户的所述第一三维运动和所述用户的所述至少另一个三维运动中的每个运动,标识每个捕获的三维运动的单独三维对象属性流;以及
通过将每个单独标识的三维对象属性流与多个运动定义相比较,标识单独定义的运动类型以及由每个单独三维对象属性流表示的运动类型的至少一个特征。
3.根据权利要求1的计算机实现的方法,其中捕获所述用户的第一三维运动和捕获所述用户的至少另一个三维运动进一步包括使用立体图像设备来捕获每个单独捕获的三维运动,以便标识和跟踪所述用户的至少一个身体部位的至少一种特定类型的三维运动。
4.根据权利要求1的计算机实现的方法,其中捕获所述用户的第一三维运动和捕获所述用户的至少另一个三维运动进一步包括在每个单独捕获的三维运动中标识用户身体运动的至少一个特征,所述用户身体运动包括所述用户的面部表情、眼部动作、肌肉收缩以及皮肤表面特征变化中的至少一个的细粒度运动。
5.根据权利要求1的计算机实现的方法,其中根据所述用户的所述第一三维运动来预测运动基线进一步包括访问所述用户的至少一个属性以预测所述用户的运动基线,所述属性包括年龄、身高、体重、饮食、体质、受伤情况以及疾病状况中的至少一个。
6.根据权利要求1的计算机实现的方法,其中所述预定运动指示所述用户的身体运动范围从所述运动基线下降到所述至少一个后续运动范围。
7.根据权利要求1的计算机实现的方法,其中所述预定运动指定了未来预测的所述用户的身体运动范围。
8.根据权利要求1的计算机实现的方法,还包括:
将所述预定运动转换为至少一个输出信号以输出到可由所述用户访问的输出设备和可由所述监视代理访问的系统中的至少一个;以及
对将所述至少一个输出信号输出到可由所述用户访问的输出设备和可由所述监视代理访问的系统中的至少一个进行控制。
9.一种用于跟踪用户的身体运动范围的系统,所述系统包括:
运动处理系统,所述运动处理系统可通信地连接到网络,所述运动处理系统还包括:
用于捕获用户的第一三维运动的装置,其中使用至少一个指向用户身体的图像捕获设备来确定所述三维运动;
用于捕获所述用户的至少另一个三维运动的装置,其中使用所述至少一个指向用户身体的图像捕获设备来确定所述至少另一个三维运动;以及
预定运动系统,所述预定运动系统通过所述网络可通信地连接到所述运动处理系统,所述预定运动系统还包括:
用于根据所述用户的所述第一三维运动来预测运动基线的装置;
用于根据所述用户的所述至少另一个三维运动来预测至少一个后
续运动范围的装置;
用于通过将所述运动基线与所述至少一个后续运动范围相比较来预测所述用户的预定运动的装置;以及
用于控制将所述预定运动输出到可由所述用户访问的输出设备和可由监视代理访问的系统中的至少一个的装置。
10.根据权利要求9的系统,所述运动处理系统还包括:
用于对于所述用户的所述第一三维运动和所述用户的所述至少另一个三维运动中的每个运动,标识每个捕获的三维运动的单独三维对象属性流的装置;以及用于通过将每个单独标识的三维对象属性流与多个运动定义相比较,标识单独定义的运动类型以及由每个单独三维对象属性流表示的运动类型的至少一个特征的装置。
11.根据权利要求9的系统,其中所述用于捕获所述用户的第一三维运动和捕获所述用户的至少另一个三维运动的装置还包括用于使用立体图像设备来捕获每个单独捕获的三维运动,以便标识和跟踪所述用户的至少一个身体部位的至少一种特定类型的三维运动的装置。
12.根据权利要求9的系统,其中所述用于捕获所述用户的第一三维运动和捕获所述用户的至少另一个三维运动的装置还包括用于在每个单独捕获的三维运动中标识用户身体运动的至少一个特征的装置,所述用户身体运动包括所述用户的面部表情、眼部动作、肌肉收缩以及皮肤表面特征变化中的至少一个的细粒度运动。
13.根据权利要求9的系统,其中所述用于根据所述用户的第一三维运动来预测运动基线的装置还包括用于访问所述用户的至少一个属性以预测所述用户的运动基线的装置,所述属性包括年龄、身高、体重、饮食、体质、受伤情况以及疾病状况中的至少一个。
14.根据权利要求9的系统,其中所述预定运动指示所述用户的身体运动范围从所述运动基线下降到所述至少一个后续运动范围。
15.根据权利要求9的系统,其中所述预定运动指定了未来预测的所述用户的身体运动范围。
16.根据权利要求9的系统,所述预定运动系统还包括:
用于将所述预定运动转换为至少一个输出信号以输出到可由所述用户访问的输出设备和可由所述监视代理访问的系统中的至少一个的装置;以及
用于控制将所述至少一个输出信号输出到可由所述用户访问的输出设备和可由所述监视代理访问的系统中的至少一个的装置。

说明书全文

根据三维捕获的图像流来跟踪身体运动范围的方法和系统

技术领域

[0001] 本发明一般地涉及提供改进的三维身体运动跟踪,具体地说,本发明涉及根据由一个或多个图像捕获设备捕获的一段时间内用户运动的三维图像流来预测用户的预定运动(projected movement)。

背景技术

[0002] 锻炼是许多人每天或每周例行活动的一部分。不管是为了改善健康状况,从伤害中恢复,进行体育运动,还是为了达到某个既定的目标,当人们锻炼时,可以通过多种方法增加量和活动范围,但是也有许多方法可导致人们受伤或阻碍活动范围的增加。即使在教练或物理治疗专家的监督下运动,人们仍可能会受伤。
[0003] 因此,基于上述内容,需要一种计算机实现的方法、系统和程序产品来监视第一时刻的三维用户运动,监视其他时刻的三维用户运动的其他选择,并且从第一组用户运动和用户运动的其他选择来自动预测预定运动变化或运动量,以便帮助用户避免受伤,从伤害中恢复或者达到健康目标。

发明内容

[0004] 因此,本发明提供了改进的对用户身体运动范围的跟踪。具体地说,本发明提供了根据由一个或多个图像捕获设备捕获的一段时间内用户运动的三维图像流来预测用户的预定运动。
[0005] 在一个实施例中,一种计算机实现的方法、系统和程序产品包括:运动处理系统,用于捕获用户的第一三维运动,其中使用至少一个指向用户身体的图像捕获设备来确定所述三维运动,以及用于捕获所述用户的至少另一个三维运动,其中使用所述至少一个指向用户身体的图像捕获设备来确定所述至少另一个三维运动。预定运动系统根据所述用户的所述第一三维运动来预测运动基线并且根据所述用户的所述至少另一个三维运动来预测至少一个后续运动范围。根据所述运动基线与所述至少一个后续运动范围的比较,所述预定运动系统预测用户的预定运动,通过其可以建议进行调整以帮助用户避免受伤,从伤害中恢复或正确使用锻炼器材,通过其用户能够跟踪健身进度,并且通过其可以生成其他输出信号并将这些信号输出给用户、监视代理和医护人员。
[0006] 所述运动处理系统可以使用立体图像设备来捕获用户的三维运动,以标识并跟踪用户至少一个身体部位的至少一个特定类型的三维运动。进而,所述运动处理系统可以在捕获的三维运动中标识至少一个身体运动特征,所述身体运动包括诸如面部表情、眼部动作、肌肉收缩以及皮肤表面特征变化之类的细粒度运动。
[0007] 所述预定运动系统可以预测指示用户身体运动范围从所述运动基线到所述至少一个后续运动范围的下降或上升的预定运动。此外,所述预定运动系统可以预测指定了未来预测的用户身体运动范围的预定运动。
[0008] 所述预定运动系统将预定运动转换为至少一个输出信号以输出到输出设备或其他系统处的用户,或者输出到其他系统处的监视代理。此外,所述预定运动系统对将输出信号输出到选定输出设备和系统进行控制。附图说明
[0009] 在所附权利要求中说明了被认为是本发明特性的新颖特征。当结合附图阅读时,通过参考以下对示例性实施例的详细说明,可以最佳地理解发明本身以及优选使用方式,进一步的目的和优点,这些附图是:
[0010] 图1是示出运动处理方法、系统和程序产品中的信息流的方图;
[0011] 图2是示出了其中3D对象检测器捕获和生成代表捕获的用户运动的3D对象属性的环境实例的方块图;
[0012] 图3是示出了用于生成3D对象属性以使运动解释器能够从3D对象属性解释用户运动类型和特征的3D对象检测器系统的一个实施例的方块图;
[0013] 图4是示出了运动解释器系统的一个实施例的方块图;
[0014] 图5是示出了其中可以实现本发明的计算系统的一个实施例的方块图;
[0015] 图6是示出了其中可以实现启用了运动的预定运动方法、系统和程序产品的分布式网络环境的一个实例的方块图;
[0016] 图7是示出了预测用户运动的运动解释器系统的实施方式的一个实例的方块图,其中启用了运动的预定运动系统根据所述用户运动来预测用户的预定运动;
[0017] 图8是示出了向监视代理系统提供预定运动报告的一个实例的方块图;
[0018] 图9是示出了从预定运动接收触觉反馈的可检测触觉反馈设备的一个实例的示意图;
[0019] 图10是示出了同时监视和预测多个用户的预定运动的预定运动系统的一个实例的示意图;
[0020] 图11是示出通过百分比概率预测运动类型和特征的运动处理系统的过程和程序的高级逻辑流程图
[0021] 图12是示出了通过跟踪图像流内的对象和其他传感数据并且生成代表运动的被跟踪对象的3D对象属性来检测运动的对象检测控制器的过程和程序的高级逻辑流程图;
[0022] 图13是示出了根据跟踪的3D对象属性来预测运动的过程和程序的高级逻辑流程图;以及
[0023] 图14是示出了预测用户的预定运动的预定运动系统的过程和程序的高级逻辑流程图。

具体实施方式

[0024] 现在参考图1,图1是示出了运动处理方法、系统和程序产品中的信息流的方块图。应当理解,图1提供了用于捕获用户运动的图像流并处理这些图像流以预测被监视用户运动的信息流的一个实施例,包括但不限于检测用户的一个或多个身体部位的运动、活动范围,以及其他运动特征。在另一个实施例中,可以实现其他信息流以处理捕获的数据并预测用户的运动。
[0025] 重要的是指出,在全文中使用的术语“运动”可以包括身体部位的任何类型的运动,所述身体部位包括但不限于手臂、腿、后背、脚、手、脖子或头部,并且还可以包括用户穿着的衣物、用户携带的物品,以及替代身体部位的运动。用户运动可以包括细粒度运动,例如手势和面部表情、肌肉紧张性和肌肉收缩的变化,包括不自主的颤抖、体态的变化,眼部动作以及诸如颜色温度、紧张度和排汗平之类的皮肤表面特征的变化。此外,用户运动可以包括诸如活动范围、速度和力量之类的用户运动特征。
[0026] 此外,重要的是指出,在全文中使用的术语“用户”可以指锻炼环境中被监视的人、动物或其他移动实体。用户或监视代理可以如下文所述的那样监视用户运动和预定运动,其中“监视代理”可以指诸如教练之类的监视其他用户运动的人,或者指监视用户运动的自动系统。“锻炼环境”可以包括其中用户以某种方式处于物理活动状态的任何环境。锻炼环境的实例可以包括但不限于运动场、训练场、体育馆、跑道和户外场地。
[0027] 在所述实例中,运动处理系统100包括三维(3D)对象检测器104。3D对象检测器104代表多个系统,所述系统用于捕获有关移动和静止对象的图像以及其他数据、使捕获的数据成流、跟踪被捕获运动中的特定对象、使特定对象的属性成流,并将成流的属性组合成被捕获对象(如3D对象属性110所示)的3D特征的三维表示。3D对象属性110可以包括但不限于代表用户运动的位置、颜色、大小和方位。
[0028] 在所述实例中,3D对象检测器104捕获聚焦区域内表示为可检测运动102的图像。此外,3D对象检测器104可以检测聚焦区域内其他类型的数据。具体地说,3D对象检测器104通过多种类型的图像和数据检测来检测可检测运动102,所述图像和数据检测包括但不限于捕获视频图像、检测一个或多个特定身体部位的运动、检测皮肤纹理、检测眼部动作、检测皮肤表面特征,以及捕获热成像。为了支持多种类型的图像和数据检测,3D对象检测器104可以包括多种类型的图像捕获设备,包括一个或多个放置为捕获立体视频图像的摄像机,以及用于捕获一个或多个对象的至少另一个特征的其他类型的传感器,例如人体热成像传感器、皮肤纹理传感器、激光传感设备、声音导航和测距(SONAR)设备,或者合成激光或声纳系统。具体地说,传感器可以使用单独的传感器单元实现,也可以通过处理捕获的图像流的逻辑单元实现。例如,逻辑单元可以处理捕获的图像流以检测聚焦区域内的面部皮肤纹理,该纹理与诸如光滑的墙壁或带有纹理的树叶之类的非皮肤的纹理具有区别。
[0029] 可检测运动102的某些部分可以包括代表用户实际运动的图像和其他数据,而可检测运动102的其他部分可以包括并不代表运动的图像和数据。在一个实施例中,3D对象检测器104将可检测运动102转换为被检测对象的3D属性流并将所述3D对象属性110的流传递到运动解释器106。运动解释器106判定3D对象属性110的哪些流映射到一个或多个用户运动、从所述3D对象属性110的流预测用户运动类型、从所述3D对象属性110的流检测用户运动特征,并计算运动解释器106正确预测可检测运动102中的实际运动的概率。在另一个实施例中,3D对象检测器104可以筛选出被检测对象的不代表用户运动的3D属性。
[0030] 运动解释器106将具有特征和运动被正确预测的百分比概率的每种类型的预测用户运动输出为预测的运动输出108。运动解释器106可以将预测的运动输出108传递到一个或多个系统处的一个或多个启用了运动的应用。在一个实例中,如根据本发明的优点进一步所述的,运动解释器106将预测的运动输出108传递到跟踪用户的基线运动,访问用户的一系列其他运动,以及预测用户的预定运动的预定运动系统。但是,运动解释器106还可以将预测的运动输出108传递到解释预测的运动的一个或多个其他类型的启用了运动的应用。
[0031] 具体地说,在处理可检测运动102和生成预测的运动输出108时,3D对象检测器104和运动解释器106可以访问过去累积和存储的运动定义的定义数据库112以更好地跟踪和检测3D对象属性110内代表用户运动的被监视对象并更好地预测运动类型和运动特征。
[0032] 进而,在处理可检测运动102和生成预测的运动输出108时,3D对象检测器104和运动解释器106尝试标识代表特定用户运动的对象并根据其中产生运动的整体交互来预测运动类型和运动特征。因此,3D对象检测器104和运动解释器106不仅尝试确定运动,还尝试确定运动中影响运动类型和运动特征的重要性级别、做出将影响运动类型和特征的运动的用户的背景、其中用户做出将影响运动类型和特征的运动的环境、共同做出的影响每个运动的类型和特征的多个运动的组合,以及其他影响运动类型和特征的可检测因素。此外,可以训练定义数据库112以更准确地标识用户、锻炼器材、运动类型以及其他在特定被监视锻炼环境中常见的项目。
[0033] 此外,在处理可检测运动102时,多个单独的具有图像捕获设备和其他传感器的系统分别从不同度捕获有关单独或重叠聚焦区域的图像和数据。所述单独的具有图像捕获设备和其他传感器的系统可以通过无线或有线连接被可通信地相连,并且可以在3D运动检测器之间或运动解释器之间相互共享捕获的图像和数据,以便通过数据组合,运动解释器106可以更准确地解释运动。
[0034] 现在参考图2,图2是示出其中3D对象检测器捕获和生成代表捕获的用户运动的3D对象属性的环境实例的示意图。应当理解,可检测运动环境200是其中3D对象检测器
104检测代表可检测运动102的图像和数据的环境的一个实例,如参考图1中的运动处理系统100所述的。更具体地说,如进一步所述,图10示出了其中检测和处理多个用户运动的锻炼环境。
[0035] 在所述实例中,可检测运动环境200包括包含图像捕获设备202和图像捕获设备204的立体图像设备,每个捕获设备被放置为检测一个或多个对象(代表组合的3D聚焦区域220内的用户运动和非用户运动)的运动。在所示实施例中,图像捕获设备202和图像捕获设备204分别可以被放置在一个固定轴或单独的固定轴上,以便由3D聚焦区域220表示的区域始终被聚焦。此外,在所示实施例中,图像捕获设备202和图像捕获设备204以及任何其他传感器可以被平行放置、相切地放置,以及呈任何其他角度放置以控制3D聚焦区域220内的捕获图像的范围。
[0036] 在另一个实施例中,图像捕获设备202和图像捕获设备204分别可以被放置在位置可调的轴上,或者图像捕获设备202和图像捕获设备204的实际焦点可以被调节,以便可以重新定位由3D聚焦区域220表示的区域。在一个实例中,图像捕获设备202和图像捕获设备204都可以与一个或多个热成像设备相连,所述热成像设备检测广阔区域内基于热成像的运动并引导每个图像捕获设备202和图像捕获设备204的聚焦区域的重新定位,以便跟踪每个相机的聚焦区域内的热运动。
[0037] 在一个实例中,图像捕获设备202和图像捕获设备204可以被固定为捕获特定3D聚焦区域220,包括但不限于捕获锻炼环境的所有区域或部分区域。此外,在当前实施例中,图像捕获设备202和图像捕获设备204可以被固定到由用户或监视代理携带或佩戴的装置。例如,图像捕获设备202和图像捕获设备204可以被固定到由监视代理佩戴的眼镜或其他头饰上,以便3D聚焦区域220随着佩戴眼镜的监视代理的移动而变化。
[0038] 尽管未示出,但是在另一个实施例中,只有单个摄像机(如图像捕获设备202)可以被实现为立体图像设备。将所述单个摄像机放置在轨道或其他可调轴上并且控制器沿着轨道调节单个摄像机的位置,其中所述单个摄像机然后沿着轨道在不同放置点捕获聚焦区域内的视频图像流,并且3D运动检测器104将所述图像流组合成可检测对象的属性的3D对象属性流。在一个实例中,通过比较在相机位置变化时之间的亮度和阴影变化,可以生成3D对象属性流。备选地,可以使用与检测深度的传感器相连的单个固定相机来实现立体图像设备。此外,备选地,可以处理图像并检测固定位置深度的单个相机可以用作立体图像设备。例如,所述单个相机可以通过检测光源的运动并比较捕获的图像帧之间的亮度和阴影变化来处理图像和检测深度。具体地说,单相机系统可以首先映射被监视脸部的模型,聚焦于眼睛、嘴巴和鼻子,然后检测图像帧之间的亮度和阴影变化以检测脸部的深度特征。在其他实例中,系统可以处理捕获的视频图像流以从图像流的其他特征中提取深度。
[0039] 为了举例,3D聚焦区域220包括由图像捕获设备202捕获的第一捕获平面206和由图像捕获设备204捕获的第二捕获平面208。第一捕获平面206检测标号214示出的平面内的运动,并且第二捕获平面208检测标号216示出的平面内的运动。因此,例如,图像捕获设备202检测3D聚焦区域220内对象的侧向和上下运动,而图像捕获设备204检测对象的前后运动。重要的是指出,当以细粒度跟踪对象的运动时,即使诸如肌肉颤抖或皱眉之类的用户身体运动的细小调节也会被跟踪并被解释为一种类型的具有肌肉运动的用户运动,所述肌肉运动具有指定颤抖程度或面部表情的特征,以及指定与眉毛的正常位置有区别的皱眉强度的特征。
[0040] 在所述实例中,3D聚焦区域220内的手210表示运动对象并且盒子212表示静止对象。在所述实例中,手210是3D聚焦区域220内的用户的手部。被监视用户可以在移动手210时做出任意次数的具有不同活动范围、速度和力量的运动。
[0041] 当用户在3D聚焦区域220内移动手210时,图像捕获设备202和图像捕获设备204都捕获了捕获平面206和捕获平面208内手210的运动视频流。通过所述视频流,3D对象检测器104将手210检测为3D聚焦区域220内的移动对象,并生成在一段时间内的手210的3D属性流(代表3D对象属性110)。
[0042] 此外,用户可以相对于盒子212或另一对象移动手210。例如,用户可以指向盒子212或做出其他类型的指向盒子212的运动。在另一个实例中,用户可以举起盒子212。当用户在3D聚焦区域220内移动手210时,由图像捕获设备202和图像捕获设备204捕获的视频流包括手210和盒子212的运动。通过所述视频流,3D对象检测器104将手210检测为3D聚焦区域220内的运动对象,将盒子212检测为静止对象(除非用户移动盒子212),并生成一段时间内指示盒子212的3D属性以及手210相对于盒子212的3D属性的3D对象属性流。
[0043] 重要的是指出,通过使用多个相机捕获3D聚焦区域220内的不同运动平面,捕获的运动点多于使用通常的固定单个相机捕获的运动点。通过从多个角度捕获更多的运动点,3D对象检测器104可以更准确地检测和定义3D聚焦区域220内包括用户运动的静止对象和运动对象的3D表示。此外,3D对象检测器104定义运动对象的3D表示越准确,运动解释器106检测代表用户运动的对象并从3D模型预测运动特征的类型就越准确。例如,运动可以包括用户做出直接朝向或远离摄像机202和摄像机204之一的动作,在二维帧中无法捕获该动作;3D对象检测器104检测运动的3D表示并将其定义为运动对象,而运动解释器106根据运动的3D模型来预测朝向或远离摄像机的用户运动。
[0044] 此外,重要的是指出,虽然图2示出了运动的手210和静止的盒子212,但是在备选实施例中,3D聚焦区域220可以包括多个用户,以便图像捕获设备202和图像捕获设备204捕获多个用户的运动图像,并且3D对象检测器104将每个用户的每个运动检测为单独对象。具体地说,3D对象检测器104可以从捕获的视频图像(来自图像捕获设备202和图像捕获设备204)检测具有较多动作的运动(例如通过手做出的运动)以及具有较少动作的运动(例如面部表情),以便准确地生成锻炼环境内用户运动的3D对象属性。
[0045] 在所述实例中,除了捕获聚焦区域220内的图像之外,在可检测运动环境200中,其他传感器也可以检测有关锻炼环境的信息,但是在聚焦区域220之外。例如,传感器240可以检测传感器区域242内的信息。传感器区域242可以与聚焦区域220重叠、合并或分离,也可以纳入聚焦区域220内。3D对象检测器104将读出的信息与捕获的图像相结合,以更准确地生成3D对象属性110并将有关环境的其他信息提供给警告系统。
[0046] 在一个实例中,传感器240可以根据捕获的图像流来执行面部识别或其他身份识别。在一个实例中,传感器240可以访问用户的面部映射数据库并标识与数据库中的特定面部映射匹配的特定用户面部映射。在另一个实例中,传感器240可以分析捕获的图像流以查找可以标识用户的文字。例如,传感器240可以检测捕获的用户所佩戴徽章图像流的徽章号。通过传感器240检测用户标识,对象检测器104可以更准确地生成3D对象属性,并且运动解释器106可以更准确地根据定义数据库112中为标识的用户指定的定义来预测用户运动类型。
[0047] 此外,在另一个实例中,传感器240可以通过检测从放置在传感器区域242内的物品上的RFID芯片广播的信息来补充用户识别,其中物品的RFID广播物品类型、物品位置,以及与物品关联的任何警告状况。例如,锻炼环境中的每个用户(如运动场内的每位选手)都可以佩戴广播每个用户的唯一标识符的RFID芯片。在另一个实例中,一台锻炼器材可以包括广播锻炼器材类型以及锻炼器材使用规范的RFID芯片。通过将有关特定用户或物品位置的读出信息与从其标识图像的捕获的图像相结合,对象检测器104可以更准确地生成3D对象属性110,并且运动解释器106可以更准确地检测代表用户运动的对象并根据3D对象属性110预测用户运动的类型和特征。此外,通过传感器240访问位置信息,运动解释器
106可以包括具有运动记录的用户标识数据,所述运动记录使得预定运动系统能够跟踪并预测多个用户的运动。
[0048] 在再一个实例中,传感器240可以着重于检测特定类型的对象、特定类型的运动,或其他指定类型的数据。例如,传感器240可以着重于检测和映射特定身体部位或特定类型的身体运动。在另一个实例中,传感器240可以着重于检测与基于非皮肤的纹理不同的皮肤纹理或着重于检测皮肤表面特征的变化。具体地说,通过着重于特定类型的对象、特定类型的运动,或其他指定的数据,将由传感器240收集的数据与由图像捕获设备202和图像捕获设备204捕获的图像进行结合,以生成对象的3D图像映射和对象标识中的其他细节和粒度。
[0049] 重要的是指出,运动处理系统100可以实现用于检测同一或不同传感器区域内的不同类型数据的多个传感器。此外,重要的是指出,传感器240和任何其他实现的传感器可以独立地收集和处理某个传感器区域的数据或可以处理由图像捕获设备202和图像捕获设备204捕获的图像。
[0050] 现在参考图3,图3是示出生成3D对象属性以使运动解释器能够从3D对象属性解释用户运动的类型和特征的3D对象检测器系统的一个实施例的方块图。重要的是指出,3D对象检测器104内所示的多个组件可以纳入单个系统或通过网络、其他通信介质或其他传输介质跨多个系统分布。此外,重要的是指出,所示图形中的其他或备选组件可以在3D对象检测器104中实现以捕获图像和数据并生成3D对象位置110的流。
[0051] 初始地,多个图像捕获设备(如图像捕获设备202、图像捕获设备204和传感器240)表示用于获取数据的立体图像设备或其他图像捕获系统,所述数据代表3D聚焦区域和传感器区域(如3D聚焦区域220和传感器区域242)内的可检测运动102。如上所述,图像捕获设备202和图像捕获设备204可以表示用于捕获视频图像的摄像机。此外,图像捕获设备202和图像捕获设备204可以表示相机或其他静止图像捕获设备。此外,图像捕获设备202和图像捕获设备204可以表示其他类型的能够捕获代表可检测运动102的数据的设备。图像捕获设备202和图像捕获设备204可以使用相同类型的图像捕获系统或不同类型的图像捕获系统来实现。此外,每个图像捕获设备202和图像捕获设备204捕获的捕获区域和平面的范围、大小和位置可以不同。
[0052] 传感器240检测与特定传感器区域中的对象有关信息,这增强了3D对象检测器104创建3D对象属性的能力。如上所述,传感器240可以表示一个或多个不同类型的传感器,包括但不限于RFID读取器、人体热成像传感器、皮肤纹理传感器、激光传感设备、声音导航和测距(SONAR)设备,或者合成激光或声纳系统。此外,传感器240可以包括检测特定类型的身体部位、特定类型的身体运动,或指示与基于非皮肤纹理不同的皮肤纹理的传感器。
[0053] 图像捕获设备202、图像捕获设备204和传感器240都将捕获的图像和数据传输到一个和多个允许初始接收并缓冲捕获的图像和数据的计算系统。在所述实例中,图像捕获设备202将捕获的图像传输到图像捕获服务器308,图像捕获设备204将捕获的图像传输到图像捕获服务器310,并且传感器240将捕获的数据传输到传感器服务器312。图像捕获服务器308、图像捕获服务器310和传感器服务器312可以在一个或多个服务器系统内实现。
[0054] 图像捕获服务器308、图像捕获服务器310和传感器服务器312都使来自图像捕获设备202、图像捕获设备204和传感器设备240的缓冲图像和数据流入一个或多个处理器。在所述实例中,图像捕获服务器308使图像流入视频处理器316,图像捕获服务器310使图像流入视频处理器318,并且传感器服务器312使读出数据流入传感器处理器319。重要的是指出,视频处理器316、视频处理器318和传感器处理器319可以在一个或多个计算机系统中的一个或多个处理器内实现。
[0055] 在一个实例中,图像捕获服务器308和图像捕获服务器310分别使图像流入视频处理器316和视频处理器318,其中以帧为单位使图像成流。每个帧可以包括但不限于图像捕获设备的相机标识符(ID)、帧编号、时间戳以及像素数。
[0056] 视频处理器316、视频处理器318和传感器处理器319被编程为检测和跟踪图像帧内的对象。具体地说,由于视频处理器316、视频处理器318和传感器处理器319接收复杂数据流并处理数据以标识三维对象和三维对象的特征,所以视频处理器316、视频处理器318和传感器处理器319可以实现单元宽带引擎(Cell BE)架构(单元宽带引擎是Sony ComputerEntertainment,Inc.的注册商标)。Cell BE架构指一种处理器架构,其包括基础处理器元件(如基于Power架构的控制处理器(PPE)),所述基础处理器元件连接到多个也称为协处理元件(SPE)的额外处理器元件,并实现一组DMA命令以进行处理器元件之间的高效通信。具体地说,SPE旨在比其他元件更有效地处理特定类型的处理任务。例如,SPE可以被设计为更有效地处理视频流以标识和映射帧流中的运动对象(如用户身体运动)的各点。此外,视频处理器316、视频处理器318和传感器处理器319可以实现其他类型的处理器架构,所述架构允许高效地处理视频图像,以便三维地标识视频图像(可以从其标识用户运动并预测运动的类型和特征)中的运动和静止对象。
[0057] 在所述实例中,视频处理器316、视频处理器318和传感器处理器319都创建包括位置、颜色、大小、形状和方位的被检测对象属性并使所述属性流入几何处理器320。在一个实例中,流入几何处理器320的每个被处理帧可以包括,但不限于,相机ID、帧编号、时间戳以及X轴坐标(x_位置)、Y轴坐标(y_位置)和Z轴坐标(z_位置)中的两个或更多个的组合。重要的是指出,x_位置、y_位置和z_位置都可以包括多组点和标识对象的所有属性的其他数据。如果检测和跟踪单个帧内的多个对象,则可以将每个对象的X轴坐标和Y轴坐标包括在单个成流对象属性记录或多个单独的成流对象属性记录中。此外,成流属性帧(如来自SONAR检测位置的传感器处理器319的帧)可以包括例如列为z_位置的Z轴位置坐标。
[0058] 几何处理器320从视频处理器316和视频处理器318接收2D成流对象属性并从传感器处理器319接收其他对象数据。几何处理器320使成流2D对象属性和其他数据相匹配并且从成流2D对象属性和其他数据来构建3D对象属性。具体地说,几何处理器320构建包括对象深度的3D对象属性110。在一个实例中,由几何处理器320构建的每个3D对象属性记录可以包括时间戳、对象或用户运动标签、X轴坐标(x_位置)、Y轴坐标(y_位置)和Z轴坐标(z_位置),以及从传感器收集的其他信息。例如,从传感器收集的其他信息可以包括从RFID接收的位置或用户标识符。
[0059] 在视频处理器316、视频处理器318、传感器处理器319以及几何处理器320中的任一处理器处,属性记录可以包括至少一个允许持续跟踪对象的标识符。例如,所述标识符可以包括对象本身的唯一标识符和一个类别或类型的对象(包括标识为用户运动(更具体地说,一类用户运动)的对象)的标识符。
[0060] 具体地说,通过标识并分类对象属性的视频处理器316、视频处理器318和传感器处理器319,每个处理器都可以访问定义数据库112,以访问先前处理的输入以及运动映射和物品映射,以更准确地标识和分类2D对象属性,以便检测成流2D对象属性并使其与对象匹配。此外,几何处理器320可以根据成流2D对象属性、根据从定义数据库112访问的先前匹配和构建的3D对象属性来更准确地构建3D对象属性。进而,对象数据库122可以存储成流2D对象属性和3D对象属性以供将来参考。
[0061] 此外,通过标识和分类对象属性的视频处理器316、视频处理器318和传感器处理器319,以及通过构建3D对象属性110的几何处理器,每个处理器都可以标识包括用户运动的被检测对象。例如,视频处理器316、视频处理器318、传感器处理器319和几何处理器320可以访问定义数据库112,定义数据库112包括在映射面部表情和其他身体运动,执行面部和其他身体运动识别,以及执行其他处理以标识代表运动的对象中使用的规范。此外,视频处理器316、视频处理器318、传感器处理器319和几何处理器320可以访问定义数据库112,定义数据库112包括在标识特定环境(其中根据检测的对象和背景来定位用户)中使用的用于不同类型环境的规范。进而,在构建3D对象属性110时,视频处理器316、视频处理器318、传感器处理器319和几何处理器320可以标识环境中的其他用户或物品,从而标识与物品和其他用户交互的某个用户的运动。
[0062] 现在参考图4,图4是示出运动解释器系统的一个实施例的方块图。重要的是指出,运动解释器106中所示的多个组件可以结合到单个系统中或通过网络跨多个系统分布。在所述实例中,3D属性记录402和406包括“时间戳”、“x_位置”、“y_位置”和“z_位置”数据元素。将理解,3D属性记录402和406可以包括由图3的几何处理器320确定的其他或备选数据元素。例如,3D属性记录402可以包括标识用户的特定或相对位置、特定身体部位、特定运动的其他信息,或由3D对象检测器104内的图像捕获设备和传感器收集的其他数据。
[0063] 运动解释器106包括运动解释器控制器404,其中运动解释器控制器404可以包括一个或多个编程为执行运动解释的处理器。例如,运动解释器控制器404可以包括具有CellBE架构的处理器,其编程为有效地处理3D对象属性数据流,从所述3D对象属性数据流预测用户运动以及预测用户运动的类型和特征。此外,运动解释器控制器404可以包括其上运行软件的处理器,其中所述软件引导对3D对象属性流的处理,从所述3D对象属性数据流预测用户运动并预测用户运动的类型和特征。
[0064] 在处理3D对象属性流(如3D属性记录402和406的流)、预测与用户运动相关或表示用户运动的对象,以及预测用户运动的类型和特征中,运动解释器控制器404将3D对象属性映射到一个或多个运动定义,所述运动定义具有成流3D对象属性代表所映射的运动定义的百分比概率以及正确预测所预测运动的百分比概率。具体地说,运动解释器控制器404访问一个或多个用户运动的一个或多个运动定义并判定3D对象属性是否与一个或多个运动定义中定义的一个或多个运动的一个或多个特征相匹配。运动定义可以包括一个或多个类型的用户运动的映射3D模型。此外,运动定义可以定义标识运动特征的参数,所述参数包括但不限于活动范围、表面特征、形状、运动速度、运动力量、运动频率、运动深度以及温度范围。
[0065] 此外,在处理3D对象属性流时,运动解释器控制器404将3D对象属性映射到一个或多个与预测用户运动相关的物品定义,其中所述物品可以包括用户所佩戴的物品、用户所携带的物品、锻炼器材,以及锻炼环境中的其他物品。此外,物品定义可以被纳入运动定义中。
[0066] 重要的是指出,在解释3D对象属性流时,运动解释器控制器404对一个或多个运动处理系统针对特定聚焦区域标识的一个或多个3D对象属性流中的所有被跟踪对象执行聚合分析。在一个实例中,运动解释器控制器404聚合特定聚焦区域和特定传感器区域的3D对象属性流。在另一个实例中,运动解释器控制器404可以从与聚焦区域和传感器区域重叠的区域接收多个3D对象属性流,分析3D对象属性流的相似处、位置指示器以及方位指示器,并将3D对象属性流构建成区域的3D聚合表示。
[0067] 在一个实施例中,运动解释器控制器404可以将被跟踪对象的集合直接映射到单个运动定义。在另一个实施例中,运动解释器控制器404将多个聚合的被跟踪对象映射到多个运动定义。例如,用户可以在跑步的同时进行面部运动,其中在预测每个运动类型和运动特征时,运动解释器控制器404分析与跑步关联的运动的3D对象属性相关的面部运动的3D对象属性,并且访问运动定义以允许预测每种运动类型以及允许预测面部运动和跑步运动结合所指示的总体运动类型。此外,运动解释器控制器404可以聚合代表环境内的多人运动的被跟踪对象。
[0068] 具体地说,在预测要输出到操作监视系统的运动时,将指定定义数据库112内的运动定义和物品定义以使得运动解释器控制器404能够着重于和区分潜在地与用户的体能以及体能变化相关的运动。在所述实例中,定义数据库112包括总体运动定义412、环境特定的定义414、应用特定的定义416和用户特定的运动定义418。将理解,定义数据库112可以包括其他或备选类型的运动定义和物品定义。此外,重要的是指出,实例中所示的每组定义都可以位于单个数据库中或可以通过网络从多个数据库和数据存储系统来访问。进而,重要的是指出,位于特定系统处的定义数据库112中的每组定义都可以被调节或更新以响应安全和伤害防护标准、新学习的运动以及其他因素的变化。
[0069] 总体运动定义412包括常见运动的运动定义和用于确定常见运动特征的因素。例如,总体运动定义412可以包括指定用户跑步、走路、伸展或执行许多不同锻炼环境中其他典型运动的运动定义。此外,总体运动定义412为锻炼环境中常见的每种运动类型指定了用于确定活动范围、速度、力量级别以及其他运动特征的因素。
[0070] 环境特定的定义414包括运动定义、物品定义以及因素(用于确定特定于其中检测运动的上下文的运动)的组合。上下文的实例可以包括但不限于特定类型的锻炼环境、一天当中的时间、锻炼环境中用户的技能水平,以及影响其中解释运动的上下文的其他因素。当前的锻炼环境可以包括诸如体育馆或体育赛事之类的常规上下文,或包括更具体的上下文,如体育馆或特定运动中的一件特定器材,包括可以在一段时间内影响用户运动的场地或室内场地的大小和类型的规格。每个锻炼环境的物品定义可以指定器材、服装以及每个特定锻炼环境内常见的其他物品的类型。运动解释器控制器404可以通过访问标识用户位置的GPS指示器,通过检测图像数据内指示特定类型的锻炼环境的项,或通过从监视锻炼环境的其他系统接收额外数据来检测当前上下文。此外,用户的监视代理可以通过用户接口来指定当前的锻炼环境。
[0071] 应用特定的定义416包括特定于特定预定运动系统或其他启用运动的系统(预测的运动记录被输出到其)的运动定义和物品定义。在一个实例中,为了将预测的运动记录实时输出到预定运动系统(其处理预测的运动记录、生成预定运动,并将预定运动通知用户或监视代理),应用特定的定义416包括为与物品相关的运动类型指定的运动定义和物品定义,其有助于预定运动系统生成纠正运动(如设备的使用)的指令。在另一个实例中,为了将预测的运动记录输出到预定运动系统(其随时间跟踪预测的运动记录并使用户或监视代理能够定期监视用户在训练课程结束之后体能的统计变化),应用特定的定义416包括为与物品相关的运动类型指定的运动定义和物品定义,其有助于预定运动系统生成在下一次训练课程期间扩展能力的指令。
[0072] 用户特定的运动定义418通过指定用户身体类型的定义、先前检测的运动以及其他用户特征,包括特定于当前被监视用户或用户组的运动定义。在一个实例中,运动解释器控制器404通过将3D对象检测器104检测的用户属性与用户属性数据库进行比较来访问用户标识符。例如,运动解释器控制器404可以执行面部或语音识别。在另一个实例中,通过用户接口,用户或监视代理可以指定用户或用户组的标识。进而,用户可以携带标识设备,用户可以使所述标识设备被读取,或者所述标识设备可以包括从其检测用户身份的RFID或其他无线传输介质。将理解,运动解释器控制器404可以执行其他类型的身份访问并验证用户,以便根据为用户指定的运动定义来允许特定用户使用某种锻炼器材或进入锻炼环境。
[0073] 具体地说,如参考图7进一步所述的那样,预定运动系统可以建立用户的基线运动简档,所述简档包括诸如用户年龄、体重、身高、饮食、体质、受伤情况、疾病状况以及来自为特定用户建立的预测运动记录的映射之类的属性。预定运动系统可以使用基线运动简档和用户特定的运动定义418收集和解释的其他运动映射来更新用户特定的运动定义418。此外,预定运动系统预测可以在用户特定的运动定义418中更新的预定运动映射,以使运动解释器控制器404能够更有效地检测和预测用户的未来运动的类型和特征。
[0074] 进而,在可用的运动定义内,运动定义可以与3D聚焦区域内运动的特定区域或运动的特定深度关联。具体地说,可以将其中检测到运动的三维聚焦区域分为多个三维部分,其中在每个部分中所做的运动可以通过对运动定义的不同选择进行解释。例如,可以将聚焦区域的一个三维部分视为“活动区域”,其中将在所述区域内检测到的运动与和该特定活动区域关联的运动定义选择相比较。
[0075] 运动解释器控制器404可以以一个或多个运动记录(如运动记录420)的形式输出预测的运动输出108。运动记录420指示“用户标识符”、“运动类型”、“运动特征”、“运动概率%”、锻炼环境和时间范围。此外,运动记录420包括被检测运动的起始X、Y和Z轴属性以及结束X、Y和Z轴属性,指示在确定运动位置、运动方向、运动速度时映射的点,列为“起始_x_位置”、“结束_x_位置”、“起始_y_位置”、“结束_y_位置”、“起始_z_位置”、“结束_x_位置”。进而,运动记录420可以包括从传感器获取的其他信息,例如RFID数据、GPS坐标、皮肤表面特征,以及可以与特定运动记录关联的其他读出数据或包括在单独对象记录中的其他读出数据。
[0076] 在传递运动记录420时,运动解释器控制器404可以筛选出特定类型的运动记录。例如,运动解释器控制器404可以不传递预测的运动类型概率小于特定百分比的记录。
[0077] 现在参考图5,图5是示出其中可以实现本发明的计算系统的一个实施例的方块图。本发明的控制器和系统可以在各种系统中执行,包括各种与网络(如网络502)可通信地相连的计算系统(如计算机系统500)。
[0078] 计算机系统500包括用于在计算机系统500内传送信息的总线522或其他通信设备,以及连接到总线522以处理信息的至少一个处理设备(如处理器512)。总线522优选地包括通过桥和适配器连接并在计算机系统500内由多个总线控制器来控制的低等待时间和高等待时间路径。当实现为服务器时,计算机系统500可以包括多个旨在提高网络服务能力的处理器。其中多个处理器共享总线522、用于管理总线访问的附加控制器(未示出)并且可以实现定。
[0079] 处理器512可以是诸如IBM的PowerPCTM处理器之类的通用处理器,所述处理器在正常操作期间,在操作系统560、应用软件570、中间件(未示出)和其他代码的控制下处理数据,可以从诸如随机存取存储器(RAM)514之类的动态存储设备、诸如只读存储器(ROM)516之类的静态存储设备、诸如大容量存储设备518之类的数据存储设备,或其他数据存储介质来访问所述其他代码。在一个实例中,处理器512可以进一步实现CellBE架构以更有效地处理3D中的复杂数据流。将理解,处理器512可以实现其他类型的处理器架构。此外,重要的是指出,处理器512可以代表本地或通过网络而连接并被启用以有效地分散处理任务的多个处理器芯片。
[0080] 在一个实施例中,由处理器512执行的操作可以控制3D运动检测和根据锻炼环境内的捕获图像和数据进行预测、预测运动类型和特征、建立用户运动的基线简档、收集其他指示体能变化的用户运动、预测用户的预定运动、输出指示图11-14的流程图操作中所示的预定运动的信号,以及此处所述的其他操作。由处理器512执行的操作可以由操作系统560、应用软件570、中间件或其他代码来请求,或者本发明的步骤可以由包含执行所述步骤的硬连线逻辑的特定硬件组件执行,或者由编程的计算机组件和定制硬件组件的任意组合来执行。
[0081] 本发明可以被提供为在计算机或机器可读介质上包括的计算机程序产品,所述介质上存储有计算机可读程序的可执行指令,当在计算机系统500上执行时,所述指令将导致计算机系统500执行根据本发明的过程。此处使用的术语“计算机可读介质”或“机器可读介质”包括参与将指令提供给处理器512或计算机系统500的其他组件以便执行的任何介质。此类介质可以采取多种形式,包括但不限于诸如非易失性介质和易失性介质之类的存储型介质,以及传输介质。例如,非易失性介质的常见形式包括软盘硬盘、磁带或其他任何磁介质、光盘ROM(CD-ROM)或任何其他光介质、穿孔卡片或任何其他带有孔图案的物理介质、可编程ROM(PROM)、可擦写PROM(EPROM)、电EPROM(EEPROM)、闪存、任何其他存储芯片或模块,或者计算机系统500可以从其进行读取并适合存储指令的任何其他介质。在本实施例中,非易失性介质的实例是示为计算机系统500的内部组件的大容量存储设备518,但是将理解,大容量存储设备518也可以由外部设备提供。易失性介质包括诸如RAM 514之类的动态存储器。传输介质包括同轴电缆线或光纤,包括包含总线522的线。传输介质也可以采取声波或光波的形式,例如在射频或红外线数据通信时生成的那些声波或光波。
[0082] 此外,本发明可以作为计算机程序产品被下载或分发,其中计算机可读程序指令可以被从诸如服务器540之类的远程计算机传输到发出请求的计算机系统500,具体方式是载波或其他传播介质中包含的数据信号经过网络502传输到网络链路534(例如调制解调器或网络连接),然后传输到与总线522连接的接口532。在一个实例中,在处理器512包括多个处理器元件的情况下,则分布在所述处理器元件之间的处理任务(无论是本地还是通过网络)可以表示计算机程序产品,其中所述处理任务包括用于执行过程的程序指令或用于访问Java(Java是Sun Microsystems,Inc.的注册商标)对象的程序指令或用于执行过程的其他可执行程序。通信接口532提供了连接到网络链路534的双向数据通信,例如,所述网络链路534可以连接到局域网(LAN)、广域网(WAN),或直接连接到因特网服务提供商(ISP)。具体地说,网络链路534可以提供到诸如网络502之类的一个或多个网络的有线和/或无线网络通信。进而,尽管未示出,通信接口532可以包括诸如设备驱动程序之类的软件和诸如适配器之类的硬件,以及其他实现通信的控制器。例如,当实现为服务器时,计算机系统500可以包括多个可通过连接到输入/输出控制器的多个外围组件互连(PCI)总线桥访问的通信接口。以这种方式,计算机系统500允许通过多个单独的端口连接到多个客户端并且每个端口还支持到多个客户端的多个连接。
[0083] 网络链路534和网络502都使用承载数字数据流的电信号、电磁信号或光信号。通过各种网络的信号和网络链路534上的信号以及通过通信接口532(其向/从计算机系统500传送数字数据)的信号可以是传输信息的载波的形式。
[0084] 此外,计算机系统500可以包括多个协助输入和输出的外围组件。这些外围组件连接到多个控制器、适配器,以及诸如连接到多级总线522之一的输入/输出(I/O)接口526之类的扩展槽。例如,输入设备524可以包括麦克、视频捕获设备、人体扫描系统、键盘鼠标,或其他通过控制输入的I/O接口526在总线522上启用通信功能的输入外围设备。此外,通过控制输出的I/O接口526在总线522上启用通信功能的输出设备520包括一个或多个图形显示设备、音频扬声器以及可感知的输出接口,但是也可以包括其他输出接口。在本发明的备选实施例中,可以添加其他或备选的输入和输出外围组件。
[0085] 本领域的技术人员将理解,图5中示出的硬件可以有所变化。此外,本领域的技术人员将理解,所示实例并非旨在暗示有关本发明的架构限制。
[0086] 现在参考图6,图6示出了其中可以实现启用了运动的预定运动方法、系统和程序产品的分布式网络环境的一个实例的方块图。重要的是指出,分布式网络环境600是其中可以实现启用运动的预定运动方法、系统和程序产品的一种网络环境类型的示例;但是,可以在其他网络环境中实现启用运动的预定运动方法、系统和程序产品。此外,重要的是指出,分布式网络环境600内的系统分布是系统分布的示例;但是,可以实现网络环境内的其他系统分布。此外,重要的是指出,在所述实例中,所示系统是可以在实现运动处理系统和启用运动的预定运动系统时访问或请求访问的系统和服务类型的代表。可以理解,网络环境中的其他类型的系统和服务以及其他系统和服务组可以实现运动处理系统和启用运动的预定运动系统。
[0087] 如图所示,分布式网络环境600内的多个系统可以通过网络502可通信地连接,网络502是用于在各种可通信地连接的设备和计算机之间提供通信链路的介质。网络502可以包括永久连接(例如有线电缆或光缆)以及例如通过电话连接和无线传输连接建立的暂时连接。网络502可以表示基于分组交换及基于电话的网络、局域网及广域网、公用网络及专用网络。可以理解,图6表示用于支持运动处理系统和启用了运动的预定运动系统的分布式通信网络的一个实例;但是,可以实现其他网络配置和网络组件。
[0088] 图6中所示的网络环境可以实现多种类型的网络架构。在一个实例中,所述网络环境可以使用客户端/服务器架构来实现,其中请求数据或过程的计算系统称为客户端,而处理数据请求和过程的计算系统称为服务器。可以理解,在客户端/服务器架构内,客户端系统可以作为客户端和服务器两者执行,而服务器系统可以作为客户端和服务器两者执行。此外,可以理解,可以实现其他类型的网络架构和网络架构的组合。
[0089] 在所述实例中,分布式网络环境600包括具有图像捕获系统604的客户端系统602以及具有图像捕获系统608的客户端系统606。在一个实例中,图像捕获系统604和608是实现一个或多个图像捕获设备(例如图像捕获设备202和204)的立体图像设备,并可以包括一个或多个传感器(例如传感器204)。立体图像捕获系统604和608捕获图像和其他数据,并将图像和其他数据通过网络502以流的方式发送到其他系统以进行处理。此外,立体图像捕获系统604和608可以包括参考图3描述的用于跟踪对象属性的视频处理器(例如视频处理器316和视频处理器318)以及参考图3描述的用于生成3D对象属性流的几何处理器(例如几何处理器320)。
[0090] 在一个实例中,每个客户端系统602和客户端系统606可以使捕获的图像帧流到一个或多个对象检测服务。在一个实例中,运动处理服务提供方服务器620提供一种服务,所述服务包括用于处理成流图像和其他数据的对象检测器服务(例如3D对象检测器104)以及用于预测用户运动的类型和特征,预测捕获的图像表示预测用户运动类型的概率,以及控制将预测运动记录输出到一个或多个可通过网络502访问的其他系统的运动解释器服务(例如运动解释器106)。
[0091] 对于运动处理服务提供方服务器620,不同实体可以实现运动处理服务,并且不同实体可以访问运动处理服务。在一个实例中,登录客户端系统602或客户端系统606之一的用户可以订阅运动处理服务。在另一个实例中,图像捕获系统或请求运动处理的特定应用可以自动使捕获的图像和数据流到运动处理服务。
[0092] 在另一个实例中,每个客户端系统602和客户端系统606可以使捕获的帧流到3D对象检测器服务器624。3D对象检测器服务器624从图像捕获系统(例如图像捕获系统604或图像捕获系统608)接收捕获的图像和其他数据,并处理图像和其他数据以生成检测的运动的3D对象属性,以便输出到运动解释器系统(如运动解释服务器622或运动处理服务提供方服务器620)。在其他或备选实施例中,对象检测器服务可以在一个或多个其他系统内使用在这些系统内执行的一个或多个服务来实现。具体地说,在其他或备选实施例中,对象检测器服务可以在该处捕获图像和其他数据的客户端系统内实现。
[0093] 每个所述服务器系统可以跨一个或多个系统分布。此外,每个服务器系统可以跨具有3D图像处理能力的系统分布,包括具有编程为执行高效3D数据处理的CellBE架构的处理器。在一个实例中,诸如企业或服务提供商之类的实体可以实现单独的服务器系统以检测对象和解释运动,其中实现多个运动解释器服务器,每个运动解释器服务器处理不同类型的3D对象属性。
[0094] 运动处理服务提供方服务器620、运动解释器服务器622以及3D对象检测器服务器624可以在本地存储原始图像、3D运动属性、运动定义以及物品定义的定义数据库(如定义数据库112)。此外,运动处理服务提供方服务器620、运动解释器服务器622以及3D对象检测器服务器624可以访问有助于定义数据库112的运动数据库服务服务器626。
[0095] 此外,运动数据库服务服务器626包括运动学习控制器630。运动学习控制器630提示用户提供特定类型运动的样例,并提示用户指示预测的运动类型与用户的实际运动是否匹配。此外,运动学习控制器630收集其他信息,这些信息可使运动学习控制器630能够在运动数据库112中学习和维护运动和物品定义,当对象检测器服务器和运动解释器服务访问这些定义时,可提高生成3D对象属性的准确度以及这些服务从3D对象属性来预测用户运动类型和特征的准确度。
[0096] 进而,运动处理服务提供方服务器620、运动解释器服务器622、3D对象检测器服务器624或运动数据库服务服务器626可以访问用户的其他上下文信息,包括为特定用户指定的运动定义、为特定用户预测的先前运动、预测的用户运动预定以及来自客户端简档服务服务器640的其他用户数据。
[0097] 运动处理服务提供方服务器620和运动解释器服务器622通过网络502使预测的运动记录(例如运动记录420)流到启用了运动的预定运动系统。在实例实施例中,客户端系统606(如在锻炼环境内实现的计算机系统)包括启用了运动的预定运动系统610,使客户端系统606能够跟踪用户体能随时间的变化并预测预定用户运动。
[0098] 此外,在实例实施例中,客户端服务提供方服务器612包括启用了运动的预定运动系统614,系统614是启用了运动的服务,用于使客户端服务提供方服务器612能够为订阅用户跟踪预测的运动记录,跟踪用户体能随时间的变化以及预测用户的预定运动。具体地说,客户端服务提供方服务器612表示为一个或多个订阅客户端系统或订阅用户提供预定运动服务的服务器。
[0099] 现在参考图7,图7示出了用于预测用户运动的运动解释器系统的实施方式的一个实例的方块图,其中启用了运动的预定运动系统从所述用户运动来预测用户的预定运动。预定运动系统700从运动处理系统100接收预测运动记录,例如预测运动记录420。在所述实例中,预测运动记录420包括用于以下项的表项:用户标识符、运动类型、运动特征、正确预测运动类型和特征的百分比概率、检测的锻炼环境、标识的运动类型和特征的映射x、y和z坐标位置的变化,以及坐标位置的时间戳范围。可以理解,预测运动记录可以包括其他或备选类型的表项。
[0100] 在所述实施例中,初始地,预定运动系统700的接口控制器712将用户的预测运动记录和其他用户信息收集到基线运动数据库702中。在一个实例中,预定运动控制器710可以启用接口,通过所述接口输入用户简档信息或访问其他包含用户简档信息的数据存储系统。在一个实例中,用户简档记录718包括当前年龄、身高、体重、饮食、体质、受伤情况以及疾病状况。可以理解,预定运动控制器710访问的用户简档信息的用户简档记录可以包括来自用户简档记录718所示表项的其他或备选类型的用户简档信息。例如,用户简档信息还可以包括用户的锻炼目标或限制。
[0101] 在一个实例中,预定运动控制器710可以将预测运动记录和用户简档信息组合成基线运动数据库702内的用户的运动基线。在另一个实例中,预定运动控制器710可以将预测运动记录和用户简档信息组合成用户的不同运动基线,这些运动基线根据锻炼环境的类型、运动类型或其他准则进行分类。例如,基线运动数据库702可以包括室外跑步环境的第一基线表项以及室内举重环境的第二基线表项。此外,预定运动控制器710可以包括同一类型基线在不同时间段的多个表项,或者可以随时间更新基线表项。
[0102] 具体地说,用户的运动基线可以为每个身体部位或每类身体运动指定活动范围、最大速度、最大力量或其他运动特征。例如,用户的运动基线可以指定用户的颈部可以旋转或伸展的活动范围(以度为单位)。在另一个实例中,用户的运动基线可以指定在检测用户肌肉的任何颤动之前,用户能够举起的重量以及重复举起的次数。
[0103] 接下来,预定运动控制器710收集用户的后续预测运动记录,并可以将用户的后续预测运动记录存储在运动范围数据库704中。根据后续的预测运动记录,预定运动控制器710预测预定用户运动,并可以将预定运动存储在预定运动数据库706中。
[0104] 在一个实例中,预定用户运动表示从建立运动基线到接收到下一个预测运动记录的时间长度的时间标识符。预定用户运动还可以表示在检测到下一个特定类型的预测运动之前的预定时间长度,所述检测基于建立运动基线与下一个预测运动记录指示特定类型运动的变化之间的时间长度。例如,如果用户正在举重,并且用户第一举与用户第二举之间的时间是5秒,但是第一举与第三举之间的时间是15秒,则预定运动控制器710可以输出指示第三举在基线举之后15秒的预定运动,或者预定运动控制器710可以输出指示两举之间的时间增加并预测下一举在第一举之后30秒的预定运动。
[0105] 在另一个实例中,预定用户运动表示通过将后续预测运动记录与运动基线相比较而检测的运动特征的任何变化,其中运动特征的变化包括特定类型用户运动的活动范围、速度或力量的变化。此外,预定用户运动可以表示由运动变化是表示进步还是退步、受伤风险,或运动特征变化的其他属性所指示的运动特征变化。
[0106] 在再一个实例中,预定用户运动表示用户运动预定所沿的路径或者继续用户运动所沿的预定路径。例如,预定用户运动可以根据将用户的力量、年龄及受伤的运动基线与后续运动记录(预测指定用户胳膊的力量变化的运动)的比较来指定预测的用户胳膊的力量。此外,在一个实例中,预定运动控制器710可以通过将运动基线及后续预测运动记录与程序数据库707中指定的一个或多个程序相比较来预测预定运动。具体地说,程序数据库707中的每个程序都可以指定用于测量用户运动的变化类型的准则,可以指定用户运动变化的预期类型,可以指定表示进步的用户运动变化的类型,以及可以指定表示退步的用户运动变化的类型。此外,每个程序都包括基于用户信息(例如用户年龄、身高、受伤史)或针对基线运动表项收集的其他信息的不同规范。可以为某个特定用户或一组用户,为特定类型的锻炼环境或按照其他准则指定程序。
[0107] 在一个实例中,程序可以为先后执行或作为团体执行的一组用户指定预期运动。例如,程序可以为特定运动的团队运动员指定预测的运动,包括预定运动控制器710预测的预期运动、位置和计时。
[0108] 在所述实例中,根据预定运动,接口控制器712将预定运动转换成到一个或多个设备或系统的输出信号。具体地说,接口控制器712根据输出转换数据库708中由设备、预定运动类型或其他准则为输出指定的规则,将预定运动转换成输出信号。
[0109] 在所述实例中,接口控制器712可以根据预定运动生成到一个或多个输出设备(包括但不限于触觉反馈设备724、音频反馈设备726和显示反馈设备728)的表示进步或退步的输出信号,例如进步或退步指示器720。触觉反馈设备724为用户或监视代理提供可检测触觉输出,音频反馈设备726为用户或监视代理提供音频输出,并且显示反馈设备728为用户或监视代理提供可显示反馈。
[0110] 此外,在所述实例中,接口控制器712可以为一个或多个用户生成到一个或多个输出设备(包括但不限于运动机监视系统730、紧急调度系统732和监视代理系统734)的一个或多个预定运动记录(如预定运动记录722)的输出信号。在一个实例中,运动机监视系统730可以为用户提供调整运动以正确使用运动机的建议以满足运动机的目标,或者通过将预定运动记录722与正确的运动映射、目标映射或机器用法说明相比较来提供其他说明或建议。在一个实例中,紧急调度系统732根据接收到表示受伤的预定运动记录来自动调度请求以便为用户提供医疗援助。
[0111] 如将进一步描述的,监视代理系统734为监视代理提供预定运动记录722以及从预定运动记录解释的信息。在一个实例中,监视代理是医生、物理治疗专家、教练或其他医疗专业人员,并且医疗专业人员能够从监视代理系统734监视患者的预定运动。在另一个实例中,监视代理是用户授权监视用户进步或退步的公司。
[0112] 可以理解,在其他或备选实施例中,接口控制器712可以将预定运动和其他运动记录转换成一种或多种其他类型的输出信号。此外可以理解,在其他实施例中,接口控制器712可以控制将预定运动输出到其他或备选类型的输出设备或系统。
[0113] 重要的是指出,预定运动系统700可以控制一个或多个特定用户或用户组的预测运动记录的存储、预定运动的预测,以及预定运动记录和其他指示器的输出。例如,预定运动系统700可以监视先后锻炼或作为团队锻炼的多个用户的预测运动记录,并预测单独用户的预定运动以及作为整体的用户的预定运动。在一个实例中,预定运动控制器710可以从训练期间接收的预测运动记录,将每个用户或用户团队的基线运动表项收集在基线运动数据库702中。在比赛过程中,预定运动控制器710将在比赛过程中接收的后续预测运动记录与用户团队的基线运动进行比较,以确定被跟踪的每个用户和用户团队如何在训练过程中密切运动。例如,预定运动控制器710可以通过将在比赛过程中接收的后续预测运动记录与特定比赛的基线运动进行比较,来确定用户如何作为一个团队密切执行特定比赛。
[0114] 现在参考图8,图8示出了向监视代理系统提供预定运动报告的一个实例的方块图。在所述实例中,接口控制器712可使特定用户或监视代理从监视代理系统734为特定用户选择训练计划、基线记录集以及记录的记录范围,并鉴于训练计划接收指示特定用户的预定运动的进度报告。
[0115] 在所述实例中,进度接口800包括在标号802处示出的多个可选择的训练计划选项、在标号804处示出的多组可选择的运动基线表项,以及在标号806处示出的多个可选择的后续运动记录。通过定位光标810,特定用户或监视代理从选项中进行选择,然后选择可选择按钮808以触发预定运动控制器710生成特定用户的预定运动。
[0116] 在所述实例中,如输出到监视代理系统734的预定进度运动报告820内所示的,预定运动控制器710针对训练计划“膝部康复”生成“Jon Smith”的预定运动,所述预定运动的运动基线与“10/20/06”的“跑步”关联,并与“10/30/06”的“跑步”和“11/02/06”的“重量”的后续预测运动范围进行比较。在所述实例中,根据将选定运动基线表项与选定范围记录以及在选定训练计划中建立的标准相比较,预定运动控制器710指出膝部的动作范围增加了5度,而膝部的力量增加了4磅,其中度和磅测量单位是根据在选定训练计划中预定运动的标准检测的。此外,在所述实例中,预定运动控制器710指出预定运动包括在跑步路线中增加5分钟。
[0117] 现在参考图9,图9示出了从预定运动接收触觉反馈的可检测触觉反馈设备的一个实例的示意图。如图所示,用户可以佩戴护腕904和908,每个护腕都包括用于控制可检测触觉输出的控制器以及可被控制以产生可检测触觉输出的硬件。可检测触觉输出的实例可以包括可检测的压力脉冲、护腕表面的可检测变化,以及佩戴护腕904和908的用户可感觉到的其他调整。此外,可以对可检测触觉输出进行频率、强度、持续时间,以及佩戴护腕904和908的用户可感觉到的其他特征的调整。
[0118] 在所述实例中,护腕904包括无线传送器902,而护腕908包括无线传送器906。每个无线传送器902和无线传送器906都通过无线网络传输与触觉反馈控制器950进行通信。触觉反馈控制器950从预定运动系统700接收触觉信号并将信号传输到每个无线传送器902和906,以引导来自护腕904和护腕908的触觉输出。触觉反馈控制器950和预定运动系统700可以在计算机系统内通信或者通过例如网络502可通信地相连。
[0119] 有利地,通过控制将预定运动信号输出到用户所佩戴的护腕904和护腕908,只有此用户(并且其他用户都不会与此用户竞争)将检测到触觉输出信号。此外,有利地,通过控制将预定运动信号输出到用户所佩戴的护腕904和护腕908,用户将从预定运动系统700接收到实时反馈,因为根据当前用户运动预测的预定运动还被捕获并作为预测运动记录实时提供给预定运动系统700。
[0120] 具体地说,预定运动系统700将触觉信号传输到每个无线传送器902和906,以控制每个护腕周围的输出脉冲图形、位置、力量、持续时间、频率以及计时。在标号910处示出的实例中,预定运动系统700发送触觉信号以控制带912,其中每个触觉信号包括x和y坐标以及力。脉冲的图形和位置可以在宽度上有所变化(例如从y位置到x位置),也可以在方向上有所变化(例如围绕护腕顺时针旋转脉冲)。
[0121] 此外,每个无线传送器902和906可以包括传感器,以监视每个护腕904和908与重力比较的相对位置。参考在标号910处示出的实例,当佩戴带912的用户旋转其胳膊时,相对于重力而言,用于控制触觉输出的y位置将始终保持向上,而-y位置将保持向下,以便根据用户胳膊的当前位置绕着所示的轴重新定位触觉信号。
[0122] 在一个实例中,预定运动系统700可以将预定运动转换为唯一指示总体预定运动指示器(例如进步或退步)的触觉输出。在另一个实例中,预定运动系统700可以将预定运动转换为唯一指示运动类型、特征变化,以及具有预定运动记录的其他类型信息的触觉输出。此外,预定运动系统700可以将预定运动转换为引导用户运动的触觉输出。
[0123] 重要的是指出,护腕904和908是位于两个固定位置中的一种类型的触觉反馈设备的实例;在备选实施例中,可以实现其他类型的触觉反馈设备,可以实现一个或多个触觉设备,并且可以在一个或多个位置检测触觉设备。在另一个实例中,用户可以佩戴用作盲文设备或3D“触摸”设备的可检测触觉手套,手套的指尖具有可调整触觉的接口。
[0124] 此外重要的是指出,与触觉输出类似,预定运动系统700可以控制例如到用户佩戴的机的音频输出,所述输出以声音通知用户预定运动或以声音引导用户的运动。触觉反馈控制器和音频反馈控制器可以集成并被启用,以便根据在当前锻炼环境中检测到的噪音级别选择是将输出发送到音频设备还是可检测触觉设备。
[0125] 现在参考图10,图10示出了同时监视和预测多个用户的预定运动的预定运动系统的一个实例的方块图。在所述实例中,图像捕获系统1004(其可以包括一个或多个图像捕获设备和传感器)将捕获锻炼环境1010内用户1012和用户1014的运动的3D图像流。图像捕获系统1004将捕获的3D图像流传递到运动处理系统100。运动处理系统100在从捕获的3D图像流生成的3D对象属性内将用户1012的运动与用户1014的运动进行区分,并为每个用户1012和用户1014生成预测运动记录。在所述实例中,预定运动系统700接收每个用户1012和用户1014的预测运动记录,并且预定运动系统700预测每个用户1012和用户1014的预定运动。运动处理系统100和预定运动系统700可以在计算机系统内通信或者通过例如网络502可通信地连接。
[0126] 在所述实例中,预定运动系统700控制将用户1012的预定运动记录1032和用户1014的预定运动记录1034输出到监视代理系统734。在一个实例中,监视代理系统734可以实时跟踪体育馆或其他锻炼环境内用户的预定运动。通过在监视代理系统734处跟踪预定运动,监视代理系统734可以警告训练者或其他代理,以帮助其运动指示受伤风险或错误使用设备的特定用户。此外,从预定运动记录,监视代理系统734可以根据检测的运动和预定运动来跟踪锻炼环境1010内隐瞒或不知道受伤的用户。
[0127] 此外,在所述实例中,预定运动系统700控制将预定运动信号输出到用户1012或用户1014所佩戴的输出设备。例如,预定运动系统700控制将指示预定强度衰退的信号通过触觉反馈信号1030输出到用户1012。
[0128] 现在参考图11,图11示出了通过百分比概率预测运动类型和特征的运动处理系统的过程和程序的高级逻辑流程图。在所述实例中,过程在方块1100开始,此后继续到方块1102。方块1102示出通过立体图像设备捕获多个图像流,并通过传感器捕获聚焦区域内的传感器数据。接下来,方块1104示出跟踪图像和传感器数据内的对象。此后,方块1106示出生成被跟踪对象的3D对象属性流。此后,方块1108示出了聚合每个被跟踪对象的3D对象属性。具体地说,聚合的3D对象属性表示与至少一个被监视用户(代表至少一个被监视用户的运动)一起跟踪的一个或多个对象。接下来,方块1110示出了通过百分比概率,根据与聚合的3D对象属性流匹配的一个或多个运动定义中的累积3D对象属性流,预测特定用户的至少一种类型的运动以及此运动的特征。此后,方块1112示出将具有特征、百分比概率以及其他元数据(例如用户标识符)、锻炼环境、被跟踪位置的每种预测类型的运动传输到预定运动系统,然后过程结束。
[0129] 现在参考图12,图12示出了通过跟踪图像流内的对象和其他传感数据并生成代表运动的被跟踪对象的3D对象属性来检测运动的对象检测控制器的过程和程序的高级逻辑流程图。如图所示,过程在方块1200开始,此后继续到方块1202。方块1202示出对象检测器系统通过立体图像设备接收多个图像流以及通过一个或多个传感器和图像捕获设备接收读出数据。接下来,方块1204示出对象检测器系统将元数据附加到图像帧和读出数据,然后过程转到方块1206。在一个实例中,元数据包括但不限于诸如照相机标识符、帧编号、时间戳以及像素计数之类的数据。
[0130] 方块1206示出对象检测器系统处理每个图像流和读出数据以检测和跟踪对象,其中对象可以包括物理对象以及代表运动的用户运动。接下来,方块1208示出从每个图像流生成具有元数据的被跟踪对象属性流。此后,方块1210示出组合被跟踪对象属性以生成具有元数据的3D对象属性。接下来,方块1212示出将3D被跟踪对象属性传输到运动解释器系统,然后过程结束。
[0131] 现在参考图13,图13示出了从跟踪的3D对象属性预测运动的过程和程序的高级逻辑流程图。在所述实例中,过程在方块1300开始,此后继续到方块1302。方块1302示出判定运动解释器系统是否接收到3D对象属性。当运动解释器系统接收到3D对象属性后,过程转到方块1304。方块1304示出访问一系列适用的运动定义,然后过程转到方块1306。
[0132] 方块1306示出运动解释器系统将被跟踪对象的3D对象属性与适用的运动定义相比较。接下来,方块1308示出运动解释器系统检测与一个或多个3D对象属性集最匹配的至少一个运动定义。此后,方块1310示出计算3D对象属性与预测的运动定义匹配的百分比概率。接下来,方块1312示出预测由一个或多个匹配运动定义指定的运动类型的至少一个特征。此后,方块1314示出根据任何预测的运动类型、预测运动正确的百分比概率、运动特征以及其他读出元数据来生成至少一个预测运动记录。接下来,方块1316示出将预测运动记录传输到一个或多个预定运动系统,然后过程结束。
[0133] 现在参考图14,图14示出了预测用户预定运动的预定运动系统的过程和程序的高级逻辑流程图。如图所示,过程在方块1400开始,此后继续到方块1402。方块1402示出在基线运动数据库中为用户建立用户简档信息。在一个实例中,预定运动系统可以提示用户或监视代理提供用户简档信息。在另一个实例中,预定运动系统可以从其他获得用户简档信息的设备和系统访问用户简档信息。接下来,方块1406示出判定预定运动系统是否接收到用户的预测运动记录。如果预定运动系统接收到用户的预测运动记录,则过程转到方块1406。
[0134] 方块1406示出将预测运动记录存储在基线运动数据库中。接下来,方块1408示出判定预定运动系统是否接收到用户的后续预测运动记录。当预定运动系统接收到用户的后续预测运动记录时,过程转到方块1410。
[0135] 方块1410示出通过将用户的后续运动记录与基线简档及运动记录进行比较来预测用户的预定运动并检测变化。此外,预定运动系统可以将后续运动记录和基线简档及运动记录与指定用户或锻炼环境的模型运动的程序进行比较。接下来,方块1412示出将预定运动转换成用于设备或其他系统的至少一个输出信号。此后,方块1414示出控制将输出信号输出到选定设备和系统,然后过程结束。
[0136] 虽然参考优选实施例详细示出和描述了本发明,但是本领域的技术人员将理解,可以在其中作出各种形式和详细的更改而不偏离本发明的精神和范围。
QQ群二维码
意见反馈