虚拟环境中的投影投射的制作方法

专利查询2022-5-9  362


本申请涉及于2019年9月25日提交的代理人案卷号为134875-8002.US02,标题为“PROJECTION CASTING IN VIRTUAL ENVIRONMENTS”的美国专利申请号16/583,069;于2019年9月20日提交的代理人案卷号为134875-8003-US01、标题为“GLOBAL AND LOCAL MODE VIRTUAL OBJECT INTERACTIONS”的美国专利申请号16/578,236;于2019年9月20日提交的代理人案卷号为134875-8004-US01、标题为“THREE-STATE GESTURE VIRTUAL CONTROLS”的美国专利申请号16/578,240;于2019年9月20日提交的代理人案卷号134875-8005-US01、标题为“PROGRESSIVE DISPLAY OF VIRTUAL OBJECTS”的美国专利申请号16/578,251;以及于2019年9月20日提交的代理人案卷号为134875-8006-US01、标题为“VIRTUAL INTERACTIONS AT A DISTANCE”的美国专利申请号16/578,260;所有这些申请均通过引用整体并入本文。

技术领域

本公开针对人工现实环境中的对象交互。

背景技术

在人工现实环境中,用户看到并与之交互的一些或所有对象是“虚拟对象”,即,由计算系统生成的出现在环境中的对象的表示。人工现实环境中的虚拟对象可以通过头戴式显示器、移动设备、投影系统或其他计算系统呈现给用户。通常,用户可以使用控制器和/或手势来与虚拟对象交互。例如,用户与虚拟对象的“交互”可以包括选择、移动、旋转、调整大小、启动控件、更改颜色或皮肤、限定真实或虚拟对象之间的交互、设定虚拟力以作用于虚拟对象或对用户可以想象的对象进行更改或任何其他动作。在一些系统中,用户还可以与独立于控制人工现实环境的计算机系统而存在的“真实对象”交互。例如,用户可以选择真实对象并添加虚拟覆盖来更改对象的颜色或以某种其他方式将对象呈现给用户,使其影响其他虚拟对象等。如本文所使用的,除非另有说明,否则“对象”可以是真实对象或虚拟对象。



技术实现要素:

根据本发明,提供了用于在人工现实环境中与对象进行交互的方法,方法包括:跟踪用户的手的一部分,并且基于用户的手的所跟踪的部分来设定控制点;跟踪用户身体上的点并且基于用户身体上的所跟踪的点来设定原点;确定以通过控制点和原点的线为中心的投影取向;从控制点由用户向外沿着投影取向投射射线投影;以及基于射线投影的一个或多个位置,执行与一个或多个对象有关的动作。

优选地,用户身体上的点是用户身体上的第一点,并且其中方法还包括:标识一个或多个原点转换因子;基于一个或多个原点转换因子,确定原点应移动到用户身体上的第二跟踪点;以及将原点从用户身体上的第一点移动到用户身体上的第二点。

方便地,移动原点包括相对于将用户身体上的第一点连接到用户身体上的第二点的路径,以设定速度移动原点。

优选地,用户身体上的第一点是用户的眼睛或肩部;用户身体上的第二点是用户的臀部;并且路径通过直线将A)用户的眼睛或用户的肩部连接到B)用户的臀部。

方便地,一个或多个原点转换因子包括所跟踪的用户注视方向。

优选地,确定原点应当移动包括:确定与用户注视方向相关联的角度;确定角度高于阈值;以及作为响应,选择高交互模式,在该模式中用户身体上的第二点低于用户身体上的第一点。

方便地,一个或多个原点转换因子包括穿过控制点和原点的线相对于指定平面的角度的测量值;并且确定原点应移动包括:确定角度低于阈值;和作为响应,选择低交互模式,在该模式中用户身体上的第二点高于用户身体上的第一点。

优选地,相对于控制点被跟踪的用户手的部分是用户的指尖。

方便地,相对于控制点被跟踪的用户手的部分是用户的手腕。

优选地,基于用户的手的所跟踪的部分设定控制点包括在距用户手的部分的指定偏移量的位置处选择控制点。

方便地,相对于原点被跟踪的用户身体上的点是用户的优势眼(dominant eye)。

优选地,相对于原点被跟踪的用户身体上的点是用户的肩部。

方便地,相对于原点被跟踪的用户身体上的点是用户的臀部。

优选地,执行与一个或多个对象有关的动作包括使得一个或多个对象被选择。

根据本发明的另一方面,提供了存储指令的计算机可读存储介质,该指令在由计算系统执行时,使得计算系统执行用于与人工现实环境中的对象交互的操作,操作包括:基于用户手的一部分的位置设定控制点;基于用户身体上的点设定原点;确定以通过控制点和原点的直线为中心的投影取向;以及基于投影的一个或多个位置,执行与一个或多个对象有关的动作。

优选地,用户身体上的点是用户身体上的第一点,并且其中操作还包括:标识一个或多个原点转换因子;基于一个或多个原点转换因子,确定原点应沿着连接用户身体上的第一点和用户身体上的第二点的路径移动到用户身体上的第二点;以及以设定速度沿路径移动原点,在这种情况下可选地,其中一个或多个原点转换因子包括所跟踪的用户注视方向;并且确定原点应移动包括:测量与用户注视方向相关联的角度;以及基于所确定的角度,选择交互模式,其中用户身体上的第二点高于用户身体上的第一点。

方便地,手的部分是用户的指尖;用户的手掌;用户的手腕;或用户的拳头之一;并且身体上的点是用户的优势眼、用户的肩部或用户的臀部之一。

根据本发明的另一方面,提供了计算系统,包括:一个或多个处理器;以及存储指令的存储器,指令在由一个或多个处理器执行时,使得计算系统执行以下操作:基于用户手的一部分的位置设定控制点;基于用户身体上的点设定原点;以及投射以通过控制点和原点的直线为中心的投影。

优选地,用户身体上的点是用户身体上的第一点,并且其中操作还包括:标识一个或多个原点转换因子;基于一个或多个原点转换因子,确定原点应沿着连接用户身体上的第一点和用户身体上的第二点的路径移动到用户身体上的第二点;以及以设定速度沿路径移动原点。

附图说明

图1是图示了本技术的一些实现方式可以在其上操作的设备的概述的框图。

图2A是图示了可以在本技术的一些实现方式中使用的虚拟现实耳机的接线图。

图2B是图示了可以在本技术的一些实现方式中使用的混合现实耳机的接线图。

图3是图示了本技术的一些实现方式可以在其中操作的环境的概览的框图。

图4是图示了在一些实现方式中可以在采用所公开技术的系统中使用的组件的框图。

图5是图示了在本技术的一些实现方式中使用的利用原点和控制点来投射的投影过程的流程图。

图6是图示了具有肩部原点和手掌控制点的示例射线投影的概念图。

图7是图示了具有优势眼原点和指尖控制点的示例射线投影的概念图。

图8是图示了具有臀部原点和拳头控制点的示例射线投影的概念图。

图9是图示了具有肩部原点和腕部控制点的示例射线投影的概念图。

图10是图示了在本技术的一些实现方式中使用的用于调整投影原点的过程的流程图。

图11A、图11B和图11C是图示了在臀部和肩部之间调整投影原点的示例的概念图。

图12是图示了在本技术的一些实现方式中使用的用于与射线投影进行对象交互的过程的流程图。

图13是图示了示例射线投影的概念图。

图14是图示了在本技术的一些实现方式中使用的用于与圆柱投影进行对象交互的过程的流程图。

图15是图示了示例圆柱投影的概念图。

图16是图示了在本技术的一些实现方式中使用的用于与圆锥投影进行对象交互的过程的流程图。

图17是图示了示例圆锥投影的概念图。

图18是图示了在本技术的一些实现方式中使用的用于投影类型的基于上下文的选择的过程的流程图。

图19是图示了在本技术的一些实现方式中使用的用于使用剪切手势来选择对象的过程的流程图。

图20是图示了使用剪切手势来选择对象的示例的概念图。

图21是图示了在本技术的一些实现方式中使用的用于使用剪切点击手势来致动对象的过程的流程图。

图22是图示了使用剪切点击手势来致动对象的示例的概念图。

图23是图示了在本技术的一些实现方式中使用的用于使用套索手势来选择对象的过程的流程图。

图24A和图24B是图示了使用套索手势来选择对象的示例的概念图。

图25是图示了在本技术的一些实现方式中使用的用于使用框架手势来选择对象的过程的流程图。

图26A和图26B是图示了使用框架手势来选择对象的示例的概念图。

图27是图示了在本技术的一些实现方式中使用的用于在与射线投影相交的目标和非目标对象之间消歧的过程的流程图。

图28和图29是图示了与射线投影相交的选定对象和非选定对象之间的示例挂钩消歧的概念图。

图30是图示了在本技术的一些实现方式中使用的用于利用“长号”手势在与圆锥或圆柱投影相交的目标和非目标对象之间消歧的过程的流程图。

图31和图32是图示了用于在与圆锥投影相交的选定和非选定对象之间消歧的示例长号手势的概念图。

图33和图34是图示了用于在与圆柱投影相交的选定对象和未选定对象之间消歧的第二示例长号手势的概念图。

图35是图示了在本技术的一些实现方式中使用的用于使用与优势手附接的菜单与对象进行双手交互的过程的流程图。

图36、图37和图38是图示了使用与优势手附接的菜单与对象进行双手交互的示例的概念图。

图39是图示了在本技术的一些实现方式中使用的用于切换针对全局或局部模式交互的输入模态的过程的流程图。

图40A和图40B是图示了用于全局或局部模式交互的切换输入模态的示例的概念图。

图41是图示了在本技术的一些实现方式中使用的用于将手势解释为全局或局部模式中的交互的过程的流程图。

图42A和图42B是图示了将手势解释为全局或局部模式中的交互的示例的概念图。

此处引入的技术可以通过结合附图参考以下具体实施方式来更好地理解,其中相同的附图标记表示相同或功能相似的元素。

具体实施方式

本文描述了用于在人工现实环境中与对象交互的实施例。在人工现实环境中,用户可能希望执行间接交互,其中交互的因果在空间上分离。本技术提供用户可以创建来执行对象交互的投影。例如,当用户希望与她直接接触范围之外的对象进行交互时,她可以使用投影来选择、移动或以其他方式与远处的对象进行交互。本技术还包括用于在目标对象之间标识和消歧的对象选择技术,允许用户选择靠近和远离用户的对象。本技术的又一方面包括用于解释各种双手(两手操作的)手势,以在与对象交互时增加功能和控制的技术。本技术还包括用于区分全局模式和局部模式的模型,以例如提供不同的输入模态或用户手势的解释。

投影是二维(例如,线或“射线”)或三维(例如,圆柱、球体、圆锥、棱锥等)中的区域的指示,其可以指定用户希望与之交互的对象。例如,手交互系统可以将与投影相交的一个或多个对象标识为目标对象。由于跟踪手和身体位置和姿势的不准确性,解释手和身体姿势以正确地与用户直接接触范围之外的对象交互可能很困难。由于随着投影从用户向外延伸,小的手移动对投影位置的指数影响使这些困难更加复杂。为了增加投影的稳定性,手交互系统可以基于原点和控制点来控制投影位置。手交互系统可以设定从原点通过控制点延伸的线作为投影中心。在各种实现方式中,原点可以是用户身体的被跟踪部分,诸如优势眼、臀部或肩部,并且控制点可以是用户手的一部分,诸如指尖、手掌、手腕或拳头。在一些实现方式中,原点可以基于上下文而更改,诸如用户将她的视线引导到哪里或投影中心线的角度。

手交互系统可以提供各种投影类型。射线投影可以是例如从用户的手延伸到人工现实环境的单个线。射线投影可以提供非常精确的交互,但尤其是在远处时精度较低。球体投影可以是在其端部处具有球体的射线投影,并且圆柱投影可以是例如从用户的手延伸到人工现实环境中的圆柱。圆锥或棱锥投影可以是具有例如从用户的手或眼睛延伸的尖端的圆锥或棱锥,并且随着投影延伸到人工现实环境中,投影在覆盖区域中呈指数增加。由于它们比射线投影覆盖更大的面积,诸如圆柱、球体、圆锥和棱锥的投影可以更容易地用于正确指示用户希望与之交互的对象,但通常精度较低。

在一些情况下,投影可以与比用户希望与之交互的对象更多的对象相交。例如,用户可能希望仅选择一些紧密的对象集群。在其他情况下,投影可能无法与用户希望与之交互的对象相交。例如,投影可以被配置为不穿过对象并且用户可能希望选择被另一对象遮挡的对象。手交互系统可以包括用于在选定对象之间消歧或扩展投影覆盖范围的各种双手(两手操作的)技术。在一些实现方式中,手交互系统可以在射线投影上的点处指定“挂钩(hook)”。用户的优势手和挂钩之间的射线投影距离可以基于另一手势,诸如用户优势手和非优势手之间的距离或用户的两个手指之间的距离。在其他实现方式中,手交互系统可以基于另一手势来控制投影的形状。例如,手交互系统可以基于另一手势(诸如,用户的优势手和非优势手之间的距离或用户的两只手之间的距离)来改变圆柱、球体或圆锥投影底面的直径。

