一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

针对虚拟环境运动的实时式样的制作方法

2022-10-27 00:05:24 来源:中国专利 TAG:

针对虚拟环境运动的实时式样


背景技术:

1.虚拟现实(vr)系统提供了用户在其中可以与虚拟内容交互的模拟环境。vr系统使用对应于用户真实世界运动的运动数据以操纵模拟环境中用户的化身。通常,化身的动作和运动受限于用户个人能力和/或用户真实世界环境的物理限制。因此,在使用此类vr系统时,很多用户感到体验明显下降。
2.正是出于这些和其他一般考虑,做出了本文公开的各方面。此外,虽然可能讨论了相对具体的问题,但应当理解,示例不应限于解决在背景技术或本公开的其他地方所标识的具体问题。


技术实现要素:

3.本公开的示例描述了用于在虚拟现实(vr)、增强现实(ar)和/或混合现实(mr)环境中提供实时运动式样(styling)的系统和方法。在各方面,可以接收对应于用户与vr、ar、或者mr的环境交互的输入数据。输入数据可以被特征化以生成特征集。可以将特征集与已存储运动数据集相比较,该运动数据集包括表示用于执行动作或活动的一个或多个运动样式的运动捕获数据。基于该比较,可以将特征集与针对已存储运动数据中的一个或多个运动样式的特征数据相匹配。然后,一个或多个运动样式可以由vr/ar/mr环境中的虚拟化身或虚拟对象执行。例如,运动样式可以应用于虚拟化身,该虚拟化身准确地表示用户身体和/或四肢的位置、形状、以及大小。虚拟化身可以实时执行运动样式,使得运动样式与用户交互紧密匹配。
4.提供本发明内容是为了以简化形式介绍一些概念,这些概念将在下面的具体实施方案中进一步描述。本发明内容并不旨在标识所要求保护的技术方案的关键特征或基本特征,也并不旨在用于限制所要求保护技术方案的范围。示例的附加方面、特征、和/或优点将在随后的描述中阐述,并且部分地将从描述中显而易见,或者可以通过本公开的实践来了解。
附图说明
5.非限制性和非穷举性示例参照以下附图被描述。
6.图1图示了用于在本文所描述的vr、ar、和/或mr环境中提供实时运动式样的示例系统的概述。
7.图2图示了用于在本文所描述的vr、ar、和/或mr环境中提供实时运动式样的示例输入处理单元。
8.图3图示了用于在本文所描述的vr、ar、和/或mr环境中提供实时运动式样的示例方法。
9.图4是图示了计算设备的示例物理组件的框图,本公开的各个方面可以利用这些组件来实践。
10.图5a和5b是移动计算设备的简化框图,本公开的各个方面可以利用该移动计算设
备来实践。
11.图6是分布式计算系统的简化框图,其中可以实践本公开的各个方面。
12.图7图示了用于执行本公开的一个或多个方面的平板计算设备。
具体实施方式
13.下面参考附图更全面地描述本公开的各个方面,附图构成本公开的一部分,并且示出了具体示例方面。然而,本公开的不同方面能够以许多不同的形式实现,并且不应被解释为限于本文阐述的方面;相反,提供这些方面使得本公开将是彻底和完整的,并且将向本领域技术人员充分传达这些方面的范围。各方面可以作为方法、系统或设备进行实践。所以,各方面可以采取硬件实现、完全软件实现、或者组合软件和硬件方面实现的形式。因此,以下详细描述不应被理解为限制性意义。
14.vr使得用户只需戴上vr耳机,拿起vr控制器,就能够将自己传送到虚拟环境中。当用户在vr会话期间移动他们头部和手部时,由vr跟踪系统(例如,经由耳机、控制器、以及vr系统/应用的其他组件中的传感器)捕获的运动将被应用于呈现给用户的视觉绘制。许多vr系统显示作为用户的图形表示的虚拟化身。在此类系统中,由耳机和控制器检测到的运动被映射到化身的对应部分。映射过程通常涉及用户的运动到化身的运动的直接耦合,这使得用户能够保持化身的完全代理。本文使用的直接耦合是指用户的物理移动和用户化身的物理移动的一对一耦合。因此,由于手眼协调和本体感觉由视觉化身精确地表示,直接耦合使得用户的自然交互成为可能。在许多采用直接耦合的vr系统中,由于缺少传感器、遮挡、或者噪声,用户身体的许多部位可能无法被跟踪。因此,针对未跟踪的身体部位的姿势由vr系统使用例如逆运动学、适配应用上下文的动画、或者预捕获的数据进行插值。
15.尽管直接耦合很简单,但许多vr系统可能会受限于直接耦合的使用。例如,在一些场景中,诸如在动作游戏中,由于用户物理环境的空间约束、用户的身体限制、或者它们的一些组合,用户在物理(例如,真实)世界中的物理能力可能受到限制。此类物理限制可能对用户的虚拟化身产生不利影响,虚拟化身可以由运动员、战士、舞者等表示。例如,当参与vr系统的网球应用时,用户可能在用户的物理环境中没有足够的空间来模拟一个或多个动作(例如,发球、全反手挥拍、与球场覆盖相关联的移动等)。或者,由于身体损伤或缺乏身体训练,用户可能无法执行这些动作。无论哪种情况,结果,用户的化身在网球应用中可能无法最佳地(或者甚至充分地)执行。这种次优执行可能会严重降低用户体验,并且妨碍用户表达期望的虚拟运动。
16.此外,由于缺少传感器、遮挡或噪声,许多采用直接耦合提供传感器的vr系统可能无法跟踪用户身体的一个或多个部位。例如,仅跟踪用户头部和手部位置(经由耳机和手部控制器)的vr系统可以将头部和手部的位置映射到用户的化身。然而,针对化身的许多其他身体位置(例如,腿部位置、脚部位置等)可能是未知的。因此,针对未跟踪的身体部位的姿势通常由vr系统使用例如逆运动学、适配应用上下文的动画、或者预捕获的数据进行插值。然而,此类技术可能限制用户对用户化身控制、实施和/或代理的感知。
17.为了解决vr系统中的此类挑战,本公开描述了用于在vr、ar、和/或mr环境中提供实时运动样式的系统和方法。在各方面,用户可以访问虚拟现实(vr)、增强现实(ar)或混合现实(mr)系统。该系统可以包括头戴式显示器(hmd)、零个或大于零个的控制器设备、和/或
零个或大于零个的附加传感器组件,或者从rgb摄像机、深度摄像机、或者任何其他传感(诸如声学或磁传感)对用户姿势进行遥感。hmd可以被用于向用户呈现包括二维(2d)和/或三维(3d)内容的环境。(多个)控制器或用户手势和语音可以被用于操纵环境中的内容。内容可以包括例如2d和3d对象,诸如化身、视频对象、图像对象、控制对象、音频对象、触觉绘制设备等。
18.在各方面,对应于用户与系统交互的输入数据(例如,运动数据、音频数据、语音、文本数据等)可以由系统的一个或多个传感器(可穿戴或遥感)接收。输入数据可以被组织成一个或多个段或数据帧。针对每个段/数据帧,可以生成特征数据集。特征数据集可以包括例如对象类型信息、速度数据、加速度数据、位置数据、声音数据(诸如语音数据、脚步声、或者其他运动噪声数据)、压力数据、和/或扭矩数据。在至少一些示例中,特征数据集可以被变换为特定坐标系/空间,或者可以相对于特定坐标系/空间被定义。(多个)特征数据集可以被用于缩放将要应用于用户化身的输出运动。如本文所用的,缩放是指从输入数据对运动进行插值。缩放技术的示例包括一对一映射(例如,用户运动由用户化身直接反映)、基于位置的缩放、基于轨迹的缩放、或者它们的组合。在示例中,缩放使得用户在物理环境中以较小的足迹执行运动的同时能够观察完全表达的化身运动。因此,缩放使得用户能够在空间受限的环境中执行更大规模或更广泛的运动,或者执行更缜密(rigorous)或更伸展的运动,而不会变得疲劳。
19.在各方面,也可以将特征数据与运动捕获数据集进行比较。运动捕获数据可以包括与由一个或多个主体执行的各种动作、活动、和/或运动相对应的运动数据。备选地(或附加地),可以使用例如动画或物理模拟来合成地生成运动数据。在示例中,每个主体(或主体的分组)可以表现出用于执行动作、活动、或者移动的不同或具体运动。由每个主体(或主体的分组)执行的具体运动可以表示(多个)主体的“样式”。在一些方面,与运动数据相关联的特征数据可能与运动数据一起被存储。特征数据可以被归一化到一个或多个身体部位或坐标系。例如,特征数据可以表示头部相对运动。或者,特征数据可以与深度视频、声音运动数据、用户脑电波(或其他生物信号)等相关联。
20.在各方面,可以将针对输入数据的特征数据与针对运动捕获数据的特征信息进行比较。基于该比较,可以标识运动捕获数据中的零个、一个或多个候选运动。针对每个候选运动,可以计算表示候选运动与输入数据之间的相似度的匹配得分。基于匹配得分,可以合成与用户交互相对应的运动。该合成的运动是由匹配运动的特征向量之间的相对距离加权的若干匹配运动和用户一对一映射数据的混合。在一些示例中,还可以对一对一数据进行加权。合成的运动可以被用于将用户化身对应于由系统的传感器检测到的移动的部分制成动画。在一些方面,合成运动可以进一步被用于插值全身运动。例如,虽然输入数据可能仅与用户的头部和手部运动相对应,但可以针对系统的传感器尚未检测到的用户部位生成一个或多个合成运动。针对用户的未跟踪部位合成运动数据可以包括:针对各个身体部位生成单独的映射,以及融合单独的映射(每个肢体)以产生全身运动。然后,合成的全身运动可以被应用于用户的化身。作为合成过程的结果,用户的原始输入运动可以被实时变换为优雅和/或敏捷的全身动画,这些动画以一个或多个主体样式执行。
21.因此,本公开提供了多种技术优势,包括但不限于:自适应地将用户输入运动与虚拟化身绘制解耦、样式化用户输入以匹配由专家或其他用户执行的运动、从用户输入的子
集生成全身运动、将运动缩放集成为运动样式化的一部分、在绘制虚拟化身运动时保持手眼协调、巨像和本体感觉、使用运动数据的数据集合成样式化运动轨迹、使用用户输入的特征数据和已存储运动数据评估一组候选运动、将身体运动转换到以用户为中心的坐标系/空间中、在多个数据帧中单独评估多个身体段、使用一个或多个算法对候选运动/位置进行排序、缩放用户输入以实现低运动足迹、针对空间受限环境中的用户、具有物理限制的用户样式化运动,并且在使用vr、ar、和/或mr系统时使得用户能够减少疲劳和受伤风险等等。
22.图1图示了用于在本文所描述的vr、ar、和/或mr环境中提供实时运动式样的示例系统的概述。呈现的示例系统100是相互依赖的组件的组合,这些组件相互作用以形成用于在虚拟环境或包括虚拟内容的环境中绘制2d和/或3d内容的集成的整体。系统的组件可以是在系统的硬件组件上实现和/或由系统的硬件组件执行的硬件组件或软件。在示例中,系统100可以包括硬件组件(例如,用于执行/运行操作系统(os))和在硬件上运行的软件组件(例如应用、应用程序接口(api)、模块、虚拟机、运行库等)中的任何一个。在一个示例中,系统100可以为软件组件提供运行环境,遵守为操作设置的约束,并且利用系统100的资源或设施,其中组件可以是在一个或多个处理设备上运行的软件(例如,应用、程序、模块等)。例如,软件(例如,应用、操作指令、模块等)可以在处理设备上运行,诸如个人计算机(pc)、移动设备(例如,智能电话/电话、平板电脑、笔记本电脑、个人数字助理(pda)等)、和/或任何其他电子计算设备。作为处理设备操作环境的示例,参考图4-7中所描绘的示例操作环境。在其他示例中,本文所公开的系统组件可以分布在多个设备上。例如,可以在客户端设备上输入,并且可以从网络中的其他设备(诸如一个或多个服务器设备)处理或访问信息。
23.作为一个示例,系统100包括计算设备102和计算设备104、虚拟环境服务106、分布式网络108、以及运动捕获数据存储110。本领域技术人员将理解,诸如系统100的系统的规模可能变化,并且可能包括比图1中所描述的组件更多或者更少的组件。在各方面,计算设备102和计算设备104可能是各种计算设备中的任何一种,包括但不限于上面所描述的处理设备。计算设备102和计算设备104可以被配置为使用一个或多个输入设备用于与虚拟环境服务106交互,诸如头戴式显示设备或替代的虚拟环境可视化系统、零个、一个或多个控制器设备(例如操纵杆、控制棒、强力球、跟踪球等)、用户运动的遥感,包括麦克风、摄像机、深度摄像机、雷达、磁传感或声学传感、数据手套、紧身衣、跑步机或运动平台、键盘、麦克风、一个或多个触觉设备等。此类输入设备可以包括一个或多个传感器组件,诸如加速度计、磁力计、陀螺仪等。在示例中,输入设备可以被用于与使用虚拟环境服务106呈现的内容交互和/或操作使用虚拟环境服务106呈现的内容。
24.虚拟环境服务106可以被配置为提供虚拟环境和/或将虚拟内容应用于物理或虚拟环境。例如,虚拟环境服务106可以提供vr环境,或者可以提供在ar和mr环境中显示的虚拟内容和交互。在各方面,虚拟环境服务106可以例如作为交互式生产力或者游戏平台的一部分被提供。应当理解,虽然虚拟环境服务106被图示为与计算设备102和计算设备104分离,但是虚拟环境服务102(或它的一个或多个组件或实例)可以由计算设备102或计算设备104单独或共同提供。作为特定示例,计算设备102和104可以各自提供虚拟环境服务106的单独实例。在此类示例中,可以使用已存储可执行文件在计算设备102上本地访问虚拟环境服务106的实例;然而,计算设备104可以通过网络(诸如分布式网络108)访问虚拟环境服务106的实例。在各方面,虚拟环境服务106可以向计算设备102和计算设备104的一个或多个
用户提供虚拟内容。虚拟内容可以包括交互式和非交互式元素和内容。作为一个示例,虚拟环境服务106可以提供用户的交互式虚拟化身。用户可以使用上面所描述的输入设备与虚拟化身交互。当从一个或多个输入设备检测到用户移动时,虚拟环境服务106可以在运动捕获数据存储110中搜索与用户移动匹配的运动数据。虚拟环境服务106可以将匹配的运动数据应用于虚拟化身,从而使得虚拟化身执行运动数据。
25.运动捕获数据存储110可以被配置为存储运动捕获数据和与运动数据相关联的附加数据,诸如音频数据、压力数据、扭矩数据、深度点云、面部表情数据等。运动捕获数据可以包括与各种动作、活动、和/或移动相关联的运动数据。运动捕获数据可以包括全身运动数据和/或部分身体运动数据(例如,仅头部和手部运动数据)。在一些示例中,运动数据可以被组织成一个或多个类别,诸如人类交互数据、行动数据、体育活动数据、非人类运动数据等。可以使用一个或多个运动捕获系统/设备(诸如惯性运动捕获传感器、机械运动捕获传感器、磁性运动捕获系统传感器、光学运动捕获传感器、rgbd摄像机、雷达、从现有视频的恢复、动画、物理模拟、非人类演员等)从多个主体收集运动数据。主体可以表示各种主体类别或者被分类到各种主体类别,诸如专家或专业人员、成功或著名主体、中等或低经验主体等。在各方面,运动数据可以与特征数据集相关联。特征数据可以包括与在特定运动期间执行的各种姿势有关的信息。此类信息可以包括,例如,针对运动过程中用户身体的一个或多个段的速度、加速度、和/或位置数据。此类信息可以附加地包括深度点云数据、音频数据、压力数据、扭矩数据、脑电波记录等。例如,特定运动可以被分割为3秒内的360个单独的数据/姿势帧。
26.图2图示了用于在本文所描述的vr、ar、和/或mr环境中提供实时运动式样的示例输入处理系统200的概述。由输入处理系统200实现的运动式样技术可以包括图1的系统中描述的技术和数据。在一些示例中,输入处理系统200的一个或多个组件(或者它的功能)可以分布在多个设备上。在其他示例中,单个设备(至少包括处理器和/或存储器)可以包括输入处理系统200的组件。
27.在各方面,输入处理系统200可以生成或者提供对一个或多个虚拟(例如,vr、ar、或mr)环境的访问。虚拟环境可以使用hmd或类似的显示技术(未示出)查看,并且可以包括虚拟内容和/或物理(例如,真实世界)内容。虚拟内容可以使用一个或多个输入设备(未示出)来操纵(或以其他方式交互)。在图2中,输入处理系统200包括输入检测引擎202、特征分析引擎204、映射组件205、样式分析引擎206、运动缩放引擎208、以及样式化运动执行引擎210。本领域技术人员将理解,系统200的规模可能变化,并且可能包括比图1中所描述的组件更多或者更少的组件。
28.输入检测引擎202可以被配置为检测用户输入。用户输入可以由一个或多个用户操作的零个、一个或多个输入设备以及(多个)用户的可能外部传感来提供。在示例中,输入检测引擎202可以包括一个或多个传感器组件,诸如加速度计、磁力计、陀螺仪等。备选地或附加地,此类传感器组件可以被实现到由用户操作的输入设备中。在任一情况下,输入检测引擎202可以检测或接收与用户与虚拟环境或其虚拟(或物理)内容交互相对应的输入数据。输入数据可以包括运动数据、音频数据、文本数据、眼睛跟踪数据、对象或菜单交互数据等。在许多方面,输入数据可以作为一个或多个数据文件或数据会话来收集和/或被分割成一个或多个数据文件。输入检测引擎202可以将输入数据存储在一个或多个数据存储位置
中,和/或向输入处理系统200的一个或多个组件(诸如特征分析引擎204)提供输入数据。
29.特征分析引擎204可以被配置为从接收的输入数据产生特征数据集。在各方面,特征分析引擎204可以接收(或以其他方式访问)所接收的输入数据。在访问输入数据时,特征分析引擎204可以对输入数据执行一个或多个处理步骤。作为一个示例,特征分析引擎204可以将输入数据分割成一组数据帧。例如,每个数据帧可以表示输入数据的“n”毫秒块。对于每组帧,可以标识针对已经接收/检测到输入的每个输入设备的位置数据。例如,可以标识针对用户头部和手部的位置数据。在一些方面,位置数据可以被平移到以头部为中心的坐标系中。也就是说,可以将位置数据归一化到用户头部空间。在转换/归一化位置数据之后,可以针对每组帧生成特征数据。特征数据可以包括针对每个输入设备的加速度、速度和位置信息。特征数据可以被用于产生一个或多个特征向量。如本文所使用的,特征向量可以指表示一个或多个数据点或对象的数值特征的n维向量。在至少一个方面,特征分析引擎204可以针对超过一个用户生成特征。针对多个用户生成的特征可以由特征分析引擎204使用,以基于来自多个用户的输入适配运动。
30.在各方面,特征分析引擎204可以进一步被配置为从已存储运动数据产生比较特征数据集。在各方面,特征分析引擎204可以访问数据仓库,该数据仓库包括针对各种动作、活动、事件、和/或移动的运动捕获数据。运动捕获数据可以被组织和/或存储在数据会话中。每个数据会话可以表示由特定主体(或多个主体)执行的特定动作、活动、或者事件。针对每个数据会话,特征分析引擎204可以将数据会话中的运动转换到以头部为中心的坐标系中,如前所述,或者转换为数据的替代投影。该平移对于一般旋转和平移可能是不变的,或者对于旋转和位置(例如全局位置)是变化的。然后可以抽取数据会话以匹配一个或多个输入设备的帧速率。作为具体示例,可以抽取数据会话以匹配vr系统控制器的90hz帧速率。然后,每个数据会话可以被划分为时间块,该时间块包括随时间变化的针对每个输入设备的位置数据。例如,可以使用具有50毫秒重叠的滑动窗口来将每个数据会话划分为100毫秒块。针对每个数据会话的代表性姿势窗口(例如姿势的序列)可以从该数据会话中的各种姿势窗口中选择。代表性姿势窗口通常可以表示在数据会话中执行的特定动作、活动、或者事件。
31.在一些方面,为了使后续匹配计算对于绕y轴的旋转是不变的,可以将运动捕获数据中的每个姿势窗口沿着y轴变换到代表性姿势窗口的坐标空间中。该变换包括找到两个3d时间点云之间的旋转,其中对应关系是已知的。在至少一个示例中,可以使用以下等式:在上面的等式中,wi表示分配给时间窗口中每个点的权重,n表示数据会话中的帧的数目,q表示要旋转的姿势窗口,s表示代表性姿势窗口,并且x和z分别表示主体左手和右手的x和z坐标。在该等式中,在姿势窗口开始处的位置向量应具有比姿势窗口结束处的位置向量更大的权重的假设下使用权重。在对每个数据会话旋转归一化之后,可以针对数据会话产生特征数据(例如,比较特征数据)。可以从特征数据产生特征向量,并且将其与数据会话一起存储或为数据会话存储。
32.映射组件205可以被配置为将特征数据映射到传感的运动。在各方面,映射组件205可以将特征数据映射到一个或多个运动。例如,映射组件205可以将特征数据映射到与网球发球运动相对应的头部和手部移动。映射可以包括,例如,用户运动到全身运动的非均匀缩放、校正缺失或不同的肢体运动、从人体运动到非人类运动的映射、从非人类运动到人类运动的映射、和/或vr系统/应用所需的其他变换。作为一个具体示例,映射组件205可以将与行走运动相对应的特征数据映射到表示为八条腿蜘蛛的化身的行走运动。
33.样式分析引擎206可以被配置为将接收的输入数据与已存储运动数据进行比较。在各方面,样式分析引擎206可以访问针对输入数据的特征向量(“输入特征向量”)。在访问输入特征向量之后,样式分析引擎206可以迭代已存储运动数据中的数据会话。在一些示例中,在访问已存储运动数据时,样式分析引擎206可以如上面所描述的产生(或使特征分析引擎206产生)针对已存储运动数据的比较特征数据集。一旦输入特征向量和数据会话的特征向量(“比较特征向量”)位于同一坐标空间(例如,以头部为中心的坐标系),则执行比较。该比较可以包括使用例如k-最近邻算法计算输入特征向量和每个比较特征向量之间的匹配距离。基于该比较,可以标识距离d内的前k个值。在示例中,该比较可以针对不同的肢体单独执行。例如,可以标识针对用户左手的前k
t
个候选匹配,以及可以标识针对用户右手的前kr个候选匹配。
34.在各方面,针对每个输入设备的各种候选匹配可以被用于合成最终样式化运动。合成样式运动可以被限制为化身的那些使用一个或多个输入设备检测到运动的部分。例如,如果用户运动仅由hmd和两个手部控制器检测到,则可以仅针对化身的头部和手部生成相应的样式化运动。备选地,合成样式运动可以包含针对化身的未检测的运动的一个或多个部分的外推数据。例如,如果用户运动仅由hmd和两个手部控制器检测,相应的样式化运动可以包含与检测到的运动匹配的全身(例如,躯干、腿部关节、脚等)运动。结果,最终样式化运动可以在向化身的整个身体加以样式化运动的同时保持用户输入运动的特点。
35.在各方面,最终的样式化运动可以使用各种技术来合成。作为一个示例,已存储运动数据中特征的分布可以建模为高斯的混合。给定的候选匹配姿势可以被建模为在混合模型中使用的平均值的加权线性组合,并且两个匹配可以被组合以最大化得到插值匹配的可能性。作为另一示例,可以使用在上面描述的比较期间计算的距离度量(d)来完成合成。例如,给定的表示为dk的k个匹配的距离,可以构造与dk成反比的权重。对于左手和右手,可以使用以下等式:并且在上面的等式中,w
l
表示针对左手的权重,wr表示针对右手的权重,d
max
表示有效匹配的最大距离阈值,并且w介于0和1之间。基于上面的等式,可以使用以下等式计算输出姿势o和每个联合概率j:并且为了保持空间一致性,输出姿势o可以基于联合概率与人体骨骼运动模型适配。为了保持时间一致性,可以使用以下指数加权移动平均值:ot
=jo
t
(1-j)o
t-1
通过向后旋转o
t
并且将头部平移向量添加到o
t
,可以将得到的输出姿态o
t
转换回用户输入空间。
36.运动后处理引擎208可以被配置为变换针对输入数据的输出运动。变换的示例方法包括运动缩放(例如,一对一缩放、基于位置的缩放、基于轨迹的缩放等),应用运动滤波(例如,卡通动画滤波、运动模糊滤波、运动失真滤波等),应用运动平滑技术(例如,使用平滑卷积核、高斯平滑处理器等),等等。此类变换方法可以使用户能够在空间受限环境中执行运动时保持较低的运动足迹,或者使用户能够在执行较大或较大量的运动时避免疲劳。在各方面,运动后处理引擎208可以将输入特征向量和/或输入数据的位置信息映射到虚拟环境中的一个或多个虚拟对象。该映射可以包括一个或多个运动变换技术。作为一个示例,运动后处理引擎208可以实现一对一映射,其中用户检测到的运动强耦合到用户化身的绘制运动中。即,用户的运动被直接反映在所执行的虚拟环境中。作为另一示例,运动后处理引擎208可以实现基于位置的缩放,其中可以使用因子来延长或缩小虚拟对象与特定点的距离。作为特定示例,可以使用常量因子来增加或减少化身的手部相对于化身的肩部位置的可到达范围。这在数学上可以表示为:在上面的等式中,s是比例因子。作为又一示例,运动后处理引擎208可以实现基于轨迹的缩放,在该缩放中可以使用因子来缩放虚拟对象的速度。作为特定示例,不是缩放化身的手部的位置,而是使用恒定因子来缩放化身手部的速度。这在数学上可以表示为:
37.在上面的等式中,s是比例因子。作为又一示例,运动后处理引擎208可以基于对象到用户身体的距离使用不同缩放的区域实现自适应缩放技术。例如,用户身体附近的运动可以被强耦合以保持本体感觉;然而,当对象(例如手部)远离用户的身体时,可能会应用更多的缩放。以这种方法,当虚拟对象(例如虚拟手部)被扩展到化身的最大限度时,缩放可以被禁用,以防止不自然地扩展虚拟对象的出现。
38.样式化运动执行引擎210可以被配置为绘制样式化运动。在各方面,样式化运动执行引擎210可以将由样式分析引擎206确定的运动样式化和由运动后处理208确定的运动变换(例如,缩放、应用滤波等)应用于用户化身或替代虚拟对象。应用运动样式化和缩放可能导致化身或虚拟对象执行一个或多个样式化运动。可以应用运动样式化和缩放,使得用户能够在整个用户的移动周期中保持对化身或虚拟对象的完全代理。
39.在描述了可由本文所公开的各方面采用的各种系统之后,本公开现在将描述可由本公开的各种方面执行的一种或多种方法。在各方面,方法300可以由执行环境或系统来执行,该系统诸如图1的系统100或图2的系统200。然而,方法300不限于此类示例。在其他方面,方法300可以对应用或者提供虚拟环境的服务执行。在至少一个方面,方法300可以由分布式网络的一个或多个组件(诸如,web服务/分布式网络服务(例如,云服务))执行(例如,计算机实现的操作)。
40.图3图示了用于在本文所描述的vr环境中提供实时运动式样的示例方法300。尽管本文相对于vr环境描述了方法300,但应该理解,方法300的技术也可以被应用于其他虚拟
或3d环境,诸如ar和mr环境。在各方面,虚拟应用、服务、或者系统,诸如虚拟环境服务106,可以提供包括各种2d和/或3d对象的虚拟环境。虚拟应用/服务/系统(下文称为“虚拟系统”)可以与用于查看虚拟环境的显示设备和用于与虚拟环境交互的一个或多个输入设备相关联。虚拟系统可以利用绘制组件,诸如样式化运动执行引擎210。绘制组件可以被用于绘制各种虚拟内容和对象。在示例中,绘制对象中的至少一个可以是表示与虚拟环境交互的用户的虚拟化身。
41.示例方法300开始于操作302,其中可以接收与用户与虚拟系统交互相对应的输入数据。在各方面,包括传感器组件的一个或多个输入设备可以被用于向虚拟系统提供输入数据。输入设备(或其传感器组件)可以响应于各种用户输入来检测输入数据,诸如运动数据、音频数据、文本数据、眼睛跟踪数据等。作为具体示例,虚拟系统的vr应用的用户可以使用hmd和两个手部控制器与vr应用交互。hmd和手部控制器可各自包括一个或多个传感器组件(例如,加速度计、磁力计、陀螺仪等)。当使用hmd和手部控制器时,用户可以模拟动作,例如网球发球。hmd和手部控制器的传感器可以收集和/或记录模拟动作的运动数据。例如,运动数据可以包括在模拟动作的持续时间内针对用户头部和手部的速度、加速度、和/或位置信息。在一些方面,可以按照虚拟系统的技术能力,收集运动数据和/或将运动数据存储为一个或多个数据帧。例如,输入数据可以按照虚拟系统手部控制器的90hz帧速率存储在数据帧中。所收集的运动数据可以实时地或按设定的间隔(例如,每秒)被提供给vr应用。vr应用程序的数据收集组件,诸如输入检测引擎202,可以接收和/或存储输入数据。
42.在操作304,可以使用接收到的输入数据来生成特征数据。在各方面,接收到的输入数据可以被提供给vr应用或虚拟系统的输入数据分析组件,诸如特征分析引擎204。输入数据分析组件可以对输入数据执行一个或多个处理步骤。一个处理步骤可以包括将输入数据分割为一组数据帧,每个数据帧表示输入数据中的时间段。例如,输入数据可以被分割为100毫秒的数据帧。或者,输入数据分析组件可以简单地标识该组数据帧中的这些段。另一处理步骤可以包括标识每个数据帧中的运动数据。例如,在每个数据帧中,可以针对用于与虚拟系统交互的每个输入设备标识位置数据,而不管输入设备是否已经检测到输入数据。或者,可以仅针对已经检测到输入数据的那些输入设备标识位置数据。在一些方面,针对每个数据帧所标识的位置数据可以被转换到特定坐标系中。例如,位置数据可以被归一化到用户或用户的hmd的特定头部空间或头部位置。尽管本文中已经具体提到了关于用户头部空间/位置的归一化,但也考虑了备选的方法和归一化点。又一处理步骤可以包括针对输入数据生成特征数据。例如,对于每个数据帧,可以针对数据帧中表示的每个输入设备生成特征数据。特征数据可以包括针对每个输入设备的加速度、速度、和/或位置信息。特征数据可以被用于产生表示一个或多个数据帧的特征数据的一个或多个特征向量。在至少一个示例中,特征向量可以是加速度、速度、以及位置的级联,从而封装一个或多个数据帧的时空信息。
43.在操作306,可以将特征数据与运动数据集进行比较。在各方面,所生成的特征数据可以被提供给vr应用或虚拟系统的特征比较组件(或者以其他方式被vr应用或虚拟系统的特征比较组件访问),诸如样式分析引擎204。特征比较组件可以访问运动捕获数据和/或视频数据的数据存储,诸如卡内基梅隆大学运动捕获数据集。数据存储可以包括与由一个或多个运动捕获对象执行的各种动作或活动相对应的运动数据。作为具体示例,数据存储
可以包括与网球、拳击、篮球、跑步、以及游泳的活动相对应的运动数据文件(或其他数据结构)。针对每个活动的运动数据可以被分组到该活动的子活动中。例如,网球运动数据文件可以被分为以下类别:发球运动数据文件、正手运动数据文件,反手运动数据文件、截击运动数据文件等。对于每个活动(和/或子活动),可以存储针对多个运动捕获主体的运动数据。例如,网球运动数据可以包括针对网球专业人士的运动数据,诸如塞琳娜
·
威廉姆斯、罗杰
·
费德勒、斯蒂芬
·
格拉夫和吉米
·
康纳斯。由于每个运动捕获主体可以使用不同或独特的运动来执行每个活动(和/或子活动),针对特定运动捕获主体的运动数据可以表示主体的运动“样式”。在一些方面,数据存储的运动数据可以包括相应的特征数据或者可以与相应的特征信息一起存储。例如,每个运动数据文件可以包括对应的特征向量。
44.在各方面,针对输入数据的特征数据(“输入特征数据”)可以与由这些特征索引的运动捕获数据(“比较特征数据”)相匹配。评估可以包括将与输入特征数据相关联的一个或多个特征向量同与比较特征数据相关联的一个或者多个特征向量进行比较。比较可以包括迭代每个运动数据文件或数据结构。或者,比较可以包括使用一个或多个搜索实用程序(utility)来搜索数据存储。作为具体示例,与针对模拟网球发球的输入特征数据相关联的特征向量可以被提供给运动标识模型或实用程序。运动标识模型/实用程序可以分析特征向量以确定与特征向量相关联的活动(例如网球)的类别。基于该确定,运动标识模型/实用程序可以标识或取回分类为网球(或与网球有关)的运动数据集。在一些方面,比较可以进一步包括使用一个或多个分类算法或技术,诸如k-最近邻、逻辑回归、朴素贝叶斯分类器、支持向量机、随机森林、神经网络等。分类算法/技术可以被用于确定近似匹配于输入数据的一组候选运动。例如,k-最近邻算法可以用于确定匹配与输入特征数据相关联的特征向量的值的前k个候选。该确定可以包括对从多个输入设备接收的运动数据的分析。例如,可以标识匹配用户左手的前k
t
个候选,以及可以标识匹配该用户右手的前kr个候选。
45.在操作308,可以从一组匹配候选合成运动。在各方面,特征运动合成vr应用或虚拟系统的组件,例如样式分析引擎204,可以从运动候选列表中确定一个或多个顶级/最佳候选。在具体示例中,该确定可以包括使用k-最近邻算法来标识具有特征数据中的一个或多个特征的欧几里得距离d的(多个)最高值。在此类示例中,如果没有值被确定为在距离d内,则不能从运动候选列表中选择候选。所确定的顶级候选运动可以被用于合成样式运动或从运动数据集合中选择运动样式。合成样式运动可以包括使用一种或多种合成技术。作为一个示例,已存储运动数据中特征的分布可以建模为高斯的混合。给定的候选匹配姿势可以被建模为混合模型中使用的平均值的加权线性组合,并且两个匹配可以被组合以最大化得到插值匹配的可能性。作为另一示例,在比较期间计算的距离度量(d)可以被用于构造应用于各种输入设备的运动数据的反比权重。在该示例中,外部姿势可以基于联合概率与人体骨骼运动学模型适配。在一些方面,合成样式运动可以进一步包括从特征数据插值完整(或部分)身体运动/姿势。例如,从上述示例继续,用户可以在使用vr系统的hmd和手部控制器时,模拟网球发球。基于来自hmd和手部控制器的输入数据,可以从运动数据的存储中选择运动样式。运动数据可以包括针对网球发球的头部和手部运动数据以及躯干和下体运动数据。因此,可以针对输入数据选择用于网球发球的全身式运动。
46.在操作310,后处理变换(例如,缩放)可以被应用于生成化身运动。在各方面,生成的运动(从来自运动数据集的最靠近的运动插值)可以经历到vr空间的变换。变换的示例可
以包括一个或多个运动缩放技术,诸如一对一映射、基于位置的缩放、基于轨迹的缩放、基于区域的缩放、或者它们的一些组合。在示例中,缩放可使得用户能够在空间受限环境中执行运动时保持低运动足迹,或者使得用户在执行大规模的或广泛的运动时避免疲劳。例如,继续上述示例,vr应用的用户可以模拟网球发球。由于用户物理环境的空间约束(诸如低天花板),在模拟网球发球期间,用户可能无法完全向上伸展她的手部。在接收到针对模拟网球发球的输入数据时,运动缩放组件可以向接收到的输入数据应用一个或多个自适应运动缩放技术。基于缩放技术,输入数据中的位置信息可以被缩放,使得用户的物理约束不被应用于用户的化身。也就是说,当化身模拟网球发球时,用户化身的手部可以完全向上伸展。
47.在操作312,合成样式运动可以由虚拟现实系统分配给虚拟化身。在各方面,合成运动可以应用于vr应用中的一个或多个对象(组件210)。例如,合成的样式化运动可以应用于用户的化身。结果,化身可以以完全表达化身运动的方式在新的样式化运动中移动。即,以不指示用户或用户物理环境的物理限制的方式。
48.图4-7和相关描述提供了各种操作环境的讨论,在这些环境中可以实践本公开的各个方面。然而,关于图4-7图示和讨论的设备和系统是出于示例和说明的目的,并且不限制可用于实践本文所描述的本公开的各方面的大量计算设备配置。
49.图4是图示了计算设备400的物理组件(例如,硬件)的框图,本公开的各方面可以利用该计算设备400来实践。以下描述的计算设备组件可以适合于上述计算设备,包括计算设备102和计算设备104以及虚拟环境服务106。在基本配置中,计算设备400可以包括系统存储器404和至少一个处理单元402。根据计算设备的配置和类型,系统存储器404可以包括,但不限于,易失性存储器(如随机访问存储器)、非易失性存储(例如只读存储器)、闪存、或者此类存储器的任何组合。
50.系统存储器404可以包括操作系统405和适合于运行软件应用420的一个或多个程序模块406,诸如由本文所述系统支持的一个或者多个组件。作为示例,系统存储器404可以是虚拟环境应用424和文本网络部件426。例如,操作系统405可以适合于控制计算设备400的操作。
51.此外,本公开的实施例可以结合图形库、其他操作系统、或任何其他应用程序来实践,并且不限于任何特定的应用程序或系统。该基本配置在图4中由虚线408内的那些组件图示。计算设备400可以具有附加特征或功能。例如,计算设备400也可以包括附加数据存储设备(可移动的和/或不可移动的),诸如,例如,磁盘、光盘、或磁带。这此类附加存储在图4中由可移动存储设备409和不可移动存储设备410图示。
52.如上所述,多个程序模块和数据文件可以被存储在系统存储器404中。当在处理单元402上执行时,程序模块406(例如,应用420)可以执行处理,该处理包括但不限于本文所描述的方面。根据本公开的方面可以使用的其他程序模块可以包括电子邮件和联系人应用、文字处理应用、电子表格应用、数据库应用、幻灯片演示应用、绘图、或计算机辅助应用程序等。
53.此外,本公开的实施例可以在包括离散电子元件的电路、包含逻辑门的封装或集成电子芯片、利用微处理器的电路中实践,或者在包含电子元件或微处理器的单个芯片上实践。例如,本公开的实施例可以通过片上系统(soc)实践,其中图4中图示的每个或多个组件可以被集成到单个集成电路上。此类soc设备可以包括一个或多个处理单元、图形单元、
通信单元、系统虚拟化单元、以及各种应用功能,所有这些应用功能都作为单个集成电路集成(或“刻录”)到芯片基板上。当经由soc操作时,本文描述的关于客户端切换协议的能力的功能可以经由与单个集成电路(芯片)上的计算设备400的其他组件集成的专用逻辑来操作。本公开的实施例也可以使用能够执行逻辑操作(诸如and、or、以及not)的其他技术来实践,包括但不限于机械、光学、射流、以及量子技术。此外,本公开的实施例可以在通用计算机或任何其他电路或系统中实践。
54.计算设备400也可以具有一个或多个输入设备412,诸如键盘、鼠标、笔、声音或语音输入设备、触摸或滑动输入设备等。还可以包括输出设备414,诸如显示器、扬声器、打印机等。上述设备是示例,可以使用其他设备。计算设备400可以包括允许与其他计算设备450通信的一个或多个通信连接416。适当的通信连接416的示例包括但不限于射频(rf)发射机、接收机、和/或收发器电路;通用串行总线(usb)、并行和/或串行端口。
55.本文使用的术语计算机可读介质可以包括计算机存储介质。计算机存储介质可以包括以用于存储信息的任何方法或技术实现的易失性和非易失性、可移动和不可移动的介质,诸如计算机可读指令、数据结构、或程序模块。系统存储器404、可移动存储设备409、以及不可移动存储设备410都是计算机存储介质示例(例如,存储器存储)。计算机存储介质可包括ram、rom、电可擦除只读存储器(eeprom)、闪存或其他存储器技术、cd-rom、数字多功能磁盘(dvd)或其他光学存储、磁带盒、磁带、磁盘存储或其他磁存储设备、或可用于存储信息并且可由计算设备400访问的任何其他制品。任何此类计算机存储介质可以是计算设备400的一部分。计算机存储介质不包括载波或者其他传播或调制的数据信号。
56.通信介质可以由计算机可读指令、数据结构、程序模块、或调制数据信号(诸如载波或其他传输机制)中的其他数据实现,并且包括任何信息传递介质。术语“调制数据信号”可以描述具有一个或多个特点的信号,这些特征以编码信号中的信息的方式设置或改变。作为示例性而非限制性地,通信介质可以包括有线介质,诸如有线网络或直接有线连接,以及无线介质,诸如声学、射频(rf)、红外、和其他无线介质。
57.图5a和5b图示了移动计算设备500,例如,移动电话、智能电话、可穿戴计算机(诸如智能手表)、平板计算机、笔记本电脑等,本公开的实施例可以用这些来实践。在一些方面,客户端可以是移动计算设备。参考图5a,图示了用于实现这些方面的移动计算设备500的一个方面。在基本配置中,移动计算设备500是具有输入元件和输出元件两者的手持计算机。移动计算设备500通常包括显示器505和一个或多个输入按钮510,这些输入按钮允许用户将信息输入到移动计算设备500中。移动计算设备500的显示器505也可以用作输入设备(例如,触摸屏显示器)。
58.可选的侧输入元件515(如果包括的话)允许进一步的用户输入。侧输入元件515可以是旋转开关、按钮、或任何其他类型的手动输入元件。在替代方面,移动计算设备500可以包含更多或更少的输入元件。例如,在一些实施例中,显示器505可能不是触摸屏。
59.在又一替代实施例中,移动计算设备500是便携式电话系统,诸如蜂窝电话。移动计算设备500也可以包括可选的键盘535。可选的键盘535可以是物理键盘或是在触摸屏显示器上生成的“软”键盘。
60.在各种实施例中,输出元件包括用于显示图形用户界面(gui)的显示器505、视觉指示器520(例如,发光二极管)、和/或音频换能器525(例如,扬声器)。在一些方面,移动计
算设备500包含用于向用户提供触觉反馈的振动换能器。在又一方面,移动计算设备500包含输入和/或输出端口,诸如音频输入(例如麦克风插孔)、音频输出(例如耳机插孔)、以及视频输出(例如hdmi端口),用于向外部设备发送信号或从外部设备接收信号。
61.图5b是图示移动计算设备的一个方面的架构的框图。也就是说,移动计算设备500可以并入系统(例如,架构)502以实现一些方面。在一个实施例中,系统502被实现为能够运行一个或多个应用程序(例如,浏览器、电子邮件、日历、联系人管理器、消息客户端、游戏、以及媒体客户端/播放器)的“智能电话”。在一些方面,系统502被集成到计算设备,诸如集成的个人数字助理(pda)和无线电话。
62.一个或多个应用程序566可被加载到存储器562中,并且在操作系统564上运行或与操作系统564相关联地运行。应用程序的示例包括电话拨号程序、电子邮件程序、个人信息管理(pim)程序、文字处理程序、电子表格程序、互联网浏览器程序、消息收发程序等。系统502也包括存储器562内的非易失性存储区域568。非易失性存储区域568可以被用于存储即使系统502断电也不应丢失的持久性信息。应用程序566可以在非易失性存储区域568中使用并存储信息,诸如电子邮件或由电子邮件应用使用的其他消息等。同步应用(未示出)也驻留在系统502上,并且被编程为与驻留在主机上的对应的同步应用交互,以保持被存储在非易失性存储区域568中的信息与被存储在主机处的对应信息同步。应当理解,其他应用可以被加载到存储器562中并在本文所描述的移动计算设备500上运行(例如,搜索引擎、提取器模块、相关性排序模块、答案评分模块等)。
63.系统502具有电源570,该电源可以被实现为一个或多个电池。电源570可能进一步包括外部电源,诸如ac适配器或对电池进行补充或再充电的供电对接底座。
64.系统502也可以包括执行发送和接收射频通信的功能的无线电接口层572。无线电接口层572经由通信运营商或服务提供商来促进系统502与“外部世界”之间的无线连接。去往和来自无线电接口层572的传输在操作系统564的控制下进行。换句话说,由无线电接口层572接收的通信可以经由操作系统564传播到应用程序566,反之亦然。
65.视觉指示器520可以被用于提供视觉通知,以及/或者音频接口574可以被用于经由音频换能器525产生听觉通知。在图示的实施例中,视觉指示器520是发光二极管(led),音频换能器525是扬声器。这些设备可以直接耦合到电源570,使得当被激活时,即使处理器560和其他组件可能为了节省电池电量而关闭,它们也可以在通知机制规定的持续时间内保持开启。led可以被编程为无限期地保持开启,直到用户采取行动来指示设备的通电状态。音频接口574用于向用户提供可听信号并且从用户接收可听信号。例如,除了被耦合到音频换能器525之外,音频接口574也可以被耦合到麦克风以接收可听输入,诸如以促进电话会话。根据本公开的实施例,麦克风还可以用作音频传感器,以促进通知的控制,如下面将描述的。系统502可以进一步包括视频接口576,该接口使得星载摄像机530的操作能够记录静止图像、视频流等。
66.实现系统502的移动计算设备500可能具有附加特征或功能。例如,移动计算设备500还可以包括附加的数据存储设备(可移动和/或不可移动),诸如磁盘、光盘、或磁带。此类附加存储在图5b中由非易失性存储区域568图示。
67.由移动计算设备500生成或捕获并经由系统502存储的数据/信息可以本地存储在移动计算设备100上,如上所述,或者数据可以存储在任意数量的存储介质上,该存储介质
可以由设备经由无线电接口层572或者经由移动计算设备500和与移动计算设备500相关联的单独计算设备之间的有线连接来访问,例如,分布式计算网络(诸如因特网)中的服务器计算机。应当理解,可以经由移动计算设备500、经由无线电接口层572、或经由分布式计算网络来访问这些数据/信息。类似地,根据众所周知的数据/信息传输和存储方法,包括电子邮件和协作数据/信息共享系统,此类数据/信息可以容易地在计算设备之间传递以供存储和使用。
68.图6图示了用于处理在计算系统处从远程源(诸如个人计算机604、平板计算设备606、或移动计算设备608)接收的数据的系统架构的一个方面,如上面所描述。在服务器设备602处显示的内容可以存储在不同的通信信道或其他存储类型中。例如,可以使用目录服务622、网络门户624、邮箱服务626、即时消息存储628、或社交网站630来存储各种文档。
69.虚拟环境应用620可以由与服务器设备602通信的客户端采用,和/或虚拟环境数据存储621可以由服务器设备602采用。服务器设备602可以通过网络615向客户端计算设备(诸如个人计算机604、平板计算设备606、和/或移动计算设备608(例如,智能电话))提供数据和从客户端计算设备接收数据。举例来说,上面所描述的计算机系统可以体现在个人计算机604、平板计算设备606、和/或移动计算设备608(例如,智能电话)中。计算设备的这些实施例中的任何一个可以从存储616获得内容,除接收可用于在图形发起系统处预处理或在接收计算系统处后处理的图形数据。
70.图7图示了可以执行本文所公开的一个或多个方面的示例性平板计算设备700。此外,本文描述的方面和功能可以在分布式系统(例如,基于云的计算系统)上操作,其中应用功能、存储器、数据存储和检索、以及各种处理功能可以在诸如因特网或内联网的分布式计算网络上彼此远程操作。各种类型的用户界面和信息可以经由星载计算设备显示器或者经由与一个或多个计算设备相关联的远程显示单元来显示。例如,各种类型的用户界面和信息可以墙壁表面显示并与之交互,各种类型的用户界面和信息都投影在该墙壁表面。与实践本发明的实施例所利用的多个计算系统的交互包括按键输入、触摸屏输入、语音或其他音频输入、手势输入,其中相关联的计算设备配备有用于捕获和解释为了控制计算设备的功能的用户手势的检测(例如,摄像机)功能等。
71.例如,上文参考根据本公开的各方面的方法、系统、和计算机程序产品的框图和/或操作图示描述了本公开的方面。如流程图所示,方框中所注释的功能/行为可能会出现顺序错误。例如,连续示出的两个块实际可以基本上同时执行,或者这些块有时可以按照相反的顺序执行,这取决于所涉及的功能/行为。
72.本技术中提供的一个或多个方面的描述和图示并不旨在以任何方式限定或限制所要求保护的公开的范围。本技术中提供的方面、示例和细节被认为足以传达所有权,并使得其他人能够做出和使用所要求保护的公开的最佳方式。要求保护的公开不应被解释为限于本技术中提供的任何方面、示例、或细节。不管是组合地还是单独地示出和描述,各种特征(结构特征和方法特征两者)旨在被选择性地包括或省略,以产生具有特定特征集的实施例。已经提供了本技术的描述和图示,本领域技术人员可以设想落入本技术所体现的一般发明概念的更广泛方面的精神范围内的变化、修改、和替代方面,这些变化、修改、和替代方面不背离所要求保护的公开的更广泛范围。
再多了解一些

本文用于创业者技术爱好者查询,仅供学习研究,如用于商业用途,请联系技术所有人。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献