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

虚拟键盘的制作方法

2022-04-09 03:11:09 来源:中国专利 TAG:


1.概括地说,本公开内容涉及用于生成扩展现实键盘(被称为“虚拟键盘”)并且将其与用户的一只或多只手配准的技术和系统。


背景技术:

2.扩展现实技术可以用于向用户呈现虚拟内容,和/或可以将来自物理世界的真实环境和虚拟环境结合以便为用户提供扩展现实体验。术语扩展现实可以包括虚拟现实、增强现实、混合现实等。扩展现实的这些形式中的每一种都允许用户体验沉浸式虚拟环境或内容或与之交互。例如,扩展现实体验可以允许用户与使用虚拟内容加强或增强的真实或物理环境进行交互。可以实现扩展现实技术来加强在广泛范围的背景(例如,娱乐、医疗保健、零售、教育、社交媒体等)下的用户体验。


技术实现要素:

3.在一些示例中,描述了用于生成扩展现实键盘(也被称为虚拟键盘)的系统、方法和计算机可读介质。例如,由用户佩戴的扩展现实设备(例如,增强现实头戴式设备,诸如眼镜或其它头戴式设备)可以检测用户的一只或多只手,例如,通过在扩展现实设备的相机的视野中检测一只或多只手,使用位于手附近或手上的传感器来检测一只或多只手,等等。扩展现实设备可以生成虚拟键盘并且将其显示在扩展现实设备的显示器上,例如响应于在相机视野中检测到一只或多只手。在一些示例中,虚拟键盘可以被显示在现实世界内容的图像之上(例如,可以通过扩展现实设备的显示器查看现实世界环境的场景)或在虚拟内容之上。在一些示例中,虚拟键盘可以在扩展现实设备的显示器上被显示为投影(例如,在这些示例中,显示器可以包括扩展现实眼镜的镜片),因此观看者可以在通过显示器查看现实世界的同时查看和控制虚拟键盘。从观看者通过扩展现实设备的角度来看,虚拟键盘看起来位于开放空间中。
4.扩展现实设备可以相对于用户的一只或多只手来配准虚拟键盘。例如,一只或多只手上的一个或多个界标点可以用作用于将虚拟键盘定位在扩展现实设备的显示器上的现实世界配准点。在一些实现中,一个或多个界标点可以包括用户的每只手上的至少一个点(例如,每只手的手掌上的点)以及手的每个手指上的至少一个点(例如,每个手指上的三个点)。如本文所使用的,术语“手指”可以指一只手的所有五个手指,包括大拇指。
5.在一些示例中,一旦基于与用户的一只或多只手进行配准而确定了虚拟键盘的位置,虚拟键盘可以保持在该位置处,使得其保持固定在该位置处,直至重新配准事件被检测到为止。重新配准事件的示例可以包括一只或多只手的达门限改变量的位置改变、一只或多只手的达移动门限量的移动、在确定虚拟键盘在显示器上的位置之后的预定时间量的到期、其任何组合、和/或其它重新配准事件。
6.在一些示例中,虚拟键盘可以被分成至少第一部分和第二部分。第一部分可以是相对于用户的第一只手进行配准的,而第二部分可以是相对于用户的第二只手进行配准
的。例如,第一只手可以是用户的左手,并且虚拟键盘的第一部分可以包括虚拟键盘的左半部分(或其它左侧部分),而第二只手可以是用户的右手,并且虚拟键盘的第二部分可以包括虚拟键盘的右半部分(或其它右侧部分)。在这样的示例中,虚拟键盘的第一部分可以跟踪第一只手,而虚拟键盘的第二部分可以跟踪第二只手。例如,当用户移动第一只手时,虚拟键盘的第一部分可以在显示器上相对于第一只手移动。类似地,虚拟键盘的第二部分可以在显示器上相对于第二只手移动。
7.根据至少一个说明性示例,提供了一种生成虚拟内容的方法。所述方法包括:由扩展现实设备获得现实世界环境的场景的图像,其中,当虚拟内容被所述扩展现实设备的显示器显示时,所述现实世界环境是可通过所述显示器查看的;由所述扩展现实设备在所述图像中检测用户的物理手的至少一部分;基于检测到所述物理手的至少所述一部分来生成虚拟键盘;确定所述虚拟键盘在所述扩展现实设备的所述显示器上的位置,所述位置是相对于所述物理手的至少所述一部分而确定的;以及由所述扩展现实设备将所述虚拟键盘显示在所述显示器上的所述位置处。
8.在另一示例中,提供了一种用于生成虚拟内容的装置,所述装置包括:显示器;被配置为存储一个或多个图像的存储器;以及耦合到所述存储器的一个或多个处理器(例如,在电路中实现)。所述一个或多个处理器被配置为并且可以进行以下操作:获得现实世界环境的场景的图像,其中,当虚拟内容被所述扩展现实设备的显示器显示时,所述现实世界环境是可通过所述显示器查看的;在所述图像中检测用户的物理手的至少一部分;基于检测到所述物理手的至少所述一部分来生成虚拟键盘;确定所述虚拟键盘在所述显示器上的位置,所述位置是相对于所述物理手的至少所述一部分而确定的;以及将所述虚拟键盘显示在所述显示器上的所述位置处。
9.在另一示例中,一种扩展现实设备的具有存储在其上的指令的非暂时性计算机可读介质,所述指令在由一个或多个处理器执行时使得所述一个或多个处理器进行以下操作:获得现实世界环境的场景的图像,其中,当虚拟内容被所述扩展现实设备的显示器显示时,所述现实世界环境是可通过所述显示器查看的;在所述图像中检测用户的物理手的至少一部分;基于检测到所述物理手的至少所述一部分来生成虚拟键盘;确定所述虚拟键盘在所述显示器上的位置,所述位置是相对于所述物理手的至少所述一部分而确定的;以及将所述虚拟键盘显示在所述显示器上的所述位置处。
10.在另一示例中,提供了一种用于处理一个或多个帧的装置。所述装置包括用于进行以下操作的单元:获得场景的图像;在所述图像中检测用户的物理手的至少一部分,所述物理手的至少所述一部分是可通过显示器查看的;基于检测到所述物理手的至少所述一部分来生成虚拟键盘;确定所述虚拟键盘在所述显示器上的位置,所述位置是相对于所述物理手的至少所述一部分而确定的;以及将所述虚拟键盘显示在所述显示器上的所述位置处且在可通过所述显示器查看的现实世界环境之上。
11.在一些方面,上述方法、装置和计算机可读介质还包括:检测所述物理手上的一个或多个界标点;确定所述一个或多个界标点相对于用于捕获所述图像的相机的一个或多个位置;以及基于所述一个或多个界标点相对于所述相机的所述一个或多个位置,确定所述虚拟键盘在所述显示器上相对于所述物理手的所述位置。
12.在一些方面,上述方法、装置和计算机可读介质还包括:确定所述用户的头部的姿
势;以及基于所述头部的所述姿势来确定所述虚拟键盘在所述显示器上相对于所述头部的所述位置。
13.在一些方面,在所述物理手移动位置时,所述虚拟键盘被固定在所述显示器上的所述位置处。
14.在一些方面,上述方法、装置和计算机可读介质还包括:接收与所述虚拟键盘的操作相关联的输入;以及在基于所接收的输入操作所述虚拟键盘时将所述虚拟键盘保持在所述位置处。
15.在一些方面,上述方法、装置和计算机可读介质还包括:确定与所述物理手的至少所述一部分在所述图像中的位置相比,所述物理手的至少所述一部分在所述场景的额外图像中处于不同的位置;以及基于确定所述物理手的至少所述一部分在所述场景的所述额外图像中处于所述不同的位置,将所述虚拟键盘显示在所述显示器上的额外位置处,所述额外位置不同于所述位置。
16.在一些方面,上述方法、装置和计算机可读介质还包括:在确定所述虚拟键盘在所述显示器上的所述位置之后检测预定时间量的到期;以及基于检测到所述预定时间量的到期,将所述虚拟键盘显示在所述显示器上的额外位置处,所述额外位置不同于所述位置。
17.在一些方面,所述物理手的至少所述一部分包括所述物理手上的至少一个点和所述物理手的手指上的至少一个点。
18.在一些方面,所述物理手的至少所述一部分包括所述物理手上的至少一个点和所述物理手的每个手指上的至少一个点。
19.在一些方面,所述虚拟键盘包括第一部分和第二部分,所述第一部分被显示在所述显示器上相对于所述物理手的所述位置处,并且所述第二部分被显示在所述显示器上相对于所述用户的另一只物理手的额外位置处。在一些方面,所述虚拟键盘的所述第一部分在所述显示器上相对于所述物理手移动,并且其中,所述虚拟键盘的所述第二部分在所述显示器上相对于所述另一只物理手移动。
20.在一些方面,上述方法、装置和计算机可读介质还包括:确定在所述场景的额外图像中不存在所述物理手;以及基于确定在所述场景的所述额外图像中不存在所述物理手,从所述显示器中移除所述虚拟键盘。
21.在一些方面,当所述虚拟键盘从所述显示器中被移除时,所述虚拟键盘是活动的以用于提供输入。
22.在一些方面,上述方法、装置和计算机可读介质还包括:将所述虚拟键盘去激活以不被用于提供输入。
23.在一些方面,所述虚拟键盘是当在所述场景的一个或多个图像中不存在所述物理手时被显示的。
24.在一些方面,所述装置是以下各项或者是以下各项的一部分:相机(例如,ip相机)、移动设备(例如,移动电话或所谓的“智能电话”或其它移动设备)、可穿戴设备、扩展现实设备(例如,虚拟现实(vr)设备、增强现实(ar)设备或混合现实(mr)设备)、个人计算机、膝上型计算机、服务器计算机或者其它设备。在一些方面,所述装置包括用于捕获一个或多个图像的一个相机或多个相机。在一些方面,所述装置还包括用于显示一个或多个图像、通知和/或其它可显示数据的显示器。在一些方面,上述装置可以包括一个或多个传感器。
25.本发明内容并不旨在标识要求保护的主题的关键或必要特征,也不旨在孤立地用于确定要求保护的主题的范围。应当通过参考本专利的整个说明书的适当部分、任何或所有附图以及每项权利要求来理解主题。
26.在参考以下说明书、权利要求书和附图之后,前述以及其它特征和实施例将变得更加显而易见。
附图说明
27.在下文中参考以下附图详细地描述了本技术的说明性实施例:
28.图1是示出根据一些示例的、由用户佩戴的扩展现实设备的示例的图;
29.图2是示出根据一些示例的、由扩展现实设备显示的虚拟键盘的示例的图;
30.图3是示出根据一些示例的、可以用于在一个或多个图像中配准虚拟键盘的位置和/或跟踪虚拟键盘的位置的、手的界标点的示例的图;
31.图4是示出根据一些示例的、分为两个部分的虚拟键盘的示例的图。
32.图5是示出根据一些示例的、用于显示虚拟内容的过程的示例的流程图;
33.图6是可以实现本文描述的各种技术的示例计算设备的示例计算设备架构。
具体实施方式
34.下面提供了本公开内容的某些方面和实施例。对于本领域技术人员来说将显而易见的是,这些方面和实施例中的一些可以独立地应用,并且它们中的一些可以组合地应用。在以下描述中,出于解释的目的,阐述了具体细节以便提供对本技术的实施例的透彻理解。然而,将显而易见的是,可以在不使用这些具体细节的情况下实施各个实施例。附图和描述并不旨在是限制性的。
35.随后描述仅提供示例性实施例,而并不旨在限制本公开内容的范围、适用性或配置。更确切而言,对示例性实施例的随后描述将向本领域技术人员提供用于实现示例性实施例的可行描述。应当理解的是,在不脱离如在所附的权利要求书中阐述的本技术的精神和范围的情况下,可以对元素的功能和布置进行各种改变。
36.如前所述,扩展现实(xr)技术可以向用户提供虚拟内容,和/或将真实或物理环境与虚拟环境(由虚拟内容组成)结合以便为用户提供扩展现实体验。扩展现实体验包括虚拟现实(vr)、增强现实(ar)、混合现实(mr)和/或其它沉浸式内容。
37.ar是这样一种技术:其在用户对物理、现实世界场景或环境的视角上提供虚拟或计算机生成的内容(被称为ar内容)。ar内容可以包括任何虚拟内容,例如,视频、图形内容、位置数据(例如,全球定位系统(gps)数据或其它位置数据)、声音、其任何组合和/或其它增强内容。ar系统被设计为加强(或增强)(而不是取代)一个人当前对现实的感知。例如,用户可以通过ar设备显示器看到真实的静止或移动对象,但是用户对真实对象的视觉感知可以通过该对象的虚拟图像(例如,现实世界的汽车被替换为delorean的虚拟图像)或通过添加到对象的ar内容(例如,添加到有生命的动物的虚拟翅膀)得到增强或加强。各种类型的ar系统可以用于游戏、娱乐和/或其它应用。
38.可以用于提供ar内容的两种类型的ar系统包括视频透视显示器和光学透视显示器,这两者都可以用于加强用户对现实世界对象的视觉感知。在视频透视系统中,显示现实
世界场景的实况视频,包括在实况视频上增强或加强的一个或多个对象。可以使用移动设备(例如,移动电话显示器上的视频)、头戴式显示器(hmd)、或者可以显示视频以及在视频之上显示计算机生成的对象的其它合适的设备来实现视频透视系统。
39.在具有ar特征的光学透视系统中,可以在没有视频的情况下将ar对象直接显示在现实世界视图中。例如,用户可以通过显示器(例如,眼镜或镜头)查看物理对象,并且可以将ar内容投影到显示器上,以允许用户获得对一个或多个现实世界对象的加强的视觉感知。在光学透视ar系统中使用的显示器的示例是ar眼镜、头戴式显示器(hmd)、另一种ar耳机或其它类似设备,这些类似设备可以包括在每只眼睛前方的镜头或眼镜,以允许用户直接看到现实世界的对象,同时还允许该对象的加强图像或额外的ar内容被投影到眼镜上,以增强用户对现实世界的视觉感知。
40.vr提供在三维计算机生成的环境或现实世界环境的视频(可以以看似真实或物理的方式与之交互)中的完全的沉浸式体验。随着体验vr环境的用户在现实世界中移动,在虚拟环境中渲染的图像也发生变化,从而为用户赋予用户正在vr环境内移动的感知。例如,用户可以向左或向右转、向上或向下看、和/或向前或向后移动,从而改变用户对vr环境的视点。呈现给用户的vr内容可以相应地变化,使得用户的体验与在现实世界中一样无缝。在一些情况下,vr内容可以包括vr视频,这些视频可以以非常高的质量被捕获和渲染,从而潜在地提供真正沉浸式虚拟现实体验。虚拟现实应用包括游戏、训练、教育、体育视频和在线购物等。可以使用vr设备(例如,vr hmd或其它vr耳机)对vr内容进行渲染和显示,这些vr设备在vr体验期间完全地覆盖用户的眼睛。
41.mr技术可以结合vr和ar的各方面来为用户提供沉浸式体验。例如,在mr环境中,现实世界和计算机生成的对象可以交互(例如,真人可以与虚拟人交互,就好像虚拟人是真人一样)。
42.文本和字符输入是用于许多通信设备(包括ar、vr和mr系统)的基础特征。例如,现在和未来的ar设备将需要经由某种输入设备支持文本输入。许多文本输入解决方案使用一种类型的物理输入设备,例如,键盘、笔或其它指针设备或其它输入设备。手势和语音也是输入机制的示例,但由于例如社会对使用此类输入机制的接受度而并没有被广泛地使用。
43.使用键盘来进行文本和字符输入对于大多数用户来说是公知的。然而,物理键盘不能以用户友好的方式与许多xr(例如,ar、vr和/或mr)系统一起使用。在一些情况下,xr系统通常是移动的,并且在用户从一个地方行进到另一个地方时使用。在一些情况下,用户在佩戴xr耳机时无法看到物理键盘。此外,在一些情况下,xr设备可能不具有可以允许物理键盘的连接的输入。例如,一套ar眼镜可能不具有可以接受键盘电缆或蓝牙
tm
适配器的通用串行总线(usb)端口。
44.虚拟键盘(例如,ar键盘)通过允许用户在不需要物理键盘的情况下容易地提供文本或字符输入,而在xr系统中可以是有益的。然而,存在与开发虚拟键盘相关联的技术挑战。虚拟键盘应当与现实世界键盘的可用性标准紧密匹配以便有效并且获得用户接受。例如,键盘不应遭遇过度抖动或漂移,使得用户可以精确地选择键盘上的按钮(以减少错误)。为了在允许用户查看使用虚拟内容增强的现实世界的基于ar和一些基于mr的系统中防止这种抖动,需要将虚拟键盘与现实世界中的一个或多个物理对象配准(例如,相对于其进行定位)。然而,在一些情况下,可能缺少可用于为配准目的提供参考的现实世界对象。对于其
它虚拟对象,也存在这样的问题,例如,虚拟乐器、虚拟按钮、虚拟滑块、虚拟方向盘、虚拟画笔、虚拟书写工具和/或其它虚拟对象。
45.本文中描述了用于生成虚拟对象(例如,虚拟键盘)以及相对于用户的一只或多只手来配准虚拟对象的系统、装置、方法和计算机可读介质。本文中使用虚拟键盘作为虚拟对象的示例来提供示例。然而,本文中描述的技术可以被实现用于相对于用户的一只或多只手来配准其它虚拟对象,包括虚拟乐器(例如,虚拟钢琴或键盘、虚拟鼓、虚拟小鼓等)、虚拟按钮、虚拟滑块、虚拟方向盘、虚拟画笔、虚拟书写工具(例如,虚拟铅笔、虚拟笔等)和/或其它虚拟对象。出于说明性目的,本文还提供了使用光学透视ar系统的示例。然而,普通技术人员将理解,本文描述的技术可以适用于视频透视ar系统或其它类型的xr系统,包括vr和mr系统。
46.图1是示出正由用户100佩戴的ar设备102的示例的图。虽然ar设备102在图1中被示为hmd,但是ar设备102可以包括任何合适类型的ar设备,例如,ar眼镜或其它ar设备。ar设备102被描述为光学透视ar设备,其允许用户100在佩戴ar设备102的同时通过ar设备102的显示器110查看现实世界。例如,用户100可以在距用户100一定距离的目标平面106上查看现实世界场景或环境中的对象104。ar设备102具有相机108和显示器110(例如,眼镜、屏幕、镜头或其它显示器),其允许用户看到现实世界场景或环境并且还允许ar内容显示在其上。尽管在图1中示出了一个相机108和一个显示器110,但是在一些实现中,ar设备102可以包括多个相机和/或多个显示器(例如,用于右眼的显示器和用于左眼的显示器)。ar内容(例如,图像、视频、图形、虚拟或ar对象或者其它ar内容)可以被投影或以其它方式显示在显示器110上。在一个示例中,ar内容可以包括对象104的增强版本。在另一示例中,ar内容可以包括与对象104相关或与现实世界场景或环境中的一个或多个其它对象相关的额外ar内容。
47.如图1所示,ar设备102可以包括处理器114和存储器112(或其它计算机可读介质),或者与处理器114和存储器112(或其它计算机可读介质)进行有线或无线通信。尽管在图1中示出了一个处理器114和一个存储器112,但是在一些实现中,ar设备102可以包括多个处理器和/或多个存储器设备。处理器114和存储器112可以存储和执行用于执行本文描述的技术的指令。在ar设备102与存储器112和处理器114通信(有线或无线地)的实现中,容纳存储器112和处理器114的设备可以是计算设备,例如,台式计算机、膝上型计算机、移动电话、平板设备、游戏控制台或其它合适的设备。ar设备102还包括输入设备116或与输入设备116进行通信(有线或无线地)。输入设备116可以包括任何合适的输入设备,例如,触摸屏、笔或其它指针设备、键盘、鼠标、按钮或按键、用于接收语音命令的麦克风、用于接收手势命令的手势输入设备、其任何组合、和/或其它输入设备。在一些情况下,相机108可以捕获可以被处理以用于解释手势命令的图像。
48.相机108可以捕获彩色图像(例如,具有红-绿-蓝(rgb)色彩分量的图像、具有亮度(y)和色度(c)色彩分量的图像(例如,ycbcr图像)、或其它彩色图像)和/或灰度图像。如上所述,在一些情况下,ar设备102可以包括多个相机,例如,双前置相机和/或一个或多个前置相机和一个或多个后置相机,它们还可以合并有各种传感器(例如,一个或多个传感器118)。在一些情况下,相机108(和/或ar设备102的其它相机)可以捕获静态图像和/或包括多个视频帧(或图像)的视频。在一些情况下,由相机108(和/或其它相机)的图像传感器接
收的图像数据可以是原始的未经压缩的格式,并且可以在被进一步处理和/或存储在存储器112中之前,(例如,由图像信号处理器(isp)或ar设备102的其它处理器)进行压缩和/或以其它方式处理。在一些情况下,图像压缩可以由处理器114使用无损或有损压缩技术(例如,任何合适的视频或图像压缩技术)来执行。
49.在一些情况下,相机108(和/或ar设备102的其它相机)可以被配置为也捕获深度信息。例如,在一些实现中,相机108(和/或其它相机)可以包括rgb深度(rgb-d)相机。在一些情况下,ar设备102可以包括与相机108(和/或其它相机)分离并且可以捕获深度信息的一个或多个深度传感器(未示出)。例如,这样的深度传感器可以独立于相机108获得深度信息。在一些示例中,深度传感器可以物理地安装在与相机108相同的一般位置,但是可以以与相机108不同的频率或帧速率操作。在一些示例中,深度传感器可以采用光源的形式,该光源可以将结构化或纹理化的光图案(其可以包括一个或多个窄光带)投射到场景中的一个或多个对象上。然后,可以通过利用由对象的表面形状引起的投影图案的几何失真来获得深度信息。在一个示例中,可以从立体传感器获得深度信息,例如,与相机(例如,rgb相机)配准的红外结构光投射器和红外相机的组合。
50.在一些实现中,ar设备102包括一个或多个传感器118。一个或多个传感器118可以包括一个或多个加速度计、一个或多个陀螺仪、一个或多个磁力计、其组合和/或其它传感器。一个或多个传感器118可以向处理器114提供速度、取向和/或其它位置相关信息。在一些情况下,一个或多个传感器118可以包括至少一个惯性测量单元(imu)。imu是一种电子设备,其使用一个或多个加速度计、一个或多个陀螺仪和/或一个或多个磁力计的组合来测量ar设备102的比力、角速率和/或取向。在一些示例中,一个或多个传感器118可以输出与由相机108(和/或ar设备102的其它相机)捕获的图像的捕获相关联的测量信息和/或使用ar设备102的一个或多个深度传感器获得的深度信息。
51.处理器114可以使用一个或多个传感器118(例如,一个或多个imu)的输出来确定ar设备102的姿势(也被称为头部姿势)和/或相机108(或ar设备102的其它相机)的姿势。在一些情况下,ar设备102的姿势和相机108(或其它相机)的姿势可以相同。相机108的姿势是指相机108相对于参考系(例如,相对于对象104)的位置和取向。在一些实现中,可以针对6自由度(6dof)确定相机姿态,6dof是指三个平移分量(例如,其可以由相对于参考系(例如,图像平面)的x(水平)、y(垂直)和z(深度)坐标给出)以及三个角度分量(例如,相对于同一参考系的滚动、俯仰和偏航)。
52.在一些实施例中,相机108和/或ar设备102的姿势可以由处理器114基于由相机108(和/或ar设备102的其它相机)捕获的图像、使用视觉跟踪解决方案来确定和/或跟踪。在一些示例中,处理器114可以使用基于计算机视觉的跟踪、基于模型的跟踪和/或同时定位和建图(slam)技术来执行跟踪。例如,处理器114可以执行slam或者可以与slam引擎(未示出)进行通信(有线或无线地)。slam是指这样一类技术:创建环境地图(例如,由ar设备102建模的环境地图),同时跟踪相机(例如,相机108)和/或ar设备102相对于该地图的姿势。该地图可以被称为slam地图,并且可以是三维(3d)的。slam技术可以使用由相机108(和/或ar设备102的其它相机)捕获的彩色或灰度图像数据来执行,并且可以用于生成相机108和/或ar设备102的6dof姿势测量的估计。这种被配置为执行6dof跟踪的slam技术可以被称为6dof slam。在一些情况下,一个或多个传感器118的输出可以用于估计、校正和/或
以其它方式调整估计的姿势。
53.在一些情况下,6dof slam(例如,6dof跟踪)可以将从来自相机108(和/或其它相机)的某些输入图像观察到的特征与slam地图进行关联。6dof slam可以使用来自输入图像的特征点关联来确定针对输入图像而言的相机108和/或ar设备102的姿势(位置和取向)。也可以执行6dof映射来更新slam地图。在一些情况下,使用6dof slam维护的slam地图可以包含从两个或更多个图像进行三角剖分的3d特征点。例如,可以从输入图像或视频流中选择关键帧来表示观察到的场景。对于每个关键帧,可以确定与图像相关联的相应6dof相机姿势。可以通过将来自3d slam地图的特征投影到图像或视频帧中并且根据经验证的2d-3d对应关系更新相机姿势,来确定相机108和/或ar设备102的姿势。
54.在一个说明性示例中,处理器114可以从每个输入图像或从每个关键帧中提取特征点。如本文所使用的,特征点(也被称为配准点)是图像的独特或可识别部分,例如,手的一部分、桌子的边缘等。从捕获的图像中提取的特征可以表示沿着三维空间的不同特征点(例如,x、y和z轴上的坐标),并且每个特征点都可以具有相关联的特征位置。关键帧中的特征点与先前捕获的输入图像或关键帧的特征点要么相匹配(相同或对应),要么未能匹配。特征检测可以用于检测特征点。特征检测可以包括用于检查图像的一个或多个像素以确定在特定像素处是否存在特征的图像处理操作。特征检测可以用于处理整个捕获的图像或图像的某些部分。对于每个图像或关键帧,一旦已经检测到特征,就可以提取在该特征周围的局部图像块。可以使用任何合适的技术来提取特征,例如,尺度不变特征变换(sift)(其定位特征并且生成它们的描述)、加速稳健特征(surf)、梯度定位-取向直方图(gloh)、归一化互相关(ncc)、或者其它合适的技术。
55.在一些示例中,ar(或虚拟)对象可以与在场景中检测到的特征点配准(例如,相对于其进行定位)。例如,用户100可能正在查看用户100所站立的街道对面的餐厅。响应于识别餐厅和与餐厅相关联的ar内容,处理器114可以生成提供与餐厅相关的信息的ar对象。处理器114还可以从包括餐厅招牌的图像的一部分中检测特征点,并且可以将ar对象与招牌的特征点配准,使得ar对象相对于招牌来显示(例如,在招牌上方,使得其可被用户100容易地识别为与该餐厅有关)。
56.ar设备102可以生成和显示各种ar对象以供用户100查看。例如,ar设备102可以生成并且显示虚拟键盘作为ar对象,以供用户100根据需要输入文本和/或其它字符。如上所述,虚拟键盘应当尽可能稳定,以便用户可以准确地提供输入。虚拟键盘需要与现实世界中的一个或多个物理对象配准。然而,在许多情况下,可能缺乏可以用作用于配准目的的参考的具有独特特征的现实世界对象。例如,如果用户正盯着空白白板,则该白板可能不具有可以将虚拟键盘与其配准的任何独特特征。室外环境提供了甚至更少的可以用于配准虚拟键盘的独特点,例如基于现实世界中缺少点,现实世界中的独特对象相距更远(与当用户在室内时相比),在现实世界中存在许多移动点,点在一定距离处,等等。
57.为了至少避免现实世界场景或环境中缺少特征点的问题,ar设备102可以利用用户100的手来配准虚拟键盘。例如,用户100的一只或两只手以及手指可以用作用于虚拟键盘的现实世界配准点(例如,将虚拟键盘锚定在空间中)。通过将键盘与手和手指配准,减少了室外操作的挑战。
58.图2是示出在显示器210上显示虚拟键盘228的ar设备202的示例(例如,位于用户
眼睛上方的一片镜片或镜头)的图。虚拟键盘228被显示为增强用户对现实世界场景或环境的视图的ar对象。如图所示,用户可以通过ar设备202的显示器210来查看实际的现实世界环境,包括他们在现实世界环境中的实际(或物理)手226。ar设备202可以类似于上文关于图1描述的ar设备102并且可以执行与其相同的功能。如上所述,下文描述的方面也可以适用于其它类型的xr设备,例如,vr设备和/或mr设备。
59.在一些示例中,可以响应于在ar设备202的相机(例如,在图1中所示的相机108或其它相机)的视野中检测到用户的手226而生成和显示虚拟键盘228。例如,ar设备202的处理器(例如,在图1中所示的处理器114或其它组件)可以在由ar设备202的相机捕获的图像中检测用户的实际(或物理)手226。在一些情况下,可以在图像中检测到一只手或一只手的一部分,这可以使得显示虚拟键盘228。可以使用任何合适的对象检测技术来在一个或多个图像中检测手226。在一个说明性示例中,处理器可以使用基于计算机视觉的对象检测来在图像中检测手226(或一只手)。对象检测通常是一种用于从图像或视频帧中检测(或定位)对象的技术。当执行定位时,可以使用标识图像或视频帧中的对象(例如,面部)的位置和/或近似边界的边界区域来表示检测到的对象。检测到的对象的边界区域可以包括边界方框、边界圆、边界椭圆或表示检测到的对象的任何其它适当形状的区域。
60.处理器可以使用不同类型的基于计算机视觉的对象检测算法。在一个说明性示例中,可以使用基于模板匹配的技术来检测图像中的一只或多只手。可以使用各种类型的模板匹配算法。模板匹配算法的一个示例可以执行haar或类似haar的特征提取、积分图像生成、adaboost训练以及级联分类器。这种对象检测技术通过跨越图像应用滑动窗口(例如,具有矩形、圆形、三角形或其它形状)来执行检测。可以将积分图像计算为评估来自图像的特定区域特征(例如,矩形或圆形特征)的图像表示。对于每个当前窗口,当前窗口的haar特征可以从上文提到的积分图像中计算出来,积分图像可以是在计算haar特征之前计算的。
61.可以通过计算对象图像的特定特征区域内的图像像素(例如,积分图像的那些像素)的总和来计算harr特征。例如,在面部中,具有眼睛的区域通常比具有鼻梁或脸颊的区域更暗。haar特征可以通过选择最佳特征和/或训练使用它们的分类器的学习算法(例如,adaboost学习算法)来选择,并且可以用于利用级联分类器有效地将窗口分类为手(或其它对象)窗口或非手窗口。级联分类器包括以级联方式组合的多个分类器,其允许快速地丢弃图像的背景区域,同时对类似对象的区域执行更多计算。例如,级联分类器可以将当前窗口分类为手类别或非手类别。如果一个分类器将窗口分类为非手类别,则该窗口被丢弃。否则,如果一个分类器将窗口分类为手类别,则级联布置中的下一个分类器将用于再次测试。直到所有分类器确定当前窗口是手(或其它对象),该窗口将被标记为作为手(或其它对象)的候选。在检测到所有窗口之后,可以使用非最大抑制算法来对在每只手周围的面部窗口进行分组,以生成一个或多个检测到的手的最终结果。
62.在另一说明性示例中,机器学习技术可以用于检测图像中的手226(或一只手)。例如,可以使用经标记的训练数据来训练神经网络(例如,卷积神经网络),以检测图像中的一只或多只手。响应于检测到手226(或一只手),ar设备202的处理器可以生成虚拟键盘228以供显示。在一些示例中,如果在由ar设备202的相机捕获的图像中或在由其捕获的特定数量的图像(例如,1800个图像,对应于在每秒30帧的捕获速率下的一分钟,或其它数量的图像)中不再检测到手226,则ar设备202的处理器可以将虚拟键盘228从显示器中移除。在一些示
例中,如果在特定持续时间内(例如,在一分钟、三分钟、五分钟、或者其它时间量内)不再在一个或多个图像中检测到手226,则ar设备202的处理器可以将虚拟键盘228从显示器中移除。在一些示例中,当虚拟键盘228从显示器中被移除时,ar设备220的过程可以将虚拟键盘228去激活。
63.在一些示例中,ar设备220的处理器可以在虚拟键盘从显示器中被移除之后将虚拟键盘228保持为活动的以用于提供输入(例如,基于从用户接收输入)。例如,如果用户将视线从他们的手226上移开(并且远离相对于手226而配准的虚拟键盘228),则虚拟键盘228可以保持活动并且用户可以使用虚拟键盘228继续键入或以其它方式提供输入。在一些示例中,ar设备220的过程可以将虚拟键盘228去激活,使得虚拟键盘228不能用于向ar设备220和/或与ar设备220进行通信的其它设备提供输入。例如,用户可以选择选项(例如,通过提供用户输入,诸如手势输入、语音输入和/或其它输入)来将虚拟键盘228去激活。
64.在一些示例中,即使在一个或多个图像中不再检测到手226,ar设备220的处理器也可以继续显示虚拟键盘228。例如,在一些情况下,当在一个或多个图像中未检测到手226时,处理器可以在显示器上的特定或预定义位置上显示虚拟键盘228,例如,在显示器的底部中心,显示器的左下角、显示器的右下角、显示器的左上角、显示器的右上角、或者显示器的其它部分。在一些情况下,特定或预定义位置可以由用户配置或设置(例如,作为用户偏好)。
65.在一些示例中,可以使用位于一只或多只手226上或附近的一个或多个传感器来确定手226的姿势。在一个示例中,至少一个传感器可以是用户右手上的手套的一部分,并且至少一个其它传感器可以是用户左手上的手套的一部分。在另一示例中,至少一个传感器可以是用户的右手手腕上的腕带、手表或其它物品的一部分,并且至少一个其它传感器可以是用户的右手手腕上的腕带、手表或其它物品的一部分。一个或多个传感器可以检测手的姿势并且可以将用于姿势(例如,x、y和z坐标和/或滚动、俯仰和偏航)的信息传送到ar设备202。然后,可以相对于用户的手(如本文描述的)来显示ar设备202,如手姿势信息所指定的。
66.如图2所示,虚拟键盘228被显示为在显示器210上相对于用户的物理手226的位置处的投影。虚拟键盘228相对于手226而显示的位置可以通过将虚拟键盘228与在手226上检测到的一个或多个界标点配准来确定,如下文更详细描述的。用户可以在显示虚拟键盘228的同时通过显示器210继续查看现实世界场景(或环境)。用户可以查看和控制虚拟键盘228,同时能够查看现实世界场景。在一些示例(未示出)中,ar设备202被配置为:将虚拟键盘显示为在现实世界场景的图像之上或在由ar设备202显示的虚拟环境的图像之上的覆盖。
67.在一些示例中,可以在ar设备202的显示器210上显示一个或多个ar对象,并且用户可以输入可以用于操纵一个或多个ar对象的文本和/或其它字符。例如,如图2所示,ar对象224可以显示在显示器210上。虚拟键盘228可以响应于用户在虚拟键盘228上键入文本和/或其它字符而接收来自用户的输入。可以在ar对象224中处理和显示输入。在一个说明性示例中,ar对象224包括文本应用,并且用户可以使用虚拟键盘228输入消息,该消息可以在ar对象224的字段中显示为消息。
68.在显示虚拟键盘228之前(或在一些情况下在显示虚拟键盘228时),ar设备202的
处理器可以将虚拟键盘228与在手226上检测到的一个或多个界标点(也被称为配准点)配准。在一些示例中,可以使用手骨骼跟踪方法来检测手上的界标点。例如,可以使用用户的手226的深度相机视图(例如,来自深度相机(诸如深度传感器或rgb-d相机)的图像)、手226的rgb单目相机视图(例如,来自rgb单目相机的图像)、和/或手226的单色相机视图(例如,来自单色相机的图像)来执行检测。在一个说明性示例中,手(或两只手226)的3维(3d)可变形模型用于生成与如图像传感器(例如,深度相机、rgb相机和/或单色相机)看到的手的视图最紧密匹配的手的视图。例如,3d可变形模型可以被修改并且用于生成与在使用图像传感器捕获的图像中的手(或两只手226)的视图相匹配的视图。一旦建立了手的3d模型的紧密匹配视图,与这个匹配视图相对应的模型的参数可以用于获得该模型的界标点的位置,这些界标点可以用于近似手的界标点。
69.在其它示例中,各种手姿势的模板以及其相应的界标点可以先验地存储在数据库中。在检测的时候,将由图像传感器(例如,rgb相机、深度相机、单色相机或其它图像传感器)捕获的图像与这些模板中的一个模板进行匹配,并且使用相应的匹配模板来定位界标点。模板和匹配可以存储在手工制作或使用机器学习技术学习的特征空间中。
70.作为手226上的一个或多个界标点的检测的结果,建立界标(以及因此手和手指)在相对于图像传感器的相对物理位置上的姿势。如下文更详细描述的,手226上的一个或多个界标点可以用作用于将虚拟键盘228定位在ar设备202的显示器210上的现实世界配准点。虽然下文提供的示例描述了将手226上的一个或多个界标点用于虚拟键盘228的配准,但是在一些情况下可以使用用户的仅一只手的界标点来执行配准。在一些示例中,可以相对于用户的不同手来配准虚拟键盘的不同部分(例如,可以相对于第一只手配准第一部分,并且可以相对于第二只手配准第二部分,如下文关于图4所描述的)。
71.在一些情况下,一个或多个界标点可以包括用户的每只手上的至少一个点(例如,每只手的手掌上的点)以及手的每个手指上的至少一个点(例如,每个手指上的三个点)。如本文所使用的,术语“手指”可以指代手的所有五个手指,包括食指、中指、无名指、小指(或小拇指)和大拇指。手的不同部分上的界标点可以提供多个自由度,这可以提供用于对虚拟键盘228进行定位的多个选项。
72.图3是示出手326的界标点的示例的图,界标点可以用作用于在一个或多个图像中配准图2的虚拟键盘228的位置和/或跟踪虚拟键盘228的位置的现实世界点。在图3中所示的界标点对应于手326的不同部分,包括手的手掌上的界标点335、手326的拇指330上的三个界标点、手326的食指332上的三个界标点、手326的中指334上的三个界标点、手326的无名指336上的三个界标点以及手326的小拇指338上的三个界标点。手326的手掌可以在三个平移方向(例如,在相对于诸如图像平面之类的平面的x、y和z方向上测量的)上以及在三个旋转方向(例如,在相对于平面的偏航、俯仰和滚动上测量的)上移动,并且因此提供了可以用于配准和/或跟踪的六个自由度(6dof)。手掌的6dof移动在图3中示为正方形,如在图例339中所指示的。
73.手326的手指的不同关节允许不同程度的移动,如在图例339中所示的。如图3中的菱形形状(例如,菱形333)所示,每个手指的底部(对应于在近端指骨和掌骨之间的掌指关节(mcp))具有两个自由度(2dof),其对应于屈曲和伸展以及外展和内收。如图3中的圆形形状(例如,圆331)所示,每个手指的上部关节中的每个上部关节(对应于在远端、中部和近端
指骨之间的指间关节)具有一个自由度(2dof),其对应于屈曲和伸展。结果,手326提供将根据其来配准和跟踪虚拟键盘228的26个自由度(26dof)。
74.返回参考图2,ar设备202的处理器可以使用手226上的界标点中的一个或多个界标点来配准虚拟键盘。如上所述,作为手226上一个或多个界标点的检测的结果,建立界标(以及因此手和手指)在相对于图像传感器的相对物理位置上的姿势。例如,可以在图像中检测手226的手掌上的界标点(例如,图3中的界标点335),并且可以相对于ar设备202的相机确定界标点的位置。虚拟键盘228的一个或多个点(例如,中心点,诸如质心或其它中心点)然后可以相对于针对手226的手掌上的界标点而确定的位置来被定位在ar设备202的显示器210上。在一些示例中,虚拟键盘228的一个或多个点(例如,中心点)可以相对于手226上的多个界标点的位置来配准。在一些示例中,虚拟键盘228上的多个点可以相对于手226上的一个或多个界标点的位置来配准。例如,虚拟键盘228的中心点和与虚拟键盘228的四个角相对应的点可以相对于手226上的一个或多个界标点的位置来配准。
75.在一些示例中,ar设备202的处理器可以将虚拟键盘与现实世界环境中的点(如在一个或多个图像中检测到的)和/或用户的其他部分配准。例如,在一些实现中,一个或多个图像传感器(例如,相机)可以刚性地安装在ar设备(例如,hmd、ar眼镜、vr眼镜或其它设备)上。在这样的实现中,除了一只或多只手相对于ar设备上的图像传感器的物理姿势之外,还可以确定其它固定环境界标(例如墙壁上的独特点(被称为关键点)、对象的一个或多个角、地板上的特征等)的位置。可以放置虚拟键盘,使得其不总是随着手移动,而是限制在相对于静止环境关键点的某个位置内。
76.在一些示例中,可以确定用户的头部的姿势(或“头部姿势”)。头部的姿势可以对应于头部的位置(例如,相对于水平或x-维度、垂直或y-维度以及深度或z-维度)和/或取向(例如,相对于滚动、俯仰和偏航)。可以使用任何合适的技术来确定头部姿势,例如使用上文关于图1描述的技术(例如,使用一个或多个传感器118,诸如一个或多个加速度计、一个或多个陀螺仪、一个或多个磁力计、一个或多个惯性测量单元(imu)、其组合和/或其它传感器)。头部姿势(例如,除了手226之外)可以用于确定虚拟键盘228的位置。例如,头部姿势可以用作将根据其来配准虚拟键盘228的另一参考点。
77.在一些示例中,用户的头部姿势可以用于确定是否在显示器210上显示虚拟键盘228。例如,除了检测手226之外,处理器还可以如上所述地确定用户的头部姿势(例如,使用一个或多个传感器118,诸如一个或多个加速度计、一个或多个陀螺仪、一个或多个磁力计、一个或多个惯性测量单元(imu)、其组合和/或其它传感器)。处理器可以基于头部姿势和手位置的组合来确定是否显示虚拟键盘228。在一个说明性示例中,如果手226被检测为伸开一定量(例如,十二英寸或更多)并且头部的姿势使得其向后倾斜,则可以确定用户没有在尝试键入消息(例如,用户可能正在向后倾斜她的头部并且沮丧地将她的手分开),并且处理器可以确定不显示虚拟键盘228。
78.在一些示例中,虚拟键盘228可以保持在使用手226的界标点的位置(并且在一些情况下使用现实世界场景或环境中的点)而确定的位置处。当虚拟键盘228保持固定在所确定的位置处时,用户然后可以在虚拟键盘228上虚拟地进行键入。虚拟键盘228可以在用户键入时保持固定。在一些情况下,虚拟键盘228可以保持在所确定的位置处,直至ar设备202的处理器检测到重新配准事件为止。如果检测到重新配准事件,则处理器可以相对于手226
重新配准虚拟键盘228,使得虚拟键盘228被显示在显示器210上的新位置处。在一个说明性示例中,重新配准事件可以包括一只或多只手226的位置变化达门限变化量。例如,如果用户移动手226超过门限变化量,则ar设备202的处理器可以使用手226的一个或多个界标点来重新配准虚拟键盘228。门限变化量可以包括任何合适的距离,例如,六英寸、十二英寸、十八英寸或其它合适的量。
79.在另一说明性示例中,重新配准事件可以包括一只或多只手226移动达门限移动量。例如,可以测量手的速度和/或加速度(例如,使用加速度计、陀螺仪和/或其它传感器),并且手的速度和/或加速度可以用于确定速度和/或加速度是否超过门限移动量。如果ar设备202的处理器检测到一只或多只手226以超过门限移动量的速度和/或加速度的移动,则处理器可以使用手226的一个或多个界标点来重新配准虚拟键盘228。门限移动量可以包括指示手226可能已经移动到新位置的任何合适的速度和/或加速度(例如每秒两英尺)。
80.在另一说明性示例中,重新配准事件可以包括在确定虚拟键盘228在显示器210上的位置之后的预定时间量。例如,如果ar设备202的处理器检测到自从虚拟键盘228的先前位置被确定(例如,自从虚拟键盘228最后与用户的手226配准以来)以来预定量的到期,则处理器可以使用手226的一个或多个界标点来重新配准虚拟键盘228。预定时间量可以包括任何合适的时间量,例如,每十五秒、三十秒、一分钟、两分钟、五分钟或其它时间量。
81.在一些示例中,可以使用手226的界标点的位置(并且在一些情况下使用现实世界场景或环境中的点)来确定虚拟键盘228的初始位置。在一些情况下,在确定虚拟键盘228的初始位置之后,虚拟键盘228可以随着用户的手226移动而移动。在一些示例中,虚拟键盘228可以在手226移动时保持相对于指尖位置的相同位置或定位。如果指尖在选择附近按键的门限距离(例如,0.5英寸、1英寸、2英寸和/或其它距离)内,则虚拟键盘228可以不移动。例如,当指尖在选择附近按键的门限距离内时,虚拟键盘228可以保持静止。
82.在一些示例中,可以使用手226的姿势将虚拟键盘228虚拟地定位为使得其总是处于相对于手226的预定角度。在这样的示例中,随着手226和/或手226的手指在空间中移动,虚拟键盘将与手226一起移动,但是将保持定位在相对于手226的预定角度处。
83.在一些情况下,虚拟键盘228的虚拟定位可以针对作为单个对象的整个虚拟键盘来确定。在一些示例中,虚拟键盘228可以作为不同的部分(例如,作为不同的虚拟对象)来生成,并且不同的部分可以相对于分开的手226或者甚至不同的手指分开定位,如下文关于图4更详细描述的。在这样的示例中,随着手和/或手指在空间中移动,虚拟键盘的不同部分将与不同的手226一起移动。
84.在一个说明性示例中,虚拟键盘228可以被分成至少第一部分和第二部分。图4是示出已经被分成两个部分(包括第一部分440和第二部分442)的虚拟键盘428的示例的图。使用与上文描述的配准技术类似的配准技术,虚拟键盘428的第一部分440可以相对于用户的第一只手444进行配准,并且虚拟键盘428的第二部分442可以相对于用户的第二只手446进行配准。第一部分440可以跟踪第一只手444,从而当用户移动第一只手444时,第一部分440在ar设备的显示器上相对于第一只手444移动。随着用户移动第二只手446,虚拟键盘428的第二部分442也可以在显示器上相对于第二只手446移动。
85.通过将虚拟键盘228分成多个部分(例如,在图4中所示的部分),可以使得检测哪些键盘按钮正被按下的准确性最大化。例如,可以将虚拟键盘228的每个部分的某些按钮与
某些手指配准(例如,与对应于某些手指的指尖的界标点配准),以便将按钮定位在那些手指旁边(例如,在其下方或相对于其定位)。在一个说明性示例中,j、u、y、h、n、m和7按钮(以及在一些情况下的其它按钮)可以相对于用户右手的食指的指尖或相对于右手的其它部分进行配准。例如,虚拟键盘228的包括那些按钮的部分可以相对于用户右手的食指的指尖来定位(和/或在一些情况下移动),以便那些按钮始终靠近食指的指尖。在另一示例中,虚拟键盘228的包括那些按钮的部分可以相对于用户的右手或手臂的另一部分(例如,手腕(例如,手腕上的中心点)、手掌(例如,手掌上的中心点)、或者手或手臂上的其它部分或点)来定位。在一些示例中,虚拟键盘228的第一部分和第二部分中的每个部分的初始位置可以基于指尖、手腕、手掌或用户的手226或手臂的其它部分的位置来确定。在这样的示例中,在确定虚拟键盘228的初始位置之后,虚拟键盘228可以随着用户的手226移动而移动。在一些情况下,随着手226移动,虚拟键盘228可以相对于指尖位置保持相同的位置,但是如果指尖在选择附近按键的门限距离(例如,0.5英寸、1英寸、2英寸和/或其它距离)内,则可以不移动。例如,当指尖在选择附近按键的门限距离内时,虚拟键盘228可以保持静止。
86.在一些示例中,可以执行其它技术以使用户在使用虚拟键盘时的击键错误最小化。例如,人为错误仍然可能发生,但是由于虚拟键盘放置或形状而导致的意外按钮按下可以被最小化。在一些情况下,当用户使用手指按下按钮时,可以执行每个手指的分割以允许精确的目标获取。可以执行任何合适的图像分割来将图像分割或划分为对应于不同手指的不同片段(例如,像素集合,其可以被称为超像素)。基于计算机视觉的图像分割技术的示例包括门限化方法、基于边缘检测的技术、基于区域的技术、基于聚类的技术、基于分水岭的技术、基于偏微分方程的技术以及基于机器学习(例如,神经网络)的技术。
87.在一些示例中,ar设备202的处理器可以确定手指的特定部分(例如,指尖、指甲、侧面和/或其它部分),并且仅当手指的某个部分与虚拟键盘228的某个部分(例如,按钮)接触时,才可以接受输入。例如,使用机器学习技术(例如,神经网络,诸如卷积神经网络或其它机器学习系统),ar设备202的处理器可以确定手指的哪些部分(例如,所有十个手指)是可接受的以激活虚拟键盘228的按钮。例如,手指的指尖可以是用于激活虚拟键盘228上的按钮的可接受的触摸目标激活器,而手指的侧面可以被确定为不是可允许的触摸目标激活器。手指的侧面可以被定义为手指的距离指尖中心特定距离(例如,两厘米、三厘米或其它距离)的部分。ar设备202的处理器然后可以确定手指的哪个部分与虚拟键盘228的按钮接触,并且可以基于手指的该部分是否是可接受的触摸目标激活器来激活按钮。使用机器学习模型可以允许多种类型(例如,形状、大小等)的手指准确地与虚拟键盘228一起工作。
88.在一些示例中,ar设备202的处理器可以检测用户的每个手指的大小(例如,长度和/或宽度)。ar设备202的处理器可以使用大小信息来更好地检测虚拟键盘228的哪些按钮旨在被用户选择。在一些示例中,ar设备202的处理器可以使用大小信息来确定虚拟键盘228的大小和/或虚拟键盘228的按钮的大小。例如,与具有比第一用户的手指要小的手指的第二用户相比,可以针对具有大手指的第一用户生成具有较大按钮的较大虚拟键盘。
89.在一些示例中,大小信息也可以用于确定用户何时正佩戴着手套或其它改变大小的物品。例如,手套可能导致手指看起来是大的,并且在确定哪些按钮旨在被用户选择时可能导致精细操纵和目标选择的错误。在一个说明性示例中,响应于检测到用户的手指比先前确定的大小要大(或要小),ar设备202的处理器可以生成具有较大(或较小)按钮大小的
较大(或较小)的虚拟键盘228。在一个说明性示例中,响应于检测到用户的手指比先前确定的大小要大(或要小),ar设备202的处理器可以虚拟地改变(例如,基于用户佩戴着手套)经改变的手的大小以匹配先前确定的大小(例如,未戴手套的手)。
90.在一些示例中,ar设备202的处理器可以跟踪用户的键入习惯(例如,他们在何处敲击特定按键、在何处发生错误等等)。使用所跟踪的键入习惯,ar设备202可以定制虚拟键盘228的布局以适应用户的键入习惯。例如,可以稍微移动某些按钮以减少键入错误,可以调整某些按钮的大小,和/或可以执行其它修改。在一些示例中,可以使用机器学习来跟踪用户的键入习惯。
91.图5是示出用于生成虚拟内容的过程500的示例的流程图。在框502处,过程500包括:由扩展现实设备获得现实世界环境的场景的图像。扩展现实设备可以包括显示器,显示器允许当虚拟内容被显示器显示时现实世界环境是可通过显示器查看的。扩展现实设备可以包括增强现实(ar)设备(例如,诸如hmd之类的ar耳机、ar眼镜或其它ar设备)、虚拟现实(vr)耳机(例如,hmd或其它类型的vr耳机)或者混合现实(mr)设备。在一些示例中,过程500可以由扩展现实设备或扩展现实设备的组件来执行。
92.在框504处,过程500包括:由扩展现实设备在图像中检测用户的物理手的至少一部分。在一些示例中,物理手的至少该部分是可通过扩展现实设备的显示器查看的(例如,作为现实世界环境的一部分)。在一些情况下,物理手的至少该部分包括手上的至少一个点和手的手指上的至少一个点。例如,检测到的手的至少该部分可以包括在图3中所示的手的点中的任何点。在一些示例中,手的至少该部分包括手上的至少一个点和手的每个手指上的至少一个点。例如,参考图3,检测到的手的至少该部分可以包括手326的手掌中的界标点335以及手326的每个手指上的界标点中的至少一个界标点。
93.在框506处,过程500包括:基于检测到物理手的至少该部分来生成虚拟键盘。在框508处,过程500包括:确定虚拟键盘在扩展现实设备的显示器上相对于物理手的位置。在一些示例中,过程500可以包括:检测物理手上的一个或多个界标点。过程500可以包括:确定一个或多个界标点相对于用于捕获图像的相机的一个或多个位置。过程500还可以包括:确定虚拟键盘在显示器上相对于物理手的位置。可以基于一个或多个界标点相对于相机的一个或多个位置来确定虚拟键盘的位置。例如,可以相对于一个或多个界标点的一个或多个位置来配准虚拟键盘。
94.在一些示例中,可以使用用户的头部的姿势来配准虚拟键盘。例如,过程500可以包括:确定用户的头部的姿势,以及基于头部的姿势来确定虚拟键盘在显示器上相对于头部的位置。
95.在框510处,过程500包括:由扩展现实设备将虚拟键盘显示在显示器上的该位置处。例如,在一些情况下,过程500可以将虚拟键盘显示在显示器上的该位置处且在可通过显示器查看的现实世界环境之上。在一些实现中,虚拟键盘被显示为场景的额外图像中的该位置处的覆盖。在一些实现中,虚拟键盘被显示为显示器上的该位置处的投影。
96.在一些示例中,当物理手移动位置时,虚拟键盘被固定在显示器上的该位置处。在一些情况下,过程500可以包括:接收与虚拟键盘的操作相关联的输入;以及在基于所接收的输入而操作虚拟键盘时将虚拟键盘保持在该位置处。例如,在这样的情况下,当用户键入或以其它方式操作虚拟键盘时,虚拟键盘保持固定在显示器上的该位置(其被配准的位置)
上。
97.在一些情况下,过程500可以包括:确定与物理手的至少该部分在所述图像中的位置相比,物理手的至少该部分在场景的额外图像中处于不同的位置。基于确定物理手的至少该部分在场景的额外图像中处于不同的位置,过程500可以包括:将虚拟键盘显示在显示器上的额外位置处,其中,该额外位置不同于所述位置。
98.在一些情况下,过程500可以包括:在确定虚拟键盘在显示器上的位置之后检测预定时间量的到期。基于检测到预定时间量的到期,过程500可以包括:将虚拟键盘显示在显示器上的额外位置处,其中,该额外位置不同于所述位置。
99.在一些示例中,虚拟键盘可以包括第一部分和第二部分。例如,过程500可以包括:生成虚拟键盘,使得其具有第一部分和第二部分。在一些实例中,第一部分可以被显示在显示器上相对于物理手的位置处,并且第二部分可以被显示在显示器上相对于用户的另一只物理手的额外位置处。在一些情况下,虚拟键盘的第一部分在显示器上相对于物理手移动(例如,当手移动时),并且虚拟键盘的第二部分在显示器上相对于另一只物理手移动(例如,当另一只手移动时)。
100.在一些示例中,过程500可以包括:确定在场景的额外图像中不存在物理手;以及基于确定在场景的额外图像中不存在物理手,从显示器中移除虚拟键盘。在一些示例中,当虚拟键盘从显示器中被移除时,虚拟键盘是活动的以用于提供输入。
101.在一些情况下,过程500包括:将虚拟键盘去激活以不被用于提供输入。在一些情况下,过程500响应于确定在场景的一个或多个图像中不存在物理手来将虚拟键盘去激活。在一些示例中,过程500响应于接收到指示虚拟键盘的去激活的用户输入来将虚拟键盘去激活。
102.在一些示例中,当在场景的一个或多个图像中不存在物理手时,显示虚拟键盘。例如,当在一个或多个图像中未检测到手时,过程500可以在显示器上的预定义位置上显示虚拟键盘。在一些情况下,特定或预定义位置可以由用户配置或设置。
103.上文关于过程500以及关于图1-图4描述的示例可以单独地或以任何组合来实现。
104.在一些示例中,过程500可以由计算设备或装置执行,例如具有在图6中所示的计算设备架构600的计算设备。在一个说明性示例中,计算设备(例如,执行过程500)可以包括扩展现实显示设备,例如,ar眼镜、ar头戴式显示器(hmd)、vr hmd、mr hmd或者其它类型的xr设备。
105.在一些情况下,计算设备或装置可以包括输入设备、输出设备、一个或多个处理器、一个或多个微处理器、一个或多个微型计算机和/或被配置为执行过程500的步骤的其它组件。可以在电路中实现计算设备的组件(例如,一个或多个处理器、一个或多个微处理器、一个或多个微型计算机和/或其它组件)。例如,组件可以包括电子电路或其它电子硬件和/或可以使用其来实现,所述电子电路或其它电子硬件可以包括一个或多个可编程电子电路(例如,微处理器、图形处理单元(gpu)、数字信号处理器(dsp)、中央处理单元(cpu)和/或其它合适的电子电路),和/或可以包括计算机软件、固件或其任何组合和/或使用其来实现,以执行本文描述的各种操作。计算设备还可以包括显示器(作为输出设备的示例或者除了输出设备之外)、被配置为传送和/或接收数据的网络接口、其任何组合、和/或其它组件。网络接口可以被配置为传送和/或接收基于互联网协议(ip)的数据或其它类型的数据。
106.过程500被示为逻辑流程图,其操作表示可以用硬件、计算机指令或其组合来实现的一系列操作。在计算机指令的背景下,操作表示被存储在一个或多个计算机可读存储介质上的计算机可执行指令,所述计算机可执行指令在由一个或多个处理器执行时执行所记载的操作。通常,计算机可执行指令包括执行特定功能或实现特定数据类型的例程、程序、对象、组件、数据结构等。对操作进行描述的顺序并不旨在解释为限制,并且可以以任何顺序和/或并行地对任何数量的所描述的操作进行组合以实现过程。
107.另外,过程500可以在被配置有可执行指令的一个或多个计算机系统的控制下执行,并且可以被实现为在一个或多个处理器上、通过硬件或其组合共同执行的代码(例如,可执行指令、一个或多个计算机程序或者一个或多个应用)。如上所述,代码可以例如以包括可由一个或多个处理器执行的多个指令的计算机程序的形式存储在计算机可读或机器可读存储介质上。计算机可读或机器可读存储介质可以是非暂时性的。
108.图6是示出用于实现本文技术的某些方面的系统的示例的图。具体而言,图6示出了计算系统600的示例,其可以是例如构成内部计算系统的任何计算设备、远程计算系统、相机或其任何组件,其中,系统的组件使用连接605相互通信。连接605可以是使用总线的物理连接,或者是到处理器610的直接连接(例如,在芯片组架构中)。连接605也可以是虚拟连接、网络连接或者逻辑连接。
109.在一些实施例中,计算系统600是分布式系统,其中,在本公开内容中描述的功能可以分布在数据中心、多个数据中心、对等网络等之内。在一些实施例中,所描述的系统组件中的一个或多个组件表示各自执行针对其来描述该组件的功能的一些或全部功能的许多这样的组件。在一些实施例中,组件可以是物理或虚拟设备。
110.示例系统600包括至少一个处理单元(cpu或处理器)610以及将包括系统存储器615(例如,只读存储器(rom)620和随机存取存储器(ram)625)的各种系统组件耦合至处理器610的连接605。计算系统600可以包括与处理器610直接连接、紧邻或集成为处理器610的一部分的高速存储器的高速缓存612。
111.处理器610可以包括任何通用处理器和硬件服务或软件服务,例如,被存储在存储设备630中的服务632、634和636,它们被配置为控制处理器610以及其中软件指令被并入实际处理器设计的专用处理器。处理器610本质上可以是完全自包含的计算系统,包含多个核或处理器、总线、存储器控制器、高速缓存等。多核处理器可以是对称的或非对称的。
112.为了实现用户交互,计算系统600包括输入设备645,其可以表示任何数量的输入机制,例如,用于语音的麦克风、用于手势或图形输入的触敏屏幕、键盘、鼠标、运动输入、语音等。计算系统600还可以包括输出设备635,其可以是多种输出机制中的一种或多种。在一些情况下,多模态系统可以使得用户能够提供多种类型的输入/输出以与计算系统600进行通信。计算系统600可以包括通信接口640,其通常可以支配和管理用户输入和系统输出。通信接口可以使用有线和/或无线收发机来执行或促进有线或无线通信的接收和/或发送,有线和/或无线收发机包括使用以下各项的收发机:音频插孔/插头、麦克风插孔/插头、通用串行总线(usb)端口/插头、端口/插头、以太网端口/插头、光纤端口/插头、专有有线端口/插头、无线信号传输、低功耗(ble)无线信号传输、无线信号传输、射频识别(rfid)无线信号传输、近场通信(nfc)无线信号传输、专用短距离通信(dsrc)无线信号传输、802.11wi-fi无线信号传输、无线局域网(wlan)信号传输、可见
光通信(vlc)、全球微波接入互操作性(wimax)、红外(ir)通信无线信号传输、公共交换电话网络(pstn)信号传输、综合业务数字网络(isdn)信号传输、3g/4g/5g/lte蜂窝数据网络无线信号传输、自组织网络信号传输、无线电波信号传输、微波信号传输、红外信号传输、可见光信号传输、紫外光信号传输、沿着电磁频谱的无线信号传输、或者其某种组合。通信接口640还可以包括一个或多个全球导航卫星系统(gnss)接收机或收发机,其用于基于对来自与一个或多个gnss系统相关联的一个或多个卫星的一个或多个信号的接收来确定计算系统600的位置。gnss系统包括但不限于基于美国的全球定位系统(gps)、基于俄罗斯的全球导航卫星系统(glonass)、基于中国的北斗导航卫星系统(bds)以及基于欧洲的伽利略(galileo)gnss。对在任何特定硬件布置上的操作没有限制,并且因此此处的基本特征可以容易地替换为改进的硬件或固件布置(随着它们被开发)。
113.存储设备630可以是非易失性和/或非暂时性和/或计算机可读存储器设备,并且可以是硬盘或可以存储可由计算机访问的数据的其它类型的计算机可读介质,例如,磁带盒、闪存卡、固态存储器设备、数字通用磁盘、盒式磁带、软盘、软盘、硬盘、磁带、磁条/磁条带、任何其它磁存储介质、闪存、忆阻器存储器、任何其它固态存储器、压缩盘只读存储器(cd-rom)光盘、可重写压缩盘(cd)光盘、数字视频盘(dvd)光盘、蓝光盘(bdd)光盘、全息光盘、另一种光学介质、安全数字(sd)卡、微型安全数字(microsd)卡、卡、智能卡芯片、emv芯片、用户身份模块(sim)卡、微小/微型/纳米/微微sim卡、另一种集成电路(ic)芯片/卡、随机存取存储器(ram)、静态ram(sram)、动态ram(dram)、只读存储器(rom)、可编程只读存储器(prom)、可擦除可编程只读存储器(eprom)、电可擦除可编程只读存储器(eeprom)、闪存eprom(flasheprom)、高速缓存存储器(l1/l2/l3/l4/l5/l#)、电阻式随机存取存储器(rram/reram)、相变存储器(pcm)、自旋转移矩ram(stt-ram)、其它存储器芯片或盒式存储器、和/或其组合。
114.存储设备630可以包括软件服务、服务器、服务等,当处理器610执行定义这种软件的代码时其使得系统执行功能。在一些实施例中,执行特定功能的硬件服务可以包括被存储在计算机可读介质中的与必要的硬件组件(例如,处理器610、连接605、输出设备635等)连接的软件组件,以执行该功能。
115.如本文所使用的,术语“计算机可读介质”包括但不限于便携式或非便携式存储设备、光学存储设备、以及能够存储、包含或携带指令和/或数据的各种其它介质。计算机可读介质可以包括数据可以被存储在其中并且不包括以下各项的非暂时性介质:无线地或者在有线连接上传播的载波和/或暂时性电子信号。非暂时性介质的示例可以包括但不限于:磁盘或磁带、诸如压缩光盘(cd)或数字通用光盘(dvd)之类的光学存储介质、闪存、存储器或存储器设备。计算机可读介质可以具有被存储在其上的代码和/或机器可执行指令,代码和/或机器可执行指令可以表示过程、函数、子程序、程序、例程、子例程、模块、软件包、类、或者指令、数据结构或程序语句的任何组合。代码段可以通过传递和/或接收信息、数据、自变量、参数或存储器内容,来耦合到另一代码段或硬件电路。可以经由包括存储器共享、消息传递、令牌传递、网络传输等的任何适当的手段来传递、转发或发送信息、自变量、参数、数据等。
116.在一些实施例中,计算机可读存储设备、介质和存储器可以包括包含比特流等的电缆或无线信号。然而,当提及时,非暂时性计算机可读存储介质明确地排除诸如能量、载
波信号、电磁波和信号本身之类的介质。
117.在以上描述中提供了具体细节以提供对本文提供的实施例和示例的透彻理解。然而,本领域普通技术人员将理解的是,可以在没有这些具体细节的情况下实施这些实施例。为了解释清楚,在一些情况下,本文的技术可以被呈现为包括包含如下的功能块的单独的功能块,这些功能块包括设备、设备组件、以软件体现的方法中的步骤或例程、或者硬件和软件的组合。除了在各图中所示和/或本文描述的组件之外,还可以使用额外的组件。例如,电路、系统、网络、过程和其它组件可以以框图形式被示为组件,以便不会在不必要的细节上模糊这些实施例。在其它情况下,公知的电路、过程、算法、结构和技术可能被示为不具有不必要的细节,以便避免模糊这些实施例。
118.上文可能将各个实施例描述为过程或方法,该过程或方法被描绘为流程图、流程示意图、数据流程图、结构图或框图。虽然流程图可以将操作描述为顺序的过程,但是这些操作中的许多操作可以并行或同时执行。另外,可以重新排列操作的顺序。过程在其操作完成后被终止,但是可能具有未被包括在图中的额外步骤。过程(process)可以对应于方法、函数、过程(procedure)、子例程、子程序等。当过程对应于函数时,其终止可以对应于该函数返回到调用函数或主函数。
119.根据上述示例的过程和方法可以使用计算机可执行指令来实现,计算机可执行指令被存储在计算机可读介质中或者以其它方式可从计算机可读介质得到。这样的指令可以包括例如指令或数据,指令或数据使得通用计算机、专用计算机或处理设备执行或者以其它方式将其配置为执行特定功能或特定的一组功能。可以通过网络访问所使用的计算机资源的部分。计算机可执行指令可以是例如二进制文件、诸如汇编语言之类的中间格式指令、固件、源代码等。可以用于存储指令、所使用的信息和/或在根据所描述的示例的方法期间创建的信息的计算机可读介质的示例包括磁盘或光盘、闪存、设置有非易失性存储器的usb设备、网络存储设备等。
120.实现根据这些公开内容的过程和方法的设备可以包括硬件、软件、固件、中间件、微代码、硬件描述语言或其任何组合,并且可以采用多种形状因子中的任何一种。当用软件、固件、中间件或微代码来实现时,用于执行必要任务的程序代码或代码段(例如,计算机程序产品)可以被存储在计算机可读或机器可读介质中。处理器可以执行必要任务。形状因子的典型示例包括膝上型计算机、智能电话、移动电话、平板设备或其它小型形状因子的个人计算机、个人数字助理、机架式设备、独立设备等。本文描述的功能还可以体现在外围设备或插件卡中。通过另外的举例,这种功能还可以在单个设备中执行的不同芯片或不同过程之间的电路板上实现。
121.指令、用于传送这样的指令的介质、用于执行它们的计算资源以及用于支持这样的计算资源的其它结构是用于提供在本公开内容中描述的功能的示例模块。
122.在前面的描述中,参考本技术的特定实施例描述了本技术的各方面,但是本领域技术人员将认识到,本技术不限于此。因此,尽管本文已经详细描述了本技术的说明性实施例,但是应理解的是,可以以其它方式不同地体现和采用本发明构思,并且所附的权利要求旨在被解释为包括这样的变型,除了由现有技术限制的变型。可以单独地或共同地使用上述应用的各个特征和方面。此外,在不脱离本说明书的更宽泛的精神和范围的情况下,实施例可以在除了本文描述的环境和应用之外的任何数量的环境和应用中使用。因此,说明书
和附图被认为是说明性的而不是限制性的。为了说明的目的,以特定顺序描述了方法。应当明白的是,在替代实施例中,可以以与所描述的顺序不同的顺序来执行所述方法。
123.本领域普通技术人员将明白的是,在不脱离本说明书的范围的情况下,本文中使用的小于(“《”)和大于(“》”)符号或术语可以分别用小于或等于(“≤”)以及大于或等于(“≥”)符号来替换。
124.在将组件描述为“被配置为”执行某些操作的情况下,这种配置可以例如通过以下方式来实现:将电路或其它硬件设计为执行该操作,将可编程电路(例如,微处理器或其它适当的电路)编程为执行该操作,或其任何组合。
125.短语“耦合到”指代直接或间接地物理连接到另一组件的任何组件、和/或直接或间接地与另一组件通信的任何组件(例如,通过有线或无线连接和/或其它适当的通信接口而连接到另一组件)。
126.在本公开内容中记载集合中的“至少一个”和/或集合中的“一个或多个”的权利要求语言或其它语言指示该集合中的一个成员或者该集合中的多个成员(以任何组合)满足该权利要求。例如,记载“a和b中的至少一个”或“a或b中的至少一个”的权利要求语言意指a、b、或者a和b。在另一示例中,记载“a、b和c中的至少一个”或“a、b或c中的至少一个”的权利要求语言意指a、b、c、或者a和b、或者a和c、或者b和c、或者a和b和c。语言集合中的“至少一个”和/或集合中的“一个或多个”并不将该集合限制为在该集合中列出的项目。例如,记载“a和b中的至少一个”或“a或b中的至少一个”的权利要求语言可以意指a、b或者a和b,并且可以另外包括未在a和b的集合中列出的项目。
127.结合本文公开的实施例描述的各种说明性的逻辑框、模块、电路和算法步骤可以被实现为电子硬件、计算机软件、固件或其组合。为了清楚地说明硬件和软件的这种可互换性,上面已经对各种说明性的组件、框、模块、电路和步骤围绕其功能进行了总体描述。至于这种功能被实现为硬件还是软件取决于特定的应用和被施加在整个系统上的设计约束。技术人员可以针对每种特定应用以不同的方式来实现所描述的功能,但是这种实现决策不应当被解释为导致脱离本技术的范围。
128.本文描述的技术还可以用电子硬件、计算机软件、固件或其任何组合来实现。这样的技术可以在各种设备中的任何一种中实现,诸如通用计算机、无线通信设备手机或具有多种用途(包括在无线通信设备手机和其它设备中的应用)的集成电路设备。被描述为模块或组件的任何特征都可以在集成逻辑设备中一起实现,或者分别作为分立但是可互操作的逻辑设备来实现。如果用软件来实现,则所述技术可以至少部分地由计算机可读数据存储介质来实现,计算机可读数据存储介质包括程序代码,程序代码包括在被执行时执行上述方法中的一种或多种方法的指令。计算机可读数据存储介质可以形成计算机程序产品的一部分,计算机程序产品可以包括包装材料。计算机可读介质可以包括存储器或数据存储介质,诸如随机存取存储器(ram)(诸如同步动态随机存取存储器(sdram))、只读存储器(rom)、非易失性随机存取存储器(nvram)、电可擦除可编程只读存储器(eeprom)、闪存、磁或光数据存储介质等。另外或替代地,所述技术可以至少部分地由以指令或数据结构的形式携带或传送程序代码并且可以由计算机访问、读取和/或执行的计算机可读通信介质(诸如传播的信号或波)来实现。
129.程序代码可以由处理器执行,处理器可以包括一个或多个处理器,诸如一个或多
个数字信号处理器(dsp)、通用微处理器、专用集成电路(asic)、现场可编程逻辑阵列(fpga)或其它等效的集成或分立逻辑电路。这样的处理器可以被配置为执行在本公开内容中描述的任何技术。通用处理器可以是微处理器,但是在替代方式中,处理器可以是任何常规的处理器、控制器、微控制器或状态机。处理器也可以被实现为计算设备的组合,例如,dsp和微处理器的组合、多个微处理器、一个或多个微处理器与dsp核的结合、或任何其它这样的配置。因此,如本文所使用的术语“处理器”可以指代任何前述结构、前述结构的任何组合、或适于实现本文描述的技术的任何其它结构或装置。
130.本公开内容的说明性示例包括:
131.示例1、一种生成虚拟内容的方法,所述方法包括:由扩展现实设备获得现实世界环境的场景的图像,其中,当虚拟内容被所述扩展现实设备的显示器显示时,所述现实世界环境是可通过所述显示器查看的;由所述扩展现实设备在所述图像中检测用户的物理手的至少一部分;基于检测到所述物理手的至少所述一部分来生成虚拟键盘;确定所述虚拟键盘在所述扩展现实设备的所述显示器上的位置,所述位置是相对于所述物理手的至少所述一部分而确定的;以及由所述扩展现实设备将所述虚拟键盘显示在所述显示器上的所述位置处。
132.示例2、根据示例1所述的方法,还包括:检测所述物理手上的一个或多个界标点;确定所述一个或多个界标点相对于用于捕获所述图像的相机的一个或多个位置;以及基于所述一个或多个界标点相对于所述相机的所述一个或多个位置,来确定所述虚拟键盘在所述显示器上相对于所述物理手的所述位置。
133.示例3、根据示例1或2中任一示例所述的方法,还包括:确定所述用户的头部的姿势;以及基于所述头部的所述姿势来确定所述虚拟键盘在所述显示器上相对于所述头部的所述位置。
134.示例4、根据示例1至3中任一示例所述的方法,其中,在所述物理手移动位置时,所述虚拟键盘被固定在所述显示器上的所述位置处。
135.示例5、根据示例1至4中任一示例所述的方法,还包括:接收与所述虚拟键盘的操作相关联的输入;以及在基于所接收的输入操作所述虚拟键盘时将所述虚拟键盘保持在所述位置处。
136.示例6、根据示例1至5中任一示例所述的方法,还包括:确定与所述物理手的至少所述一部分在所述图像中的位置相比,所述物理手的至少所述一部分在所述场景的额外图像中处于不同的位置;以及基于确定所述物理手的至少所述一部分在所述场景的所述额外图像中处于所述不同的位置,将所述虚拟键盘显示在所述显示器上的额外位置处,所述额外位置不同于所述位置。
137.示例7、根据示例1至6中任一示例所述的方法,还包括:在确定所述虚拟键盘在所述显示器上的所述位置之后检测预定时间量的到期;以及基于检测到所述预定时间量的到期,将所述虚拟键盘显示在所述显示器上的额外位置处,所述额外位置不同于所述位置。
138.示例8、根据示例1至7中任一示例所述的方法,其中,所述物理手的至少所述一部分包括所述物理手上的至少一个点和所述物理手的手指上的至少一个点。
139.示例9、根据示例1至8中任一示例所述的方法,其中,所述物理手的至少所述一部分包括所述物理手上的至少一个点和所述物理手的每个手指上的至少一个点。
140.示例10、根据示例1至9中任一示例所述的方法,其中,所述虚拟键盘包括第一部分和第二部分,所述第一部分被显示在所述显示器上相对于所述物理手的所述位置处,并且所述第二部分被显示在所述显示器上相对于所述用户的另一只物理手的额外位置处。
141.示例11、根据示例10所述的方法,其中,所述虚拟键盘的所述第一部分在所述显示器上相对于所述物理手移动,并且其中,所述虚拟键盘的所述第二部分在所述显示器上相对于所述另一只物理手移动。
142.示例12、根据示例1至11中任一示例所述的方法,还包括:确定在所述场景的额外图像中不存在所述物理手;以及基于确定在所述场景的所述额外图像中不存在所述物理手,从所述显示器中移除所述虚拟键盘。
143.示例13、根据示例1至12中任一示例所述的方法,其中,当所述虚拟键盘从所述显示器中被移除时,所述虚拟键盘是活动的以用于提供输入。
144.示例14、根据示例1至13中任一示例所述的方法,还包括:将所述虚拟键盘去激活以不被用于提供输入。
145.示例15、根据示例1至14中任一示例所述的方法,其中,所述虚拟键盘是当在所述场景的一个或多个图像中不存在所述物理手时被显示的。
146.示例16、一种装置,其包括:被配置为存储一个或多个图像的存储器;以及被配置为执行根据示例1至15中任一示例的操作的处理器。
147.示例17、根据示例16所述的装置,其中,所述装置包括扩展现实设备。
148.示例18、根据示例16或17中任一示例所述的装置,还包括:被配置为捕获于所述场景的所述图像的相机。
149.示例19、根据示例16至18中任一示例所述的装置,还包括:被配置为显示所述场景的一个或多个图像的显示器。
150.示例20、一种具有存储在其上的指令的计算机可读介质,所述指令在被处理器执行时执行根据示例1至15中任一示例的操作。
151.示例21、一种装置,其包括:用于执行根据示例1至15中任一示例的操作的一个或多个单元。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

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

相关文献