掌桥专利:专业的专利平台
掌桥专利
首页

使用自追踪控制器的人体姿势估计

文献发布时间:2024-04-18 19:59:31


使用自追踪控制器的人体姿势估计

技术领域

本公开总体上涉及人机交互技术,尤其涉及追踪用户身体姿势。

背景技术

人工现实是在呈现给用户前已经以某种方式进行了调整的现实形式,该人工现实例如可以包括虚拟现实(virtual reality,VR)、增强现实(augmented reality,AR)、混合现实(mixed reality,MR)、混合现实(hybrid reality)、或它们的某种组合和/或衍生物。人工现实内容可以包括完全生成的内容、或与采集到的内容(例如,真实世界照片)相结合的生成的内容。人工现实内容可以包括视频、音频、触觉反馈、或它们的某种组合,并且以上任何一种均可以在单个通道或多个通道中呈现(例如,给观看者带来三维效果的立体视频)。人工现实可以与应用程序、产品、附件、服务、或它们的某种组合相关联,这些应用程序、产品、附件、服务、或它们的某种组合例如用于在人工现实中创建内容,和/或在人工现实中使用(例如,在人工现实中执行活动)。提供人工现实内容的人工现实系统可以在各种平台上实现,这些平台包括连接到主控计算机系统的头戴式显示器(head-mounteddisplay,HMD)、独立HMD、移动设备或计算系统、或能够向一位或多位观看者提供人工现实内容的任何其它硬件平台。

现有的AR/VR系统可以基于由HMD摄像头采集的图像来估计用户的身体姿势。然而,这种方法有一定的局限性。例如,HMD上的摄像头无法看到用户身体的下半部(例如,腿、脚、膝盖),从而导致所估计的用户的身体姿势不完整。在多个用户期望看到彼此的全身化身或全身姿势的情况下,这可能会对用户体验产生负面影响。

本公开试图至少部分地解决上述缺点和劣势中的任一者或全部。

发明内容

根据本公开的第一方面,提供了一种方法,该方法包括:通过计算系统:基于由用户所握持的控制器采集的传感器数据,来确定该控制器的位姿;基于以下项来确定与用户的身体的第一部位相关联的第一组关键点的位置:(1)由该控制器的一个或多个摄像头采集的一个或多个第一图像,和(2)该控制器的位姿;基于由用户所佩戴的头戴式设备(headset)采集的传感器数据,来确定该头戴式设备的位姿;基于以下项确定与用户的身体的第二部位相关联的第二组关键点的位置:(1)由该头戴式设备的一个或多个摄像头采集的一个或多个第二图像,和(2)该头戴式设备的位姿;以及至少基于第一组关键点的位置和第二组关键点的位置,来确定用户的全身姿势。

在一些实施例中,控制器的位姿可以包括该控制器在三维空间内的位置、轴线方向和旋转角度,并且其中,头戴式设备的位姿可以包括该头戴式设备在三维空间内的位置和两个轴线方向。

在一些实施例中,由控制器采集的传感器数据可以包括惯性测量单元(inertialmeasurement unit,IMU)数据,并且其中,控制器的位姿可以是使用用于自定位的即时定位与地图构建(simultaneous localization and mapping,SLAM)确定的。

在一些实施例中,该方法还可以包括:基于用户的身体的第三部位与控制器的位姿之间的直接关联,来确定用户的身体的第三部位的第三组关键点。

在一些实施例中,该方法还可以包括:基于用户的身体的第三部位与头戴式设备的位姿之间的直接关联,来确定用户的身体的第三部位的第三组关键点。

在一些实施例中,该方法还可以包括:基于由第二控制器的一个或多个摄像头采集的一个或多个第三图像,来确定与用户的身体的第一部位相关联的第三组关键点的位置,其中,该一个或多个第三图像从与控制器的一个或多个摄像头采集一个或多个第一图像不同的视角采集用户的身体的第一部位。

在一些实施例中,该方法还可以包括:聚合第一组关键点、第二组关键点和第三组关键点;以及将聚合后的第一组关键点、第二组关键点和第三组关键点馈送到逆向运动学优化器中,其中,用户的全身姿势可以是使用该逆向运动学优化器确定的。

在一些实施例中,逆向运动学优化器可以包括一个或多个约束,该一个或多个约束是基于肌肉-骨骼模型确定的,并且其中,用户的全身姿势可以是根据该一个或多个约束和该肌肉-骨骼模型确定的。

在一些实施例中,该方法还可以包括:将与用户的身体的一个或多个部位相关联的、先前确定的关键点馈送到时间神经网络(temporal neural network,TNN),其中,所述先前确定的关键点可以是基于用户的身体的该一个或多个部位的先前图像确定的;以及通过时间神经网络(TNN)基于与用户的身体的该一个或多个部位相关联的先前确定的关键点,来确定与用户的身体的该一个或多个部位相关联的一个或多个预测的关键点,其中,该时间神经网络可以是使用历史数据训练的。

在一些实施例中,用户的全身姿势可以是基于与用户的身体的一个或多个部位相关联的一个或多个预测的关键点确定的。

在一些实施例中,一个或多个第一图像可以是在控制器内本地处理的,该方法还可以包括:防止该一个或多个第一图像被传输到控制器外部;以及将第一组关键点传输到头戴式设备,并且其中,用户的全身姿势可以是在该头戴式设备内本地确定的。

在一些实施例中,该方法还可以包括:将一个或多个第一图像传输到头戴式设备,其中,该一个或多个第一图像可以是由该头戴式设备的一个或多个计算单元本地处理的,并且其中,第一组关键点可以是在该头戴式设备内本地确定的;以及防止该一个或多个第一图像和该第一组关键点被传输到该头戴式设备外部。

在一些实施例中,用户的全身姿势可以包括用户的身体的第一部位和用户的身体的第二部位,并且其中,用户的身体的第一部位落在头戴式设备的一个或多个摄像头的视场外部。

在一些实施例中,用户的全身姿势至少可以包括:使用与头戴式设备相关联的惯性测量单元确定的头部姿势;基于控制器的位姿确定的手部姿势;基于由控制器的一个或多个摄像头采集的一个或多个第一图像确定的下半身姿势;以及基于由头戴式设备的一个或多个摄像头采集的一个或多个第二图像确定的上半身姿势。

根据本公开的第二方面,提供了一种或多种计算机可读非暂态存储介质,该一种或多种计算机可读非暂态存储介质包含软件,所述软件在被执行时能够操作以:基于由用户所握持的控制器采集的传感器数据,来确定该控制器的位姿;基于以下项来确定与用户的身体的第一部位相关联的第一组关键点的位置:(1)由该控制器的一个或多个摄像头采集的一个或多个第一图像,和(2)该控制器的位姿;基于由用户所佩戴的头戴式设备采集的传感器数据,来确定该头戴式设备的位姿;基于以下项来确定与用户的身体的第二部位相关联的第二组关键点的位置:(1)由该头戴式设备的一个或多个摄像头采集的一个或多个第二图像,和(2)该头戴式设备的位姿;以及至少基于第一组关键点的位置和第二组关键点的位置,来确定用户的全身姿势。

在一些实施例中,控制器的位姿可以包括该控制器在三维空间内的位置、轴线方向和空间角度,并且其中,头戴式设备的位姿可以包括该头戴式设备在三维空间内的位置和两个轴线方向。

在一些实施例中,由控制器采集的传感器数据可以包括惯性测量单元(IMU)数据,并且其中,控制器的位姿可以是使用用于自定位的即时定位与地图构建(SLAM)确定的。

根据本公开的第三方面,提供了一种系统,该系统包括:一个或多个非暂态计算机可读存储介质,该一个或多个非暂态计算机可读存储介质包含指令;以及一个或多个处理器,该一个或多个处理器耦接到所述存储介质,并且能够操作以执行所述指令以:基于由用户所握持的控制器采集的传感器数据,来确定该控制器的位姿;基于以下项来确定与用户的身体的第一部位相关联的第一组关键点的位置:(1)由该控制器的一个或多个摄像头采集的一个或多个第一图像,和(2)该控制器的位姿;基于由用户所佩戴的头戴式设备采集的传感器数据,来确定该头戴式设备的位姿;基于以下项来确定与用户的身体的第二部位相关联的第二组关键点的位置:(1)由该头戴式设备的一个或多个摄像头采集的一个或多个第二图像,和(2)该头戴式设备的位姿;以及至少基于第一组关键点的位置和第二组关键点的位置,来确定用户的全身姿势。

在一些实施例中,控制器的位姿可以包括该控制器在三维空间内的位置、轴线方向和空间角度,并且其中,头戴式设备的位姿可以包括该头戴式设备在三维空间内的位置和两个轴线方向。

在一些实施例中,由控制器采集的传感器数据可以包括惯性测量单元(IMU)数据,并且其中,该控制器的位姿可以是基于使用用于自定位的即时定位与地图构建(SLAM)确定的。

本文所描述的各特定实施例涉及这样的系统和方法:所述系统和方法使用与一个或多个控制器集成的摄像头以估计用户的全身姿势,该全身姿势包括对于头戴式显示器(HMD)摄像头不可见的身体部位。在特定实施例中,控制器可以是自追踪控制器,该自追踪控制器具有与该控制器集成的一个或多个集成摄像头(也称为内向外(inside-out)摄像头)和一个或多个集成IMU。自追踪控制器可以使用其内向外摄像头和IMU来执行用于自定位的即时定位与地图构建(SLAM)。由控制器摄像头采集的图像可以用于估计用户的身体姿势,特别是用于估计对于HMD摄像头不可见的身体部位(例如,腿、脚、膝盖等)。在特定实施例中,该控件可以不需要是自追踪的。而是,可以使用HMD摄像头或传感器来确定控制器在3D空间中的位置或定位。