在各种实现方式中,手交互系统还可以检测附加的对象交互手势,诸如剪切、剪切点击、套索或框架手势。在一些实现方式中,这些手势可以使用配置有在用户的优势眼处的原点和在她的手上的控制点的射线投影,因此在用户看来,就好像她正在“绘图”到环境中一样。剪切手势是用户移动投影来与一个或多个对象相交的情况。手交互系统可以选择与投影相交的每个对象。剪切点击手势是用户移动投影来与一个或多个可操作控件(例如,按钮)相交的情况。手交互系统可以致动与投影相交的每个控件。套索手势是手交互系统标识套索移动的情况,诸如通过将用户移动与先前观察到的手势进行比较(例如,使用机器学习模型)或通过标识用户已做出闭合形状手势。手交互系统可以标识具有从用户眼睛延伸的点和由套索手势限定的扭曲圆锥形状的投影(例如,扭曲圆锥)。手交互系统可以选择与扭曲圆锥相交的对象。框架手势是手交互系统标识框架输入的情况,诸如通过标识用户已使用双手的拇指和食指限定了矩形的边缘,或者通过拉开矩形的相对角。手交互系统可以标识利用从用户眼睛延伸的点和由矩形限定的棱锥壁的投影(例如,棱锥)。手交互系统可以选择与棱锥相交的对象。

手交互系统还可以标识用户是否正试图以各种操作模式(例如,全局模式或局部模式)与对象交互。全局模式可以用于在环境内操作对象,例如选择对象、控制虚拟环境中的对象放置等。局部模式可以用于与一个或多个选定对象的界面交互,例如按压对象上的按钮、与菜单或与对象相关联的其他控件交互等。在各种实现方式中,用户可以在全局和局部模式之间显式选择(例如,利用手势或按钮按压)或者全局/局部模式选择可以是隐式的(例如,基于用户的注视)。在一些实现方式中,输入模态可以基于哪个操作模式被激活来自动更改。例如,在全局模式下,输入可以被切换到投影投射,诸如射线、圆柱、球体或圆锥投影。在局部模式中,输入可以诸如通过将与选定对象相关联的控件映射到用户手上的手指而被切换到其他模态,其中经映射的手指的特定检测移动控制对应控件的致动。在一些实现方式中,可以针对对象被采取的动作可以被划分为在特定操作模式下可执行。手交互系统可以将手势与为当前激活模式限定的动作集中的动作匹配。例如,在全局模式下,从虚拟棋盘的右上角向下拖动的手势可以被解释为旋转棋盘的意图。然而,在局部模式下,相同的手势可以被解释为将车从右上角的棋格向前移动对应于手势长度的量。

所公开技术的实施例可以包括人工现实系统或结合人工现实系统来实现。人工现实或超现实(XR)是在呈现给用户之前已以某种方式进行了调整的现实形式,其可以包括例如虚拟现实(VR)、增强现实(AR)、混合现实(MR)、混合式现实或它们的一些组合和/或衍生物。人工现实内容可以包括完全生成的内容或与所捕获的内容(例如,真实世界照片)组合生成的内容。人工现实内容可以包括视频、音频、触觉反馈或它们的某种组合,其中的任一个可以在单个信道或多个信道中呈现(诸如向观看者产生三维效果的立体视频)。附加地,在一些实施例中,人工现实可以与应用程序、产品、附件、服务或它们的某种组合相关联,它们例如被用于在人工现实中创建内容和/或用于人工现实(例如,在其中执行活动)。提供人工现实内容的人工现实系统可以在各种平台上实现,包括与主机计算机系统连接的头戴式显示器(HMD)、独立的HMD、移动设备或计算系统、“洞穴”环境或其他投影系统,或者能够向一个或多个观看者提供人工现实内容的任何其他硬件平台。

如本文所使用的,“虚拟现实”或“VR”指代用户的视觉输入由计算系统控制的沉浸式体验。“增强现实”或“AR”指代用户在通过计算系统之后查看现实世界的图像的系统。例如,背面带有相机的平板电脑可以捕获现实世界的图像,并且然后将图像显示在平板电脑与相机相对侧的屏幕上。平板电脑可以诸如通过添加虚拟对象,在图像通过系统时处理和调整或“增强”图像。“混合现实”或“MR”指代进入用户眼睛的光由计算系统部分生成并且部分构成从现实世界中的对象反射的光的系统。例如,MR头戴式耳机可以被塑造为带有直通显示器的眼镜,它允许来自现实世界的光通过波导,波导同时从MR头戴式耳机中的投影仪发射光,从而允许MR头戴式耳机能够呈现与用户可以看到的真实对象混合的虚拟对象。如本文所使用的,“人工现实”、“超现实”或“XR”指代VR、AR、MR中的任一个或者它们的任何组合或混合。

存在用于在人工现实环境中选择对象并与对象交互的现有XR系统。然而,这些XR系统是不准确的、不精确的,并且提供的功能有限。现有的XR系统通常需要单独的控制器设备进行输入,并且经常无法正确解释与人工现实环境中的对象相关的用户手势。现有XR系统让用户操作起来很费时费力。本文描述的手交互系统和过程克服了与常规XR交互技术相关联的这些问题,并且期望为用户提供对对象交互的更大控制、提供更多功能并且比现有XR系统中的交互更自然和直观。尽管自然和直观,但是本文中描述的XR系统和过程植根于计算机化的人工现实系统,而不是传统对象交互的模拟。例如,现有对象交互技术无法描述基于多个身体部位或手势的投影定位,更不用说为用户提供调整大小和自定义此类投影的功能。此外,现有XR系统不提供有效的选择和消歧技术,也不提供切换输入模态或基于用户意图模式(例如,全局和局部模式)解释用户输入的选项。

以下参考附图更详细地讨论若干实现方式。图1是图示了可以在其上操作所公开技术的一些实现方式的设备的概述的框图。设备可以包括计算系统100的硬件组件,其解释用于与人工现实环境中的对象交互的手势。在各种实现方式中,计算系统100可以包括通过有线或无线信道进行通信来分配处理和共享输入数据的单个计算设备103或多个计算设备(例如,计算设备101、计算设备102和计算设备103)。在一些实现方式中,计算系统100可以包括能够为用户提供计算机创建的或增强的体验而不需要外部处理或传感器的独立头戴式耳机。在其他实现方式中,计算系统100可以包括多个计算设备,诸如头戴式耳机和核心处理组件(诸如控制台、移动设备或服务器系统),其中一些处理操作在头戴式耳机上执行,而其他处理操作被卸载到核心处理组件。以下结合图2A和图2B描述示例头戴式耳机。在一些实现方式中,位置和环境数据可以仅由并入头戴式耳机设备中的传感器收集,而在其他实现方式中,一个或多个非耳机计算设备可以包括可以跟踪环境或位置数据的传感器组件。

计算系统100可以包括一个或多个处理器110(例如,中央处理单元(CPU)、图形处理单元(GPU)、全息处理单元(HPU)等)。处理器110可以是单个处理中或者跨多个设备分布(例如,分布在两个或更多个计算设备101-103上)的一个或多个处理单元。

计算系统100可以包括向处理器110提供输入、通知它们动作的一个或多个输入设备120。动作可以由硬件控制器调解,硬件控制器解释从输入设备接收的信号并且使用通信协议将信息通信到处理器110。每个输入设备120可以包括例如鼠标、键盘、触摸屏、触摸板、可穿戴输入设备(例如,触觉手套、手镯、戒指、耳环、项链、手表等)、相机(或其他基于光的输入设备,例如红外传感器)、麦克风或其他用户输入设备。

处理器110可以例如使用内部或外部总线(诸如PCI总线、SCSI总线或无线连接)被耦合到其他硬件设备。处理器110可以与设备的硬件控制器通信,诸如显示器130。显示器130可以被用于显示文本和图形。在一些实现方式中,诸如当输入设备是触摸屏或配备有眼睛方向监测系统时,显示器130包括作为显示器的一部分的输入设备。在一些实现方式中,显示器与输入设备分离。显示设备的示例有:LCD显示屏、LED显示屏、投影显示器、全息显示器或增强现实显示器(诸如平视显示设备(heads-up display device)或头戴式设备)等。其他I/O设备140也可以被耦合到处理器,诸如网络芯片或卡、视频芯片或卡、音频芯片或卡、USB、火线或其他外部设备、相机、打印机、扬声器、CD-ROM驱动装置、DVD驱动、磁盘驱动等。

计算系统100可以包括能够与其他本地计算设备或网络节点进行无线或有线通信的通信设备。通信设备可以使用例如TCP/IP协议,借助网络与另一设备或服务器通信。计算系统100可以利用通信设备来跨多个网络设备分布操作。

处理器110可以访问存储器150,存储器150可以被包含在计算系统100的计算设备之一上或者可以跨计算系统100的多个计算设备或其他外部设备分布。存储器包括用于易失性或非易失性存储的一个或多个硬件设备,并且可以包括只读存储器和可写存储器。例如,存储器可以包括随机存取存储器(RAM)、各种高速缓存、CPU寄存器、只读存储器(ROM)和可写非易失性存储器(诸如闪存、硬盘驱动装置、软盘、CD、DVD、磁存储设备、磁带驱动装置等)中的一个或多个。存储器不是脱离底层硬件的传播信号;存储器因此是非暂时的。存储器150可以包括存储程序和软件(诸如操作系统162、手交互系统164和其他应用程序166)的程序存储器160。存储器150还可以包括数据存储器170,数据存储器170可以包括例如投影描述符、手势标识符(例如,经训练的机器学习模型)和/或手势路径、手势和动作之间的映射、动作和用户意图模式之间的映射、配置数据、设定、用户选项或偏好等,它们可以被提供给程序存储器160或计算系统100的任何元件。

一些实现方式可以与许多其他计算系统环境或配置一起操作。可适用于该技术的计算系统、环境和/或配置的示例包括但不限于XR耳机、个人计算机、服务器计算机、手持或膝上型设备、蜂窝电话、可穿戴电子设备、游戏控制台、平板设备、多处理器系统、基于微处理器的系统、机顶盒、可编程消费电子产品、网络PC、小型计算机、大型计算机、包括任何上述系统或设备的分布式计算环境等。

图2A是根据一些实施例的虚拟现实头戴式显示器(HMD)200的接线图。HMD 200包括前刚体205和带210。前刚体205包括电子显示器245的一个或多个电子显示元件、惯性运动单元(IMU)215、一个或多个位置传感器220、定位器225和一个或多个计算单元230。位置传感器220、IMU 215和计算单元230可以在HMD 200内部并且可能对用户不可见。在各种实现方式中,IMU 215、位置传感器220和定位器225可以在现实世界和虚拟环境中以三自由度(3DoF)或六自由度(6DoF)跟踪HMD 200的移动和位置。例如,定位器225可以发射红外光束,该红外光束在HMD 200周围的真实对象上创建光点。与HMD 200集成的一个或多个相机(未示出)可以检测光点。HMD 200中的计算单元230可以使用所检测的光点来推断HMD 200的位置和移动,以及标识HMD 200周围真实对象的形状和位置。

电子显示器245可以与前刚体205集成并且可以根据计算单元230的指示向用户提供图像光。在各种实施例中,电子显示器245可以是单个电子显示器或多个电子显示器(例如,每个用户眼睛的显示器)。电子显示器245的示例包括:液晶显示器(LCD)、有机发光二极管(OLED)显示器、有源矩阵有机发光二极管显示器(AMOLED)、包括一个或多个量子点发光二极管(QOLED)子像素的显示器、投影仪单元(例如,microLED、LASER等)、一些其他显示器或它们的一些组合。

在一些实现方式中,HMD 200可以被耦合到核心处理组件,诸如个人计算机(PC)(未示出)和/或一个或多个外部传感器(未示出)。外部传感器可以监视HMD 200(例如,经由从HMD 200发射的光),PC可以使用HMD 200,结合来自IMU 215和位置传感器220的输出来确定HMD 200的位置和移动。

在一些实现方式中,HMD 200可以与一个或多个其他外部设备通信,诸如用户可以用一只手或两只手握持的控制器(未示出)。控制器可以具有自己的IMU单元、位置传感器和/或可以发射更多的光点。HMD 200或外部传感器可以跟踪这些控制器光点。HMD 200或核心处理组件中的计算单元230可以使用该跟踪,结合IMU和位置输出来监视用户的手位置和运动。控制器还可以包括用户可以致动来提供输入并与虚拟对象交互的各种按钮。在各种实现方式中,HMD 200还可以包括附加子系统,诸如眼睛跟踪单元、音频系统、各种网络组件等。在一些实现方式中,代替控制器或除了控制器之外,HMD中包括或其外部的一个或多个相机200可以监视用户手的位置和姿势来确定手势和其他手和身体运动。

