用于选择虚拟对象以进行扩展现实交互的设备、方法、系统和介质与流程

未命名 10-08 阅读:100 评论:0

用于选择虚拟对象以进行扩展现实交互的设备、方法、系统和介质
1.相关申请数据
2.本技术要求于2021年2月4日提交的发明名称为“用于选择虚拟对象以进行扩展现实交互的设备、方法、系统和介质(devices,methods,systems,and media for selecting virtual objects for extended reality interaction)”的第17/167,764号美国非临时申请的权益,所述申请以引用的方式并入本文中。
技术领域
3.本技术大体上涉及扩展现实环境中的图形用户界面,尤其涉及用于在扩展现实环境中选择虚拟对象以进行用户交互的设备、方法、系统和介质。


背景技术:

4.近年来,增强现实(augmented realty,ar)和虚拟现实(virtual reality,vr)越来越受欢迎。虽然ar和vr技术有其独特之处,但ar可视为虚拟vr环境在用户物理环境上的叠加,因此有几种技术和方法适用于这两个领域。一个示例是用于管理用户与图形用户界面(graphical user interface,gui)元素和其他虚拟对象的交互的技术,所述其他虚拟对象在虚拟3d空间中位于用户周围。这种交互技术适用于ar和vr,ar和vr可以统称为扩展现实(extended reality,xr)。
5.在xr中,如通过xr显示器向用户展示,虚拟对象在虚拟三维(three-dimensional,3d)空间中位于用户周围,不同于其中虚拟对象限制在靠近用户的二维(two-dimensional,2d)空间中的笔记本电脑或手机显示器。在某些情况下,xr gui元素故意位于一定距离处。这可能是由于语义锚定信息,例如ar环境可以包括附贴在物理环境中的远处建筑上的虚拟标志或壁锚定(wall-anchored)的平面ar显示器。
6.在虚拟3d空间中的远处与如gui元素等虚拟对象交互是xr中的基本用户界面任务。因此,从新的指向和选择技术(即,用于选择虚拟3d空间内的gui元素或其他虚拟对象以便操纵或以其他方式与选定虚拟对象交互的技术)到六自由度(degrees of freedom,dof)操纵(即,在三个线性维度-高度、宽度、深度和三个旋转维度-偏航、俯仰、翻滚中操纵虚拟对象),已针对这个主题进行了大量的研究。现有的指向和选择技术大体上分为两种方法。第一种方法是基于光线投射的方法,它在由用户行为,例如用户手部的移动或用户输入到vr控制器的内容决定的方向上对光线进行投影,其中选择拦截光线的虚拟对象进行交互。然而,随着用户与gui元素或其他虚拟对象之间的距离增大,光线投射方向的角度误差增大,使得难以选择单个虚拟对象。此外,由于选定虚拟对象位于光线尖端,用户通常难以使用直观控件旋转对象。此外,使用光线投射选择虚拟对象往往会降低用户对选定虚拟对象的有形性的感知。第二种指向和选择方法是基于手臂伸展(arm extension)的方法,它将用户的物理手以非线性方式映射到远处的虚拟手,以用于与虚拟3d空间内的远处虚拟对象交互。在手臂伸展方法中,用户必须在不同情况下适应真手与虚拟手之间的变化控制显示
(control-display,cd)增益函数:即,用户的物理手臂和手的运动可以映射到具有不同倍增或放大程度的虚拟手的运动。虽然手臂伸展方法可能相比于基于光线投射的方法具有某些优势,但用户在执行手臂伸展方法时可能会比较尴尬,因为它们通常要求用户以较大幅度向外伸展手臂,以操纵远处虚拟对象。
7.总体而言,用户与远处虚拟对象交互的现有方法在交互的准确性、虚拟对象的感知有形性以及gui元素或其他虚拟对象布局中的深度感知方面有一定的局限性。与远处虚拟对象交互的现有技术,如光线投射和手臂伸展分别存在角度误差和cd增益函数偏差,导致难以选择小型虚拟对象进行交互。其他现有方法包括用于缩放整个虚拟环境、放大单个虚拟对象或放大虚拟3d空间中的位置(即,缩小用户视野以缩短虚拟3d空间中远处位置的感知距离)的方法。然而,这些方法通常会减小每个虚拟对象的粒度、引入cd增益偏差且通常会增加交互的难度。
8.因此,需要克服上述现有方法的一个或多个限制,使xr显示器的用户能够容易和直观地与远处gui元素或其他虚拟对象交互的技术。


技术实现要素:

9.本发明描述了用于在扩展现实环境中选择虚拟对象以进行用户交互的设备、方法、系统和介质。本文描述的示例使选定的远处虚拟对象在虚拟3d空间内靠近用户,以使选定虚拟对象在虚拟空间中处于用户手部附近,以便直接操纵。所述用户根据所述用户的手部和/或头部的运动选择虚拟对象,所述运动与在所述虚拟3d空间内选择特定虚拟对象的意图相关或相关联。当所述用户的手部以与此意图一致的方式移动时,所述虚拟对象在所述虚拟3d空间内更靠近所述用户的手部。
10.在一些实施例中,通过根据头戴式传感器和手戴式传感器的线速度和角速度预测用于选择的预期虚拟对象来执行选择。根据从传感器接收到的速度信息生成手部轨迹数据和头部轨迹数据,并将轨迹数据与运动轨迹模板库进行比较,以识别出最匹配的轨迹模板。最匹配模板指示手部的目的地位置,所述目的地位置可用于确定根据光线投射选择虚拟对象的意图。
11.然后,选定虚拟对象将向虚拟3d空间中的用户移动。在一些实施例中,xr显示器根据手部的预测目的地位置在后续时间步长在更靠近用户手部的位置或朝向用户手部的预测未来位置呈现虚拟对象。一旦虚拟对象在虚拟空间中移动到用户手部附近,用户的手就可以直接操纵所述虚拟对象,而无需使用上述现有技术和方法来实现用户与远处虚拟对象的交互。因此,本文描述的示例与上述现有方法相比可具有一个或多个优势,例如使用户能够与远处虚拟对象交互而无需适应变化的cd增益,并且具有与接近用户的手的虚拟对象交互的触感和高分辨率视觉呈现。
12.通过使远处虚拟对象接近用户的手,一些实施例可以向用户提供直接操纵范围。与其他方法相比,接近手的这种交互可以提供更大的有形性、更高的精度和更大的粒度,因为它直接映射到选定虚拟对象,例如选定gui元素集合的组件的细节。此外,当虚拟对象向用户移动时,相对于操纵远处虚拟对象的方法,用户的手的运动范围增大。因此,远端选择中出现准确性问题的机会降低,身体疲劳的风险也降低了。最后,近手(hand-proximate)交互比远端光线投射交互或基于手臂伸展的交互更容易被大众接受,因为用户可以保持手相
对靠近身体,而不是向外伸展手臂来操纵远处虚拟对象。
13.在本发明中,术语“xr”是指“扩展现实”,这是一个涵盖性术语,指的是诸如增强现实(augmented reality,ar)、虚拟现实(virtual reality,vr)和混合现实(mixed reality,mr)的沉浸式技术。如本文所使用,xr是指通过xr显示器向用户呈现虚拟3d视觉环境。xr显示器通常为能够在3d环境中模拟双目视觉效果的立体显示器,但在一些示例中,xr显示器可以是单像管显示器,例如能够通过将所述3d环境投影到二维来渲染3d环境的传统2d显示屏。
14.如本文所使用,术语“虚拟空间”、“虚拟3d空间”、“虚拟环境”和“虚拟3d环境”可互换使用,以表示包含计算设备生成并通过xr显示器在视觉上向用户呈现虚拟对象的三维虚拟空间。通常在视觉上向用户呈现虚拟环境中的虚拟对象,以便模拟对所述对象的查看,就像所述虚拟对象是与用户视点相距一段实际物理距离的实际物理对象、与其他虚拟和/或真实对象呈一定向和关系一样,以此在物理环境中模拟虚拟对象的存在。在使用vr的情况下,可以向用户呈现完全由虚拟环境中的虚拟对象组成的视野;在ar或mr中,可以向用户呈现虚拟环境的虚拟对象和用户物理环境的真实对象的组合,其中虚拟环境“覆盖”在物理环境上,使得虚拟对象似乎存在于物理环境中。
15.如本文所使用,术语“虚拟位置”是指虚拟环境中虚拟对象相对于其相对于用户视点和其他虚拟或物理对象的表观位置的表示。物理对象在用户环境中的“物理位置”或“实际位置”是指对象相对于用户和用户物理环境中的其他物理对象的实际物理位置。在ar或mr中,虚拟位置通常是相对于物理位置定义的;在vr中,通过将物理对象的物理位置映射到物理对象的对应物或化身,即表示物理对象、在虚拟环境中具有映射到对象在物理环境中的物理位置的虚拟位置的虚拟对象,可以在虚拟环境中表示物理对象。术语“位置”可以指虚拟对象上下文中的虚拟位置,也可以指物理对象上下文中的物理位置。在虚拟环境中由化身(即,虚拟对象)表示的物理对象的情况下,对象的“位置”可以指物理对象的物理位置或对应化身的虚拟位置。
16.如本文所使用,“虚拟对象”可以指计算系统对位于虚拟环境中的虚拟位置处的现象的任何表示,使得视觉上可感知或以其他方式可感知的刺激呈现给用户,就像刺激源于虚拟位置一样。通常,虚拟对象以位于3d虚拟环境中的2d或3d对象的方式在视觉上呈现给用户。虚拟对象可以包括真实世界3d对象(例如飞机的3d渲染)、2d显示器(例如显示正在播放电影的2d矩形屏幕)、2d精灵(例如可以按下的2d按钮)或3d精灵(例如用于控制音频音量的3d滑块)的表示。对应于传统计算系统显示器的图形用户界面元素的功能的虚拟对象——例如用于接收用户输入的控制小部件、用于显示诸如文本和图像的视觉输出的显示面等等,包括其3d版本——在本文中可以称为“gui元素”。
17.在本发明中,术语“位置”是指物理对象或虚拟对象,例如用户的手部或头部的位置和定向。“位置”可以是指对象相对于3个线性维度(x、y、z)的位置,“定向”可以是指对象相对于3个角维度(翻滚、俯仰和偏航)的位置。“距离”可以是指线性距离(例如,具有x、y和x元素的3维线性矢量)、角距离(例如,具有翻滚、俯仰和偏航元素的3维角矢量)或组合的线性距离和角距离(例如,6维矢量)。“距离”可以是指指示矢量长度的标量值,也可以是指包括方向信息的矢量值。
18.在一些方面,本发明描述了一种用于向用户呈现扩展现实(extended reality,
xr)环境的虚拟对象的方法。生成用于控制xr显示器在初始虚拟位置处向所述用户呈现所述虚拟对象的初始显示信息。从一个或多个手部运动传感器获得指示手部速度的手部运动信息。处理所述手部运动信息以生成轨迹数据。处理所述轨迹数据以确定所述用户意图选择所述虚拟对象。生成用于控制所述xr显示器在比所述初始虚拟位置更靠近所述手部的更新虚拟位置处向所述用户呈现所述虚拟对象的更新显示信息。
19.通过移动选定虚拟对象使其更靠近所述用户的手,所述方法可以使所述用户能够与远处虚拟对象交互,而无需适应变化的cd增益。通过使所述虚拟对象接近所述用户的手,所述用户与所述虚拟对象的交互可具有高触感和高分辨率视觉呈现的优势。
20.在一些方面,本发明描述了一种用于向用户呈现扩展现实(extended reality,xr)环境的虚拟对象的系统。所述系统包括处理器设备和其上存储有机器可执行指令的存储器。所述机器可执行指令在由处理设备执行时使所述系统执行各种步骤。生成用于控制xr显示器在初始虚拟位置处向所述用户呈现所述虚拟对象的初始显示信息。从一个或多个手部运动传感器获得指示手部速度的手部运动信息。处理所述手部运动信息以生成轨迹数据。处理所述轨迹数据以确定所述用户意图选择所述虚拟对象。生成用于控制所述xr显示器在比所述初始虚拟位置更靠近所述手部的更新虚拟位置处向所述用户呈现所述虚拟对象的更新显示信息。
21.在一些示例中,所述方法还包括从一个或多个头部运动传感器获得指示所述用户头部速度的头部运动信息,其中处理所述手部运动信息以生成所述轨迹数据包括处理所述手部运动信息和所述头部运动信息以生成所述轨迹数据。
22.在一些示例中,生成所述轨迹数据包括:从存储器检索先前的手部运动信息;将从所述手部运动传感器获得的所述手部运动信息存储在所述存储器中;从存储器检索先前的头部运动信息;将从所述头部运动传感器获得的所述头部运动信息存储在所述存储器中;以及处理所述先前的手部运动信息、从所述手部运动传感器获得的所述手部运动信息、所述先前的头部运动信息和从所述头部运动传感器获得的所述头部运动信息,以生成所述轨迹数据。
23.在一些示例中,所述手部运动信息指示所述手部的线速度和角速度,所述头部运动信息指示所述头部的线速度和角速度。
24.在一些示例中,所述一个或多个手部运动传感器包括耦合到所述手部的惯性测量单元,所述一个或多个头部运动传感器包括耦合到所述头部的惯性测量单元。
25.在一些示例中,耦合到所述手部的所述惯性测量单元为佩戴在手腕上的智能手表的惯性测量单元,耦合到所述头部的所述惯性测量单元为佩戴在所述头部上的头戴式显示设备的惯性测量单元,所述头戴式显示设备包括所述xr显示器。
26.在一些示例中,处理所述轨迹数据以确定所述用户意图选择所述虚拟对象包括将所述轨迹数据与多个轨迹模板进行比较,以识别所述多个轨迹模板中与选择所述虚拟对象的意图对应的最匹配的轨迹模板。
27.通过使用轨迹模板曲线来预测用户移动,一些实施例可以针对特定用户定制对系统的预测行为的训练,从而潜在地提高预测的准确性,从而提高行为的一致性和正确性。另一个潜在的好处是,相对于运动预测系统的其他训练技术,生成轨迹模板可能易于实现和快速。此外,通过使用模板匹配来预测运动,累积评分函数可以用于将候选运动与模板库匹
配,从而产生易于实现的快速、计算量小的预测。
28.在一些示例中,所述方法还包括处理所述轨迹数据以预测所述手部的未来位置。所述更新虚拟位置比所述初始虚拟位置更靠近所述手部的所述未来位置。
29.在一些示例中,所述初始显示信息用于控制所述xr显示器在所述xr显示器上向所述用户呈现多个虚拟对象。每个虚拟对象呈现在相应的初始虚拟位置处。所述轨迹数据经过处理以确定所述用户意图选择所述多个虚拟对象中的两个或两个以上虚拟对象中的任何一个。所述更新显示信息用于控制所述xr显示器在所述xr显示器上相应的两个或两个以上更新虚拟位置处向所述用户呈现所述两个或两个以上虚拟对象。每个相应的更新虚拟位置比每个相应的初始虚拟位置更靠近所述手部。
30.在一些示例中,所述机器可执行指令在由所述处理设备执行时还使所述系统从一个或多个头部运动传感器获得指示所述用户头部速度的头部运动信息。处理所述手部运动信息以生成所述轨迹数据包括处理所述手部运动信息和所述头部运动信息以生成所述轨迹数据。
31.在一些示例中,所述手部运动信息指示所述手部的线速度和角速度,所述头部运动信息指示所述头部的线速度和角速度。
32.在一些示例中,所述一个或多个手部运动传感器包括耦合到所述手部的惯性测量单元,所述一个或多个头部运动传感器包括耦合到所述头部的惯性测量单元。
33.在一些示例中,所述系统还包括配置为佩戴在所述头部上的头戴式显示设备,所述头戴式显示设备包括所述xr显示器和耦合到所述头部的所述惯性测量单元。
34.在一些示例中,所述系统还包括配置为佩戴在手腕上的智能手表,所述智能手表包括耦合到所述手部的所述惯性测量单元。
35.在一些示例中,所述系统还包括存储器,所述存储器还存储多个轨迹模板。处理所述轨迹数据以确定所述用户意图选择所述虚拟对象包括从所述存储器检索所述多个轨迹模板,并将所述轨迹数据与所述多个轨迹模板进行比较,以识别所述多个轨迹模板中与选择所述虚拟对象的意图对应的最匹配的轨迹模板。
36.在一些示例中,所述机器可执行指令在由所述处理设备执行时还使所述系统处理所述轨迹数据以预测所述手部的未来位置。所述更新虚拟位置比所述初始虚拟位置更靠近所述手部的所述未来位置。
37.在一些方面,本发明描述了一种其上存储有机器可执行指令的非瞬时性处理器可读介质。所述指令在由设备的处理器设备执行时使所述设备:生成用于控制扩展现实(extended reality,xr)显示器在初始虚拟位置处向用户呈现xr环境的虚拟对象的初始显示信息;从一个或多个手部运动传感器获得指示手部速度的手部运动信息;处理所述手部运动信息以生成轨迹数据;处理所述轨迹数据以确定所述用户意图选择所述虚拟对象;以及生成用于控制所述xr显示器在比所述初始虚拟位置更靠近所述手部的更新虚拟位置处向所述用户呈现所述虚拟对象的更新显示信息。
38.在一些方面,本发明描述了一种其上有形地存储有指令的处理器可读介质。所述指令在由处理器设备执行时使所述处理器设备执行上述方法步骤。
附图说明
39.现在将通过示例参考示出本技术示例性实施例的附图,其中:
40.图1为本文描述的示例的用户的手部和头部的俯视图,其示出用户与用于向用户呈现xr环境的虚拟对象的示例性系统交互;
41.图2为示出本文描述的示例的示例性系统的一些组件的框图,所述示例性系统包括适用于向用户呈现xr环境的虚拟对象的计算设备;
42.图3为示出图2的计算系统的示例性虚拟对象选择模块的各种子系统的输入和输出的框图;
43.图4为示出图3的虚拟对象选择模块的示例性意图预测子系统将示例性轨迹模板与轨迹数据进行比较的曲线图;
44.图5为本文描述的示例的用户的手的俯视图,其示出对用户的手的目的地位置的预测和响应于此在xr显示器上对虚拟对象接近预测的目的地位置的呈现;
45.图6为示出用于向用户呈现xr环境的虚拟对象的示例性方法的流程图,所述示例性方法可由图3的虚拟对象选择模块在预测模式下执行;
46.图7a为本文描述的示例的用户头部的俯视图,其示出相对于头戴式显示单元限定的示例性x、y、z坐标系;
47.图7b为本文描述的示例的用户头部的右视图,其示出相对于头戴式显示单元限定的示例性x、y、z坐标系。
48.可以在不同的附图中使用相似的附图标记来表示相似的组件。
具体实施方式
49.本发明描述了用于在扩展现实环境中选择虚拟对象以进行用户交互的设备、方法、系统和介质的示例性实施例。本文描述的示例使选定的远处虚拟对象在虚拟3d空间内靠近用户,以使选定虚拟对象在虚拟空间中处于用户手部附近,以便直接操纵。用户根据用户的手部和/或头部的运动选择虚拟对象,所述运动与在虚拟3d空间内选择特定虚拟对象的意图相关或相关联。当用户的手部以与此意图一致的方式移动时,虚拟对象在虚拟3d空间中更靠近用户的手部。
50.示例性设备和系统
51.为简单起见,本发明描述了在系统上下文中的示例,所述系统包括计算设备、xr显示器(例如,能够向用户眼睛立体呈现虚拟3d环境的头戴式显示器(head mounted display,hmd)单元)和佩戴在用户手腕上的智能手表,其中hmd单元和智能手表各自包含惯性测量单元(inertial measurement unit,imu)。本发明描述了用于使用imu跟踪用户头部和手部的轨迹,并在根据手部和头部轨迹预测用户意图后通过xr显示器向用户呈现虚拟对象的设备、方法、系统和介质。然而,应当理解,本发明并不限于这些实施例,并且本文描述的设备、方法、系统和介质可以在包括用以跟踪手部和/或头部的不同传感器、不同xr显示器类型(例如传统的单像管2d显示器)和/或不同配置的计算设备或平台的数个不同系统中实现,以执行本文描述的计算、通信、数据存储和数据检索操作。例如,在一些实施例中,imu可以智能指环或智能手环的形式耦合到手部。
52.图1示出了用户与系统100交互以在扩展现实环境100中选择虚拟对象以进行用户
交互的示例。在此简化图中,系统100包括与佩戴在用户手部20的手腕上的智能手表114和佩戴在用户头部10上的头戴式显示器(head-mounted display,hmd)单元116通信(例如,通过诸如802.11或bluetoothtm的有线或无线数据连接)的计算设备200。hmd单元116包括用于向用户眼睛呈现虚拟3d环境的立体xr显示器。在本示例中,智能手表114包括智能手表imu,所述智能手表imu用于生成指示手部的线速度和角速度的手部运动信息,并将所述手部运动信息传送到计算单元200,所述手部运动信息例如imu的加速度计检测到的三维线性加速度(x、y、z)和imu的陀螺仪检测到的三维角加速度(翻滚、俯仰、偏航)。类似地,hmd单元116包括hmd单元imu,所述hmd单元imu类似地用于生成指示头部的线速度和角速度的头部运动信息,并将所述头部运动信息传送到计算单元200。在其他实施例中,imu可以使用智能手表114和/或hmd单元116以外的构件耦合到用户手部20和/或头部10。在其他实施例中,除了imu之外或代替imu,其他手部传感器和/或头部传感器可以包括在系统100中,以提供头部和手部运动信息。在各种实施例中,其他传感器可以包括红外(infrared,ir)摄像头、红/绿/蓝(red/green/blue,rgb)摄像头、其他传统数字摄像头、运动传感器和/或可以跟踪手部和/或头部运动和/或定向的任何其他类型的传感器。在一些实施例中,这些其他传感器中的一个或多个可用于感测头部和手部运动。在一些实施例中,其他传感器可用于补充来自imu的数据,以在跟踪手部和头部运动时提供更高的精度。
53.在图1中,imu和/或其他传感器用于跟踪头部10和手部20的运动。头部10示出为在hmd单元116的第一位置和角定向指示的第一位置12与hmd单元116的第二位置和角定向指示的第二位置14之间运动。在第一位置12与第二位置14之间的运动表示为头部轨迹32。头部10在第一位置12中的视线方向示出为第一视线方向16,头部10在第二位置14中的视线方向示出为第二视线方向18。手部20示出为在智能手表114的第一位置和角定向指示的第一位置22与智能手表114的第二位置和角定向指示的第二位置24之间运动。在第一位置22与第二位置24之间的运动表示为手部轨迹34。手部20在第一位置22中的指向方向示出为第一指向方向26,手部20在第二位置24中的指向方向示出为第二指向方向28。指向方向26、28和/或视线方向16、18可用于执行光线投射,如下文参考图3关于虚拟对象选择操作所描述。
54.应当理解,头部轨迹32和手部轨迹34在图1中以二维方式示出并且不显示头部10或手部20的定向的角度变化;然而,示例性实施例可以跟踪头部10和手部20的三维线性运动以及头部和手部定向的三维角度变化,从而产生头部10和手部20的六维轨迹。
55.因此,在一些实施例中,hmd单元116和智能手表114的imu可以分别生成手部运动信息和头部运动信息并将所述手部运动信息和头部运动信息传送到计算单元200,所述手部运动信息和头部运动信息各自包括分别对应于手部轨迹34和头部轨迹32的六维运动信息。
56.图2为计算设备200的框图。尽管下文示出和论述计算设备200的示例性实施例,但其他实施例也可以用于实现本文公开的示例,可以包括与所示组件不同的组件。虽然图2示出了计算设备200的每个组件的单个实例,但示出的每个组件可以有多个实例。
57.计算设备200包括一个或多个处理器202,例如中央处理单元、微处理器、专用集成电路(application-specific integrated circuit,asic)、现场可编程门阵列(field-programmable gate array,fpga)、专用逻辑电路系统、张量处理单元、神经处理单元、专用人工智能处理单元或其组合。一个或多个处理器202可以统称为“处理器设备”。计算设备
200还包括与输入设备和输出设备介接的一个或多个输入/输出(input/output,i/o)接口204,所述输入设备例如手部运动传感器106(例如,智能手表114的手戴式imu 110和/或任何其他传感器102)和头部运动传感器108(例如,hmd单元116的头戴式imu 112和/或任何其他传感器102),所述输出设备例如hmd单元116的xr显示器104。计算设备200可以与系统100中包括的其他输入设备(例如,按钮、麦克风、触摸屏、键盘等)和其他输出设备(例如,扬声器、振动单元等)介接。
58.计算设备200可以包括一个或多个可选的网络接口206,以用于与网络(例如,内联网、互联网、p2p网络、wan和/或lan)或其他节点进行有线或无线通信。网络接口206可以包括有线链路(例如,以太网线)和/或无线链路(例如,一个或多个天线)以进行网内通信和/或网间通信。在一些实施例中,一个或多个网络接口206可以用作或代替i/o接口204,例如使用802.11或bluetooth
tm
无线通信与上述一个或多个输入设备和/或输出设备通信。
59.计算设备200包括一个或多个存储器208,所述存储器可包括易失性或非易失性存储器(例如,闪存、随机存取存储器(random access memory,ram)和/或只读存储器(read-only memory,rom))。非瞬时性存储器208可以存储用于由处理器202执行例如以实行本发明中描述的示例的机器可执行指令。定义虚拟对象选择模块210的一组机器可执行指令示出为存储在存储器208中,所述机器可执行指令可以由处理器202执行以执行本文描述的方法的步骤。下面参考图3描述系统100在执行虚拟对象选择模块210时的操作。虚拟对象选择模块210包括可由处理器202执行以执行其每个子系统310、320、330的功能的机器可执行指令。存储器208可以包括其他软件指令,例如用于实现操作系统和其他应用/功能。
60.存储器208还可以存储虚拟对象选择模块210生成和使用的轨迹模板库212,如下文参考图3所描述。
61.在一些示例中,计算设备200还可以包括一个或多个电子存储单元(未示出),例如固态硬盘、硬盘驱动器、磁盘驱动器和/或光盘驱动器。在一些示例中,一个或多个数据集和/或模块可以由外部存储器(例如,与计算设备200进行有线通信或无线通信的外部驱动器)提供,也可以由瞬时性或非瞬时性计算机可读介质提供。非瞬时性计算机可读介质的示例包括ram、rom、可擦除可编程rom(erasable programmable rom,eprom)、电可擦除可编程rom(electrically erasable programmable rom,eeprom)、闪存、cd-rom或其他便携式存储器。例如,计算设备200的组件可以通过总线彼此通信。
62.在一些实施例中,分布式系统可以包括多个计算设备200以及可选的一个或多个额外组件。分布式系统可以包括在网络上彼此通信的多个计算设备200;例如,视频会议系统可以包括用于每个远程参与用户的计算设备200,可选地具有中央服务器。在一些实施例中,分布式系统为扩展现实系统,其包括单个计算设备200和多个手部运动传感器106、头部运动传感器108和xr显示器104。在本实施例中,单个计算设备200用于跟踪多个用户的手部和头部,并响应于此向各个用户呈现虚拟对象。应当理解,这些系统作为示例提供,并且其他分布式系统也是可能的。
63.应当理解,不同的实施例可以包括输入和输出设备的不同组合,以代替或补充上述传感器106、108、102和xr显示器104。例如,具有用作头部运动传感器108和手部运动传感器106的一个或多个数字摄像头的单个大型共享xr显示器可以用于共享物理空间中存在的多个用户的共享xr应用中。
64.示例性虚拟对象选择模块
65.图3示出了计算设备200执行的示例性虚拟对象选择模块210。在本示例中,示出了由三个子系统组成的虚拟对象选择模块210:轨迹数据生成子系统310、意图预测子系统320以及显示子系统330。尽管虚拟对象选择模块210在本文中描述为由计算系统200的处理器设备202执行的机器可执行指令实现,但在一些实施例中,虚拟对象选择模块210的一个或多个操作可以由专用硬件(例如专用集成电路(application-specific integrated circuit,asic))或系统100内的单独计算设备或平台执行。
66.虚拟对象选择模块210可以在两种不同的模式下操作:训练模式和预测模式。在训练模式下,会提示用户执行一系列虚拟对象选择任务。在执行每个任务期间收集头部和手部运动信息,并存储为与对应任务相关联的运动轨迹模板(在本文中也简称为“轨迹模板”)。因此,每个轨迹模板提供了用户在执行特定虚拟对象选择任务时典型的头部和手部运动的模板,所述模板为特定用户定制。这些轨迹模板可用于根据预测模式期间的手部和头部运动预测用户的意图。
67.参考图3,当用户执行每个任务时,轨迹生成子系统310从手部运动传感器106接收手部运动信息302、从头部运动传感器108接收头部运动信息304。手部运动信息302和头部运动信息304可以作为先前的手部和头部运动信息312暂时存储在存储器208中,以便在生成轨迹模板的过程中生成接收到的运动信息302、304的时间序列。轨迹生成子系统310根据手部运动信息302和头部运动信息304生成轨迹模板316,并将轨迹模板316与识别对应任务的数据相关联地存储在存储器208中,作为轨迹模板库212之一。
68.从传感器106、108获得的运动信息302、304可以各种不同的方式表示手部和头部的运动。在一些实施例中,可以线性维度(x、y、z)随时间变化的毫米/秒为单位测量并表示位置速度。在一些实施例中,可以手部或头部的前向矢量随时间变化的度/秒为单位测量角速度。在一些实施例中,例如图1中所示的示例,头部10的前向矢量与眼睛注视方向(即,视线方向16、18)平行。头部10的前向矢量使用双眼之间的一点作为原点,从左到右的维度作为x轴,从上到下的维度作为y轴,从后到前(即,平行于前向矢量)的维度作为z轴。在图1中,手20的前向矢量平行于手20,从肘关节延伸到伸出的食指的尖端。应当理解,这些运动信息表示和/或维度定义在不同的实施例中可以不同。
69.图7a和7b示出了相对于hmd单元116定义的示例性坐标系。图7a为用户头部10的俯视图;图7b为用户头部10的右视图。头部10上戴有hmd单元116。坐标系的原点702大致位于由hmd单元116的位置限定的用户双眼之间。z轴704沿着前向矢量在用户注视方向上延伸;z值从原点702开始沿向前方向增加,如箭头所示。x轴706从用户的左侧向右延伸,其中负x值在原点702的左侧,正x值在原点702的右侧,如箭头所示。y轴708自上而下延伸,其中负y值低于原点702,正y值高于原点,如箭头所示。所示的示例性值(例如x=50,y=-50)仅用作示例,以显示正值和负值。
70.用于生成轨迹模板的虚拟对象选择任务可以是互指任务,其中提示用户用手20(例如,使用手20的食指)在3d环境中的一对目标之间来回指向。对于可以相对于xr显示器104的虚拟视场限定的每对已知目标位置,轨迹生成子系统310根据在任务执行期间获得的运动信息302、304记录头部10和手部20两者的轨迹曲线。在任何时候,一对目标中的一个目标为起始目标,另一个为结束目标。一对目标可以在xr环境中标记,可以呈不同的颜色,或
者可以其他方式区分以帮助用户执行任务。目标的虚拟位置可例如在以下方面改变:沿着头部10的前向轴线的深度(以米为单位测量)、沿着一对目标之间的x轴相对于头部10的角度扩展(以度为单位测量),以及目标相对于用户前平行于y轴的竖直平面的竖直位置(0

359度)。目标的尺寸可以由相对于头部10的x轴的角宽度限定。固定的角宽度可以确保目标是可见的,并且尺寸不取决于沿着头部10的前向轴线的深度。在互指任务期间,可以将一对目标布置在相反位置,例如,如果第一目标具有负x坐标值(即,在原点702的左侧,如图7a所示),则另一目标将具有正x坐标值。应当理解,不同类型的指向或选择任务,或不同的目标配置都可用于生成轨迹模板。
71.在互指任务中,当沿着用户的手20的前向矢量投射的光线与目标相交时,用户被视为已完成任务,如下文参考图5更详细地描述。当光线与目标相交时,可以向用户呈现包括以下一个或多个的反馈:目标颜色的变化、音频反馈、目标标记的变化、通过智能手表114和/或hmd单元116传递的振动反馈,或任何其他合适的视觉、听觉、触觉或其他感官反馈。
72.在每个互指任务期间,轨迹生成子系统310生成包括四个轨迹曲线的对应轨迹模板316,并将轨迹模板316存储在存储器208上的轨迹模板库212中。四个曲线中的两个代表执行任务期间头部的角速度和手部的角速度,以例如度/秒为单位测量。这前两个曲线可视为头部10和手部20的相应前向矢量的方向随时间的变化,例如手部的前向矢量从第一指向方向26变为第二指向方向28,头部的前向矢量从第一视线方向16变为第二视线方向18。四个曲线中的另外两个代表头部10的位置速度和手部20的位置速度随时间的变化,例如以毫米/秒为单位测量。这后两个曲线可视为头部10和手部20的位置随时间的变化,例如手部的位置从第一位置22变为第二位置24,头部的位置从第一位置12变为第二位置14。与任务相关联的轨迹模板316可以包括这四个曲线。因此,每个轨迹模板基本上对与手在特定起始目标与特定结束目标之间的运动对应的用户手部和头部轨迹信息(即,在任务期间的每个时间点的角速度和线速度)进行编码。这些轨迹模板可在预测模式中用于预测已由用户开始的部分轨迹的剩余部分。
73.在一些实施例中,可以使用其他训练方法来代替基于模板的方法。一些实施例可以使用机器学习技术,例如监督学习来训练预测模型,例如卷积神经网络。应当理解,许多训练技术可用于训练虚拟对象选择模块210,以使用本文描述的相同的通用输入和输出在预测模式下对用户意图进行预测。
74.在预测模式下,虚拟对象选择模块210使用存储的轨迹模板来根据在用户与虚拟3d环境交互时从手部和头部传感器接收到的手部和头部运动信息预测用户的意图。如果虚拟对象选择模块210预测用户意图选择特定虚拟对象进行交互,则在xr显示器上呈现选定虚拟对象,使得其虚拟位置朝向用户的手移动,或朝向用户的手的预测目的地位置移动,从而使选定虚拟对象接近用户的手以便进行操纵或其他交互。
75.在一些实施例中,虚拟对象选择模块210可以在预测模式期间执行持续训练和改进。例如,存储在存储器208中的轨迹模板212可以在预测模式期间根据在用户随时间推移执行特定选择任务时检测到的手部和头部运动方式更新。例如,如果用户的手始终以偏离所述任务的相关联轨迹模板的方式执行特定选择任务,则可通过将轨迹模板更新322从输入预测子系统320发送到存储在存储器208中的轨迹模板库212来更新所述任务的轨迹模板,以更好地匹配观察到的差异。在一些实施例中,当观察到用户在预测模式期间执行额外
轨迹模式时,可以将额外轨迹模板添加到库212中,而不是用指示不同轨迹的新值更新现有轨迹模板。
76.一旦已生成并存储轨迹模板库212,或者已以其他方式训练虚拟对象选择模块210对用户意图进行预测,虚拟对象选择模块210就可以在预测模式下操作。在预测模式下,虚拟对象选择模块210的三个子系统310、320、330执行三个不同的任务。轨迹数据生成子系统310根据接收到的手部运动信息302和头部运动信息304生成轨迹数据314。与在训练模式中一样,手部运动信息302和头部运动信息304可以作为先前的手部和头部运动信息312暂时存储在存储器208中,以便在生成轨迹数据314的过程中生成接收到的运动信息302、304的时间序列。
77.轨迹数据生成子系统310生成的轨迹数据314可以包括从运动开始到时间t的上述四个速度曲线(头部和手部的角速度和线速度)。
78.意图预测子系统320接收轨迹数据314并且将轨迹数据314与从存储器208检索的轨迹模板库212进行比较以找到最匹配的轨迹模板,如下文参考图4所描述。根据最匹配的轨迹模板,意图预测子系统320例如通过将最匹配的轨迹模板中手20移动的总距离(和总的定向角变化)添加到手20在当前运动开始时的初始位置(即,位置和定向)来预测手的预期目的地位置(即,手20的位置和角定向)。下文参考图5描述预测手20的目的地位置的详细示例。
79.因此,最匹配的轨迹模板可用于基本上将手20的当前运动方式(如在轨迹数据314中编码的)外推到最匹配的轨迹模板的终点表示的预测终点。预测终点提供了对手将从其起始位置移动(在线性和角度意义上)多远的估计,并且此估计距离可以添加到手的起始位置,以获得手20的目的地位置(即,位置和角定向)。
80.图4示出了曲线图400,所述曲线图示出示例性意图预测子系统320将来自轨迹模板库212的示例性轨迹模板316与轨迹数据314进行比较。为了简单起见,对于轨迹模板316和轨迹数据314,仅示出了四个曲线中单个曲线的单个维度。
81.曲线图400示出了轨迹数据314的候选曲线408与轨迹模板316的模板曲线406进行比较。模板曲线406被绘制为速度402(例如头部20的x维度上的线速度)随时间404变化,作为从起始数据点414到结束数据点416的模板数据点410的时间序列。候选曲线408也被绘制为与模板曲线406相同的速度402类型(在本示例中为头部20的x维度上的线速度)随时间404变化,作为候选数据点418的时间序列。
82.轨迹数据314可以由轨迹数据生成子系统310连续生成,使得每次一个或多个新的候选数据点418添加到轨迹数据314时,意图预测子系统320都接收更新轨迹数据314。一旦意图预测子系统320接收到每个新的候选数据点418,意图预测子系统320就将每个候选曲线408与库212中每个轨迹模板的每个对应的模板曲线406进行比较。基于以下前提来预测用户的意图,即轨迹数据314越接近给定轨迹模板316,用户当前的手部和头部运动就越有可能遵循轨迹模板316。意图预测子系统320可以通过使用累积评分函数来执行此比较:
[0083][0084]
在等式1中,ti是库212中第i个轨迹模板,cj是来自候选曲线408的第j个速度值(即,候选数据点418),t
ij
是来自第i个轨迹模板的第j个速度值(即,模板数据点410),nc是候选曲线408中的候选数据点418的数量,并且n
t
是模板曲线406中的模板数据点410的数量。只要模板曲线406中存在与候选数据点418的时间位置对齐的对应模板数据点410(nc≤n
t
),等式1就能测量模板数据点410与其对应的候选数据点418之间的差412。然而,如果候选数据点418的数量大于模板数据点410的数量,则候选数据点418的值添加到累积分数中。在等式1中,s(ti*)是先前的累积分数。对所有四个速度曲线的所有维度重复此操作(或者,等效地,使用四个速度曲线中的每个的3维速度矢量值计算分数),以为每个轨迹模板生成四个分数:指示头部10的角速度曲线,指示头部10的线速度曲线,指示手部20的角速度曲线,且指示手部20的线速度曲线。
[0085]
任意调整参数a,b,c,d可用于调整预测算法,使得轨迹模板ti的最终累积分数为:
[0086][0087]
应当理解,如果a=b=c=0,则等式2表示用于2d鼠标移动的通用模板匹配算法。
[0088]
一旦所有候选运动与所有模板都进行了比较,意图预测子系统320就选择min(s(ti)),即库212中具有最低累积分数的最匹配的轨迹模板ti。
[0089]
在一些实施例中,意图预测子系统320可以从库212中选择都与轨迹数据314高度匹配的两个或两个以上轨迹模板,并组合两个或两个以上轨迹模板以生成组合轨迹模板。例如,如果库212中的两个或两个以上轨迹模板都产生小于预定轨迹相似度阈值的最终累积分数s(ti),则可以通过平均或以其他方式聚合它们的数据点来组合两个或两个以上轨迹模板,以生成组合轨迹模板。然后,组合轨迹模板可以用作如上所述的最匹配的轨迹模板;如本文所使用,术语“最匹配的轨迹模板”可以理解为也可能指这种组合轨迹模板。轨迹相似度阈值可以例如通过虚拟对象选择模块210的配置设置确定。
[0090]
然后,意图预测子系统320可以根据手的起始位置和最匹配的轨迹模板ti表示的位置变化(即,位置和定向)来预测手20的目的地位置:
[0091]
最终到达位置=最初起始位置+移动距离
ti
[0092]
(等式3)
[0093]
然后,意图预测子系统320可以通过检查哪个虚拟对象与在手20的预测目的地位置处沿着手20的前向矢量投射的光线相交来预测用户选择虚拟对象的意图,如下文参考图5所描述。可以在意图预测子系统320生成的选定虚拟对象数据324中识别选定虚拟对象。在一些实施例中,选定虚拟对象数据324还可以识别手20的预测目的地位置,或至少识别手20
的预测目的地位置(即,x、y和z坐标)。
[0094]
显示子系统330接收识别选定虚拟对象和手20的预测目的地位置(或方位)的选定虚拟对象数据324。显示子系统330使用选定虚拟对象数据324通过xr显示器104在视觉上向用户呈现选定虚拟对象,使得选定虚拟对象的虚拟位置随时间变化,随着用户的手20的移动而逐渐靠近用户的手20,或逐渐靠近手20的预测目的地位置。
[0095]
在一些实施例中,显示子系统330在时间t检测选定虚拟对象的虚拟位置。然后,显示子系统330使选定虚拟对象从其在时间t的虚拟位置朝向手20在时间t+1的预测目的地位置移动。例如,可以根据虚拟对象选择模块210的配置设置调整以单位/秒为单位的移动速度s的数值。一旦选定虚拟对象到达手的附近(其中,与手的附近可以定义为基于可根据虚拟对象选择模块210的配置设置调整的区域或距离阈值),则选定虚拟对象就可以锚定在手20周围,从而在用户与选定虚拟对象交互时保持选定虚拟对象相对于手20的虚拟位置。
[0096]
图5示出了示例性虚拟对象选择模块210选择虚拟对象并使其接近用户的手以进行交互的操作。如图1中所示,用户的手从第一位置26(例如,在时间t)移动到第二位置28(例如,在时间t+1)。在时间t到时间t+1从智能手表114的imu获得手部运动信息302(指示手部运动34),并且轨迹数据生成子系统310使用所述手部运动信息(连同来自hmd单元116的imu的头部运动信息304,未示出)生成轨迹数据314。意图预测子系统320使用轨迹数据314从库212中选择最匹配的轨迹模板。手20的起始位置(即第一位置22)和在最匹配的轨迹模板中移动的总距离用于针对最匹配的模板预测手20在未来时间(例如,在时间t+2)的目的地位置,所述未来时间对应于图4中模板曲线406的结束数据点416。在此示例中,手20的预测目的地位置示为第三位置502,其中手的前向矢量示为第三指向方向504。
[0097]
手20的预测目的地位置用于通过沿着第三指向方向504从手20的第三位置502投射光线,并确定所述光线在初始位置506与虚拟对象相交来识别选定虚拟对象。由于在手20仍在运动时识别选定虚拟对象,因此在手20仍在运动时,选定虚拟对象可以朝向手20或朝向手20的预测目的地位置移动。具体地,显示子系统330在不同时间在不同位置,例如在时间t在初始虚拟位置506处、在时间t+1在中间虚拟位置508处、在时间t+2在最终虚拟位置510处呈现选定虚拟对象,使得最终虚拟位置510接近(如上文所定义)手20的预测目的地位置。
[0098]
应当理解,尽管图5仅示出选定虚拟对象的三个虚拟位置506、508、510随时间变化,但只要尽可能频繁地渲染和显示3d环境,例如每秒30次或更多次,示例性实施例就可以不断更新选定虚拟对象的虚拟位置并在xr显示器104上重新呈现选定虚拟对象。此外,在轨迹数据生成子系统310根据新接收的手部和头部运动信息302、304连续更新轨迹数据314后,可以根据上述意图预测子系统320的操作不断更新手20的预测目的地位置。因此,尽管图5中的选定虚拟对象示出为沿着方向矢量514朝着静态第三位置502移动,但是应当理解,在一些实施例中,选定虚拟对象的移动方向和/或速度,和/或手20的预测第三位置502将响应于手部20和头部10在实际运动中的变化和/或意图预测子系统320执行的计算中的变化而随时间变化。
[0099]
因此,迭代步长函数(iterative step function)可用于使选定虚拟对象接近手20。当手20在运动时,意图预测子系统320不断预测手20在最终时间t+2的目的地位置。方向矢量514的方向为从选定虚拟对象的当前虚拟位置(例如,初始虚拟位置506)(x
当前
,y
当前
,z当前
)到手20的预测目的地位置(x,y,z)。此移动矢量514在时间t+1以速度v将选定虚拟对象朝向手20的预测目的地位置移动。速度v可随手20随时间移动而变,如最匹配的轨迹模板(其本身可以基于手部20和/或头部10的运动的变化而随时间变化)所预测。
[0100]
上述迭代步长函数与替代方法相比可具有一个或多个优势。首先,使选定虚拟对象迭代地移动可以在用户意图预测中提供误差幅度。这是因为,当手仍在运动时,意图预测子系统320执行的轨迹模板匹配算法仍然可以校正手20的先前预测的目的地位置,从而校正先前识别的用于选择的虚拟对象。当此错误被纠正时,先前预测的用于选择的虚拟对象将通过迭代步长函数朝手缓慢前进,当新识别的虚拟对象被带向手20时,所述前进可以逆转。
[0101]
其次,由于选定虚拟对象朝向手20移动的速度v随手随时间移动而变,因此手20的缓慢初始速度保持速度v较低。随着手20在其预测的总移动距离上的速度增加,速度v可以线性增加。此线性函数的好处是,如果意图预测子系统320最初预测错误,并且错误预测随时间推移而被校正,则新预测的用于选择的虚拟对象将比先前预测的用于选择的虚拟对象花费更短的时间到达手20的附近。随着意图预测子系统320的预测操作随时间推移校正预测,固定的速度v将减缓选定虚拟对象的移动。
[0102]
第三,迭代步长函数可以使预测虚拟对象平滑地朝向手20移动,以便进行选择。
[0103]
在一些示例中,也可以根据选定虚拟对象到达手的附近必须移动的总距离来确定选定虚拟对象朝向手20移动的速度v。例如,值深度
接近
可以是定义手和选定虚拟对象之间的最小距离的接近阈值,以便将选定虚拟对象视为在手20的附近。值深度
vo
可以定义选定虚拟对象在给定时间的位置的深度。最初,相对于例如头部10的前向矢量的原点(例如,如上所述的用户双眼之间的一点),深度
vo
》深度
接近
。选定虚拟对象朝向手20的附近移动,直到深度
vo
≤深度
接近
。之后,选定虚拟对象保持锚定在手20的周围。用户可以选择在xr环境中使用直接触摸操作与选定虚拟对象交互。
[0104]
示例性方法
[0105]
图6为示出用于向用户呈现xr环境的虚拟对象的示例性方法600的步骤的流程图。在下面描述的示例性实施例中,方法600由作为系统100的一部分的虚拟对象选择模块210在预测模式下执行。然而,应当理解,其他实施例可以使用执行类似功能的其他组件来实践方法600的步骤。
[0106]
方法600从步骤602开始。在602处,显示子系统330生成在初始虚拟位置,例如初始虚拟位置506处呈现虚拟对象的初始显示信息332。初始显示信息332可以包括可由显示子系统330发送到xr显示器104以呈现给用户的虚拟3d环境的渲染视图。取决于用户注视的方向和/或遮挡虚拟对象的其他视觉元素的存在,虚拟对象可以在渲染场景中可见或不可见;但是,初始显示信息332包括虚拟对象的虚拟位置信息,使得在假设视线畅通的情况下,虚拟对象将在虚拟位置处对用户可见。
[0107]
在604处,轨迹数据生成子系统310从手部运动传感器106获得手部运动信息302,如上文参考图3的轨迹数据生成子系统310和图4的轨迹比较图所述。
[0108]
在606处,轨迹数据生成子系统310也如上所述,从头部运动传感器108获得头部运动信息304。
[0109]
在608处,轨迹数据生成子系统310处理手部运动信息302和头部运动信息304以生
成轨迹数据314,如上文参考图3所述。步骤608可以可选地分解为子步骤610到618。(可选步骤以虚线示于图6中。)
[0110]
在可选的子步骤610处,轨迹数据生成子系统310从存储器208检索先前的手部运动信息312,以生成轨迹数据314的时间序列,如上文参考图3和4所述。
[0111]
在可选的子步骤612处,轨迹数据生成子系统310从存储器208检索先前的头部运动信息312,以生成轨迹数据314的时间序列,也如上所述。
[0112]
在可选的子步骤614处,轨迹数据生成子系统310将从手部运动传感器106获得的手部运动信息302存储在存储器208中,作为先前的手部运动信息312,如上文参考图3和4所述。
[0113]
在可选的子步骤616处,轨迹数据生成子系统310将从头部运动传感器108获得的头部运动信息304存储在存储器208中,作为先前的头部运动信息312,也如上所述。
[0114]
在可选的子步骤618处,轨迹数据生成子系统310根据从传感器106、108获得和从存储器208检索的头部和手部运动信息302、304、312生成轨迹数据314,如上文参考图3和4所述。
[0115]
在步骤608之后,方法600进行到步骤620。在620处,意图预测子系统320处理轨迹数据314,以确定用户意图在初始虚拟位置506处选择虚拟对象。步骤620可以可选地包括子步骤622。
[0116]
可选地,在子步骤622处,意图预测子系统320将轨迹数据314与多个轨迹模板(例如,库212中的每个轨迹模板)进行比较,以识别与在初始位置506处选择虚拟对象的意图对应的最匹配的轨迹模板。通过预测手20的目的地位置(例如,第三位置502)并识别与从手20的目的地位置(例如,沿着第三指向方向504)投射的光线相交的虚拟对象,确定最匹配的轨迹模板与在初始位置506处选择虚拟对象的意图之间的对应关系,如上文参考图3和4所述。
[0117]
在624处,显示子系统330生成在比初始虚拟位置506更靠近手20的更新虚拟位置(例如,中间虚拟位置508)处呈现选定虚拟对象(即,通过光线投射操作识别的、在选定虚拟对象数据324中识别的虚拟对象)的更新显示信息332。应当理解,这可能意味着更新虚拟位置可以在其不完整轨迹期间更靠近手20的当前位置,或者更靠近手20的预测目的地位置(例如,第三位置502)。
[0118]
示例性替代实施例
[0119]
除了上述实施例和示例之外,还可以使用各种替代实施例来代替上述任何实施例的全部或部分。现在将简要描述一些这样的替代示例和实施例。
[0120]
在一些实施例中,可以不需要头部运动信息304来执行虚拟对象选择模块210的轨迹预测操作。因此,hmd单元116可以不包括imu,或者imu可以不用于向计算设备200提供头部运动信息304。相反,可以完全根据手部运动信息302跟踪和预测手部轨迹。
[0121]
在一些实施例中,选定虚拟对象可以包括一个以上虚拟对象,例如在虚拟空间中分组在一起的gui元素集合,或与从手20的预测目的地位置投射的光线相交或几乎相交的两个或两个以上虚拟对象。在某些情况下,虚拟对象选择模块210可用于选择并移动相关虚拟对象的任何分组(例如一组gui元素)使其靠近用户的手20。在其他实施例中,意图预测子系统320可能无法自信地预测用户意图选择两个或两个以上虚拟对象中的哪一个,因此可以选择所有虚拟对象,并使它们更靠近手20(例如,手20的预测目的地位置)。在一些实施例
中,两个或两个以上虚拟对象可以相同的速度且沿着相同的运动矢量(例如,矢量514)靠近手20;在其他实施例中,两个或两个以上虚拟对象可以靠近手20,使得当它们到达或靠近手20的附近时,它们布置或排列成提高两个或两个以上虚拟对象的可见性和/或可及性。例如,如果选择了三个虚拟对象,则可以将它们移向手20的接近性阈值深度
接近
附近的三角形布置,使得用户可以清楚地看见三个虚拟对象,并且手进一步移动以选择三个虚拟对象中的一个,使其接近手20以便直接操纵。一些实施例可以将两个或两个以上虚拟对象中的所有虚拟对象锚定到手上以进行交互;其他实施例可以允许用户选择两个或两个以上虚拟对象中的一个,然后将未选择的虚拟对象发送回它们的初始虚拟位置。
[0122]
在此类实施例中,初始显示信息用于控制xr显示器在xr显示器104上向用户呈现多个虚拟对象,每个虚拟对象呈现在相应的初始虚拟位置处。轨迹数据314由轨迹数据生成子系统310处理,以确定用户意图选择多个虚拟对象中的两个或两个以上虚拟对象中的任何一个。响应于此确定,更新显示信息用于控制xr显示器104在xr显示器上相应的两个或两个以上更新虚拟位置处向用户呈现两个或两个以上虚拟对象。每个相应的更新虚拟位置比每个相应的初始虚拟位置更靠近手部。
[0123]
在一些实施例中,虚拟对象选择模块210可用于例如通过使用耦合到第二只手的第二手戴式imu跟踪用户双手的运动。第二只手可用于为本文所述的操作提供额外输入,例如上文所述的多个选定虚拟对象之间的歧义消除。
[0124]
综述
[0125]
尽管本发明描述了具有一定顺序的步骤方法和过程,但是可以适当地省略或改变方法和过程中的一个或多个步骤。在适当情况下,一个或多个步骤可以按所描述的顺序以外的顺序执行。
[0126]
尽管本发明在方法方面至少部分地进行了描述,但本领域普通技术人员将理解,本发明也针对用于执行所述方法的至少一些方面和特征的各种组件,无论是通过硬件组件、软件还是其任意组合。相应地,本发明的技术方案可以软件产品的形式体现。例如,合适的软件产品可以存储在预先记录的存储设备或其他类似的非易失性或非瞬时性计算机可读介质中,包括dvd、cd-rom、usb闪存盘、可移动硬盘或其他存储介质等。软件产品包括有形地存储在其上的指令,所述指令使得处理设备(例如,个人计算机、服务器或网络设备)能够执行本文中公开的方法的示例。
[0127]
在不脱离权利要求书的标的物的情况下,本发明可以其他特定形式实施。所描述的示例性实施例在各方面都仅仅是示意性的,而非限制性的。可以组合从一个或多个上述实施例中选择的特征,以创建非明确描述的替代实施例,在本发明的范围内可以理解适合于此类组合的特征。
[0128]
还公开了所公开范围内的所有值和子范围。此外,尽管本文所公开和示出的系统、设备和过程可包括特定数量的元件/组件,但可以修改所述系统、设备和组合件,以包括更多或更少的此类元件/组件。例如,尽管所公开的任何元件/组件可引用为单数,但是可以修改本文所公开的实施例以包括多个此类元件/组件。本文所描述的标的物旨在覆盖和涵盖所有合适的技术变更。