作为示例而非限制,该系统可以使用HMD摄像头来追踪对所述HMD摄像头可见的用户身体部位(例如,用户的头部、肩部、手臂、手、手指等),以确定与这些可见的身体部位相关联的第一组关键点。同时,控制器可以使用其内向外摄像头来追踪对于HMD摄像头不可见的用户身体部位,以确定与用户的这些身体部位(例如,下半身部位,例如膝盖等)相关联的第二组关键点。每个控制器摄像头可以从其自身的视角来采集用户身体部位的图像,并且这些图像可以用于确定这些身体部位的落入该控制器摄像头的视场(field of view,FOV)内的对应关键点。控制器可以基于控制器摄像头的3D位置、摄像头的内部/外部参数以及由摄像头采集的图像,来确定与膝盖、腿、脚等相关的关键点的3D定位。各个控制器可以从不同的视点采集身体姿势信息,并且多个控制器可以彼此协作和协调以确定对用户身体关键点的更准确的估计。每个控制器通过其自身可能具有对用户身体姿势的不完整估计,但是多个控制器可以共同确定对关键点的准确估计。该系统可以将由每个控制器的控制器摄像头确定的关键点(例如,针对下半身)与基于HMD摄像头而确定的关键点(例如,针对上半身)进行组合,并且将这些关键点馈送到逆向运动学优化器中,以确定对用户全身的估计。

为了保护用户的隐私,可以在该控制器内本地处理由每个控制器摄像头采集的图像,并且控制器可以仅向负责基于所确定的关键点来估计用户的身体姿势的计算单元(例如,在头戴式设备中)发送经处理的信息(例如关键点的3D位置)。在一些实施例中,由控制器采集的图像和控制器的位姿信息可以被发送到头戴式设备以进行处理,但是将被严格地本地保存在头戴式设备上且不会被发送给任何远程计算机。

为了基于关键点估计用户的身体姿势,该系统可以使用肌肉-骨骼模型来拟合所有关键点以确定最可能的用户身体姿势。例如,即使用户身体的一部位(例如,手臂)对于任何摄像头都不是完全可见的,该系统也可以使用肌肉-骨骼模型、基于整体拟合结果来估计该身体部位的姿势。肌肉-骨骼模型可以施加一些约束(例如,前臂只能向前弯曲,而不能向后弯曲),并且该系统可以对观察到的关键点使用这些约束以估计全身姿势。所有这些约束都可以应用于逆向运动学优化器,以计算出与这些约束一致的最可能的全身姿势。在用户的身体姿势被确定之后,该系统可以对照基于与人体有关的知识而确定的多个规则来检查所估计的姿势,以确保所估计的姿势不违反人体的自然约束。

在特定实施例中,该系统可以使用机器学习(ML)模型、基于来自先前帧的关键点来估计与用户的对于任何摄像头不直接可见的身体部位相关联的关键点。例如,该系统可以利用基于先前帧(例如,在随时间滑动的时间窗口内)确定的用户身体的关键点来训练时间神经网络(TNN),以预测用户身体的当前关键点,即使用户身体的某些部位当前对于任何摄像头不可见。之后,该系统可以将所估计的用户身体的关键点馈送到逆向运动学优化器,以(基于肌肉-骨骼模型约束)确定用户的全身姿势。

将理解的是,本文描述为适合于结合到本公开的一个或多个方面或实施例中的任何特征旨在可推广到本公开的任何和所有的方面和实施例。本领域技术人员可以根据本公开的说明书、权利要求书和附图理解本公开的其它方面。上述总体描述和以下详细描述仅是示例性和说明性的,且不对权利要求书进行限制。

本文所公开的各实施例仅是示例,并且本公开的范围不限于这些实施例。特定实施例可以包括以上所公开的各实施例中的部件、元件、特征、功能、操作或步骤中的全部、一些,或者可以不包括以上所公开的各实施例中的部件、元件、特征、功能、操作或步骤。根据本发明的各实施例在所附的针对方法、存储介质、系统和计算机程序产品的权利要求中特别公开,其中,在一个权利要求类别(例如,方法)中所提到的任何特征也可以在另一个权利要求类别(例如,系统)中主张。所附权利要求书中的从属关系或回引仅出于形式原因而选择。然而,由于有意引用任何先前的权利要求(特别是多项从属关系)而产生的任何主题也可以被主张,使得多个权利要求及其多个特征的任何组合无论在所附权利要求书中所选择的从属关系如何、都被公开且可以被主张。可主张的主题不仅包括所附权利要求书中所陈述的多个特征的多个组合,还包括权利要求书中的多个特征的任何其它组合,其中,在权利要求书中所提到的每个特征可以与权利要求书中的任何其它特征或其它特征的组合进行组合。此外,本文所描述或所描绘的任何实施例和任何特征可以在单独的权利要求中被主张,和/或在与本文所描述或所描绘的任何实施例或任何特征的任何组合中或在与所附权利要求书中的任何特征的任何组合中被主张。

附图说明

图1A示出了根据本公开一个或多个实施例的具有自追踪控制器的示例人工现实系统。

图1B示出了根据本公开一个或多个实施例的具有自追踪控制器的示例增强现实系统。

图2A示出了根据本公开一个或多个实施例的使用头戴式设备传感器和控制器传感器来追踪用户身体姿势的示例方案。

图2B示出了根据本公开一个或多个实施例的使用控制器位姿和头戴式设备位姿来追踪用户的上半身部位的示例过程。

图2C示出了根据本公开一个或多个实施例的使用控制器摄像头来追踪用户的下半身部位的示例过程。

图2D示出了根据本公开一个或多个实施例的使用头戴式设备传感器和控制器传感器来追踪用户全身的示例过程。

图3A示出了根据本公开一个或多个实施例的使用自追踪控制器来执行即时定位与地图构建(SLAM)的示例过程。

图3B示出了根据本公开一个或多个实施例的使用头戴式设备传感器来确定控制器位置和定向的示例过程。

图3C示出了根据本公开一个或多个实施例的使用控制器摄像头数据来确定与用户的身体部位相关联的关键点的示例过程。

图4示出了根据本公开一个或多个实施例的人体的示例肌肉-骨骼模型。

图5示出了根据本公开一个或多个实施例的估计用户的全身姿势的示例过程。

图6示出了根据本公开一个或多个实施例的用于数据安全和用户隐私保护的示例方案。

图7示出了根据本公开一个或多个实施例的使用自追踪控制器来确定用户的全身姿势的示例方法。

图8示出了根据本公开一个或多个实施例的示例计算机系统。

具体实施方式

现有的AR/VR系统可以基于由HMD摄像头采集的图像来估计用户的身体姿势。然而,这种方法有一定的局限性。例如,HMD上的摄像头无法看到用户身体的下半部(例如,腿、脚、膝盖),从而导致所估计的用户的身体姿势不完整。在多个用户期望看到彼此的全身化身或全身姿势的情况下,这可能会对用户体验产生负面影响。

为了解决这个问题,系统的特定实施例可以使用一个或多个带有摄像头的自追踪控制器来采集对于HMD摄像头不可见的身体部位的图像,以估计用户的全身姿势。自追踪控制器可以执行用于自定位的即时定位与地图构建(SLAM)。由控制器摄像头采集的图像可以用于身体姿势估计,特别是用于确定对于HMD摄像头不可见的身体部位(例如,腿、脚、膝盖等)的姿势。例如,控制器可以基于以下项来确定与膝盖、腿、脚等相关的关键点的3D定位:(1)控制器摄像头的3D位置和姿态(例如,面向方向),(2)该摄像头的内部/外部参数(例如,视场(FOV)),以及(3)由该摄像头采集的图像。各个控制器可以从不同的视点采集身体姿势信息,并且多个控制器可以彼此协作和协调以确定对用户身体关键点的更准确的估计。每个控制器通过其自身可能具有用户身体的不完整信息,但是多个控制器可以共同确定对关键点的准确估计。该系统可以将基于所有控制器的控制器摄像头数据(例如,针对下半身)而确定的关键点与基于HMD摄像头数据(例如,针对上半身)而确定的关键点进行组合,并且将这些关键点馈送到逆向运动学优化器中,以确定对用户全身的估计。

通过使用来自HMD摄像头和控制器摄像头这两项的图像数据,系统的特定实施例可以更准确地估计全身姿势,即使用户身体的某些部位对于HMD摄像头或控制器摄像头是不可见的。通过共同使用多个控制器,即使每个控制器只能感知用户身体的一部位,系统的特定实施例也可以准确地估计用户的全身姿势,因为该多个控制器在共同工作时可以提供关于用户身体姿势的更完整的信息。通过将图像数据限制到本地系统(例如,在控制器、头戴式设备或本地计算机内处理),该系统的特定实施例可以为用户的隐私提供强有力的保护。通过提供全身姿势估计,该系统的特定实施例可以为用户与人工现实系统交互、和/或多个用户彼此交互提供更好的用户体验(例如,看到用户化身的全身姿势)。

图1A示出了具有自追踪控制器106的示例虚拟现实系统100A。在特定实施例中,虚拟现实系统100A可以包括头部穿戴的头戴式设备104、控制器106和计算系统108。用户102可以佩戴头部穿戴的头戴式设备104,该头戴式设备可以向用户102显示视觉人工现实内容。头戴式设备104可以包括音频设备,该音频设备可以向用户102提供音频人工现实内容。在特定实施例中,头戴式设备104可以包括一个或多个摄像头,该一个或多个摄像头可以采集环境的图像和视频。例如,头戴式设备104可以包括用于采集用户用户102前方图像的前置摄像头105A和105B,并且可以包括用于采集用户身体的图像的一个或多个下置摄像头(例如,105C)。头戴式设备104可以包括眼动追踪系统,该眼动追踪系统用于确定用户102的辐辏距离(vergence distance)。头戴式设备104可以被称为头戴式显示器(HMD)。控制器106可以包括触控板和一个或多个按钮。控制器106可以接收来自用户102的输入,并将所述输入转发到计算系统108。控制器106还可以向用户102提供触觉反馈。