图2B是混合现实HMD系统250的接线图,该混合现实HMD系统250包括混合现实HMD 252和核心处理部件254。混合现实HMD 252和核心处理部件254可以经由如链路256所指示的无线连接(例如,60GHz链路)来通信。在其他实现方式中,混合现实系统250仅包括头戴式耳机,而没有外部计算设备或者在混合现实HMD 252和核心处理组件254之间包括其他有线或无线连接。混合现实HMD 252包括直通显示器258和框架260。框架260可以容纳各种电子组件(未示出),诸如光投影仪(例如,LASER、LED等)、相机、眼睛跟踪传感器、MEMS元件、联网组件等。

投影仪可以例如经由光学元件而被耦合到直通显示器258,以向用户显示媒体。光学元件可以包括一个或多个波导组件、反射器、透镜、发射镜、准直器、光栅等,用于将来自投影仪的光引导到用户的眼睛。图像数据可以经由链路256,从核心处理组件254传输到HMD 252。HMD 252中的控制器可以将图像数据转换为来自投影仪的光脉冲,光脉冲可以经由光学元件作为输出光而被传输到用户的眼睛。输出光可以与通过显示器258的光混合,从而允许输出光呈现虚拟对象,看起来好像它们存在于现实世界中。

与HMD 200类似,HMD系统250还可以包括运动和位置跟踪单元、相机、光源等,它们允许HMD系统250例如以3DoF或6DoF跟踪自身、跟踪用户的各部分(例如,手、脚、头部或其他身体部位)、映射虚拟对象以在HMD 252移动时显示为静止、以及使得虚拟对象对手势和其他现实世界对象作出反应。

图3是图示了环境300的概览的框图,所公开的技术的一些实现可以在环境300中操作。环境300可以包括一个或多个客户端计算设备305A-D,其示例可以包括计算系统100。在一些实现方式中,一些客户端计算设备(例如,客户端计算设备305B)可以是HMD 200或HMD系统250。客户端计算设备305可以使用通过网络330到一个或多个远程计算机(诸如服务器计算设备)的逻辑连接而在联网环境中操作。

在一些实现方式中,服务器310可以是边缘服务器,其接收客户端请求并且借助诸如服务器320A-C的其他服务器协调这些请求的实现。服务器计算设备310和320可以包括计算系统,诸如计算系统100。虽然每个服务器计算设备310和320在逻辑上被显示为单个服务器,但是服务器计算设备各自可以是涵盖多个计算设备的分布式计算环境,该多个计算设备位于相同或地理位置不同的物理位置处。

客户端计算设备305和服务器计算设备310和320可以各自充当其他服务器/客户端设备的服务器或客户端。服务器310可以连接到数据库315。服务器320A-C各自可以连接到对应数据库325A-C。如上所述,每个服务器310或320可以对应于服务器组,并且这些服务器中的每一个可以共享数据库或者可以具有它们自己的数据库。尽管数据库315和325在逻辑上被显示为单个单元,但是数据库315和325各自可以是涵盖多个计算设备的分布式计算环境、可以位于它们对应的服务器内或者可以位于相同或地理上不同的物理位置处。

网络330可以是局域网(LAN)、广域网(WAN)、网格网络、混合式网络或其他有线或无线网络。网络330可以是互联网或一些其他公共或专用网络。客户端计算设备305可以通过网络接口(诸如通过有线或无线通信)而被连接到网络330。虽然服务器310和服务器320之间的连接被示出为单独的连接,但这些连接可以是任何种类的局域、广域、有线或无线网络,包括网络330或单独的公共或专用网络。

图4是图示了组件400的框图,在一些实现方式中,组件400可以被用于采用所公开技术的系统中。组件400可以被包括在计算系统100的一个设备中或者可以跨计算系统100的多个设备而被分布。组件400包括硬件410、中介器420和专用组件430。如上所述,实现所公开技术的系统可以使用各种硬件,包括处理单元412、工作存储器414、输入和输出设备416(例如,相机、显示器、IMU单元、网络连接等)和存储存储器418。在各种实现方式中,存储存储器418可以是本地设备、与远程存储设备的接口或它们的组合中的一个或多个。例如,存储存储器418可以是可借助系统总线访问的一个或多个硬盘驱动装置或闪存驱动装置,或者可以是云存储提供程序(诸如在存储装置315或325中)或者可经由一个或多个通信网络访问的其他网络存储装置。在各种实现方式中,组件400可以在诸如客户端计算设备305的客户端计算设备中或诸如服务器计算设备310或320的服务器计算设备中实现。

中介器420可以包括调解硬件410和专用组件430之间的资源的组件。例如,中介器420可以包括操作系统、服务、驱动程序、基本输入输出系统(BIOS)、控制器电路或其他硬件或软件系统。

专用组件430可以包括软件和/或硬件,该软件和/或硬件被配置为执行用于识别手势并解释它们与人工现实环境中的对象交互的操作。专用组件430可以包括例如投影投射引擎434、对象选择引擎436、双手交互引擎438、全局和局部模式引擎440以及可用于提供用户接口、传输数据和控制专用组件(诸如接口432)的组件和API。在一些实现方式中,组件400可以在跨多个计算设备分布的计算系统中实现或者可以是到执行一个或多个专用组件430的基于服务器的应用程序的接口。

投影投射引擎434可以创建各种类型的投影,诸如射线投影(如下文关于图12和图13更详细地描述)、球体或圆柱投影(如下文关于图14和图15更详细地描述)、或者锥体投影(如下文关于图16和图17更详细地描述)。在一些实现方式中,投影投射引擎434可以基于当前上下文来选择投影类型(如以下关于图18更详细地描述的)。

投影投射引擎434还可以基于多个被跟踪的身体部位来控制投影位置,诸如作为控制点的手的一部分和作为原点的用户身体上的另一点,诸如眼睛、肩部或臀部(如下文关于图5-图9更详细地描述)。例如,投影投射引擎434可以将投影的起点设定在控制点处或从控制点偏移,并且可以将连接原点和控制点的线确定为投影的中心线。在一些实现方式中,投影投射引擎434可以根据诸如用户的注视方向、投影的角度或目标对象的位置的原点转换因子来移动投影的原点(如下文关于图10和图11更详细地描述)。

对象选择引擎436可以标识选择多个对象的交互。在一些实现方式中,对象选择引擎436可以标识剪切手势,其中用户绘制对用户来说似乎与多个对象相交的线(如以下关于图19和图20更详细地描述)。在一些实现方式中,对象选择引擎436可以标识剪切点击手势,其中用户绘制对用户来说似乎与多个对象相交的线,并且系统致动那些对象(如以下关于图21和图22更详细地描述)。在一些实现方式中,对象选择引擎436可以标识套索手势,套索手势从用户的角度形成围绕系统选择的多个对象的形状(如以下关于图23和图24更详细地描述)。在一些实现方式中,对象选择引擎436可以从指定矩形的两个相对角的用户标识框架手势,并且系统然后可以选择从用户的角度看来在矩形内的对象(如以下关于图25和图26更详细描述)。

双手交互引擎438可以标识由两只手(或同一只手的不同部分)执行的手势或第二只手(或第一只手的不同部分)修改由第一只手(或第一只手的第一部分)执行的手势的结果的手势。在一些实现方式中,双手交互引擎438可以标识挂钩手势,其中射线投影上的点被标识为挂钩。挂钩可以限定射线选择或以其他方式与之交互的对象。挂钩沿射线的位置可以基于两个用户手之间的距离或同一只手上两个手指之间的距离来指定。以下结合图27-图29来更详细地描述挂钩手势。在一些实现方式中,双手交互引擎438可以标识长号手势,其中圆锥、圆柱或球体投影的直径基于两个用户的手之间的距离或同一只手上的两个手指之间的距离。以下结合图30-图34更详细地描述长号手势。在一些实现方式中,双手交互引擎438可以促进双手交互,其中用户使用第一只手的手势来选择对象,菜单与第一只手相关联地呈现来用于与选定对象交互并且用户可以使用她的第二只手与对象交互。以下结合图35-图38来更详细地描述附接到选择手的菜单。

全局和局部模式引擎440可以例如基于显式用户命令或上下文,诸如用户已有多长时间持续地注视指向对象,标识手交互系统是处于全局模式还是局部模式。在一些实现方式中,全局和局部模式引擎440可以针对全局和局部模式来切换输入模态(如以下关于图39和图40更详细描述)。在一些实现方式中,全局和局部模式引擎440可以基于手交互系统是处于全局模式还是局部模式来解释有歧义的输入(如以下关于图41和图42更详细地描述)。

本领域技术人员将理解,上述图1-图4中所示的组件以及以下讨论的每个流程图中的组件可以以多种方式改变。例如,逻辑的顺序可以被重新布置,子步骤可以被并行执行,所图示的逻辑可以被省略,其他逻辑可以被包括等。在一些实现方式中,上述组件中的一个或多个可以执行以下描述的过程中的一个或多个。

利用原点和控制点进行投影投射

当在人工现实环境中使用控制器指向和选择对象时,很容易在控制器上设定和跟踪可以限定直线的单个点。现有的基于控制器的选择技术不能直接转移到徒手上,因为人们使用工具的方式与他们自己的身体之间存在固有的差异。当用户的手是输入方法时,跟踪单个点作为投影源要困难得多。此外,与刚性控制器表面不同,用户的手往往会做出许多小的移动,这会导致源自用户手的投影四处跳跃,并且随着投影远离用户延伸,这些移动被放大。这些自然的手部颤抖和跟踪问题会干扰投影投射并导致对象选择不准确。

为了增加基于手跟踪的投影投射的准确性,可以使用初级控制点(例如,用户手的一部分)和在用户的裸手之外的次级原点来限定投影位置,以锚定投影。基于这两个位置的组合的预测会产生更稳定和精确的投射体验。各种原点可以被使用并且可以根据目标对象的尺寸、距离、垂直位置和密度而提供不同的典型输入速度、精度和人体工程学。在各种实现方式中,原点可以包括用户的优势眼、用户眼睛之间的点、用户头部上的另一点、用户的臀部、用户的肩部,或上下文可变点(例如,在用户的臀部和肩部之间)。各种原点中的每一个可以与各种控制点配对,诸如在做出特定手势时用户的指尖、用户的手掌、用户的手腕或用户的拳头中心。在投射投影时,投影可以从用户向外投射、从控制点开始并且被定向为以穿过原点和控制点的直线为中心。

图5是图示了在本技术的一些实现方式中使用的用于利用原点和控制点来投射投影的过程500的流程图。在框502处,过程500可以跟踪手的一部分作为控制点。例如,控制点可以是用户的指尖、用户的手掌、用户的手腕或用户的拳头中心。在一些实现方式中,控制点可以响应于用户做出特定手势来标识,诸如将她的手指形成为“捏合”。在一些情况下,控制点可以从用户的被跟踪部分偏移。例如,控制点可以是从用户手掌或手腕的偏移。即,当控制点在形成手势时移动时,这有助于消除在使用指尖的情况下发生的抖动。相反,当使用手指形成这样的手势时,手腕前方6英寸的点移动较少。在一些实现方式中,控制点可以基于其他身体部位,诸如用户头部或脚的一部分上的点。

在框504处,过程500可以跟踪第二身体部位作为原点。在各种实现方式中,原点可以基于用户的眼睛、肩部、臀部等的位置。在一些实现方式中,所使用的眼睛、肩部或臀部可以是用户优势侧的眼睛、肩部或臀部。例如,可以基于用户最倾向于使用哪只手、用户说明哪只手或哪只眼睛占优势(例如,在管理过程中)、用户如何将相对于过去的刺激、提供给用户的视觉测试等定位她自己的观察来确定用户的优势眼。在一些实现方式中,原点可以根据环境(诸如用户的注视所指向的情况、用户正在创建的投影角度或者机器学习模型的选择)来移动。以下结合图10和图11更详细地讨论调整原点。

在框502和504处,原点和控制点可以通过分析来自例如与XR头戴式耳机或外部传感器集成的相机的图像来跟踪。例如,机器学习模型可以被用于分析来自这样的相机的图像并且为用户的手或其他各种身体部位的模型生成3D位置数据。在一些实现方式中,附加或备选方法可以诸如通过使用头戴式耳机、手镯、手套或其他可穿戴设备中的位置或IMU跟踪传感器来应用。

在框506处,过程500可以确定以通过A)在框502处确定的原点和B)在框504处确定的控制点的线为中心的投影取向。如下所述,投影可以是各种类型中的一个,诸如射线、球体、圆柱、圆锥、棱锥等。投影可以从控制点开始从用户向外延伸或从控制点偏移。