技术特征:
1.一种用于向用户呈现扩展现实(extended reality,xr)环境的虚拟对象的方法,其特征在于,所述方法包括:生成初始显示信息,所述初始显示信息用于控制xr显示器在初始虚拟位置处向所述用户呈现所述虚拟对象;从一个或多个手部运动传感器获得指示手部速度的手部运动信息;处理所述手部运动信息以生成轨迹数据;处理所述轨迹数据以确定所述用户意图选择所述虚拟对象;生成更新显示信息,所述更新显示信息用于控制所述xr显示器在比所述初始虚拟位置更靠近所述手部的更新虚拟位置处向所述用户呈现所述虚拟对象。2.根据权利要求1所述的方法,其特征在于,还包括从一个或多个头部运动传感器获得指示所述用户头部速度的头部运动信息;其中,处理所述手部运动信息以生成所述轨迹数据包括处理所述手部运动信息和所述头部运动信息以生成所述轨迹数据。3.根据权利要求2所述的方法,其特征在于:生成所述轨迹数据包括:从存储器检索先前的手部运动信息;将从所述手部运动传感器获得的所述手部运动信息存储在所述存储器中;从存储器检索先前的头部运动信息;将从所述头部运动传感器获得的所述头部运动信息存储在所述存储器中;处理所述先前的手部运动信息、从所述手部运动传感器获得的所述手部运动信息、所述先前的头部运动信息和从所述头部运动传感器获得的所述头部运动信息,以生成所述轨迹数据。4.根据权利要求2或3所述的方法,其特征在于:所述手部运动信息指示所述手部的线速度和角速度;所述头部运动信息指示所述头部的线速度和角速度。5.根据权利要求2至4中任一项所述的方法,其特征在于:所述一个或多个手部运动传感器包括耦合到所述手部的惯性测量单元;所述一个或多个头部运动传感器包括耦合到所述头部的惯性测量单元。6.根据权利要求5所述的方法,其特征在于:耦合到所述手部的所述惯性测量单元为佩戴在手腕上的智能手表的惯性测量单元;耦合到所述头部的所述惯性测量单元为佩戴在所述头部上的头戴式显示设备的惯性测量单元,所述头戴式显示设备包括所述xr显示器。7.根据权利要求2至6中任一项所述的方法,其特征在于,处理所述轨迹数据以确定所述用户意图选择所述虚拟对象包括将所述轨迹数据与多个轨迹模板进行比较,以识别所述多个轨迹模板中与选择所述虚拟对象的意图对应的最匹配的轨迹模板。8.根据权利要求1至7中任一项所述的方法,其特征在于,还包括处理所述轨迹数据以预测所述手部的未来位置;其中,所述更新虚拟位置比所述初始虚拟位置更靠近所述手部的所述未来位置。9.根据权利要求1至8中任一项所述的方法,其特征在于:
所述初始显示信息用于控制所述xr显示器在所述xr显示器上向所述用户呈现多个虚拟对象,每个虚拟对象呈现在相应初始虚拟位置处;所述轨迹数据经过处理以确定所述用户意图选择所述多个虚拟对象中的两个或两个以上虚拟对象中的任何一个;所述更新显示信息用于控制所述xr显示器在所述xr显示器上相应的两个或两个以上更新虚拟位置处向所述用户呈现所述两个或两个以上虚拟对象,每个相应的更新虚拟位置比每个相应的初始虚拟位置更靠近所述手部。10.一种用于向用户呈现扩展现实(extended reality,xr)环境的虚拟对象的系统,其特征在于,所述系统包括:处理器设备;其上存储有机器可执行指令的存储器,所述指令在由处理设备执行时使所述系统:生成初始显示信息,所述初始显示信息用于控制xr显示器在初始虚拟位置处向所述用户呈现所述虚拟对象;从一个或多个手部运动传感器获得指示手部速度的手部运动信息;处理所述手部运动信息以生成轨迹数据;处理所述轨迹数据以确定所述用户意图选择所述虚拟对象;生成更新显示信息,所述更新显示信息用于控制所述xr显示器在比所述初始虚拟位置更靠近所述手部的更新虚拟位置处向所述用户呈现所述虚拟对象。11.根据权利要求10所述的系统,其特征在于:所述机器可执行指令在由所述处理设备执行时还使所述系统从一个或多个头部运动传感器获得指示所述用户头部速度的头部运动信息;处理所述手部运动信息以生成所述轨迹数据包括处理所述手部运动信息和所述头部运动信息以生成所述轨迹数据。12.根据权利要求11所述的系统,其特征在于:生成所述轨迹数据包括:从存储器检索先前的手部运动信息;将从所述手部运动传感器获得的所述手部运动信息存储在所述存储器中;从存储器检索先前的头部运动信息;将从所述头部运动传感器获得的所述头部运动信息存储在所述存储器中;处理所述先前的手部运动信息、从所述手部运动传感器获得的所述手部运动信息、所述先前的头部运动信息和从所述头部运动传感器获得的所述头部运动信息,以生成所述轨迹数据。13.根据权利要求11或12所述的系统,其特征在于:所述手部运动信息指示所述手部的线速度和角速度;所述头部运动信息指示所述头部的线速度和角速度。14.根据权利要求11至13中任一项所述的系统,其特征在于:所述一个或多个手部运动传感器包括耦合到所述手部的惯性测量单元;所述一个或多个头部运动传感器包括耦合到所述头部的惯性测量单元。15.根据权利要求10至14中任一项所述的系统,其特征在于,还包括配置为佩戴在所述
头部上的头戴式显示设备,所述头戴式显示设备包括所述xr显示器和耦合到所述头部的所述惯性测量单元。16.根据权利要求10至15中任一项所述的系统,其特征在于,还包括配置为佩戴在手腕上的智能手表,所述智能手表包括耦合到所述手部的所述惯性测量单元。17.根据权利要求11至16中任一项所述的系统,其特征在于:所述存储器还存储多个轨迹模板;处理所述轨迹数据以确定所述用户意图选择所述虚拟对象包括:从所述存储器检索所述多个轨迹模板;将所述轨迹数据与所述多个轨迹模板进行比较,以识别所述多个轨迹模板中与选择所述虚拟对象的意图对应的最匹配的轨迹模板。18.根据权利要求10至17中任一项所述的系统,其特征在于:所述机器可执行指令在由所述处理设备执行时还使所述系统处理所述轨迹数据以预测所述手部的未来位置;所述更新虚拟位置比所述初始虚拟位置更靠近所述手部的所述未来位置。19.根据权利要求10至18中任一项所述的系统,其特征在于:所述初始显示信息用于控制所述xr显示器在所述xr显示器上向所述用户呈现多个虚拟对象,每个虚拟对象呈现在相应初始虚拟位置处;所述轨迹数据经过处理以确定所述用户意图选择所述多个虚拟对象中的两个或两个以上虚拟对象中的任何一个;所述更新显示信息用于控制所述xr显示器在所述xr显示器上相应的两个或两个以上更新虚拟位置处向所述用户呈现所述两个或两个以上虚拟对象,每个相应的更新虚拟位置比每个相应的初始虚拟位置更靠近所述手部。20.一种其上存储有机器可执行指令的计算机可读介质,其特征在于,所述机器可执行指令在由设备的处理器设备执行时使所述设备执行根据权利要求1至9中任一项所述的方法。21.一种计算机程序,其特征在于,包括指令,所述指令在计算机执行所述程序时使所述计算机执行根据权利要求1至9中任一项所述的方法。

技术总结
本申请描述了用于在扩展现实环境中选择虚拟对象以进行用户交互的设备、方法、系统和介质。在虚拟3D空间内使远处虚拟对象靠近用户,以使选定虚拟对象在虚拟空间中处于所述用户手部附近,以便直接操纵。所述用户根据所述用户的手部和/或头部的运动选择虚拟对象,所述运动与在所述虚拟3D空间内选择特定虚拟对象的意图相关或相关联。当所述用户的手部以与此意图一致的方式移动时,所述虚拟对象在所述虚拟3D空间内更靠近所述用户的手部。为了预测所述用户的意图,可以将手部和头部轨迹数据与运动轨迹模板库进行比较,以识别最匹配的轨迹模板。模板。模板。


技术研发人员:塔斯林-阿雷芬
受保护的技术使用者:华为技术有限公司
技术研发日:2021.12.21
技术公布日:2023/10/6
版权声明

本文仅代表作者观点,不代表航家之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)

航空之家 https://www.aerohome.com.cn/

飞机超市 https://mall.aerohome.com.cn/

航空资讯 https://news.aerohome.com.cn/

分享:

扫一扫在手机阅读、分享本文

相关推荐