在特定实施例中,控制器106可以是自追踪控制器。术语“自追踪”控制器可以指可使用其集成的传感器和/或摄像头来确定其自身在3D空间内(相对于头戴式设备或环境中的其它对象)的位置或定位的控制器。自追踪控制器可以包括一个或多个传感器(例如,IMU、加速度传感器、空间角度传感器、姿态传感器)和摄像头,并且这些传感器和摄像头的数据可以用于执行自定位。例如,自追踪控制器106可以包括可用于追踪用户的身体姿势和/或运动的一个或多个传感器和摄像头,例如包括但不限于:RGB摄像头、热像仪、红外摄像头、雷达、激光雷达(LiDAR)、结构光传感器、惯性测量单元(IMU)、陀螺仪传感器、加速度计、空间角度传感器、姿态传感器等。在特定实施例中,自追踪控制器106可以包括用于采集周围环境的图像的一个或多个摄像头(例如,摄像头107A、107B和107C)。例如,控制器摄像头107A、107B和107C可以用于追踪对于头戴式设备摄像头(例如,105A、105B和105C)可见或不可见的用户身体部位,以确定用户102的全身姿势。计算系统108可以通过有线或无线通信连接而连接到头戴式设备104和控制器106。计算系统108可以控制头戴式设备104和控制器106向用户102提供人工现实内容,并且可以接收来自用户102的输入。计算系统108可以是独立的主控计算机系统、与头戴式设备104集成在一起的板载计算机系统、移动设备、或能够向用户102提供人工现实内容并接收来自用户102的输入的任何其它硬件平台。

图1B示出了具有自追踪控制器126的示例增强现实系统100B。增强现实系统100B可以包括头戴式显示器(HMD)110(例如,AR眼镜)和计算系统120等,该HMD包括框架112、一个或多个显示器114A和114B。显示器114可以是透明的或半透明的,从而允许佩戴着HMD110的用户透视显示器114A和114B以看见真实世界,并且同时,这些显示器可以向用户显示视觉人工现实内容。HMD 110可以包括音频设备,该音频设备可以向用户提供音频人工现实内容。在特定实施例中,HMD 110可以包括可采集周围环境的图像和视频的一个或多个摄像头(例如,117A和117B)。HMD 110可以包括眼动追踪系统,该眼动追踪系统用于追踪佩戴着HMD 110的用户的辐辏运动。增强现实系统100B还可以包括控制器126,该控制器具有触控板和一个或多个按钮。控制器126可以接收来自用户的输入,并将所述输入转发到计算系统120。控制器126可以向用户提供触觉反馈。

在特定实施例中,控制器126可以是包括一个或多个传感器的自追踪控制器,该一个或多个传感器可以用于追踪用户的身体姿势和/或运动。各传感器可以是或包括例如但不限于:RGB摄像头、热像仪、红外摄像头、雷达、LiDAR、结构光传感器、惯性测量单元(IMU)、陀螺仪传感器、加速度计、空间角度传感器、姿态传感器等。在特定实施例中,控制器126可以包括用于采集周围环境中的图像的一个或多个摄像头(例如,127A、127B、127C)。例如,控制器摄像头(127A、127B、127C)可以用于追踪对于HMD摄像头117A和117B不可见的用户身体部位。计算系统120可以通过有线或无线连接而连接到HMD 110和控制器126。计算系统120可以控制HMD 110和控制器126向用户提供增强现实内容并接收来自用户的输入。计算系统120可以是独立的主控计算机系统、与HMD 110集成在一起的板载计算机系统、移动设备、或能够向用户提供人工现实内容并接收来自用户的输入的任何其它硬件平台。

图2A示出了使用头戴式设备传感器和控制器传感器来追踪用户身体姿势的示例方案200A。在特定实施例中,头戴式设备210可以包括一个或多个传感器(例如,IMU)和摄像头(例如,211、213)。这些摄像头(例如,211、213)可以具有不同的视场(FOV)。例如,摄像头211可以是前置的、具有FOV 212,而摄像头213可以是下置的、具有FOV 214。摄像头211可以用于追踪周围环境中在用户201前方的对象。摄像头213可以用于追踪靠近用户身体的对象和用户的上半身部位(例如,用户的在该用户身体前方的手臂和/或手、用户的在该用户身体前方的脚和腿、用户的上半身、控制器220等)。在特定实施例中,每个控制器(例如,220、230)可以包括具有不同FOV的一个或多个摄像头(例如,221、223、225)。根据控制器的3D位置和姿态(例如,方向),多个控制器摄像头的FOV可以面向不同的方向,并且多个控制器摄像头可以用于追踪用户的不同身体部位。例如,控制器220可以具有位于手柄部分的底部的摄像头221,该摄像头具有(相对于控制器自身)面向下方的FOV 222。摄像头221可以用于追踪用户身体前方的对象和用户的下半身部位(例如,用户的在该用户身体前方的腿和脚)。作为另一示例,具有FOV 224的摄像头223可以用于追踪用户下半身部位前方的对象。具有FOV 226的摄像头225可以用于追踪用户上半身部位前方的对象。类似地,控制器230可以具有摄像头231、233和235,摄像头231、233和235分别具有FOV 232、234和236。根据该控制器的3D位置和姿势,这些摄像头的FOV可以面向不同的方向,并且这些摄像头可以用于追踪用户身体的不同部位。例如,摄像头231可以用于追踪用户的向后延伸的腿和脚。摄像头233可以用于追踪用户的落入该摄像头的FOV 234内的上半身部位(例如,手臂或肩部)。摄像头235可以用于追踪用户的在向前方向上延伸的腿和脚。在特定实施例中,控制器220和230可以使用它们的摄像头来从不同视角采集用户的各身体部位的图像,以追踪用户201的这些身体部位。这些图像可以在相应的控制器上本地处理,或者可以在头戴式设备210或本地计算机208上处理,并且这些图像将被严格地限制以免被传输到本地计算系统外部。

值得注意的是,控制器220的摄像头221、223和225以及控制器230的摄像头231、233和235用于举例,并且控制器摄像头不限于此。例如,控制器可以具有安装在该控制器上的任何合适位置处的任何合适数量的摄像头。控制器可以以任何合适的方式并以任何合适的位置和姿态被用户201握持或附接到用户201。根据摄像头定向和控制器位置,多个控制器摄像头可以具有面向不同方向的分开的FOV。根据摄像头定向和控制器位置,同一或不同控制器的一个或多个控制器摄像头可以具有重叠的FOV。控制器摄像头可以从特定视角采集用户的身体部位,并且同一控制器或不同控制器的不同控制器摄像头可以从不同视角采集用户的同一身体部位、或者可以采集用户的不同身体部位。在特定实施例中,多个控制器中的一控制器的多个摄像头FOV可以共同覆盖周围环境的360度。

图2B示出了使用控制器位姿和头戴式设备位姿来追踪用户的上半身部位的示例过程200B。在特定实施例中,头戴式设备210可以包括IMU和摄像头(例如,211和213),这些IMU和摄像头可以用于执行用于自定位的即时定位与地图构建(SLAM)。因此,头戴式设备210可以用于准确地确定用户201的头部位置(例如,如关键点241所示)(考虑头戴式设备210与用户201的头部的相对位置)。在特定实施例中,控制器220和230可以各自包括可用于执行用于自定位的SLAM的IMU、摄像头和任何合适的传感器。因此,控制器220和230可以准确地确定用户的手位置(例如,如关键点242A和242B所示)。因此,系统可以准确地确定与用户的头部和手相关联的至少三个关键点241、242A和242B。由于人类骨骼具有固有的结构约束,因此系统可以使用有限的关键点(例如,242A、242B和241)来推断其它关键点(例如,颈部、肩部、肘部)的位置,并估计用户201的上半身的身体姿势。例如,由于当用户的手242B在关键点244B处时,人类骨骼仅允许手臂207B的特定手臂姿势,因此系统可以基于单个关键点244B准确地推断用户的右手臂207B的手臂姿势。类似地,由于当用户的手在关键点244A处时,人类骨骼仅允许手臂207A的特定手臂姿势,因此系统可以基于单个关键点244A有效地推断用户的左手臂207A的手臂姿势。

在特定实施例中,系统可以使用面向下方的头戴式设备摄像头(例如,213)来追踪对于这些头戴式设备摄像头可见的用户身体部位的身体姿势和运动。例如,当用户的肩部、肘部、手臂、手和用户的其它上半身部位落入摄像头213的FOV内时,摄像头213可以用于追踪这些身体部位。然而,使用上述方法的身体姿势估计可能具有一些限制。例如,系统可能仅具有有限数量的关键点(例如,242A、242B和241),并且在一些情况下,所估计的身体姿势可能不准确。此外,系统可能不能估计用户201的下半身部位(例如,腿205A和205B、脚206A和206B),因为用户201的下半身部位对于头戴式设备摄像头(例如,211、213)可能不可见、且可能没有控制器或传感器附接到用户201的任何下半身部位。系统可能不能估计某些部位。

图2C示出了使用控制器摄像头来追踪用户的下半身部位的示例过程200C。在特定实施例中,系统可以使用具有相应摄像头(例如,221、231)的一个或多个控制器(例如,220、230)来追踪用户201的下半身部位。例如,控制器220可以具有摄像头221,该摄像头具有FOV222。根据控制器220的位置及其在3D空间中的定向,摄像头220的FOV 222可以面向不同方向,从而采集用户201的不同身体部位或周围环境中的不同对象。类似地,控制器230可以具有摄像头231,该摄像头具有FOV 232。根据控制器230的位置及其在3D空间中的定向,摄像头230的FOV 232可以面向不用方向,从而采集用户201的不同身体部位或周围环境中的不同对象。当用户201具有如图2C所示的身体姿势时,摄像头221可以采集用户的左腿205A和左脚206A的图像。因此,系统可以基于由摄像头221采集的图像来确定与用户的左脚相关联的关键点244A的位置和用户的左膝的关键点243A的位置。类似地,摄像头231可以采集用户的右腿205B和右脚206B的图像。因此,系统可以确定分别与用户的左脚206B和左腿205B相关联的关键点244B和243B的关键点位置。如图2C所示,控制器230上的摄像头231和控制器220上的摄像头221可以各自从不同的视角采集用户的下半身部位。用户的下半身部位可能被单个摄像头完全采集到,也可能未被单个摄像头完全采集到。然而,当共同使用同一控制器或不同控制器的多个摄像头时,系统可以获取确定用户的身体姿势所需的、从所有视角覆盖用户下半身部位的足够的图像数据。