在框508处,过程500可以基于投影的一个或多个位置来执行与真实或虚拟对象有关的动作。例如,动作可以包括任何交互,诸如选择对象、移动或旋转对象、与控件交互(例如,按压按钮、拉动或推动控件)等。在某些情况下,动作可以基于投影的多个位置,例如,当用户移动控制点和/或原点时,投射投影的对应移动。例如,当用户以她的肩部为对应的原点移动她的手掌作为控制点时,从用户的手掌向外投射的射线投影可以与多个对象相交,每个对象可以被选择。

图6是图示了利用肩部原点602和手掌控制点606的射线投影606的示例600的概念图。图7是图示了利用优势眼原点702和指尖控制点704的射线投影706的示例700的概念图。图8是图示了利用臀部原点802和拳头控制点804进行射线投影806的示例800的概念图。图9是图示了利用肩部原点802和腕部控制点804的射线投影906的示例900的概念图。在每个示例600、700、800或900中,当用户移动她所跟踪的原点(肩部、眼睛或臀部)和/或所跟踪的控制点(手腕、手掌或指尖)时,将发生对投影606、706、806或906的对应移动。

不同的原点可以在不同的上下文中更好地工作。例如,较高的原点可以更容易地访问较低的目标,而较低的原点可以更容易地访问较高的目标。在一些实现方式中,手交互系统可以标识条件并且相应地移动原点。在各种实现方式中,原点可以在不同原点之间捕捉或者可以在原点之间的路径上以给定速度移动。

图10是图示了在本技术的一些实现方式中使用的用于调整投影原点的过程1000的流程图。在框1002处,过程1000可以标识注视方向和/或其他原点转换因子。在各种实现方式中,原点转换因子可以是以下一项或多项:用户的注视、当前投影的水平角、目标对象相对于当前原点的位置等。例如,过程1000可以确定当前投影的中心线的角度。作为另一示例,过程1000可以确定当前投影选择对象并且那些对象高于或低于阈值平面。

在框1004处,过程1000可以将在框1002处确定的原点转换因子与阈值进行比较,以确定原点应被设定得更高还是更低。例如,当用户的注视距离他们的身体的阈值角度以上时,可以选择高交互模式,而当用户的注视距离他们的身体的阈值角度以下时,可以选择低交互模式。作为另一示例,过程1000可以确定当前投影的中心线的角度大于阈值角度(例如,指向上方)并且可以选择高交互模式或者可以确定当前投影的中心线的角度小于阈值角度(例如,指向下方)并且可以选择低交互模式。作为又一示例,过程1000可以确定当前投影选择高于阈值平面的对象并且可以选择高交互模式,或者可以确定当前投影选择低于阈值平面的对象并且可以选择低交互模式。

在框1006处,过程1000可以选择高交互模式,其中原点朝向诸如用户臀部的低位置转换。在一些实现方式中,高交互模式可以使得与特定平面上方的对象的交互更容易。在一些实现方式中,转换可以是原点到低位置的捕捉。在一些实现方式中,在用户身体上的两个点(高点和低点)(诸如用户的肩部和臀部)之间存在指定路径。过程1000可以在框1006处开始,除非原点已在路径上的最低点处,否则以设定速度朝向路径的低端移动原点。

在框1008处,过程1000可以选择低交互模式,其中原点朝向高位置(诸如用户的眼睛或肩部)转换。在一些实现方式中,低交互模式可以使得与某个平面以下的对象的交互更容易。在一些实现方式中,转换可以是原点到高位置的捕捉。在一些实现方式中,在用户身体上的两个点(高点和低点)(诸如用户的眼睛和臀部)之间存在指定路径。在框1008处,除非原点已在路径上的最高点处,过程1000可以开始以设定速度朝向路径的高端移动原点。

过程1000可以重复,返回到框1002,因为新的原点转换因子被确定。

图11A、图11B和图11C是图示了调整也由控制点1102控制的射线投影的原点1004的示例的概念图,其中原点1104在臀部和肩部之间的路径1106上移动。在示例1100中,原点1104的移动基于用户的眼睛注视1108。沿已经设定原点的路径1106的点基于路径的一部分与用户眼睛注视和与地面垂直的平面1110形成的角度的线性关系。

在图11A中,用户的眼睛注视1108与平面1110垂直,并且原点1104被设定为使得原点1104和控制点1102之间的射线垂直于路径1106。在图11B中,用户的眼睛注视1108已朝向上行进超过最大向上角度,因此原点1104被设定在路径1106上的最低点处。在图11C中,用户的眼睛注视1108已朝向下行进到最小向下角度以下,所以原点1104被设定在路径1106上的最高点处。在示例1100中,这些点之间的转换以设定速度发生,沿路径1106平滑地移动原点1104。

与投影类型的远距离虚拟对象交互

现有XR系统在与对象交互时,特别是当这些对象在用户的直接接触范围之外时,存在许多困难。例如,许多现有的手跟踪系统不精确,导致用户手的虚拟模型要么抖动,要么落后于用户手的实际位置。另外,用户的手容易出现颤抖和其他小动作,当投影投射到大距离外时,这会转化为较大的投影位置变化。另一个困难,被称为海森堡效应,是当用户使用指点设备执行输入(做出手势、单击按钮等)时,指点设备(手、鼠标、触控笔等)中经常发生的移动。在涉及远距离交互的许多情况下,这些困难可以通过使用合适的投影投射类型来克服。投射类型的非详尽列表包括射线投影、球体投影、圆柱投影、圆锥投影和棱锥投影。

就本公开而言,射线投影是从控制点延伸的单个线或从控制点偏移的线。射线投影对于用户的目标对象几乎没有歧义。然而,较小的目标尺寸会使交互变得脆弱,用户会发现很难指向单个对象,尤其是用户接触范围之外的小对象。

出于本公开的目的,球体投影是利用与端部附接的球体的射线投影。在一些实现方式中,用户可以控制射线的长度和/或球体的直径。在其他实现方式中,球体的直径和/或射线的长度可以被固定。在其他实现方式中,射线的长度可以被设定为使得球体与沿射线最接近用户的(多个)对象相交。圆柱投影与球体投影类似,不同之处在于球体沿射线的整个长度平移,从而形成从投影控制点延伸的圆柱。与射线投影相比,球体和圆柱投影倾向于改进选择精度,用于恰好在用户的接触范围之外(例如,1-3英尺)的对象进行交互。

就本公开而言,圆锥投影是从投影控制点延伸并且随着圆锥远离用户延伸而直径增大的圆锥。在一些实现方式中,直径随着圆锥投影远离用户延伸而更改的程度可以被固定。在其他实现方式中,如以下关于图30-图34所讨论的,用户可以控制圆锥的直径。棱锥投影可以类似于圆锥投影,但可以使用矩形基部而不是圆形基部。

在某些情况下,当投影的至少一部分是三维的,诸如球体、圆柱、圆锥或棱锥时,投影的(多个)目标对象可以是投影部分相交的对象、投影完全涵盖的对象或者投影至少涵盖阈值量(例如,30%、50%或80%)的对象。在投影目标可以是多个对象的一些实现方式中,次级选择技术可以被用于区分用户打算瞄准哪些对象。例如,与投影相交的单个对象可以被映射到用户手上的手指,并且所映射的手指的移动(例如,用手指轻敲拇指)可以导致从一组目标对象添加或移除对应的映射对象。作为另一示例,诸如用户注视的另一输入模态可以区分哪些相交的对象成为目标对象。

图12是图示了在本技术的一些实现方式中使用的用于使用射线投影进行对象交互的过程1200的流程图。在框1202处,过程1200可以基于一个或多个身体部位的跟踪位置来确定用于射线投影的控制点和投射方向。在一些实现方式中,如上文关于图5至图11所讨论的,控制点可以是手掌、指尖、拳头、手腕等,并且投射方向可以是沿着通过控制点(诸如肩部、眼睛或臀部)和原点的线。在其他实现方式中,控制点可以基于其他被跟踪的身体部位,诸如用户的眼睛、头部或胸部。例如,控制点可以是用户瞳孔中心的估计位置,而原点可以是用户视网膜中心的估计位置。在某些情况下,系统可以限定与控制点相对应的平面,并且可以确定与该平面垂直的投射方向,而不是使用原点来限定方向。例如,在控制点位于头部或躯干上的情况下,系统可以标识与头部或躯干相对应的冠状面,并且可以将投射方向标识为垂直于该冠状面。

在框1204处,过程1200可以从控制点沿投射方向生成射线投影(即,直线)。在某些情况下,射线投影的图形表示(整条线或只是射线撞击对象的点)可以在人工现实环境中显示,而在其他情况下,射线投影由XR系统跟踪而不显示射线投影。在各种实现方式中,射线投影可以从控制点延伸,直到它与第一(真实或虚拟)对象相交,或者射线投影可以延伸通过多个对象。在一些实现方式中,射线投影的方向可以被调整来“捕捉”到它接近相交的对象,或者射线投影可以被弯曲到阈值量来保持与这样的对象相交。

在框1206处,过程1200可以确定射线投影与一个或多个目标对象之间的相交。在一些实现方式中,过程1200可以在用户做出特定手势(诸如用食指轻敲拇指)时确定相交。在一些实现方式中,目标对象可以是射线投影相交的第一对象,不包括被第一对象遮挡的其他对象。在其他实现方式中,射线可以延伸穿过多个对象,并且目标对象可以是射线投影相交的所有对象。在其他实现方式中,射线相交的对象可以根据其他身体部位位置或姿势(诸如用户的注视或涉及映射到相交对象的手指的手势)而被标识为目标对象。

在框1208处,过程1200可以使得与在框1206处确定的一个或多个目标对象进行交互。例如,过程1200可以选择目标对象,使得它们移动或旋转,或者执行其他交互。

图13是图示了射线投影1302的一个示例1300的概念图。在示例1300中,用户的手1306通过连接她的拇指和中指形成了手势,指示投影的开始。在示例1300中,控制点1304是从用户中指的偏移。射线投影1302从控制点1304延伸到目标对象1308。在示例1300中,用户将她的食指与她的拇指(未示出)合拢并重新打开、做出“点击”手势、使得目标对象1308被选择。

图14是图示了在本技术的一些实现方式中使用的用于使用圆柱投影进行对象交互的过程1400的流程图。在框1402处,过程1400可以基于一个或多个身体部位的跟踪位置来确定圆柱投影的控制点和投射方向。在一些实现方式中,如上文关于图5至图11所讨论的,控制点可以是手掌、指尖、拳头、手腕等,并且投射方向可以沿着穿过控制点和原点的线,诸如肩部、眼睛或臀部。在其他实现方式中,控制点可以基于其他被跟踪的身体部位,诸如用户的眼睛、头部或胸部。例如,控制点可以是用户瞳孔中心的估计位置,并且原点可以是用户视网膜中心的估计位置。在某些情况下,系统可以限定与控制点相对应的平面,并且可以将投射方向确定为垂直于该平面,而不是使用原点来限定方向。例如,在控制点位于头部或躯干上的情况下,系统可以标识对应于头部或躯干的冠状面,并且可以将投射方向标识为垂直于该冠状面。

在框1404处,过程1400可以从控制点沿投射方向生成圆柱投影。在一些实现方式中,代替圆柱,投影可以是球体投影,其包括位于射线投影端部处的球体。在某些情况下,圆柱(或球体)投影的图形表示可以被显示在人工现实环境中(例如,示出整个投影或与对象相交的位置),而在其他情况下,圆柱(或球体)投影是由XR系统跟踪而不显示投影。在各种实现方式中,圆柱投影可以从控制点延伸,直到它与第一(真实或虚拟)对象相交,或者圆柱投影可以延伸到与多个对象至少部分地相交。在一些实现方式中,球体投影的射线可以从控制点延伸,直到球体与第一(真实或虚拟)对象相交,或者球体投影的射线可以延伸固定距离。

在框1406处,过程1400可以确定圆柱(或球体)投影与一个或多个目标对象之间的相交。在一些实现方式中,过程1400可以在用户做出特定手势(诸如用食指轻敲拇指)时确定相交。在一些实现方式中,目标对象可以是圆柱(或球体)投影至少部分地相交或完全涵盖的第一对象。在其他实现方式中,目标对象可以是圆柱(或球体)投影至少部分相交或完全涵盖的所有对象。在其他实现方式中,根据其他身体部位位置或姿势,诸如用户的注视或涉及映射到相交对象的手指的手势,圆柱(或球体)相交的对象可以被标识为目标对象。在一些实现方式中,如以下关于图30-图34所讨论的,圆柱(或球体)的直径可以由其他手势控制,诸如用户的手之间的距离或用户食指的尖端和拇指之间的距离。

在框1408处,过程1400可以使得与在框1406处确定的一个或多个目标对象进行交互。例如,过程1400可以选择目标对象、使得它们移动或旋转或者执行其他交互。

图15是图示了圆柱投影1502的示例1500的概念图。在示例1500中,用户的手1506已通过连接她的拇指和中指而形成手势,指示投影开始。在示例1500中,控制点1504从用户的中指偏移。圆柱投影1502从控制点1504延伸到目标对象1508,至少部分地与目标对象1508A、1508B、1508C、1508D和1508E中的每一个相交。在示例1500中,用户已通过顺时针旋转她的手1506(未示出)来做出手势,使得目标对象1508A-E将被选择。