图2D示出了使用头戴式设备传感器和控制器传感器来追踪用户全身的示例过程200D。在特定实施例中,系统可以共同地使用头戴式设备传感器(例如,摄像头、IMU)和控制器传感器(例如,摄像头、LiDAR、结构光传感器、IMU等)以追踪用户全身。例如,系统可以使用头戴式设备211上的IMU来确定用户201的头部位置参数(例如,如相应的关键点所示)。头部位置参数可以包括例如但不限于:头部到地面238的距离、头部定向、面部方向、移动速度、移动方向、头部转动速度和转动方向等。作为另一示例,系统可以使用头戴式设备摄像头(例如,211、213)来追踪用户的身体部位和周围环境中的对象(这些对象可以用于推断或确认用户的身体姿势和运动参数)。作为另一示例,系统可以使用头戴式设备摄像头(例如,213)来追踪对于头戴式设备摄像头可见的用户身体部位(例如,在用户身体前方的手臂、肘部和手)。作为另一示例,系统可以使用控制器(例如,220、230)上的IMU来确定控制器位置参数,这些参数包括例如但不限于:控制器在3D空间中的位置、控制器定向、控制器移动速度和移动方向、控制器旋转速度和旋转方向。

在特定实施例中,系统可以使用控制器位置参数来确定相关联的用户身体部位(例如,握持着相应控制器的双手)的相应关键点位置。作为另一示例,系统可以使用控制器摄像头(例如,控制器230上的摄像头231、233和235,控制器220上的摄像头221、223和225)来追踪对于这些摄像头可见的用户身体部位。每个摄像头可以从特定视角采集用户201的一个或多个特定身体部位的图像。这些控制器可以彼此通信和协调,并且这些摄像头可以从追踪用户的全身姿势所需的不同视角共同采集用户身体的图像。例如,控制器230的摄像头231和233可以采集用户201的下半身部位(例如,腿、膝盖、脚等)的图像。摄像头233可以采集用户的上半身部位的图像。类似地,控制器220的摄像头221可以采集用户的下半身部位的图像,而控制器220的摄像头225可以采集用户的上半身部位的图像。在本公开中,术语“全身姿势”可以指用户身体的姿势,该用户身体包括用户的上半身部位和下半身部位。在特定实施例中,即使用户的一个或多个身体部位可能对于头戴式设备摄像头/传感器不可见或不可追踪,用户的全身姿势也可以包括例如但不限于:用户的头部、颈部、肩部、手臂、肘部、手、身体大部分、臀部、腿、膝盖、脚等的姿势。在本公开中,术语“身体姿势”、“控制器位姿”或“头戴式设备位姿”可以各自由多个参数表示,这些参数包括例如但不限于:三维位置、一个或多个三维定向、以及三维空间中的一个或多个空间角度。在本公开中,术语“自追踪控制器”或“自追踪的控制器”可以指可追踪其自身在3D空间中的位姿参数(例如,位置、定向角、旋转角、运动等)个或多个传感器或/和摄像头。

图3A示出了使用自追踪控制器320来执行即时定位与地图构建(SLAM)的示例过程300A。在特定实施例中,系统可以使用具有IMU、传感器和一个或多个内向外摄像头(例如,RGB摄像头、红外摄像头、激光雷达、结构光等)的自追踪控制器320来执行即时定位与地图构建(SLAM)。自追踪控制器320可以使用其摄像头(例如,321、322和323)和IMU 324来执行用于自定位的即时定位与地图构建(SLAM)。例如,控制器323可以使用IMU 324来确定在3D空间(如XYZ坐标系所表示)中的控制器位置和定向。首先,系统可以基于IMU数据确定控制器320的中心点位置。然后,系统可以基于IMU数据确定控制器轴线325的方向和控制器320(在垂直于轴线325的平面中)的旋转角度。此后,系统可以基于控制器位置、控制器轴线425和旋转角度、以及多个摄像头(例如,321、322、323)的相应外部参数(例如,这些摄像头相对于控制器的相对安装位置和面向方向)来确定这些摄像头的FOV。伴随着确定了多个摄像头FOV,控制器320可以用于追踪落入这些摄像头FOV内的用户身体部位,并基于由这些控制器摄像头采集的图像准确地确定相应的关键点位置。在特定实施例中,头戴式设备310可以包括一个或多个传感器,该一个或多个传感器包括例如但不限于:IMU 311、摄像头(例如,312、313和314)、LiDAR、结构光传感器等。头戴式设备310可以基于IMU数据确定其自身在3D空间中的位置和定向。头戴式设备310还可以使用摄像头(例如,312、313和314)来采集周围环境中的对象的图像,以确定或确认在3D空间中的头戴式设备位置和定向。头戴式设备310和控制器320可以通过无线通信连接342彼此通信。

图3B示出了使用头戴式设备传感器确定控制器位置和定向的示例过程300B。在特定实施例中,控制器330可以不需要是自追踪的。而是,可以使用头戴式设备摄像头(例如,312、313和314)来确定控制器在3D空间中的3D位置和姿态。例如,当控制器330落入头戴式设备摄像头312、313和314中的两个或更多个摄像头的FOV内时,系统可以使用该两个或更多个摄像头(例如,312、313和314)从不同视角采集控制器330的图像。然后,系统可以基于由相应摄像头从不同视角采集的控制器330的图像(例如,使用视差原理)来确定控制器位置和定向。此后,系统可以基于控制器位置、控制器轴线335和旋转角度、以及多个控制器摄像头(例如,331、332、333)的相应外部参数(例如,这些摄像头相对于控制器的相对安装位置和面向方向)来确定这些摄像头的FOV。伴随着确定了这些摄像头FOV,控制器220可以追踪落入这些摄像头FOV内的用户身体部位,并基于由这些控制器摄像头采集的图像准确地确定相应的关键点位置。

在特定实施例中,系统可以使用头戴式设备和控制器的所有传感器(例如,摄像头、IMU)来确定用户的身体参数。在特定实施例中,用户的身体部位(例如,头部和用户的握持着控制器的手)可以直接与头戴式设备位置或控制器位置相关联。系统可以直接基于相关联的头戴式设备位置或控制器位置来确定相应的关键点。例如,系统可以使用头戴式设备IMU数据来确定在3D空间中的头部位置和头部姿势,并确定相应的关键点。作为另一示例,针对握持着控制器的手,系统可以使用该控制器的IMU数据来确定在3D空间中的手位置和手姿势,并确定相应的关键点。

图3C示出了使用控制器摄像头数据来确定与用户的身体部位相关联的关键点的示例过程300C。在特定实施例中,用户的身体部位可以对于控制器摄像头是可见的,并且可以基于如由控制器摄像头采集的该身体部位的图像来确定相应的关键点。例如,首先,系统可以基于控制器IMU数据和/或控制器摄像头数据来确定控制器位置(例如,如中心点342所表示)和控制器姿态(如控制器轴线345和旋转角度349所表示)。然后,控制器340可以采集用户的脚347的图像,并基于所采集的用户的脚347的图像、摄像头内部参数(例如,镜头失真网格、FOV 346)和摄像头外部参数(例如,摄像头341相对于控制器中心点342的相对位置)来确定关键点348的位置。可以基于关键点348相对于XYZ的3D空间中的控制器位置342的相对位置、以及脚347相对于控制器摄像头341的相对位置,来确定关键点348在3D空间中的绝对位置。

在特定实施例中,用户的身体部位可以对于多个控制器摄像头是可见的。系统可以基于由该多个控制器摄像头采集的图像来确定相应的关键点。该多个控制器摄像头可以与单个控制器或多个控制器相关联。在特定实施例中,可采集同一身体部位的图像的多个摄像头可以与单个控制器、不同控制器或头戴式设备相关联。各个控制器摄像头可以从不同的视点采集用户的身体部位,并且由多个控制器摄像头从不同视角采集的图像可以用于基于三角测量原理或视差原理来确定关键点的3D位置。系统可能能够基于由单个控制器摄像头采集的单个图像来准确地确定关键点的3D位置,也可能不能基于由单个控制器摄像头采集的单个图像来准确地确定关键点的3D位置,但是可以基于由多个控制器摄像头从不同视角采集的多个图像来准确地确定关键点的3D位置。在特定实施例中,系统可以将所采集的用户身体部位的图像馈送到神经网络,以确定相应的关键点。可以基于实验数据训练该神经网络以从相应的图像中提取身体部位的关键点。由系统确定的关键点可以用3D空间内的相应3D位置来表示。

在特定实施例中,两个或更多个控制器可以彼此协调,以确定用户的一个或多个被追踪身体部位的关键点位置。例如,由第一控制器采集的图像可能仅覆盖用户腿的一小部分,并且第一控制器可能不具有足够的数据以准确地确定与该腿相关的关键点。然而,由第二控制器采集的图像可能覆盖用户腿的另一小部分。第二控制器自身可能也不具有足够的数据以准确地确定所述关键点。然而,第一控制器和第二控制器可以彼此通信以使追踪过程同步。系统可以将来自第一控制器的图像数据与来自第二控制器的图像数据进行组合,以具有关于用户腿的更好的大图片。在采集用户的腿时,组合后的图像数据可能是完整的,也可能不是完整的,但是系统可以更准确地确定相应的关键点。在特定实施例中,第一控制器和第二控制器可以直接彼此通信和协调,以采集图像并共同确定关键点。在特定实施例中,第一控制器和第二控制器可以各自与头戴式设备通信和协调,以采集图像并共同确定关键点。在特定实施例中,系统可以将由(例如,同一控制器或不同控制器的)不同的控制器摄像头从不同视角采集的同一身体部位的多个图像进行融合,并使用融合后的图像数据来共同确定相关的关键点。在特定实施例中,系统可以使用由第一控制器摄像头采集的图像来确定相关的关键点,并使用由第二控制器摄像头采集的图像来验证或确认如基于由第一控制器采集的图像而确定的关键点。