图16是图示了在本技术的一些实现方式中使用的用于使用圆锥投影进行对象交互的过程1600的流程图。在框1602处,过程1600可以基于一个或多个身体部位的跟踪位置来确定用于投影的控制点和投射方向。在一些实现方式中,如上文关于图5至图11所讨论的,控制点可以是手掌、指尖、拳头、手腕等,并且投射方向可以沿着穿过控制点(诸如肩部、眼睛或臀部)和原点的线。在其他实现方式中,控制点可以基于其他被跟踪的身体部位,诸如用户的眼睛、头部或胸部。例如,控制点可以是用户瞳孔中心的估计位置,并且原点可以是用户视网膜中心的估计位置。在某些情况下,系统可以限定与控制点相对应的平面,并且可以将投射方向确定为垂直于该平面,而不是使用原点来限定方向。例如,在控制点位于头部或躯干上的情况下,系统可以标识对应于头部或躯干的冠状面,并且可以将投射方向标识为垂直于该冠状面。

在框1604处,过程1600可以生成圆锥投影,圆锥投影具有在控制点处的圆锥尖端并且圆锥沿着投射方向远离用户延伸。在一些实现方式中,投影可以是在控制点处具有棱锥尖端并且棱锥沿着投射方向延伸的棱锥投影,而不是圆锥。在某些情况下,圆锥(或棱锥)投影的图形表示(例如,整个圆锥或棱锥的表示或投影与对象相交的位置的表示)可以在人工现实环境中显示,而在其他情况下,圆锥(或棱锥)投影由XR系统跟踪,但不显示投影。在各种实现方式中,圆锥(或棱锥)投影可以从控制点延伸,直到它与第一(真实或虚拟)对象相交,或者圆锥(或棱锥)投影可以延伸到至少部分地与多个对象相交。

在框1606处,过程1600可以确定圆锥(或棱锥)投影与一个或多个目标对象之间相交。在一些实现方式中,过程1600可以在用户做出特定手势(诸如用食指轻敲拇指)时确定相交。在一些实现方式中,目标对象可以是圆锥(或棱锥)投影至少部分地相交或完全涵盖的第一对象。在其他实现方式中,目标对象可以是圆锥(或棱锥)投影至少部分相交或完全涵盖的所有对象。在其他实现方式中,圆锥(或棱锥)相交的对象可以根据其他身体部位位置或姿势(诸如用户的注视或涉及映射到相交对象的手指的手势)而被标识为目标对象。在一些实现方式中,如以下关于图30-图34所讨论的,圆锥的直径可以由其他手势控制,诸如用户的手之间的距离或用户食指的指尖和拇指之间的距离。

在框1608处,过程1600可以使得与在框1606处确定的一个或多个目标对象交互。例如,过程1600可以选择目标对象、使得它们移动或旋转或者执行其他交互。

图17是图示了两个圆锥投影1702和1752的示例1700的概念图。用户的手1706和1756已通过连接拇指和中指形成手势,指示投影的开始。在示例1700中,控制点1704和1754是与用户中指的偏移。圆锥投影1702从控制点1704延伸,直径增加直到它与目标对象1708相交,至少部分地与目标对象1708A、1708B、1708C、1708D和1708E中的每一个相交。在示例1700中,一旦投影与对象相交就选择对象,因此目标对象1708A-E由圆锥投影1702选择。圆锥投影1752从控制点1754延伸,直径也增加。然而,目标对象1758与手1756的距离比目标对象1708与手1706的距离更近,因此圆锥投影1752仅与目标对象1758相交。由于在示例1700中只要投影与对象相交就选择对象,因此目标对象1758由圆锥投影1752来选择。

在一些实现方式中,手交互系统可以基于当前环境来自动选择待投射的投影类型。例如,当明显的目标对象被紧密分组时(例如,当另一类型的投影将涵盖大于阈值数量的对象时,或者距投影中心在阈值距离内的对象在彼此的阈值距离内时),系统可以使用射线投影。作为另一示例,当射线投影将相交的最近对象大于阈值距离时,手交互系统可以切换到球体或圆锥投影。图18是图示了在本技术的一些实现方式中使用的用于投影类型的基于上下文的选择的过程1800的流程图。

在框1802处,过程1800可以标识用于用户注视的交互平面。交互平面是用户当前正在与之交互的对象(或多个对象之间的中心)的人工现实环境中的平面。例如,交互平面可以基于用户的跟踪注视所指向的平面来确定。作为另一示例,如果用户选择了虚拟对象,则交互平面可以以该对象为中心。在框1804处,过程1800可以计算在人工现实环境的虚拟空间中,用户和在框1802处标识的交互平面之间的距离。

在框1806处,过程1800可以标识当前目标对象的表面类型。在各种实现方式中,表面类型可以基于目标对象的表面是否平坦、目标对象的尺寸、目标对象是否包括控件、目标对象包括什么类型的控件、用户或其他用户先前已针对目标对象执行什么类型的交互等来分类。在其他实现方式中,类型可以是例如由对象的创建者分配给目标对象的设定。在一些实现方式中,过程1800可以开始于框1806而不是框1802。在各种实现方式中,过程1800可以包括或跳过框1806。

在框1808处,过程1800可以基于在框1804处计算的距离和/或者在框1806处标识的表面类型来选择投影类型。在一些实现方式中,该选择可以基于距离范围到投影类型的映射。例如,当交互平面在用户三英尺内时,可以使用射线投影;当交互平面在用户三到七英尺之间时,可以使用圆柱投影;并且当交互平面距离用户超过7英尺时,可以使用圆锥投影。在其他实现方式中,映射可以是表面类型到投影类型。例如,在表面类型指示具有多个按钮和控件的平坦表面的情况下,可以使用射线投影,否则可以使用圆柱投影。在更进一步的实现方式中,映射可以用于成对的距离范围和表面类型到投影类型。例如,当交互平面在用户三英尺范围内并且表面类型指示具有多个按钮和控件的平面时,可以使用射线投影;当交互平面在用户三英尺内并且表面类型指示没有控件时,可以使用圆柱投影;当交互平面距离用户3到7英尺并且表面类型指示对象大于7英寸阈值时,可以使用圆柱投影,但如果表面类型指示对象小于7英寸阈值,可以使用射线投影;并且如果交互平面距离用户超过7英尺,则可以使用圆锥投影而不考虑表面类型。

多对象选择

当用户在人工现实环境中操作时,她可以选择各种对象进行进一步交互或者指定XR系统对对象执行操作。虽然一些现有的XR系统具有选择对象的技术(诸如通过对每个对象执行手指手势),但这些技术具有许多缺点。例如,当用户希望选择一组对象时,单独选择每个对象是耗时的、令人沮丧的并且需要额外的处理能力。在选择远的或小的对象时,现有技术的精度和准确性较低,使得XR系统难以正确解释用户打算选择哪些对象。此外,当用户打算选择从XR系统的角度来看彼此遮挡的对象时,XR系统不知道如何消除用户打算选择的对象的歧义。此外,对于现有的XR系统,当对象位于其他对象的密集区域内时,不可能在对象组内重点细化用户的意图。

用于克服现有系统中的这些缺点的技术包括用于标识和解释用于选择多个对象的“剪切”、“套索”和“框架”手势、用于激活控件的“剪切点击”手势以及各种两手操作的“双手”手势来消除潜在目标对象之间的歧义的系统和过程。

图19是图示了在本技术的一些实现方式中使用的用于使用剪切手势来选择对象的过程1900的流程图。在框1902处,过程1900可以标识对应于开始对象选择的动作。在一些实现方式中,动作可以是特定手势,诸如用户的拇指和食指或中指之间的“捏合”。在一些实现方式中,动作还可以包括标识选通条件,诸如手跟踪系统提供以下一个或多个指示:用户的手在视野内、当前手跟踪位置的置信度值高于阈值、或者手不处于静止状态。

在框1904处,过程1900可以基于一个或多个身体部位的跟踪位置来连续地确定控制点和投射方向。(多个)身体部位可以是例如手的一部分(例如,指尖、手腕、手掌、拳头等)、眼睛、头部、胸部或躯干、腿或脚等。控制点可以在身体部位之一或偏离它。在一些实现方式中,投射方向可以沿着将用户的一只眼睛连接到控制点的线。例如,过程1900可以记录对象与从控制点向外延伸并且与控制点和用户的优势眼两者相交的线之间的相交。该示例的效果在用户看来好像他们正在通过移动控制点在空间中“绘制”。在其他实现方式中,可以使用如上文关于图5至图11所讨论的投影。在这些实现方式中,投射方向可以沿着穿过控制点(诸如肩部、眼睛或臀部)和原点的线。在一些实现方式中,绘制可以通过用户的注视来完成,其中控制点可以是用户瞳孔中心的估计位置,并且原点可以是用户视网膜的中心的估计位置。

在框1906处,过程1900可以显示基于投射方向的路径。路径可以是由控制点和投射方向指示的位置的记录。在一些实现方式中,路径可以对用户看起来好像她正在通过移动控制点在人工现实环境中绘制路径。在其他实现方式中,路径可以对用户看起来好像她正在投影结束时创建路径。在一些实现方式中,过程1900不显示路径,跳过框1906。

在框1908处,当过程1900连续监视控制点和投射方向时,过程1900可以从用户的视角记录控制点相交的任何对象。在一些实现方式中,过程1900可以记录投射投影相交的任何对象的指示。

在框1910处,响应于一个或多个触发,诸如用户释放手势或者用户手移动的速度下降到阈值以下,过程1900可以选择在框1908处记录指示的对象。例如,通过识别用户形成将所有五个指尖放在一起的手势,过程1900可以在框1902处开始。在框1904、1906和1908处,过程1900可以监视用户指尖正前方的点作为控制点,基于用户优势眼的跟踪位置确定方向,并记录从用户的角度来看控制点相交的每个对象。过程1900可以持续,直到用户释放五指手势,此时过程1900可以使得任何记录的对象被选择。

图20是图示了使用剪切手势来选择对象的示例2000的概念图。在示例2000中,用户首先做出手势2002、将她的拇指尖、食指尖和中指尖放在一起。手交互系统然后开始跟踪控制点2004(在手势2002前方偏移的点)和投射方向2006。在示例2000中,投射方向2006通过确定连接用户眼睛(未示出)和控制点2004的线来形成。因此,从用户的视角来看,控制点2004遮挡了绘制点2008。当用户第一次形成手势2002时,绘制点2008位于点2010处。用户然后移动她的手,导致控制点2004移动,这转而导致绘制点2008从点2010沿路径2012前进。结果,路径2012与对象2014和2016相交,但不与对象2018相交,从而导致手交互系统记录对象2014和2016的指示。在示例2000中,手交互系统在人工现实环境中显示路径2012,以供用户查看。当用户释放手势2002时,手交互系统基于所记录的指示来选择对象2014和2016。如本文的图中所示,与该图中的其他对象相比,当该对象的线框架具有粗线时,对象被图示为“选定”。

图21是图示了在本技术的一些实现方式中使用的用于使用剪切点击手势来致动对象的过程2100的流程图。在框2102处,过程2100可以标识对应于开始对象选择的动作。在一些实现方式中,动作可以是特定手势,诸如用户的拇指和食指或中指之间的“捏合”。在一些实现方式中,动作还可以包括标识选通条件,诸如手跟踪系统提供用户的手在视野中、当前手跟踪位置的置信度值高于阈值、或者手不处于静止状态的一个或多个指示。

在框2104处,过程2100可以基于一个或多个身体部位的跟踪位置来连续地确定控制点和投射方向。(多个)身体部位例如可以是手的一部分(例如,指尖、手腕、手掌、拳头等)、眼睛、头部、胸部或躯干、腿或脚等的一部分。控制点可以在身体部位之一处或从其偏移。在一些实现方式中,投射方向可以沿着将用户的一只眼睛连接到控制点的线。例如,过程2100可以记录对象与从控制点向外延伸的线之间的相交,该线沿着与控制点和用户的优势眼都相交的线落下。该示例的效果在用户看来好像他们正在通过移动控制点在空间中“绘制”。在其他实现方式中,可以使用如上文关于图5至图11所讨论的投影。在这些实现方式中,投射方向可以沿着穿过控制点和原点(诸如肩部、眼睛或臀部)的线。在一些实现方式中,绘制可以通过用户的注视来完成,其中控制点可以是用户瞳孔中心的估计位置,并且原点可以是用户视网膜中心的估计位置。

在框2106处,过程2100可以显示基于投射方向的路径。路径可以是由控制点和投射方向指示的位置的记录。在一些实现方式中,路径可以对用户看起来好像她正在通过移动控制点而在人工现实环境中绘制路径。在其他实现方式中,路径可以对用户看起来好像她正在投影结束时创建路径。在一些实现方式中,过程2100不显示路径,跳过框2106。

在框2108处,由于过程2100连续监视控制点和投射方向,过程2100可以基于投射方向,记录从用户的视角来看控制点相交的任何对象。在使用投影的一些实现方式中,过程2100可以记录投影相交的任何对象的指示。在一些实现方式中,代替记录相交或除了记录相交之外,每当过程2100标识与可动作对象(诸如按钮或其他控件)的相交时,过程2100可以致动对象。

在框2110处,响应于一个或多个触发,诸如用户释放手势或者用户手移动的速度下降到阈值以下,过程2100可以致动在框2108处记录指示的对象。例如,过程2100可以通过识别用户形成将所有五个指尖放在一起的手势而在框2102处开始。在框2104、2106和2108处,过程2100可以监视用户指尖正前方的点作为控制点,基于用户优势眼的跟踪位置确定方向并记录从用户的视角来看控制点相交的每个可操作对象。过程2100可以持续直到用户释放五指手势,此时过程2100可以使得任何记录的对象被致动。在一些实现方式中,过程1900和2100可以被一起执行,其中控制点的移动可以导致可操作的相交对象被致动并且其他相交对象被选择。在一些实现方式中,可操作对象被致动,并且可操作对象和不可操作对象均被选择。

图22是图示了使用剪切点击手势致动按钮对象的示例2200的概念图。在示例2200中,用户通过做出手势2202,将她的拇指尖和中指尖放在一起开始。手交互系统然后开始跟踪控制点2204(在手势2202前方偏移的点)和投射方向2206。在示例2200中,投射方向2206通过确定连接用户眼睛(未示出)和控制点2204的线而形成。因此,从用户的视角来看,控制点2204遮挡了绘制点2208。当用户第一次形成手势2202时,绘制点2208位于点2210处。用户然后移动她的手,使得控制点2204移动,这进而使得绘制点2208从点2210沿路径2212前进。结果,路径2212与按钮对象2214相交,导致手交互系统致动按钮对象2214。在示例2200中,手交互系统在人工现实环境中显示路径2212。

图23是图示了在本技术的一些实现方式中使用的用于使用套索手势选择对象的过程2300的流程图。在框2302处,过程2300可以标识对应于开始对象选择的动作。在一些实现方式中,动作可以是特定手势,诸如用户的拇指和食指或中指之间的“捏合”。在一些实现方式中,动作还可以包括标识选通条件,诸如手跟踪系统提供用户的手在视图中、当前手跟踪位置的置信度值高于阈值、或手不处于静止状态的一个或多个指示。

在框2304处,过程2300可以基于一个或多个身体部位的跟踪位置来连续地确定控制点和投射方向。(多个)身体部位例如可以是手的一部分(例如,指尖、手腕、手掌、拳头等)、眼睛、头部、胸部或躯干、腿或脚等的一部分。控制点可以在身体部位之一处或从其偏移。在一些实现方式中,投射方向可以沿着将用户的一只眼睛连接到控制点的线。例如,过程2300可以基于用户移动控制点来确定对象是否落入由在用户眼睛处的扭曲圆锥的尖端和扭曲圆锥的侧面的形状形成的扭曲圆锥内。如本文所使用的,“扭曲圆锥”是具有不一定是圆形或椭圆形的底部的圆锥。在一些实现方式中,扭曲的圆锥形状可以通过用户移动她的注视来创建,其中注视由从用户瞳孔中心的估计位置和用户视网膜中心的估计位置形成的线来确定。

在框2306处,过程2300可以显示基于投射方向的路径。路径可以是由控制点和投射方向指示的位置的记录。在一些实现方式中,路径可以对用户看起来好像她正在通过移动控制点在人工现实环境中绘制路径。在一些实现方式中,过程2300不显示路径,跳过框2306。

在框2308处,由于过程2300连续监视控制点和投射方向,过程2300可以确定控制点的用户移动旨在作为套索输入。在一些实现方式中,过程2300通过提供对经过训练来标识套索输入的机器学习模型的路径指示来做出该确定。在一些实现方式中,过程2300通过从用户的角度将路径平坦化为2D平面并确定该路径与自身相交来做出该确定。套索输入可以限定由套索输入形成的形状的闭合轮廓。如果套索输入没有形成闭合形状,则过程2300可以利用与套索输入匹配的直线或曲线来将其闭合。

在框2310处,响应于一个或多个触发,诸如标识套索输入、用户释放手势或用户手移动的速度下降到阈值以下,过程2300可以标识扭曲圆锥,该扭曲圆锥具有在用户的一只眼睛处形成的扭曲圆锥的尖端以及由套索输入限定的闭合形状形成的扭曲圆锥形状。例如,扭曲圆锥可以由从用户的眼睛延伸并穿过闭合形状上的点的每个可能的线形成。

在框2312处,过程2300可以选择落入在框2310处标识的扭曲圆锥内的对象。在一些实现方式中,过程2300还可以选择与扭曲圆锥至少部分地相交或者具有其在扭曲圆锥内的体积阈值量(例如,至少30%、50%或75%)的对象。例如,过程2300可以通过识别用户形成将所有五个指尖放在一起的手势而在框2302处开始。在框2304-2310处,过程2300可以监视用户指尖正前方的点作为控制点,基于所跟踪的用户优势眼的位置确定方向,跟踪从用户的视角来看由控制点限定的路径并且使用机器学习模型来确定路径形成了套索输入。过程2300然后可以标识由从用户的眼睛开始并且被移动以也延伸通过套索输入的闭合部分上的每个点的线的路径限定的扭曲圆锥。过程2300然后可以使至少部分落入扭曲圆锥内的任何对象被选择。

在一些实现方式中,本文描述的多个选择过程可以被组合为单个手势。例如,过程1900和2300可以被组合。在一个示例中,过程1900可以在框1902处开始,同时从框2308连续地执行分析来确定输入是否是套索手势。如果套索手势被标识,则过程1900可以转换到过程2300的框2308。如果没有套索手势被标识,则过程1900可以继续。在另一示例中,用户绘制的套索手势可以具有带有开始和/或结束“尾部”的闭合形状。过程1900和2300的该示例组合可以从用户的角度选择与套索手势的路径相交的所有对象(包括尾巴),并且可以选择落入由套索手势的闭合形状部分形成的扭曲圆锥内的所有对象。在另一示例中,过程2100可以与过程2300组合,使得由过程2300选择的任何可操作对象也可以被致动。

图24A是图示了使用套索手势来选择对象的示例2400的概念图。在示例2400中,用户通过做出手势2402,将她的拇指尖、食指尖和中指尖放在一起开始。手交互系统然后开始跟踪控制点2404(在手势2402前方偏移的点)以及通过确定连接用户眼睛(未示出)和控制点2404的线形成的投射方向。因此,从用户视角来看,移动控制点2404可以被用于在人工现实环境中“绘制”路径。当用户第一次形成手势2402时,她在点2406处开始绘制。用户然后移动她的手,导致控制点2404移动,创建路径2408。当路径2408在点2410处与自身相交时(从用户的角度来看),手交互系统基于机器学习模型确定用户已绘制了套索选择。手交互系统然后将路径2408的闭合区段形成为扭曲圆锥(未示出)并且确定扭曲圆锥与对象2412、2414和2416至少部分地相交。手交互系统因此选择相交的对象2412,2414和2416。

图24B是图示了使用套索手势来选择对象的示例2450的另一概念图。在示例2450中,用户通过以类似于示例2400的方式基于手势移动控制点来形成具有闭合形状2452的路径。手交互系统形成了扭曲圆锥2454,扭曲圆锥的尖端处于用户的优势眼2456处并延伸,使得扭曲圆锥的边缘与闭合形状2452重合。手交互系统然后确定超出形状2452(即,在闭合形状2452与用户的相对侧)并且与扭曲圆锥2454的该部分相交的任何对象。在示例2450中,这些是对象2456和2458。手交互系统因此选择了相交的对象2456和2458,而不是非相交的对象2460和2462。

图25是图示了在本技术的一些实现方式中使用的用于使用框架手势来选择对象的过程2500的流程图。在框2502处,过程2500可以标识对应于开始对象选择的动作。在一些实现方式中,动作可以是双手“捏合”手势,由用户从每只手的拇指触摸该手的食指或中指形成,两个捏合在拇指/手指相交点处触摸。在一些实现方式中,动作可以是双手“L”手势,由第一只手的拇指垂直于地面竖起,食指平行于地面,而第二只手的拇指垂直向下伸出到地面且食指平行于地面,限定了矩形的两个相对的角而形成。在一些实现方式中,手势可以是用户在一只手或两只手上的手指,限定了另一形状,诸如三角形或椭圆形。在一些实现方式中,手势可以使用一只手形成。例如,手势可以是捏合,手势在打开时,限定与用户拇指和手指的尖端处的点相对应的矩形的相对点。作为另一示例,手势可以是开始系统跟踪控制点的捏合。控制点可以被移动来绘制线,从而将矩形的相对点限定为线的起点和终点。在一些实现方式中,动作还可以包括标识选通条件,诸如手跟踪系统提供用户的手在视野中、当前手跟踪位置的置信度值高于阈值、或手不处于静止状态的一个或多个指示。

在框2504处,过程2500可以连续地确定由第一用户的手的第一跟踪部分和第二用户的手的第二跟踪部分限定的形状。形状可以是矩形并且被跟踪的手部分可以是在框2502处标识的与矩形的相对角相对应的点。当用户移动她的手时,过程2500可以确定矩形的新尺寸和位置。在其他实现方式中,形状可以通过将线或曲线归于用户手的部分、连接线和/或捕捉线来符合给定形状来限定。例如,过程2500可以被配置为标识矩形,并且用户可以使用每只手做出L形。过程2500可以将线归于每个手指而形成L形的一部分,将它们延伸以相交,并且捕捉这四条线而形成直角,形成矩形。作为另一示例,过程2500可以被配置为识别椭圆形并且用户可以使用一只手的拇指和食指制作“C”形并且使用另一只手的拇指和食指制作另一反向“C”形。过程2500可以为将曲线归于每个C形,将它们延伸以相交并且使得这些曲线平滑而形成椭圆。如上所述,在一些实现方式中,形状可以通过使用单个手的手势来限定,诸如由用户食指和拇指上的点处限定的对角形成的矩形或基于用户绘制的线(在类似于框1902和1904跟踪的路径的方式)将矩形的相对角限定为线的起点和终点。

在框2506处,过程2500可以显示在框2504处确定的形状的表示(诸如轮廓)。例如,如果用户正在做出手势以使用捏合手势拉开矩形的相对角,则矩形可以被连续绘制,从而向用户展示矩形的轮廓。在一些实现方式中,过程2500不显示形状表示,跳过框2506。

在框2508处,过程2500可以标识在用户的一只眼睛处形成具有棱锥的尖端和基于在框2504处确定的矩形形成的棱锥壁的棱锥。例如,棱锥可以通过从用户眼睛延伸并穿过矩形的一个边的四个三角形形成。在框2504处确定的形状不是矩形的一些实现方式中,可以确定其他3D形状,诸如如果形状是三角形则为四面体或者如果形状为椭圆形则为圆锥(与框2310类似地形成)。

在框2510处,响应于一个或多个触发,诸如在框2502处连续标识动作之后、在用户释放在框2502处标识的手势时、或者当用户的手移动的速度下降到低于阈值,过程2500可以选择落入在框2508处标识的棱锥(或其他形状)内的对象。在一些实现方式中,过程2500还可以选择与棱锥(或其他形状)至少部分地相交或在其内具有其体积的阈值量(例如,至少20%、50%或85%)的对象。例如,过程2500可以通过识别用户形成了两个触摸捏合手势而在框2502处开始。在框2504-2510处,过程2500可以在用户将它们拉开时在用户的两个捏合手势处连续确定由对角形成的矩形的尺寸和位置。过程2500然后可以绘制该矩形供用户查看,标识在用户的优势眼处具有尖端并且具有由矩形限定的棱圆锥状的棱锥,并且使得至少部分落入棱锥内的任何对象被选择。

在一些实现方式中,本文描述的多个选择过程可以被组合为单个手势。例如,过程2100和2500可以被组合,使得过程2500选择的任何可操作对象也可以被致动。

图26A是图示了使用框架手势来选择对象的示例2600的概念图。在示例2600中,用户通过做出手势2602A和2602B,将她的拇指尖和食指尖放在一起并且在点2612处一起触摸这些手势开始。手交互系统然后开始从用户的角度来看,基于手势2602A和2602B的位置,跟踪矩形2604的对角。因此,从用户的角度来看,移动手势点2602A和2602B形成了矩形2604。当用户将她的手分开时,矩形2604的角分开,增加了矩形2604的尺寸。当用户形成该矩形时,手交互系统确定了棱锥,棱锥由用户优势眼处的棱锥尖端和延伸通过矩形2604的边缘的边形成。在示例2600中,手交互系统连续选择(或取消选择)与棱锥至少部分相交的对象,直到用户释放手势2602A或2602B之一。手交互系统因此选择了相交对象2606和2608,而不是2610。