在特定实施例中,系统可以使用计算机算法(例如,肌肉-骨骼模型、机器学习(machine-learning,ML)模型或基于规则的算法)来确定这样的用户身体部位的关键点:所述用户身体部位对于头戴式设备摄像头和控制器摄像头不可见,也不可被头戴式设备传感器和控制器传感器直接追踪。例如,当用户的脚对于任何头戴式设备摄像头或控制器摄像头可能不可见、且不可通过头戴式设备传感器或控制器传感器直接追踪时。系统可以使用肌肉-骨骼模型来拟合已经确定的、用户的其它身体部位的关键点,并推断不可见身体部位的关键点。肌肉-骨骼模型可以包括从人体的物理限制和关于人体姿势与运动的实验数据得出的多个约束。不可见身体部位的关键点可以基于其它身体部位的关键点和肌肉-骨骼模型中所包含的关于人体的知识而确定。作为另一示例,系统可以训练ML模型训练以基于可见(或可追踪)身体部位的关键点来预测不可见身体部位的关键点。在训练过程中,系统可以首先确定用户身体的所有关键点,并使用已知关键点中用作输入训练样本的一子集和已知关键点中用作地面真值的另一子集来训练ML模型。一旦经过训练,系统就可以将可基于传感器数据和摄像头数据直接确定的有限数量的关键点馈送到ML模型中,并确定不可由传感器或摄像头直接追踪的其它关键点。在运行时,系统可以尽可能多地确定用户身体部位(例如,头部、手、可见的身体部位)的关键点,并将所确定的关键点馈送到ML模型,以估计用户身体的其它关键点。作为另一示例,系统可以使用基于规则的算法来处理已经确定的关键点,并推断其它身体部位的关键点。基于规则的算法可以包括关于人体姿势和运动的多个约束,这些约束是根据物理限制和特征而确定的。

在特定实施例中,系统可能不能确定用户身体的在时域中的特定时刻的关键点。例如,在先前时刻对于控制器摄像头或头戴式设备摄像头先前可见的用户身体部位可能会由于该用户身体部位的运动而变为不可见的。作为另一示例,用于追踪用户身体的头戴式设备传感器/摄像头和控制器传感器/摄像头可以使用有限的帧率(例如,每秒1帧)来降低系统的功耗和数据处理负担。因此,系统可能不具有落在两个连续帧之间的时刻的身体追踪数据。在特定实施例中,系统可以使用插值算法来基于可用追踪数据确定这些时刻的关键点。例如,由于用户的身体运动通常被限制在可能的最大运动速度内,因此用户身体姿势在两个连续帧(例如,1秒时间段)之间的变化量可受到限制。系统可以使用在该特定时刻之前和之后的追踪数据(例如,身体部位图像)来使用插值确定该特定时刻的关键点。作为另一示例,系统可以训练ML模型以基于先前时刻的关键点来预测用户的身体关键点。可以基于以下实验数据来训练ML模型:该实验数据包括输入关键点集合和地面真值关键点集合这两项。在运行时,系统可以记录已经在特定时间窗口内确定的用户身体的多个关键点,并将这些关键点馈送到ML模型,以预测当前时刻的这些关键点。系统所使用的时间窗口可以对应于当前时刻之前的一段时间,并且可以是随时间移动的滑动窗口。

在特定实施例中,系统可以使用如上所论述的一种或多种方法来尽可能多地确定用户身体的关键点,并聚合用户身体的所有关键点以确定初始全身姿势。例如,系统可以使用头戴式设备IMU数据来确定用户头部的关键点,并使用控制器IMU数据来确定用户手的关键点。作为另一示例,系统可以使用头戴式设备/控制器摄像头数据(例如,图像)来确定用户的可见身体部位的关键点。作为另一示例,系统可以使用多个关键点的子集、基于肌肉-骨骼模型或ML模型来确定用户的其它关键点,该ML模型被训练成基于多个关键点的有限子集来确定用户身体的关键点。作为另一示例,系统可以使用ML模型、基于在特定时刻之前的时间窗口的身体追踪数据(例如,先前的图像帧)来预测这些特定时刻的身体部位的关键点。由每种方法确定的关键点可以是用户身体的不完整的一组数据点。然而,在确定所有这些关键点之后,系统可以聚合所有这些关键点,以确定用户的初始全身姿势。在特定实施例中,系统可以确定与以下部位相关联的关键点:这些部位例如但不限于用户的头部、面部、颈部、肩部、手臂、肘部、手、臀部、身体质量中心、腿、膝盖、脚等。可以使用人体的肌肉-骨骼模型和/或被训练成细化用户的全身姿势的ML模型来优化和细化初始全身姿势。

图4示出了人体的示例肌肉-骨骼模型400。在特定实施例中,系统可以使用人体的肌肉-骨骼模型来(1)基于用户的身体关键点推断其它关键点的位置;以及(2)基于完整的一组关键点或基于不完整的一组关键点来确定用户的全身姿势。作为示例而非限制,肌肉-骨骼模型400可以包括例如但不限于与以下项相关的信息:用户的头部位置401,面部方向402,颈部402,肩部404A和404B,手臂410A和410B,肘部405A和405B,手406A和406B,臀部411A和411B,身体中心基准点412,膝盖407A和407B,腿409A和409B,脚408A和408B,手腕等。在特定实施例中,可以由计算机基于关于人体的理论知识和实验知识来生成肌肉-骨骼模型400。例如,模型400可以包括用于表示刚性骨骼的多条线性线段和表示关键身体部位(例如,关节)的位置的多个关键点。作为另一示例,模型400还可以对附接到人体主要骨骼的肌肉进行建模,从而描述肌肉如何以特定方式(例如,弹性而不是刚性运动)拉动骨骼。首先可以通过有限元法(finite element method,FEM)模拟对肌肉进行建模以确定相应属性,这些属性可以被肌肉-骨骼模型400获取。因此,肌肉-骨骼模型400可以包括对人体姿势和运动的多个约束。可以基于人体的物理限制来确定该多个约束。

在特定实施例中,系统可以使用这些约束、基于有限的追踪数据来推断用户的身体姿势(例如,使用关键点的子集来推断用户的全身姿势)。例如,用户的前臂只能朝向用户的身体弯曲,而不能朝向相反方向弯曲。系统可以使用该约束来排除大量不符合该约束的手臂姿势,并基于有限数量的关键点来推断用户的正确手臂姿势。作为另一示例,人体做出特定姿势的方式可能只有有限的数量。例如,人体只能从一侧将手放在其背部的特定部位,因为手臂不够长而无法通过另一侧实现。当系统(例如基于用户的手中握持的控制器的位置)检测到该手在用户背部的较低或较高部位后面这一特定位置时,系统可以合理地推断用户的手臂必须处于该特定手臂姿势,并且在该特定情况下不可能有其它手臂姿势。

图5示出了估计用户的全身姿势的示例过程500。在特定实施例中,系统可以使用头戴式设备传感器503(例如,IMU、摄像头)来追踪用户的身体部位。另外,系统可以使用一个或多个具有传感器(例如,摄像头、IMU)的控制器(例如,501、502)来追踪对于头戴式设备摄像头不可见或对于头戴式设备传感器不可追踪的用户身体部位。例如,系统可以使用头戴式设备摄像头和控制器摄像头来采集落入这些摄像头的FOV内的用户身体部位的图像。系统可以将这些图像馈送到关键点提取模块511A,以确定对应的关键点。关键点提取模块511A可以是这样的图像处理算法:所述图像处理算法可以对输入图像(和IMU数据)进行处理,以确定对应关键点位置。在特定实施例中,关键点提取模块511A可以是这样的ML模型:所述ML模型被训练以基于输入图像提取关键点并确定这些关键点的3D位置。在特定实施例中,可以基于以下项来确定用户身体部位的关键点:所采集的图像,头戴式设备IMU数据,控制器IMU数据,以及这些摄像头的外部和内部参数(例如,摄像头相对于控制器或头戴式设备的相对位置、FOV)。在关键点被确定之后,系统可以将所确定的关键点523A输入到聚合模块512,该聚合模块可以将不同身体部位的关键点聚合成初始全身姿势513。

在特定实施例中,系统可能需要确定与这样的一个或多个身体部位相关联的一个或多个关键点:所述一个或多个身体部位对于头戴式设备摄像头/控制器摄像头不可见,并且不可被头戴式设备传感器和控制器传感器直接追踪。系统可以将基于可用的摄像头数据或传感器数据确定的(例如,与可见身体部位相关联的或可由头戴式设备传感器/控制器传感器直接追踪的)一组关键点输入到关键点推断模块517,该关键点推断模块可以基于已知关键点的3D位置来推断其它关键点的3D位置。在特定实施例中,关键点推断模块517可以是人体的肌肉-骨骼模型,该肌肉-骨骼模型包括关于可能的人体姿势和运动的多个约束。系统可以基于对应身体部位之间的关系来推断其它关键点的位置,该对应身体部位之间的关系是基于肌肉-骨骼模型的。在特定实施例中,关键点推断模块517可以是这样的ML模型:所述ML模型是基于实验数据而被训练的以基于已确定的关键点预测其它关键点的位置。在推断的关键点523B被确定之后,系统可以将这些推断的关键点输入到聚合模块512,该聚合模块可以聚合所有关键点以确定初始全身姿势513。