图26B是图示了使用框架手势来选择对象的示例2650的另一概念图。在示例2650中,用户通过形成两个捏合手势并以与示例2600类似的方式将它们拉开来形成矩形2652。手交互系统形成了棱锥2654,棱锥的尖端位于用户的优势眼2656处并且延伸为使得形成棱锥边缘的四个三角形与矩形2652重合。手交互系统然后确定超出矩形2652(即,在矩形2652与用户相对的一侧)并且完全落在棱锥2654内的任何对象。在示例2650中,这是对象2658。手交互系统因此选择了包络对象2658,而不是非包络对象2660和2662。

双手交互

单手手势限制了用户在与XR系统交互时可以如何表现。手交互系统可以跟踪用户双手的姿势,允许第二只手(例如,非优势手)为由第一只手(例如,优势手)控制的手势提供细微差别。这些双手(即,两手操作的)交互允许用户将他们的日常经验和技能转移到人工现实环境中的交互。例如,当利用以上讨论的投影投射技术执行交互时,诸如当多个对象相互遮挡时,当对象被紧密分组并且用户想要选择它们的子集,或者当对象分散并且用户想要选择所有对象时,投影可以与比用户预期更多或更少的对象相交。在这些情况下,由第二只手(和/或利用同一只手的不同部位)执行的第二手势可以控制投影的各方面,诸如射线投影的长度(例如,“挂钩”交互)或圆锥投影的直径(例如,“长号”交互)。在一些实现方式中,用户可能想要与一个或多个目标对象执行更复杂的交互,并且可以通过使用她的第二只手与控件交互来指定这些交互的细节。

图27是图示了在本技术的一些实现方式中使用的用于在与射线投影相交的目标和非目标对象之间消歧的过程2700的流程图。例如,这可以允许用户在使用射线投影时对相互遮挡的对象进行消歧。

在框2702处,过程2700可以基于一个或多个身体部位的跟踪位置来确定控制点和投射方向。过程2700可以以类似于框1202的方式来完成。在框2704处,过程2700可以从控制点沿投射方向生成射线投影。过程2700可以以类似于框1204的方式完成。

在框2706处,过程2700可以连续地确定控制控制点的第一只手(例如,优势手)和第二只手(例如,非优势手)之间的距离关系。在一些实现方式中,距离关系可以基于一只手上的两个手指(例如,食指的指尖和拇指的指尖)之间的距离,而不是两只手之间的距离。在其他实现方式中,距离关系可以基于一只手与另一身体部位(诸如用户的躯干)之间的距离。在一些实现方式中,射线投影可以沿着用户的注视,并且用户可以通过沿着射线将她的手移动得离她的眼睛更近或更远来指定距离。在各种实现方式中,距离可以在任何方向上或可以在特定方向上(例如,垂直于射线或沿着射线)。

在各种实现方式中,距离关系可以与用户的手之间的实际距离成线性或指数比例。在一些实现方式中,该关系可以基于用户更改她的手之间的距离的速度。例如,过程2700确定的量可以对数地增加或减少,使得较快的移动比慢速移动增加更多的量。这允许用户使用快速移动来控制具有更大粒度和更慢移动的量,以进行更精确的调整。在一些实现方式中,距离关系可以根据所确定的人造现实环境的尺寸来缩放。例如,在较小的空间中,移动可以是更精确的,而在较大的空间中,移动可以进一步扩展射线来与更远距离的对象交互。

在框2708处,过程2700可以基于在框2706处确定的距离关系来连续地设定射线投影的长度或“挂钩”位置。在一些实现方式中,代替设定射线长度,过程2700可以基于距离关系而沿射线设定交互点。无论是在射线的端部还是在沿射线的某个点处,该交互点在本文中被称为“挂钩”。在一些实现方式中,过程2700可以提供射线的视觉表示并且可以包括挂钩的图形表示(诸如球体)。

在框2710处,过程2700可以基于与挂钩的相交来标识一个或多个对象。在一些实现方式中,这可以在挂钩与对象相交时发生。在其他实现方式中,过程2700可以标识由用户执行的第三手势,诸如使用一只手做出点击手势、点头、轻拍她的脚等,以在做出手势时,作为选择挂钩相交对象的触发。在框2712处,过程2700可以切换对在框2710处标识的对象的选择或以其他方式与之交互。

图28和图29是图示了使用挂钩,在与射线投影2802相交的选定对象和未选定对象之间进行消歧的示例2800和2900的概念图。示例2800开始于用户通过在她的优势手2806上的拇指和中指之间执行捏合手势2804来创建射线投影2802。用户可以定位射线2802,使得其与对象2808和2810相交。用户然后可以基于她的优势手2806和非优势手2818之间的距离2816,利用射线2802端部处的挂钩2814来控制射线的长度。当挂钩2814与用户打算瞄准的对象2810相交时,她可以做出第二捏合手势(未示出),这次是利用她的优势手2806上的食指和拇指。当手交互系统标识该手势时,它选择对象2810,此时挂钩2814与之相交。在示例2900中,用户然后通过延长她的优势手2806和她的非优势手2818之间的距离2816来更改射线2802的长度,并相应地更改挂钩2814的位置,同时仍然保持第一拇指/中指捏合,使得挂钩2814与对象2812相交。用户还可以通过再次还使用拇指/食指捏合做出手势2902来选择对象2812,现在对象2812与挂钩2814相交。

图30是图示了在本技术的一些实现方式中使用的用于使用“长号”手势而在与圆锥或圆柱投影相交的目标和非目标对象之间消歧的过程3000。例如,这可以允许用户扩大或收缩圆锥或圆柱投影的直径,以轻松控制圆锥或圆柱与哪些对象相交。

在框3002处,过程3000可以基于一个或多个身体部位的所跟踪的位置来确定控制点和投射方向。过程3000可以以类似于框1402或1602的方式来完成。在框3004处,过程3000可以从控制点沿投射方向生成圆锥或圆柱投影。过程3000可以以类似于框1404或1604的方式完成。

在框3006处,过程3000可以连续确定控制控制点的第一只手(例如,优势手)和第二只手(例如,非优势手)之间的距离关系。在一些实现方式中,代替两只手之间的距离,距离关系可以基于一只手上的两个手指(例如,食指的指尖和拇指的指尖)之间的距离。在其他实现方式中,距离关系可以基于一只手与另一身体部位(诸如,用户的躯干)之间的距离。在一些实现方式中,圆锥或圆柱投影可以沿着用户的注视并且用户可以通过沿着圆锥或圆柱的中心移动她的手更靠近或更远离她的眼睛来指定距离。在各种实现方式中,距离可以在任何方向上或可以在特定方向上(例如,垂直或平行于圆锥或圆柱的中心)。

在各种实现方式中,距离关系可以与用户手之间的实际距离成线性或指数比例。在一些实现方式中,该关系可以基于用户改变她的手之间的距离的速度。例如,过程3000确定的量可以对数地增加或减少,使得较快的移动比慢速移动增加更多的量。这允许用户使用快速移动来控制具有更大粒度和更慢移动的量,以进行更精确的调整。

在框3008处,过程3000可以基于在框3006处确定的距离关系来连续设定圆柱的直径或圆锥的底部的直径。在一些实现方式中,过程3000可以提供圆锥或圆柱的视觉表示,显示它随着用户更改距离关系而改变尺寸。

在框3010处,过程3000可以基于至少部分相交或被圆锥或圆柱完全涵盖来标识一个或多个对象。在一些实现方式中,这可以在圆锥或圆柱与对象相交时发生。在其他实现方式中,过程3000可以标识用户执行的第三手势,诸如使用一只手做出点击手势、点头、轻拍她的脚等,作为标识在该时刻与圆锥或圆柱相交的任何对象的触发。在框3012处,过程3000可以切换对在框3010处标识的对象的选择或以其他方式与之交互。

在组合了过程2700和3000的备选实现方式中,用户可以使用一个手势(例如,优势手上的拇指的指尖和食指之间的距离)来控制圆柱或圆锥的长度,并且可以使用另一手势(例如,她的两只手之间的距离)来控制圆柱或圆锥底部的直径。作为该备选方案的修改,可以使用球体投影来代替圆柱或圆锥投影,其中用户基于一个手势(例如,她的两只手之间的距离)来控制球体沿射线的位置,并且利用另一手势(例如,优势手上拇指的指尖和食指之间的距离)来控制球体的直径。

图31和图32是图示了用于在与圆锥投影相交的选定和非选定对象之间消歧的长号手势的示例3100和3200的概念图。示例3100开始于用户通过在她的优势手3106上在她的拇指和中指之间执行捏合手势3104来创建圆锥投影3102。用户可以定位圆锥3102,使得它与对象3108、3110、3112和3120相交。用户然后可以基于她的优势手3106和非优势手3118之间的距离3116来控制圆锥3102的底部3114的直径。手交互系统选择对象3108、3110、3112和3120,因为它们与圆锥3102相交。在示例3200中,用户已通过更改她的优势手3106和非优势手3118之间的距离3116来更改圆锥3102的底部3114的直径,同时仍然保持第一拇指/中指捏合手势,导致圆锥3102仅与对象3112和3108相交。作为响应,手交互系统可以取消选择对象3120和3110,但保持对象3108和3112被选择。用户可以继续,直到她的预期目标对象被选择,此时她释放手势3104。

图33和图34是图示了用于在与圆柱投影相交的选定对象和非选定对象之间消歧的长号手势的示例3300和3400的概念图。示例3300开始于用户通过在她的优势手3310上在她的拇指和中指之间执行捏合手势3304来创建圆柱投影3302。用户可以定位圆柱3302,使得它与对象3308、3306和3330相交。用户可以然后通过更改她的优势手3310和非优势手3318之间的距离3316来控制圆柱3302的底部3314的直径。手交互系统选择对象3308、3306和3330,因为这些是与圆柱相交的对象3302,但不选择对象3332,因为它不与圆柱3302相交。在示例3400中,用户然后通过更改她的优势手3310和非优势手3318之间的距离3316来改变圆柱3302的底部3314的直径,同时仍然保持第一拇指/中指捏合。该改变导致圆柱3302与对象3306、3308、3330和3332相交。用户可以继续,直到她的预期目标对象被选择,此时她释放手势3304。

尽管如上所述的手势组合是强大的交互技术,但在某些情况下,将不同的手势映射到每个动作可能会使用户感到困惑或限制用户可以执行哪些动作。然而,当与远处的对象交互时,附接到这些对象的菜单可能难以让用户与之交互。世界锁定的菜单可以限制用户在与菜单交互时想要移动自己或目标对象的位置。用户也可能难以将世界锁定菜单与目标对象相匹配。这些问题可以通过与使用投影选择的对象相关的菜单来克服,但该菜单附接到投影投射手而不是对象。这允许第二只手与菜单交互,从而与对象轻松地交互。图35是图示了在本技术的一些实现方式中使用的用于使用附接到优势手的菜单与对象进行双手交互的过程3500的流程图。

在框3502处,过程3500可以接收使用优势手选择的一个或多个对象的标识。在一些实现方式中,选择可以使用上述投影或多选过程之一来执行。在一些实现方式中,选择可以与特定手势(诸如用于启动投影或选择的手势)相关联,并且过程3500可以仅在用户保持该手势时继续。例如,用户可以投射射线投影来选择对象,并且过程3500可以继续提供与该选定对象相对应的菜单,直到用户移动投影(取消选择对象)或释放投影手势。

在框3504处,过程3500可以获得与一个或多个对象相关联的一个或多个菜单,过程3500在框3502接收到一个或多个对象的指示。在框3506处,过程3500可以显示与优势手相关联的一个或多个菜单。在其他实现方式中,过程3500可以显示与非优势手或执行对一个或多个对象的选择的手相关联的一个或多个菜单,而不是总是显示与优势手相关联的一个或多个菜单。在各种实现方式中,一个或多个菜单中的每一个可以偏移手上的点(诸如手腕、拇指中心、指尖、手背中部、手的质心等),在这样的点处覆盖为“皮肤”,缠绕在手的一部分周围(例如,显示为手镯、戒指等)或它们的组合。在一些实现方式中,一个或多个菜单可以基于诸如特定手指的移动或手的旋转等手势而被触发以出现和消失。

在框3508处,过程3500可以接收与所显示的一个或多个菜单的交互。在一些实现方式中,交互可以使用与菜单相关联的同一只手发生(例如,出现在中指上的“环形”菜单可以由同一只手上的拇指轻敲)或者可以是来自相对手的交互,不管它是否是非优势手。一个或多个菜单可以具有与选定对象执行任何类型交互的控件,并且与菜单的交互可以触发该交互。在一些实现方式中,菜单选择可以使得手交互系统以特定方式解释进一步的手势。例如,如果菜单选择是“移动”,则优势手的移动会导致手交互系统相应地移动选定的一个或多个对象。作为另一示例,如果菜单选择是“旋转”,则优势手的旋转可以使得手交互系统成比例地旋转选定的一个或多个对象。