在特定实施例中,系统可能需要确定基于当前时刻的实时传感器数据(例如,摄像头图像、IMU数据)不能直接或间接确定的身体部位的关键点。例如,用户的一个身体部位可能隐藏在其它身体部位后面,从而系统可能不能通过头戴式设备/控制器的摄像头或传感器直接追踪隐藏的身体部位。并且,由于系统可能仅能够确定用户身体的有限数量的关键点,因此该系统可能不具有足够的用于推断隐藏身体部位的关键点的实时数据。为了解决这个问题,在特定实施例中,系统可以使用在当前时刻之前的滑动时间窗口的传感器数据和摄像头数据来确定隐藏身体部位的关键点。例如,当前隐藏的身体部位可能在先前帧中对于头戴式设备摄像头或控制器摄像头是可见的。系统可以访问当前隐藏的身体部位的先前图像帧521,以推断这些身体部位的当前关键点位置。系统可以将先前帧521输入到关键点提取模块511B,以确定当时关键点位置(对应于先前的时刻)。然后,系统可以将先前的关键点馈送到时间神经网络(TNN)522,以推断这些关键点的当前位置。时间神经网络(TNN)522可以是这样的ML模型:所述ML模型被训练以基于先前关键点位置预测当前关键点位置。时间神经网络(TNN)522可以接收关键点和/或在当前时刻之前的滑动时间窗口的传感器数据,并确定(预测)对应关键点的当前位置。在这些关键点被确定之后,系统可以将这些预测的关键点523C馈送到聚合模块512,以确定初始全身姿势513。因此,聚合模块512可以接收基于当前的传感器数据/摄像头数据直接或间接确定的关键点、以及基于先前帧预测的关键点,并将这些关键点聚合成整体,以确定初始全身姿势513。输入到聚合模块512的各关键点可以与不同的身体部位相关联,并且可以基于来自不同源的数据(例如,头戴式设备摄像头图像、控制器摄像头图像、头戴式设备传感器数据、控制器传感器数据)而确定。基于每个数据源而确定的关键点可能具有不完整的一组关键点,但是基于不同数据源而确定的关键点可以共同为用户全身姿势提供完整的一组关键点。

在特定实施例中,系统可以通过聚合在先前步骤中为用户身体确定的所有关键点来确定初始全身姿势513。然而,初始全身姿势513针对某些身体部位可能并不完全准确。例如,基于其它关键点的推断的关键点523B和基于先前帧的预测的关键点523C可能不是100%符合用户在当前时刻的实际身体部位位置。此外,即使基于不同数据源确定的关键点符合实际身体部位位置,初始全身姿势也可能偏离实际身体姿势,因为聚合过程可能会产生一些偏差(例如,用户的不同身体部位之间的相对位置存在误差)。因此,初始全身姿势513可以提供对用户身体姿势的粗略估计,并且可能不完全准确。系统可以将初始全身姿势513馈送到逆向运动学优化器,以细化和优化结果。例如,初始全身姿势513可以包括已经为用户身体确定的所有关键点。逆向运动学优化器515可以是这样的ML模型:所述ML模型被训练以基于对应多个身体部位的关系来优化关键点位置。例如,逆向运动学优化器515可以基于肌肉-骨骼模型514来拟合输入的关键点,以确定是否有任何关键点位置或关键点关系不符合肌肉-骨骼模型,并且相应地进行调整以确定优化的用户身体姿势。肌肉-骨骼模型514可以包括对可能的用户身体姿势进行限制的多个约束,并且这些约束可以被逆向运动学优化器515应用。因此,细化的全身姿势516可以提供比初始全身姿势513更准确的身体姿势估计结果。

在特定实施例中,系统可以使用如本公开中所描述的一个或多个步骤来确定用户的估计身体姿势。然而,在一些情况下,估计的用户身体姿势可能具有不符合人体的肌肉-骨骼模型的约束的一个或多个部位。在这种情况下,系统可以根据这些约束来调整那些不符合的部位,并使估计的身体姿势符合这样的约束。例如,估计的身体姿势可能具有向后弯曲的手臂,这对人体来说是不可能的。系统可以基于其它身体部位的身体姿势和用户活动的上下文来反转弯曲方向或输出该手臂的另一姿势。作为另一示例,系统可以检测身体部位的突然变化,该突然变化超过了人体可能达到的最大可能速度。系统根据肌肉-骨骼模型,将这种变化降低到对人体来说实际的速度。

在特定实施例中,系统可以使用如基于头戴式设备摄像头图像或控制器摄像头图像而确定的身体部位形状(例如,轮廓、包络)或全身形状来细化如基于关键点而确定的全身姿势。如前所述,不同组的关键点可以与不同的身体部位相关联,并且可以基于不同的数据源来确定。可以基于相关身体部位的整体身体形状来细化或重新校准不同组关键点之间的关系。例如,系统可以基于对应的两组关键点、两个相关身体部位的整体身体形状和肌肉-骨骼模型来确定这两个部位的身体姿势。因此,系统可以具有对用户的全身姿势的更准确的估计结果。

在特定实施例中,系统可以仅采集用于确定用户身体姿势的有限数据,并且即使细化的身体姿势结果也可能不能准确地反映用户在特定时刻的实际身体姿势。系统可以使用以下项来确定在这种情况下用户的最可能或最合适的身体姿势:人体的肌肉-骨骼模型,有限的传感器数据/摄像头数据,以及用户正在进行的活动的上下文。例如,系统可以确定用户是否正在玩游戏、是否正在虚拟环境中与朋友聊天、是否正在与多人远程地进行电话会议、是否正在与朋友虚拟地观看音乐会等。系统可以基于用户活动的上下文和特征来确定用户的估计身体姿势。例如,如果用户正站着并正在虚拟环境中与朋友聊天,则系统可以输出贴合聊天上下文的用户的身体姿势,例如,用户在与朋友聊天时很可能会交叉其双腿、处于放松的身体姿势。用户可以稍微将一只脚放在另一只脚的前方。当聊天变得激烈时,用户可能会移动其腿和脚。作为另一示例,如果用户正在玩需要大量跑步的游戏,则系统可以输出处于跑步状态下的身体姿势和运动。作为另一示例,如果用户正在听有音乐的音乐会,则系统可以输出随着音乐的节拍非连贯的身体姿势和运动(例如,根据音乐轻踏一只或两只脚)。因此,即使有限的数据可能不允许系统准确地确定实际身体姿势(例如,不可见且不可追踪的下半身部位),系统也可以输出用户的对活动的上下文合理且符合人体的肌肉-骨骼模型约束的身体姿势。通过输出这种不准确但有可能性的、且适合于上下文的身体姿势,即使在仅有有限的数据可用于身体姿势估计时,系统也可以为通过AR/VR系统彼此交互的多个用户提供更逼真的用户体验。

在特定实施例中,系统可以在头戴式设备、控制器和/或单独的计算单元(例如,电话/工作台(stage))之间分配用于处理传感器数据(例如,IMU数据、图像数据)、确定关键点和估计全身姿势的计算任务。所有这些系统部件可以是本公开中称为“计算系统”的部分。在特定实施例中,每个控制器可以在该控制器内本地处理其传感器数据(例如,IMU数据、摄像头数据)并确定对应的关键点。控制器可以向其它控制器、头戴式设备或其它本地计算单元发送处理后的数据(例如,控制器位姿、关键点位置),以确定用户的全身姿势。在特定实施例中,多个控制器可以彼此通信和协调,以处理传感器数据并确定对应的关键点。例如,该多个控制器可以使多个图像采集过程彼此同步,并彼此交换传感器数据(例如,IMU数据和原始图像),以共同确定对应的关键点和用户的全身姿势。这些关键点可以基于来自多个控制器的传感器数据(例如,IMU数据、图像数据)的融合来确定。在特定实施例中,控制器可以向工作台/头戴式设备发送所述控制器的原始传感器数据(例如,IMU数据、图像数据),该工作台/头戴式设备可以处理图像和IMU数据、确定关键点位置、并估计用户的全身姿势。在特定实施例中,可以基于取决于以下一个或多个因素的优化方案来将计算任务分配给控制器、工作台/头戴式设备、和/或本地计算设备(例如,智能手机/工作台):该一个或多个因素包括计算资源的可用性、计算任务特性、数据安全方案和用户所设置的隐私设置等。

图6示出了用于数据安全和用户隐私保护的示例方案600。在特定实施例中,系统仅在用户主动且肯定地选择加入请求系统追踪用户的身体姿势时,才可以使用控制器摄像头或头戴式设备摄像头来提供这一功能。系统不会追踪用户的身体姿势,除非用户授权并允许系统这样做。即使有用户的授权和许可,系统也可以通过用控制器、头戴式设备或本地计算机本地处理数据并将数据严格保存在本地计算系统内,来为用户的隐私提供额外的保护。作为示例,系统可以采用严格的数据安全方案650,该数据安全方案要求控制器620和630在各自的控制器内本地处理所有采集的图像。由控制器620和630采集的所有原始图像数据可以严格地保存在相应的控制器内。控制器620和630可以仅将处理结果(例如,关键点位置)发送到头戴式设备610或本地计算机640。控制器620和630可以彼此通信以交换关键点信息,但是由每个控制器采集的原始图像可以严格地保存在相应的控制器内。作为另一示例,系统可以采用数据安全方案660,该数据安全方案要求由头戴式设备摄像头(例如,611A、611B、611C)或控制器摄像头(例如,控制器620的摄像头621A、621B和621C,控制器630的摄像头631A、631B和631C)采集的所有图像数据保存在本地头戴式设备610或本地计算机640内。图像可以从相应的控制器620和630传输到头戴式设备560,并且可以在头戴式设备610内本地处理。可替代地,图像可以由本地计算机640处理。然而,图像数据将被严格地保存在本地计算系统(例如,本地计算机640或头戴式设备610)内,并且将被限制以免被传输到本地计算系统之外的任何计算机。

在特定实施例中,在用户的全身姿势被确定之后,系统可以使用用户的全身姿势数据来促进对AV/VR内容的更逼真的用户体验。在特定实施例中,系统可以使用全身姿势数据来控制向正在与用户交互或通信的另一用户显示的化身。例如,两个用户可以使用该系统来进行虚拟电话会议,其中每个用户由化身或逼真的人工现实角色来表示。系统可以在会议期间实时地或接近实时地追踪每个用户的全身姿势,并使用全身姿势数据来控制相应化身或人工现实角色,以允许用户看到彼此的全身姿势(例如,如化身的身体姿势所表示的)。在特定实施例中,系统可以使用全身姿势数据来促进向用户发出更逼真的声音。例如,系统可以基于用户的实时身体姿势来控制不同的声源(例如,围绕用户的扬声器),以为用户创造逼真的立体声效果。

图7示出了使用自追踪控制器确定用户的全身姿势的示例方法700。该方法可以在步骤710处开始,其中,计算系统可以基于由用户所握持的控制器采集的传感器数据,来确定该控制器的位姿。在步骤720处,该系统可以基于以下项来确定与用户的身体的第一部位相关联的第一组关键点的位置:(1)由该控制器的一个或多个摄像头采集的一个或多个第一图像,和(2)该控制器的位姿。在步骤730处,该系统可以基于由用户所佩戴的头戴式设备采集的传感器数据,来确定该头戴式设备的位姿。在步骤740处,该系统可以基于以下项来确定与用户的身体的第二部位相关联的第二组关键点的位置:(1)由该头戴式设备的一个或多个摄像头采集的一个或多个第二图像,和(2)该头戴式设备的位姿。在步骤750处,该系统可以至少基于第一组关键点的位置和第二组关键点的位置,来确定用户的全身姿势。在特定实施例中,控制器的位姿可以包括该控制器在三维空间内的位置、轴线方向和旋转角度。头戴式设备的位姿可以包括该头戴式设备在三维空间内的位置和两个轴线方向。在特定实施例中,由控制器采集的传感器数据可以包括惯性测量单元(IMU)数据。控制器的位姿可以是使用用于自定位的即时定位与地图构建(SLAM)确定的。在特定实施例中,该系统可以基于用户的身体的第三部位(例如,握持着控制器的手)与控制器的位姿之间的直接关联(不包括一个或多个第一图像),来确定用户的身体的第三部位的第三组关键点。在特定实施例中,该系统可以基于用户的身体的第三部位(例如,佩戴着头戴式设备的用户头部)与头戴式设备的位姿之间的直接关联(不包括一个或多个第二图像),来确定用户的身体的第三部位的第三组关键点。

在特定实施例中,该系统可以基于由第二控制器的一个或多个摄像头采集的一个或多个第三图像,来确定与用户的身体的第一部位相关联的第三组关键点的位置。该一个或多个第三图像可以从与控制器的一个或多个摄像头采集一个或多个第一图像不同的视角采集用户的身体的第一部位。在特定实施例中,该系统可以聚合第一组关键点、第二组关键点和第三组关键点。该系统可以将聚合后的第一组关键点、第二组关键点和第三组关键点馈送到逆向运动学优化器中。用户的全身姿势可以是使用逆向运动学优化器确定的。在特定实施例中,逆向运动学优化器可以包括一个或多个约束,该一个或多个约束是基于肌肉-骨骼模型确定的。用户的全身姿势可以是根据该一个或多个约束和肌肉-骨骼模型确定的。在特定实施例中,该系统可以将与用户的身体的一个或多个部位相关联的、先前确定的关键点馈送到时间神经网络(TNN)。先前确定的关键点可以是基于用户的身体的一个或多个部位的先前图像确定的。该系统可以由时间神经网络(TNN)基于与用户的身体的一个或多个部位相关联的先前确定的关键点,来确定与用户的身体的一个或多个部位相关联的一个或多个预测的关键点。时间神经网络可以是使用历史数据训练的。在特定实施例中,用户的全身姿势可以是基于与用户的身体的一个或多个部位相关联的一个或多个预测的关键点确定的。

在特定实施例中,所述一个或多个第一图像可以是在控制器内本地处理的。该系统可以防止该一个或多个第一图像被传输到控制器外部。该系统可以将第一组关键点传输到头戴式设备,并且用户的全身姿势可以是在头戴式设备内本地确定的。在特定实施例中,该系统可以将该一个或多个第一图像传输到头戴式设备。该一个或多个第一图像可以是由头戴式设备的一个或多个计算单元本地处理的。第一组关键点可以是在头戴式设备内本地确定的。该系统可以防止该一个或多个第一图像和第一组关键点被传输到头戴式设备外部。在特定实施例中,用户的全身姿势可以包括用户的身体的第一部位和用户的身体的第二部位。用户的身体的第一部位可以落在头戴式设备的一个或多个摄像头的视场外部。在特定实施例中,用户的全身姿势可以至少包括:使用与头戴式设备相关联的惯性测量单元确定的头部姿势;基于控制器的位姿确定的手部姿势;基于由控制器的一个或多个摄像头采集的一个或多个第一图像确定的下半身姿势;以及基于由头戴式设备的一个或多个摄像头采集的一个或多个第二图像确定的上半身姿势。

在适当的情况下,特定实施例可以重复图7的方法中的一个或多个步骤。尽管本公开将图7的方法中的特定步骤描述和示出为以特定顺序发生,但是本公开考虑了图7的方法中的任何合适的步骤以任何合适的顺序发生。此外,尽管本公开描述和示出了用于使用自追踪控制器来确定用户的全身姿势的、包括图7的方法中的特定步骤的示例方法,但是本公开考虑了用于使用自追踪控制器来确定用户的全身姿势的、包括任何合适步骤的任何合适的方法,在适当的情况下,这些步骤可以包括图7的方法中的全部步骤、一些步骤,或不包括图7的方法中的步骤。此外,尽管本公开描述和示出了执行图7的方法中的特定步骤的特定部件、设备或系统,但是本公开考虑了执行图7的方法中的任何合适步骤的任何合适的部件、设备或系统的任何合适的组合。

图8示出了示例计算机系统800。在特定实施例中,一个或多个计算机系统800执行本文所描述或所示出的一种或多种方法的一个或多个步骤。在特定实施例中,一个或多个计算机系统800提供本文所描述或所示出的功能。在特定实施例中,在一个或多个计算机系统800上运行的软件执行本文所描述或所示出的一种或多种方法的一个或多个步骤,或者提供本文所描述或所示出的功能。特定实施例包括一个或多个计算机系统800的一个或多个部分。在本文中,在适当的情况下,对计算机系统的引用可以涵盖计算设备,反之亦然。此外,在适当的情况下,对计算机系统的引用可以涵盖一个或多个计算机系统。

本公开考虑了任何合适数量的计算机系统800。本公开考虑了采用任何合适的物理形式的计算机系统800。作为示例而非限制,计算机系统800可以是嵌入式计算机系统、片上系统(system-on-chip,SOC)、单板计算机系统(single-board computer system,SBC)(例如,模块上计算机(computer-on-module,COM)或模块上系统(system-on-module,SOM))、台式计算机系统、膝上型或笔记本计算机系统、交互式自助服务终端(kiosk)、大型机、计算机系统组网、移动电话、个人数字助理(personal digital assistant,PDA)、服务器、平板计算机系统、增强/虚拟现实设备、或这些系统中的两者或更多者的组合。在适当的情况下,计算机系统800可以包括一个或多个计算机系统800;可以是单一的或分布式的;可以跨多个位置;可以跨多台机器;可以跨多个数据中心;或可以位于云中(该云可以包括一个或多个网络中的一个或多个云组件)。在适当的情况下,一个或多个计算机系统800可以在无实质性的空间限制或时间限制的情况下,执行本文所描述或所示出的一种或多种方法的一个或多个步骤。作为示例而非限制,一个或多个计算机系统800可以实时地或以分批处理模式执行本文所描述或所示出的一种或多种方法的一个或多个步骤。在适当的情况下,一个或多个计算机系统800可以在不同的时间或在不同的位置处执行本文所描述或所示出的一种或多种方法的一个或多个步骤。

在特定实施例中,计算机系统800包括处理器802、内存804、存储器806、输入/输出(input/output,I/O)接口808、通信接口810和总线812。尽管本公开描述和示出了具有处于特定布置的特定数量的特定部件的特定计算机系统,但是本公开考虑了具有处于任何合适的布置的任何合适数量的任何合适部件的任何合适的计算机系统。

在特定实施例中,处理器802包括用于执行多个指令(例如构成计算机程序的那些指令)的硬件。作为示例而非限制,为了执行多个指令,处理器802可以从内部寄存器、内部高速缓冲存储器、内存804、或存储器806检索(或提取)这些指令;解码并执行这些指令;然后将一个或多个结果写入内部寄存器、内部高速缓冲存储器、内存804或存储器806。在特定实施例中,处理器802可以包括用于数据、指令或地址的一个或多个内部高速缓冲存储器。在适当的情况下,本公开考虑了包括任何合适数量的任何合适的内部高速缓冲存储器的处理器802。作为示例而非限制,处理器802可以包括一个或多个指令高速缓冲存储器、一个或多个数据高速缓冲存储器、和一个或多个转译后备缓冲器(translation lookasidebuffer,TLB)。指令高速缓冲存储器中的指令可以是内存804或存储器806中的指令的副本,并且指令高速缓冲存储器可以加速处理器802对这些指令的检索。数据高速缓冲存储器中的数据可以是内存804或存储器806中、供在处理器802处执行的指令操作的数据的副本;可以是在处理器802处执行的先前指令的结果,以供在处理器802处执行的后续指令访问、或用于写入内存804或存储器806;或者可以是其它合适的数据。数据高速缓冲存储器可以加速处理器802的读操作或写操作。TLB可以加速处理器802的虚拟地址转换。在特定实施例中,处理器802可以包括用于数据、指令或地址的一个或多个内部寄存器。在适当的情况下,本公开考虑了包括任何合适数量的任何合适的内部寄存器的处理器802。在适当的情况下,处理器802可以包括一个或多个算术逻辑单元(arithmetic logic unit,ALU);可以是多核处理器;或可以包括一个或多个处理器802。尽管本公开描述和示出了特定的处理器,但是本公开考虑了任何合适的处理器。