图36、图37和图38是图示了使用与优势手附接的菜单来与对象进行双手交互的示例3600、3700和3800的概念图。在示例3600中,由于使用由用户的优势手3606投射的射线投影3604来选择对象3602,对象3602的指示被接收。在示例3700中,响应于对象3602的选择,菜单3702与优势手3602相关联,从优势手3602的质心偏移。菜单3702包括对象3602的控件,该控件可以由用户的非优势手3710致动。在示例3700中,控件包括用于执行选定对象3602的90度旋转的控件3704、用于允许选定对象3602根据优势手3606的旋转而自由旋转的控件3706、以及用于调整选定对象3602尺寸的控件3708。在示例3800中,用户已通过使用她的非优势手3710,在控件3706旁边执行捏合手势3802来致动控件3706。控件3706的致动导致手交互系统将优势手3606的旋转映射到选择对象3602的旋转。

操作模式

存在用户可以关于对象执行的不同类型的交互,诸如在人工现实环境中移动对象和致动对象上的控件。但是,执行此类交互的手势可能不明确,导致现有XR系统无法正确区分它们。特别是精度随着距离的增加而下降,现有XR系统的用户会发现交互令人厌烦和压力大,因为这些系统在不同情况下使用相同的输入模态,并且无法区分交互类型。为了解决这些问题,手交互系统可以切换操作模式(例如,在全局和局部交互模式之间切换)。全局模式可以被用于在环境内操纵对象(例如,在虚拟环境中选择对象、控制对象放置、取向、尺寸等)或切换到对此类全局交互有用的输入模态(例如,射线、球体或圆锥投射)。局部模式可以被用于与对象的界面交互(例如,按压对象上的按钮或与和对象相关联的菜单交互)或者切换到对此类局部交互有用的输入模态(例如,将按钮映射到用户手指)。因此,有歧义的输入可以根据当前为手交互系统设定的任何模式来解释。在各种实现方式中,可以使用备选的或附加的操作模式。例如,多于两个模式可以被定义,模式可以针对不同的目的定义,模式可以以不同的方式被触发等。

在各种实现方式中,用户可以在操作模式之间显式地选择(例如,通过手势或按钮按压)或模式选择可以是隐式的(例如,基于用户注视)。响应于与操作模式之间的切换相对应的显式或隐式触发,手交互系统然后可以根据手势到针对选定模式定义的动作的映射来解释输入手势。例如,响应于标识到第一模式(例如,全局模式)的切换,手交互系统可以通过将第一手势映射到针对第一(例如,全局)模式定义的第一组动作中的第一动作来解释第一手势。然后,响应于导致切换到第二操作模式(例如,局部模式)的第二触发,手交互系统可以通过将第二手势映射到针对第二(例如,局部)模式定义的第二动作中的第二动作来解释第二手势。

在一些实现方式中,输入模态可以基于哪个操作模式被激活而更改。例如,在全局模式中,输入可以被切换到基于确定手势方向的输入模态(例如,投影投射,诸如射线、圆柱、球体或圆锥投影)。在局部模式中,输入可以被切换到其他模态(诸如通过将与选定对象相关联的控件映射到用户手上的手指),其中所映射手指的特定的所检测的移动控制对应控件的致动。

图39是图示了在本技术的一些实现方式中使用的用于切换输入模态(例如,用于全局或局部模式交互)的过程3900的流程图。在框3902处,过程3900可以标识用于在操作模式之间转换的触发,并且在框3904处,过程3900可以标识触发对应于哪个模式(例如,触发是要进入全局输入模式还是进入局部输入模式)。在一些实现方式中,触发可以是显式的用户动作。作为示例,特定手势可以使得手交互系统在模式之间切换或者在手势被保持时切换到第一(例如,局部)模式,并且在手势未被标识时切换到第二(例如,全局)模式;手交互系统可以在输入手垂直旋转时切换到第一模式,并且在不垂直旋转时切换到第二模式;手交互系统可以响应于真实或虚拟按钮按压或语音命令而在模式之间切换等。在一些实现方式中,切换模式的触发可以是隐式的。作为示例,当用户的跟踪注视在对象上停留超过阈值时间量(例如,一、二或三秒)时,手交互系统可以进入局部模式,并且可以在用户对该对象的注视结束另一阈值时间量时进入全局模式。在另一示例中,手交互系统可以以全局模式开始,在用户首先选择对象时进入局部模式,并且在用户轻敲对象或以其他方式执行所定义的“返回”手势时转换回全局模式。在触发是诸如旋转用户的手的相关手势的一些实现方式中,当用户的手在模式之间的边界上时,可以应用滞后来防止模式之间的抖动。如果触发转换到第一(例如,全局)模式,则过程3900可以继续到框3906,并且如果触发转换到第二(例如,局部)模式,则过程3900可以继续到框3908。

在框3906处,过程3900可以切换到针对当前模式(例如,全局模式)建立的输入模态。在一些实现方式中,针对全局模式的输入模态可以基于确定手势方向(例如,如上所述的投射投影(例如,射线、球体、圆柱或圆锥))。在其他实现方式中,输入模态可以呈现控件组,用于在选择对象时进行全局交互(例如,旋转、调整尺寸或移动对象)。

在框3908处,过程3900可以切换到针对第二模式(例如,局部模式)建立的输入模态。在各种实现方式中,输入模态可以是可用交互到特定手指移动或其他手势的映射;投射类型之间的切换,诸如从圆锥投射切换到射线投射;或者显示被配置用于执行位置交互的控件。在一些实现方式中,局部交互可以针对特定的选定对象,诸如在全局模式中选定的一个或多个对象。这允许用户执行与选定的一个或多个对象相关的交互,而不必指向或以其他方式将她的交互指向目标对象。在某些情况下,选定对象可以例如基于用户的注视,在不退出当前(例如,局部)模式的情况下更改。在其他实现方式中,局部交互可以基于用户指示的对象。

在一些实现方式中,过程3900可以针对每只手单独地执行。例如,用户的优势手可以处于第一(例如,全局)模式,控制用于选择对象的投影,而用户的非优势手可以处于第二(例如,局部)模式,其中控件被映射到非优势手上的手指,以与优势手选择的任何对象交互。

在执行框3906或3908之后,过程3900可以在标识用于切换到备选的全局或局部模式的另一触发时返回到框3902。

图40A和图40B是图示了针对全局或局部模式交互来切换输入模态的示例4000的概念图。在示例4000中,用户基于她的手4002的旋转方向而在局部和全局模式之间转换。在示例4000中,用户已通过如箭头4004所示垂直转动她的手4002而使得手交互系统进入局部模式(例如,表示她的手的平坦的平面与已建立的地板平面垂直至少有阈值度数,诸如30度)。

在进入局部模式时,局部模式控件组4008连同先前选择的对象4006一起出现。控件4008包括按钮4010-4016。在该示例中,控件4010被映射到手指4018,控件4012被映射到手指4020,控件4014被映射到手指4022,并且控件4016被映射到手指4024。因为用户已伸出手指4018,所以对应的映射控件4010被激活。

示例4000在图40B中继续,其中用户已使得手交互系统通过如箭头4052所指示的将她的手4002旋转到水平而转换到全局模式(例如,表示她的手平坦的平面与已建立的地面平面呈至少阈值度数,诸如30度,而不是垂直)。作为响应,手交互系统将输入模态从图40A的手映射控件切换到射线投影4054,允许用户使用射线投影4054进一步执行与对象4006或其他对象的全局交互。

图41是图示了在本技术的一些实现方式中使用的用于将手势解释为当前(例如,全局或局部)模式中的特定交互的过程4100的流程图。在框4102处,过程4100可以标识用于在两个模式(例如,全局模式和局部模式)之间转换的触发,并且在框4104处,过程4100可以标识触发对应于哪个模式(例如,触发器是进入全局模式还是进入局部模式)。框4102和4104可以类似于框3902和3904来执行。如果触发是针对第一(例如,全局)模式,则过程4100可以继续到框4106,并且如果触发是针对第二(例如,局部)模式,过程4100可以继续到框4108。

在框4106处,过程4100可以使得手交互系统根据当前(例如,全局)模式解释进一步的用户输入。而在框4108处,过程4100可以使得手交互系统根据第二(例如,局部)模式解释进一步的用户输入。可以针对对象采取的动作可以被划分为可执行的可用模式之一(例如,在全局或局部模式下)。手交互系统可以将输入手势与针对当前激活模式定义的动作组中的动作相匹配。例如,在全局模式下,从虚拟棋盘的右上角向下拖动的手势可以被解释为旋转棋盘的意图。然而,在局部模式下,相同的手势可以被解释为将车从右上角的棋格向前移动与手势长度相对应的量。作为另一示例,在目标对象是虚拟绘制应用程序的情况下,手交互系统可以将局部模式下的单击和拖动手势解释为在应用程序内绘制线,而手交互系统可以在全局模式下将相同的手势解释为旋转显示绘制表面的虚拟面板的命令。在一些实现方式中,过程4100可以针对每只手单独地执行。例如,用户的优势手可以处于第一(例如,全局)模式,控制3D模型的取向,而用户的非优势手可以处于第二(例如,局部)模式,以致动对3D模型面部的控制。

在执行框4106或4108之后,过程4100可以在标识用于切换到备选模式的另一触发时返回到框4102。

图42A和图42B是图示了将手势解释为全局或局部模式中的交互的示例4200的概念图。在示例4200中,用户基于她的注视停留在对象上至少两秒转换到局部模式,并且当她的注视离开该对象至少1.5秒时转换到全局模式。在示例4200中,用户通过将她的注视4202指向对象4204两秒钟而使得手交互系统进入与对象4204相关的局部模式。

示例4200在图42B中继续,其中用户使用她的手4252来控制射线投影4254。因为用户基于她的注视进入局部模式(如图42A所示),所以射线投影4254与对象相交4204通过致动对象4204的控件4256来引起局部交互。用户的注视(图42B中未示出)没有离开对象4204超过1.5秒,因此手交互系统保持在局部模式。在一些实现方式中,可以一起执行过程3900和4100,使得全局模式和局部模式之间的切换可以更改输入模态并且导致根据当前全局或局部模式来解释有歧义的输入。

本说明书中对“实现方式”(例如,“一些实现方式”、“各种实现方式”、“一个实现方式”、“实现方式”等)的引用表示结合实现方式描述的特定特征、结构或特性被包括在本公开的至少一个实现方式中。这些短语在说明书中不同地方的出现不一定都指代相同的实现方式,也不是与其他实现方式相互排斥的独立或备选的实现方式。此外,描述了可以由一些实现方式而不是由其他实现方式展示的各种特征。类似地,描述了各种需求,这些需求可能是对某些实现方式的需求,但不是对其他实现方式的需求。

如本文所使用的,“手指”可以是手的五个手指中的任一个,并且指尖可以是手的五个手指中的任一个的尖端。

如本文所使用的,高于阈值意味着被比较的项的值高于指定的其他值,被比较的项在某个指定数量的具有最大值的项中,或者被比较的项的值在指定的最高百分比值内。如本文所使用的,低于阈值意味着被比较的项的值低于指定的其他值,被比较的项在某个指定数量的具有最小值的项中,或者被比较的项具有指定的底部百分比值内的值。如本文所使用的,在阈值内是指被比较的项的值在两个指定的其他值之间、被比较的项在中间指定数量的项之间、或者被比较的项的值在中间指定的百分比范围内。相对术语,诸如高或不重要,当没有另外定义时,可以被理解为分配值并且确定该值如何与既定阈值进行比较。例如,短语“选择快速连接”可以被理解为表示选择具有与其高于阈值的连接速度相对应分配的值的连接。

如本文所使用的,词语“或者”指代项的集合的任何可能的排列。例如,短语“A、B或C”指代A、B、C中的至少一个或其任意组合,诸如以下的任一个:A;B;C;A和B;A和C;B和C;A、B和C;或任何项的倍数,诸如A和A;B、B和C;A、A、B、C和C等。

尽管已以结构特征和/或方法动作特定的语言描述了主题,但是应当理解,在所附权利要求中限定的主题不一定限于上述特定特征或动作。出于说明的目的,本文中已描述了特定的实施例和实现方式,但是可以在不偏离实施例和实现方式的范围的情况下进行各种修改。上述具体特征和动作被公开为实现所附权利要求的示例形式。因此,实施例和实现方式不受所附权利要求的限制。

上述任何专利、专利申请和其他参考文献均通过引用并入本文。根据需要,可以修改各方面来采用上述各种参考文献的系统、功能和概念,以提供更进一步的实现方式。如果通过引用并入的文件中的陈述或主题与本申请的陈述或主题相冲突,则应以本申请为准。


最新回复(0)