在特定实施例中,内存804包括主内存,该主内存用于存储供处理器802执行的指令或供处理器802操作的数据。作为示例而非限制,计算机系统800可以将指令从存储器806或另一源(例如,另一计算机系统800)加载到内存804。然后,处理器802可以将这些指令从内存804加载到内部寄存器或内部高速缓冲存储器。为了执行这些指令,处理器802可以从内部寄存器或内部高速缓冲存储器检索这些指令并对它们进行解码。在执行这些指令期间或之后,处理器802可以将一个或多个结果(该一个或多个结果可以是中间结果或最终结果)写入内部寄存器或内部高速缓冲存储器。然后,处理器802可以将这些结果中的一个或多个结果写入内存804。在特定实施例中,处理器802仅执行一个或多个内部寄存器中或内部高速缓冲存储器中的、或者内存804(而不是存储器806或其它地方)中的指令,且仅操作一个或多个内部寄存器或内部高速缓冲存储器中的、或者内存804(而不是存储器806或其它地方)中的数据。一条或多条内存总线(每条内存总线可以包括地址总线和数据总线)可以将处理器802耦接到内存804。如下所述,总线812可以包括一条或多条内存总线。在特定实施例中,一个或多个内存管理单元(Memory Management Unit,MMU)位于处理器802与内存804之间,并且促进由处理器802所请求的对内存804的访问。在特定实施例中,内存804包括随机存取存储器(Random Access Memory,RAM)。在适当的情况下,该RAM可以是易失性存储器。在适当的情况下,该RAM可以是动态RAM(dynamic RAM,DRAM)或静态RAM(static RAM,SRAM)。此外,在适当的情况下,该RAM可以是单端口RAM或多端口RAM。本公开考虑了任何合适的RAM。在适当的情况下,内存804可以包括一个或多个内存804。尽管本公开描述和示出了特定内存,但是本公开考虑了任何合适的内存。

在特定实施例中,存储器806包括用于数据或指令的大容量存储器。作为示例而非限制,存储器806可以包括硬盘驱动器(hard disk drive,HDD)、软盘驱动器(floppy diskdrive,FDD)、闪存、光盘、磁光盘、磁带、或通用串行总线(Universal Serial Bus,USB)驱动器、或这些存储器中的两者或更多者的组合。在适当的情况下,存储器806可以包括可移除介质或不可移除(或固定)介质。在适当的情况下,存储器806可以处于计算机系统800的内部或外部。在特定实施例中,存储器806是非易失性固态存储器。在特定实施例中,存储器806包括只读存储器(read-only memory,ROM)。在适当的情况下,该ROM可以是掩码编程ROM、可编程ROM(programmable ROM,PROM)、可擦除PROM(erasable PROM,EPROM)、电可擦除PROM(electrically erasable PROM,EEPROM)、电可改写ROM(electrically alterableROM,EAROM)或闪存、或这些ROM中的两者或更多者的组合。本公开考虑了采用任何合适的物理形式的大容量存储器806。在适当的情况下,存储器806可以包括促进处理器802与存储器806之间的通信的一个或多个存储器控制单元。在适当的情况下,存储器806可以包括一个或多个存储器806。尽管本公开描述和示出了特定的存储器,但是本公开考虑了任何合适的存储器。

在特定实施例中,I/O接口808包括这样的硬件、软件或这两者:该硬件、软件或这两者提供用于计算机系统800与一个或多个I/O设备之间的通信的一个或多个接口。在适当的情况下,计算机系统800可以包括这些I/O设备中的一个或多个I/O设备。这些I/O设备中的一个或多个I/O设备可以实现个人与计算机系统800之间的通信。作为示例而非限制,I/O设备可以包括键盘、小键盘、传声器、监视器、鼠标、打印机、扫描仪、扬声器、静物摄像头、手写笔、平板电脑、触摸屏、追踪球、摄像机、另一合适的I/O设备、或这些I/O设备中的两者或更多者的组合。I/O设备可以包括一个或多个传感器。本公开考虑了任何合适的I/O设备和用于该I/O设备的任何合适的I/O接口808。在适当的情况下,I/O接口808可以包括使处理器802能够驱动这些I/O设备中的一个或多个I/O设备一个或多个设备或软件驱动器。在适当的情况下,I/O接口808可以包括一个或多个I/O接口808。尽管本公开描述和示出了特定的I/O接口,但本公开考虑了任何合适的I/O接口。

在特定实施例中,通信接口810包括这样的硬件、软件或这两者:该硬件、软件或这两者提供用于计算机系统800与一个或多个其它计算机系统800或一个或多个网络之间的通信(例如,基于数据包的通信)的一个或多个接口。作为示例而非限制,通信接口810可以包括用于与以太网或其它基于有线的网络进行通信的网络接口控制器(networkinterface controller,NIC)或网络适配器、或者用于与无线网络(例如,Wi-Fi网络)进行通信的无线NIC(wireless NIC,WNIC)或无线适配器。本公开考虑了任何合适的网络和用于该网络的任何合适的通信接口810。作为示例而非限制,计算机系统800可以与以下网络进行通信:自组网、个域网(personal area network,PAN)、局域网(local area network,LAN)、广域网(wide area network,WAN)、城域网(metropolitan area network,MAN)、或互联网的一个或多个部分、或这些网络中的两者或更多者的组合。这些网络中的一种或多种网络的一个或多个部分可以是有线的或无线的。作为示例,计算机系统800可以与以下网络进行通信:无线PAN(wireless PAN,WPAN)(例如,蓝牙(BLUETOOTH)WPAN)、WI-FI网络、WI-MAX网络、蜂窝电话网络(例如,全球移动通信系统(Global System for MobileCommunications,GSM)网络)、或其它合适的无线网络、或这些网络中的两者或更多者的组合。在适当的情况下,计算机系统800可以包括用于这些网络中的任一者的任何合适的通信接口810。在适当情况下,通信接口810可以包括一个或多个通信接口810。尽管本公开描述和示出了特定的通信接口,但是本公开考虑了任何合适的通信接口。

在特定实施例中,总线812包括将计算机系统800的多个部件彼此耦接的硬件、软件或这两者。作为示例而非限制,总线812可以包括:加速图形端口(Accelerated GraphicsPort,AGP)或其它图形总线、增强型工业标准架构(Enhanced Industry StandardArchitecture,EISA)总线、前端总线(front-side bus,FSB)、超传输(HYPERTRANSPORT,HT)互连、工业标准架构(Industry Standard Architecture,ISA)总线、无限带宽(INFINIBAND)互连、低引脚数(low-pin-count,LPC)总线、内存总线、微通道架构(MicroChannel Architecture,MCA)总线、外围部件互连(Peripheral Component Interconnect,PCI)总线、高速外围部件互联(PCI-Express,PCIe)总线、串行高级技术附件(serialadvanced technology attachment,SATA)总线、视频电子标准协会局域(VideoElectronics Standards Association local,VLB)总线、或另一合适的总线、或这些总线中的两者或更多者的组合。在适当的情况下,总线812可以包括一条或多条总线812。尽管本公开描述和示出了特定的总线,但是本公开考虑了任何合适的总线或互连件。

在本文中,在适当的情况下,一种或多种计算机可读非暂态存储介质可以包括:一个或多个基于半导体的集成电路(integrated circuit,IC)或其它集成电路(例如,现场可编程门阵列(field-programmable gate array,FPGA)或专用IC(application-specificIC,ASIC))、硬盘驱动器(HDD)、混合硬盘驱动(hybrid hard drive,HHD)、光盘、光盘驱动器(optical disc drive,ODD)、磁光盘、磁光驱动器、软盘、软盘驱动器(FDD)、磁带、固态驱动器(solid-state drive,SSD)、RAM驱动器、安全数字卡(SECURE DIGITAL card)或安全数字驱动器、任何其它合适的计算机可读非暂态存储介质、或这些存储介质中的两者或更多者的任何合适的组合。在适当的情况下,计算机可读非暂态存储介质可以是易失性的、非易失性的、或者易失性与非易失性的组合。

在本文中,除非另有明确说明或上下文另有说明,否则“或”是包含而非排他性的。因此,在本文中,除非另有明确说明或上下文另有说明,否则“A或B”意指“A、B、或这两者”。此外,除非另有明确说明或上下文另有说明,否则“和”是共同的和单独的。因此,在本文中,除非另有明确说明或上下文另有说明,否则“A和B”意指“A和B,共同地或单独地”。

本公开的范围涵盖对本文中所描述或所示出的示例实施例的所有改变、替代、变化、更改和修改,本领域技术人员将理解这些改变、替代、变化、更改和修改。本公开的范围不限于本文所描述或所示出的示例实施例。此外,尽管本公开将本文中的各个实施例描述和示出为包括特定的部件、元件、特征、功能、操作、或步骤,但是这些实施例中的任何实施例可以包括本领域普通技术人员将理解的、本文中任何地方所描述或所示出的部件、元件、特征、功能、操作、或步骤中的任一者的任何组合或排列。此外,在所附权利要求中对适用于、被布置为、能够、被配置为、使能够、能被操作、或可被操作以执行特定功能的装置或系统、或装置或系统中的部件的引用包括该装置、系统、部件,无论该装置、系统、部件或该特定功能是否被激活、开启或解锁,只要该装置、系统或部件被如此适用于、被布置为、能够、被配置为、使能够、能被操作或可被操作。另外,尽管本公开将特定实施例描述或示出为提供特定优点,但是特定实施例可以不提供这些优点,或者可以提供这些优点中的一些或全部。

技术分类

06120116524176