CN113785262A - 具有手指映射自触觉输入方法的人工现实系统 - Google Patents

具有手指映射自触觉输入方法的人工现实系统 Download PDF

Info

Publication number
CN113785262A
CN113785262A CN202080031604.6A CN202080031604A CN113785262A CN 113785262 A CN113785262 A CN 113785262A CN 202080031604 A CN202080031604 A CN 202080031604A CN 113785262 A CN113785262 A CN 113785262A
Authority
CN
China
Prior art keywords
hand
gesture
artificial reality
finger
hmd
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202080031604.6A
Other languages
English (en)
Inventor
乔纳森·劳沃斯
贾斯珀·史蒂文斯
亚当·蒂博尔·瓦尔加
艾蒂安·平钦
西蒙·查尔斯·蒂克纳
詹妮弗·林恩·斯珀洛克
凯尔·埃里克·索尔格-图米
罗伯特·埃利斯
巴雷特·福克斯
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Meta Platforms Technologies LLC
Original Assignee
Facebook Technologies LLC
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Facebook Technologies LLC filed Critical Facebook Technologies LLC
Publication of CN113785262A publication Critical patent/CN113785262A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/017Gesture based interaction, e.g. based on a set of recognized hand gestures
    • GPHYSICS
    • G02OPTICS
    • G02BOPTICAL ELEMENTS, SYSTEMS OR APPARATUS
    • G02B27/00Optical systems or apparatus not provided for by any of the groups G02B1/00 - G02B26/00, G02B30/00
    • G02B27/01Head-up displays
    • G02B27/017Head mounted
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/011Arrangements for interaction with the human body, e.g. for user immersion in virtual reality
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/016Input arrangements with force or tactile feedback as computer generated output to the user
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/02Input arrangements using manually operated switches, e.g. using keyboards or dials
    • G06F3/023Arrangements for converting discrete items of information into a coded form, e.g. arrangements for interpreting keyboard generated codes as alphanumeric codes, operand codes or instruction codes
    • G06F3/0233Character input methods
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0484Interaction techniques based on graphical user interfaces [GUI] for the control of specific functions or operations, e.g. selecting or manipulating an object, an image or a displayed text element, setting a parameter value or selecting a range
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0484Interaction techniques based on graphical user interfaces [GUI] for the control of specific functions or operations, e.g. selecting or manipulating an object, an image or a displayed text element, setting a parameter value or selecting a range
    • G06F3/04842Selection of displayed objects or displayed text elements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0484Interaction techniques based on graphical user interfaces [GUI] for the control of specific functions or operations, e.g. selecting or manipulating an object, an image or a displayed text element, setting a parameter value or selecting a range
    • G06F3/04845Interaction techniques based on graphical user interfaces [GUI] for the control of specific functions or operations, e.g. selecting or manipulating an object, an image or a displayed text element, setting a parameter value or selecting a range for image manipulation, e.g. dragging, rotation, expansion or change of colour
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0484Interaction techniques based on graphical user interfaces [GUI] for the control of specific functions or operations, e.g. selecting or manipulating an object, an image or a displayed text element, setting a parameter value or selecting a range
    • G06F3/0485Scrolling or panning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0487Interaction techniques based on graphical user interfaces [GUI] using specific features provided by the input device, e.g. functions controlled by the rotation of a mouse with dual sensing arrangements, or of the nature of the input device, e.g. tap gestures based on pressure sensed by a digitiser
    • G06F3/0488Interaction techniques based on graphical user interfaces [GUI] using specific features provided by the input device, e.g. functions controlled by the rotation of a mouse with dual sensing arrangements, or of the nature of the input device, e.g. tap gestures based on pressure sensed by a digitiser using a touch-screen or digitiser, e.g. input of commands through traced gestures
    • G06F3/04886Interaction techniques based on graphical user interfaces [GUI] using specific features provided by the input device, e.g. functions controlled by the rotation of a mouse with dual sensing arrangements, or of the nature of the input device, e.g. tap gestures based on pressure sensed by a digitiser using a touch-screen or digitiser, e.g. input of commands through traced gestures by partitioning the display area of the touch-screen or the surface of the digitising tablet into independently controllable areas, e.g. virtual keyboards or menus
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T19/00Manipulating 3D models or images for computer graphics
    • G06T19/006Mixed reality

Landscapes

  • Engineering & Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Optics & Photonics (AREA)
  • Computer Graphics (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • User Interface Of Digital Computer (AREA)
  • Processing Or Creating Images (AREA)

Abstract

描述了一种人工现实系统,其在人工现实环境中渲染、呈现和控制用户界面元素,并响应于检测到的用户的一个或更多个手势来执行动作。人工现实系统捕获代表物理环境的图像数据,并输出人工现实内容。人工现实系统从图像数据中识别包括手的第一手指和手的第二手指在阈值时间量内形成特定次数的捏构形的运动的手势。人工现实系统将一个或更多个输入字符分配给手的多个手指中的一个或更多个手指,并且响应于所识别的手势,处理对分配给手的第二手指的一个或更多个输入字符中的第一输入字符的选择。

Description

具有手指映射自触觉输入方法的人工现实系统
相关申请的交叉引用
本申请要求2019年6月7日提交的美国申请第16/435,139号的优先权,该申请的内容通过引用以其整体并入本文以用于全部目的。
技术领域
本公开总体上涉及人工现实系统,例如虚拟现实、混合现实和/或增强现实系统,更具体地,涉及人工现实系统的用户界面。
背景
人工现实系统正变得越来越普遍,应用于许多领域,诸如计算机游戏、健康和安全、工业和教育。作为几个示例,人工现实系统正在被合并到移动设备、游戏机、个人计算机、电影院和主题公园中。通常,人工现实是在呈现给用户之前已经以某种方式调整的现实的形式,其可包括例如虚拟现实(VR)、增强现实(AR)、混合现实(MR)、混杂现实(hybridreality)、或其某种组合和/或衍生物。
典型人工现实系统包括用于渲染和向用户显示内容的一个或更多个设备。作为一个示例,人工现实系统可合并头戴式显示器(HMD),该HMD由用户佩戴并且被配置为向用户输出人工现实内容。人工现实内容可包括完全生成内容或与捕获内容(例如,真实世界视频和/或图像)组合的生成内容。在操作期间,用户通常与人工现实系统交互,以选择内容、启动应用或以其他方式配置系统。
概述
总的来说,本公开描述了人工现实系统,更具体地,描述了用于在人工现实环境中呈现和控制用户界面元素的图形用户界面元素和技术。
例如,描述了人工现实系统,其响应于检测到用户的一个或更多个预定义手势(gesture),例如用户的手、手指、拇指或手臂的特定运动、构形(configuration)、位置和/或取向,或者预定义手势的组合,生成并渲染图形用户界面元素以显示给用户。在一些示例中,人工现实系统还可以响应于结合其他条件的特定手势的检测来触发图形用户界面元素的生成和呈现,其他条件例如是物理环境中特定手势相对于用户的当前视场的位置和取向,这可以通过用户的实时凝视跟踪来确定,或者相对于用户佩戴的HMD的姿势(pose)来确定。
在一些示例中,人工现实系统可以生成并呈现图形用户界面元素作为相对于当前正在人工现实系统的显示器内渲染的人工现实内容的叠加元素(overlay element)。图形用户界面元素可以是例如图形用户界面,例如用户与之交互以操作人工现实系统的菜单或子菜单,或者可由用户选择和操作的单个图形用户界面元素,例如切换元素(toggleelement)、下拉元素、菜单选择元素、二维或三维形状、图形输入键或键盘、内容显示窗口等。
根据本文描述的技术,人工现实系统生成并呈现各种图形用户界面元素,用户利用这些元素进行交互以输入文本和其他输入字符。在一个示例中,人工现实系统渲染并输出虚拟键盘作为由HMD输出的其他人工现实内容的叠加元素。当手在物理环境中移动时,人工现实系统捕获手的图像数据,并且相对于人工现实空间中渲染的虚拟键盘的位置来跟踪手的位置。具体地,人工现实系统跟踪手的至少两个手指(digit)(例如手的拇指和食指)的位置。该人工现实系统检测包括两个手指的合在一起形成捏构形(pinchingconfiguration)的运动的手势,并且将处于捏构形中的两个手指之间的接触点的位置映射到虚拟键盘的虚拟键。一旦人工现实系统检测到手势,人工现实系统接收对特定虚拟键的选择作为用户输入,该用户输入包括分配给特定虚拟键的输入字符。
在另一个示例中,人工现实系统不是渲染和输出虚拟键盘,而是将一个或更多个输入字符分配给在由人工现实系统捕获的图像数据中检测到的手的一个或更多个手指。在该示例中,人工现实系统可以保留手的至少一个手指而不分配输入字符来充当输入选择手指。该人工现实系统检测包括输入选择手指与被分配了输入字符的其他手指中的特定一个在阈值时间量内形成捏构形特定次数的运动的手势。随着检测到形成捏构形的运动的次数增加,人工现实系统循环通过分配给特定手指的一个或更多个输入字符。人工现实系统基于检测到形成捏构形的运动的次数和映射到特定输入字符的选择数字来确定对输入字符中的特定输入字符的选择。人工现实系统接收分配给特定手指的特定输入字符的选择作为用户输入。
在许多人工现实系统中,为了向人工现实系统提供用户输入,用户可能需要在他们的手中持有额外的硬件,这可能会降低各种残疾用户的可访问性,并可能会为用户提供笨拙或不自然的界面。在用户不持有额外硬件的人工现实系统中,可能难以以直观且可靠的方式准确检测用户输入。此外,不需要额外硬件的人工现实系统可能无法向用户提供关于何时以及如何选择特定用户界面元素来输入到人工现实系统的有用反馈。通过利用本文描述的技术,人工现实系统可以提供自然的输入系统,该系统使用自触觉反馈(self-haptic feedback),或者当形成捏构形时用户自己的手指接触的感觉,来在已经做出选择时向用户指示。此外,通过检测包括形成特定捏构形的动作的手势,人工现实系统可以有效地确定何时分析图像数据以确定哪个输入字符被接收作为用户输入。本文描述的技术可以减少或者甚至消除用户为了提供用户输入而持有额外硬件部件的需要,从而提高系统的整体效率,减少人工现实系统的不同部件之间的通信处理,并且提高所有身体能力水平的用户对人工现实系统的可访问性。
在本文描述的技术的一个示例中,人工现实系统包括被配置为捕获代表物理环境的图像数据的图像捕获设备。人工现实系统还包括被配置为输出人工现实内容的HMD。该人工现实系统还包括渲染引擎,该渲染引擎被配置为渲染具有多个虚拟键的虚拟键盘作为人工现实内容的叠加。该人工现实系统还包括手势检测器,该手势检测器被配置为从图像数据中识别包括手的第一手指和手的第二手指的形成捏构形的运动的手势,其中当处于捏构形时,第一手指和第二手指之间的接触点对应于虚拟键盘的多个虚拟键中的第一虚拟键的位置。该人工现实系统还包括用户界面引擎,该用户界面引擎被配置为响应于所识别的手势来处理对第一虚拟键的选择。
在本文描述的技术的另一个示例中,一种方法包括由人工现实系统的图像捕获设备捕获代表物理环境的图像数据。该方法还包括渲染人工现实内容和具有多个虚拟键的虚拟键盘作为人工现实内容的叠加。该方法还包括由人工现实系统的HMD输出人工现实内容和虚拟键盘。该方法还包括从图像数据中识别手势,该手势包括手的第一手指和手的第二手指形成捏构形的运动,其中当处于捏构形时,第一手指和第二手指之间的接触点对应于虚拟键盘的多个虚拟键中的第一虚拟键的位置。该方法还包括响应于所识别的手势来处理对第一虚拟键的选择。
在本文描述的技术的另一个示例中,非暂时性计算机可读介质包括指令,当执行这些指令时,使得人工现实系统的一个或更多个处理器捕获代表物理环境的图像数据。这些指令还使得一个或更多个处理器渲染人工现实内容和具有多个虚拟键的虚拟键盘作为人工现实内容的叠加。指令还使得一个或更多个处理器输出人工现实内容和虚拟键盘。所述指令还使得所述一个或更多个处理器从所述图像数据中识别包括手的第一手指和手的第二手指形成捏构形的运动的手势,其中当处于捏构形时,第一手指和第二手指之间的接触点对应于虚拟键盘的多个虚拟键中的第一虚拟键的位置。这些指令还使得一个或更多个处理器响应于所识别的手势来处理对第一虚拟键的选择。
在本文描述的技术的另一个示例中,人工现实系统包括被配置为捕获代表物理环境的图像数据的图像捕获设备。人工现实系统还包括被配置为输出人工现实内容的HMD。该人工现实系统还包括手势检测器,该手势检测器被配置为从图像数据中识别包括手的第一手指和手的第二手指的在阈值时间量内形成特定次数的捏构形的运动的手势。该人工现实系统还包括用户界面引擎,该用户界面引擎被配置为将一个或更多个输入字符分配给手的多个手指中的一个或更多个手指,并且响应于所识别的手势,处理对分配给手的第二手指的一个或更多个输入字符中的第一输入字符的选择。
在本文描述的技术的另一个示例中,一种方法包括由人工现实系统的图像捕获设备捕获代表物理环境的图像数据。该方法还包括由人工现实系统的HMD输出人工现实内容。该方法还包括从图像数据中识别手势,该手势包括手的第一手指和手的第二手指在阈值时间量内形成特定次数的捏构形的运动。该方法还包括将一个或更多个输入字符分配给手的多个手指中的一个或更多个手指。该方法还包括响应于所识别的手势,处理对分配给手的第二手指的一个或更多个输入字符中的第一输入字符的选择。
在本文描述的技术的另一个示例中,非暂时性计算机可读介质包括指令,当执行这些指令时,使得人工现实系统的一个或更多个处理器捕获代表物理环境的图像数据。这些指令还使得一个或更多个处理器输出人工现实内容。这些指令还使得一个或更多个处理器从图像数据中识别包括手的第一手指和手的第二手指在阈值时间量内形成特定次数的捏构形的运动的手势。这些指令还使得一个或更多个处理器将一个或更多个输入字符分配给手的多个手指中的一个或更多个手指。这些指令还使得一个或更多个处理器响应于所识别的手势来处理对分配给手的第二手指的一个或更多个输入字符中的第一输入字符的选择。
本公开的技术的一个或更多个示例的细节在附图和下面的描述中阐述。本发明的其他特征、目的和优点将从说明书和附图以及权利要求中显而易见。
附图简述
图1A是描绘根据本公开的技术在人工现实环境中呈现和控制用户界面元素的示例人工现实系统的图示。
图1B是描绘根据本公开技术的另一示例人工现实系统的图示。
图2是描绘根据本公开的技术操作的示例HMD的图示。
图3是示出图1A和图1B的人工现实系统的控制台和HMD的示例实现的框图。
图4是描绘根据本公开的技术由图1A和图1B的人工现实系统的HMD执行手势检测和用户界面生成的示例的框图。
图5A和图5B是描绘根据本公开的技术的示例人工现实系统的图示,该系统被配置为输出虚拟键盘并检测在对应于虚拟键盘的虚拟键的位置处捏构形的形成。
图6A和图6B是描绘根据本公开的技术的示例人工现实系统的图示,该系统被配置为输出分离虚拟键盘(split virtual keyboard)并检测在对应于分离虚拟键盘的虚拟键的位置处捏构形的形成。
图7A和图7B是描绘根据本公开的技术的示例人工现实系统的图示,该系统被配置为检测特定次数的捏构形的形成,并基于捏构形中涉及的特定手指和捏构形的形成被检测的特定次数接收输入字符作为用户输入。
图8是示出根据本文描述的技术的用于人工现实系统的示例技术的流程图,该人工现实系统被配置为输出虚拟键盘并检测在对应于虚拟键盘的虚拟键的位置处捏构形的形成。
图9是示出根据本公开的技术的用于示例人工现实系统的示例技术的流程图,该示例人工现实系统被配置为检测特定次数的捏构形的形成,并且基于捏构形中涉及的特定手指和捏构形的形成被检测的特定次数来接收输入字符作为用户输入。
在整个附图和说明书中,相同的参考字符表示相同的元件。
详细描述
图1A是描绘根据本公开的技术在人工现实环境中呈现和控制用户界面元素的示例人工现实系统10的图示。在一些示例实现中,人工现实系统10响应于用户110执行的一个或更多个检测到的手势,生成图形用户界面元素并将其渲染给用户110。也就是说,如本文所述,人工现实系统10响应于检测到用户110执行的一个或更多个特定手势,例如用户的手、手指、拇指或手臂的特定运动、构形、位置和/或取向,呈现一个或更多个图形用户界面元素124、126。在其他示例中,人工现实系统10呈现并控制专门为人工现实环境中的用户交互和操纵而设计的用户界面元素,例如专用切换元素、下拉元素、菜单选择元素、图形输入键或键盘、内容显示窗口等。
在图1A的示例中,人工现实系统10包括头戴式设备(HMD)112、控制台106以及在一些示例中的一个或更多个外部传感器90。如所示的,HMD 112通常由用户110佩戴,并且包括用于向用户110呈现人工现实内容122的电子显示器和光学组件。此外,HMD 112包括用于跟踪HMD的运动的一个或更多个传感器(例如,加速度计),并且可包括用于捕获周围物理环境的图像数据的一个或更多个图像捕获设备138(例如,相机、行扫描仪(line scanner)等)。在该示例中,控制台106被示为单个计算设备,诸如游戏机、工作站、台式计算机或膝上型计算机。在其他示例中,控制台106可分布在多个计算设备上,诸如分布式计算网络、数据中心或云计算系统。如该示例所示,控制台106、HMD 112和传感器90可经由网络104通信耦接,该网络可以是有线或无线网络,诸如WiFi、网状网络或短程无线通信介质。尽管在该示例中,HMD 112被示出为与控制台106通信,例如系留(tethered to)到控制台或与控制台进行无线通信,但在一些实现中,HMD 112作为独立的移动人工现实系统进行操作。
通常,人工现实系统10使用从真实世界3D物理环境捕获的信息来渲染人工现实内容122以显示给用户110。在图1A的示例中,用户110观看由在控制台106和/或HMD 112上执行的人工现实应用构建和渲染的人工现实内容122。作为一个示例,人工现实内容122可以是消费者游戏应用,其中用户110被渲染为具有一个或更多个虚拟对象128A、128B的化身120。在一些示例中,人工现实内容122可以包括现实世界图像和虚拟对象的混合,例如混合现实和/或增强现实。在其他示例中,人工现实内容122可以是例如视频会议应用、导航应用、教育应用、培训或模拟应用、或实现人工现实的其他类型的应用。
在操作期间,人工现实应用通过跟踪和计算参考系(通常是HMD 112的视角)的姿势信息来构建用于向用户110显示的人工现实内容122。使用HMD 112作为参考系,并且基于由HMD 112的当前估计姿势确定的当前视场130,人工现实应用渲染3D人工现实内容,在一些示例中,该3D人工现实内容可以至少部分地覆盖在用户110的真实世界3D物理环境上。在该过程中,人工现实应用使用从HMD 112接收的感测数据,例如运动信息和用户命令,并且在一些示例中,使用来自任何外部传感器90(例如外部相机)的数据来捕获真实世界、物理环境中的3D信息,例如用户110的运动和/或关于用户110的特征跟踪信息。基于所感测的数据,人工现实应用确定HMD 112的参考系的当前姿势,并且根据当前姿势,渲染人工现实内容122。
此外,根据本公开的技术,基于所感测的数据,人工现实应用检测由用户110执行的手势,并且响应于检测到一个或更多个特定手势,生成一个或更多个用户界面元素,例如UI菜单124和UI元素126,其可以覆盖在呈现给用户的底层人工现实内容122上。在这方面,用户界面元素124、126可以被视为在人工现实环境中呈现给用户的人工现实内容122的一部分。以这种方式,人工现实系统10响应于检测到用户110的一个或更多个特定手势,例如用户的手、手指、拇指或手臂的特定运动、构形、位置和/或取向,动态地呈现一个或更多个图形用户界面元素124、126。用户的手的示例构形可以包括拳头、伸出的一个或更多个手指、手的一个或更多个单独手指的相对和/或绝对位置和取向、手掌的形状等。例如,用户界面元素可以是图形用户界面,例如用户110与之交互以操作人工现实系统的菜单或子菜单,或者用户110可选择和操纵的单个用户界面元素,例如切换元素、下拉元素、菜单选择元素、二维或三维形状、图形输入键或键盘、内容显示窗口等。虽然被描绘为二维元素,但是例如,UI元素126可以是二维或三维形状,其可由执行手势以在人工现实环境中平移、缩放和/或旋转该形状的用户来操纵。
在图1A的示例中,图形用户界面元素124可以是包括图形用户界面元素126的窗口或应用容器,图形用户界面元素126可以包括执行各种功能的一个或更多个可选图标。在其他示例中,人工现实系统10可以呈现虚拟键盘,诸如QWERTY键盘、AZERTY键盘、QWERTZ键盘、Dvorak键盘、Colemak键盘、Maltron键盘、JCUKEN键盘、字母键盘、数字/符号键盘、表情符号选择键盘、任何上述键盘的分离版本、键盘格式的输入字符的任何其他排列、或者输入字符到人工现实内容122中的一个或更多个项目的自定义映射(custom mapping)或分配的描绘,例如用户110的手132上的手指的渲染。
此外,如本文所述,在一些示例中,人工现实系统10可以响应于其他条件,例如系统正在执行的一个或更多个应用的当前状态,或者物理环境中特定检测到的手势相对于用户110的当前视场130的位置和取向(这可以通过用户的实时凝视跟踪或其他条件来确定),触发图形用户界面元素124、126的生成和渲染。
更具体地说,如本文进一步所述的,HMD 112的图像捕获设备138捕获表示在图像捕获设备138的视场130内的真实世界物理环境中的对象的图像数据。视场130通常对应于HMD 112的视角。在一些示例中,例如图1A所示的示例,人工现实应用将用户110的手132在视场130内的部分渲染为人工现实内容122内的虚拟手136。在其他示例中,人工现实应用可以在包括混合现实和/或增强现实的人工现实内容122中呈现用户110的手132和/或手臂134的真实世界图像。在任一示例中,用户110能够将他们的手132和/或手臂134在视场130内的部分视为人工现实内容122内的对象。在其他示例中,人工现实应用可能根本不渲染用户的手132或手臂134。
在任何情况下,在操作期间,人工现实系统10在由HMD 112的图像捕获设备138捕获的图像数据内执行对象识别,以识别手132,包括可选地识别用户110的单个手指或拇指,和/或手臂134的全部或部分。此外,人工现实系统10在滑动时间窗口上跟踪手132(可选地包括手的特定手指)和/或手臂134的部分的位置、取向和构形。人工现实应用分析手132和/或手臂134的部分的任何跟踪的运动、构形、位置和/或取向,以识别由特定对象(例如,手132(包括手的特定手指)和/或用户110的手臂134的部分)执行的一个或更多个手势。为了检测手势,人工现实应用可以将手132和/或手臂134的部分的运动、构形、位置和/或取向与存储在人工现实系统10的手势库中的手势定义进行比较,其中手势库中的每个手势可以被映射到一个或更多个动作。在一些示例中,检测移动可以包括跟踪手132的一个或更多个手指(单个手指和拇指)的位置,包括在物理环境中手指(例如食指和拇指)的任何定义的组合是否被放在一起触摸或近似触摸。在其他示例中,检测移动可以包括跟踪手132的取向(例如,手指指向HMD 112或远离HMD 112)和/或手臂134相对于HMD 112的当前姿势的取向(即,手臂的法线面向HMD 112)。手132(或其一部分)的位置和取向可替代地被称为手132(或其一部分)的姿势。
此外,人工现实应用可以分析手132和/或手臂134的构形、位置和/或取向,以识别包括手132和/或手臂134被保持在一个或更多个特定构形、位置和/或取向至少阈值时间段的手势。作为示例,手132和/或手臂134在视场130内保持基本静止至少一段可配置时间的一个或更多个特定位置可以被人工现实系统10用作用户110正试图执行旨在触发人工现实应用的期望响应的手势的指示,诸如触发特定类型的用户界面元素124、126(诸如菜单)的显示。作为另一个示例,手132的手指和/或手掌和/或手臂134的一个或更多个特定构形被保持在视场130内至少一段可配置的时间,可以被人工现实系统10用作用户110正试图执行手势的指示。尽管在图1A中仅示出了用户110的右手132和右手臂134,但是在其他示例中,人工现实系统10可以识别用户110的左手和/或左手臂或者识别用户110的右手和/或右手臂以及用户110的左手和/或左手臂。以这种方式,人工现实系统10可以检测物理环境中由手执行的单手手势、双手手势或基于手臂的手势,并响应于检测到的手势生成相关联的用户界面元素。
根据本公开的技术,人工现实应用确定所识别的手势是否对应于由控制台106和/或HMD 112的手势库中的多个条目之一定义的手势。如下文更详细描述的,手势库中的每个条目可以将不同的手势定义为用户的手、手指(digit)(手指(finger)或拇指)和/或手臂随时间的特定运动、构形、位置和/或取向,或者这些属性的组合。此外,每个定义的手势可以与以要由人工现实应用执行的一个或更多个动作的形式的期望的响应相关联。作为一个示例,手势库中的一个或更多个定义的手势可以触发一个或更多个用户界面元素(例如UI菜单124)的生成、转换和/或配置,以被渲染并覆盖在人工现实内容122上,其中手势可以定义UI菜单124在人工现实内容122中的位置和/或取向。作为另一示例,一个或更多个定义的手势可以指示用户110与特定用户界面元素的交互,例如选择UI菜单124的UI元素126,以触发对所呈现的用户界面的改变、所呈现的用户界面的子菜单的呈现等。
例如,作为手势库中的条目存储的手势之一可以是手的两个或更多个手指形成捏构形的运动。捏构形可以包括同一只手(例如,用户110的手132)的至少两个分开的手指彼此接触的任何构形。在一些示例中,这种构形可以进一步受到限制,例如要求彼此接触的两个手指与手的其余手指分开,或者要求彼此接触的手指部分是手指肚或手指尖(the padsor tips of the digits)。在一些情况下,额外的限制可能是手的拇指是接触手的第二手指的手指之一。然而,捏构形可以具有更少的限制,例如简单地要求任何两个手指彼此进行任何接触,而不管这两个手指是否属于同一只手。
根据本文描述的技术,当人工现实内容122包括由一个或更多个虚拟键组成的虚拟键盘时,图像捕获设备138可以捕获包括手132的第一手指和第二手指移动以形成捏构形的图像数据。一旦人工现实系统10识别出包括手132上的手指形成捏构形的运动的手势,则确定处于捏构形中的两个手指之间的接触点,并且在由人工现实内容122构成的虚拟环境中识别出相应的位置。如果处于捏构形中的手指的接触点对应于虚拟键盘中的虚拟键的位置,则人工现实系统10可以将捏构形或捏构形的释放识别为虚拟键的选择。响应于接收到该选择,人工现实系统10可以执行与虚拟键的选择相对应的动作,例如将文本字符或其他ASCII字符输入到文本输入框(text input field)或可以分配给计算系统中键盘的键的任何其他功能。
在本文描述的技术的其他示例中,图像捕获设备138可以捕获包括用户手132的图像数据。人工现实系统10可以从图像数据中区分用户手132的各个手指。在图像数据中包括用户110的双手的情况下,人工现实系统10可以区分用户110的一只手或两只手的各个手指。然后,人工现实系统10可以将一个或更多个输入字符分配给在图像数据中捕获的手(或多只手)的一个或更多个手指。在一些示例中,人工现实系统10可以在图像数据中留下每只手的一个手指,例如每只手的拇指,而不为其分配输入字符,而是将该手指分配为输入选择手指。图像捕获设备138可以捕获包括用户手132的图像数据,用户手132形成捏构形,其中选择器手指(selector digit)与人工现实系统10已经分配了一个或更多个输入字符的其他手指之一接触。一旦人工现实系统10检测到包括这两个手指形成捏构形的运动的手势,人工现实系统10可以在特定时间量内监视图像数据,并确定在特定时间量内这两个手指形成捏构形有多少次。例如,在特定时间量内,形成捏构形、释放捏构形和再次形成捏构形的两个手指将构成捏构形的两个不同的实例。基于不同实例的这一数量,人工现实系统10处理分配给特定手指的输入字符中的相应一个的选择,该特定手指与选择器手指形成捏构形。
因此,本公开的技术为通过人工现实系统渲染和显示内容的计算机相关领域提供了具体的技术改进。例如,本文描述的人工现实系统可以通过基于对由用户执行的直观但有区别的手势的检测来生成和渲染覆盖在人工现实内容上的用户界面元素,来向人工现实应用的用户(例如用户110)提供高质量的人工现实体验。
此外,本文所述的系统可以被配置为基于被定义为避免跟踪遮挡的手和手臂移动来检测某些手势。当用户的一只手至少部分地与另一只手重叠时,可能会发生跟踪遮挡,使得难以准确地跟踪每只手的各个手指(手指和拇指),以及每只手的位置和取向。因此,本文描述的系统可以被配置成主要检测基于单手或单手臂的手势。基于单手或单臂的手势的使用可以进一步为具有大动作和精细运动技能限制的用户提供增强的可访问性。此外,本文描述的系统可以被配置成检测基于双手或基于双臂的手势,其中用户的手不相互交互或重叠。
此外,本文描述的系统可以被配置成检测向用户提供自触觉反馈的手势。例如,用户每只手上的拇指和一个或更多个手指可以在物理世界中触摸或近似触摸,作为指示与人工现实内容中的特定用户界面元素的交互的预定义手势的一部分。用户的手的拇指和一个或更多个手指之间的触摸可以为用户提供当直接与物理用户输入对象(例如物理键盘或其他物理输入设备上的按钮)交互时用户感受到的感觉的模拟。
通过利用本文描述的技术,人工现实系统10可以提供自然的输入系统,该系统使用自触觉反馈,或者当形成捏构形时用户手132的手指相互接触的感觉,来指示何时已经进行了输入字符选择。此外,通过检测包括形成特定捏形态(pinching formation)的运动的手势,人工现实系统10可以有效地确定何时分析图像数据以确定哪个输入字符被接收作为用户输入。本文描述的技术可以减少或者甚至消除对用户110持有的用于接收用户输入的附加硬件部件的需求,从而提高人工现实系统10的整体效率,减少人工现实系统10的独立部件之间的通信处理,并且提高所有身体能力水平的用户对人工现实系统10的可访问性。
图1B是描绘根据本公开的技术的另一示例人工现实系统20的图示。类似于图1A的人工现实系统10,在一些示例中,图1B的人工现实系统20可以呈现和控制专门为人工现实环境中的用户交互和操纵而设计的用户界面元素。在各种示例中,人工现实系统20还可以响应于检测到用户的一个或更多个特定手势,生成某些图形用户界面元素并将其渲染给用户。
在图1B的示例中,人工现实系统20包括外部相机102A和102B(统称为“外部相机102”)、HMD 112A-112C(统称为“HMD 112”)、控制器114A和114B(统称为“控制器114”)、控制台106和传感器90。如图1B所示,人工现实系统20表示多用户环境,其中在控制台106和/或HMD 112上执行的人工现实应用基于相应用户的相应参考系的当前观看视角向用户110A-110C(统称为“用户110”)中的每一个呈现人工现实内容。也就是说,在该示例中,人工现实应用通过跟踪和计算每个HMD 112的参考系的姿势信息来构建人工内容。人工现实系统20使用从相机102、HMD 112和控制器114接收的数据来捕获真实世界环境中的3D信息,例如用户110的运动和/或关于用户110和对象108的跟踪信息,用于计算HMD 112的相应参考系的更新姿势信息。作为一个示例,人工现实应用可以基于为HMD 112C确定的当前观看视角,将具有虚拟对象128A-128C(统称为“虚拟对象128”)的人工现实内容122渲染为在空间上覆盖在现实世界对象108A-108C(统称为“现实世界对象108”)上。此外,从HMD 112C的角度来看,人工现实系统20分别基于用户110A、110B的估计位置来渲染化身120A、120B。
HMD 112中的每一个都在人工现实系统20中同时操作。在图1B的示例中,每个用户110可以是人工现实应用中的“玩家(player)”或“参与者(participant)”,并且任何用户110可以是人工现实应用中的“旁观者(spectator)”或“观察者(observer)”。通过跟踪用户110C的手132和/或手臂124,并且将视场130内的手132的部分渲染为人工现实内容122内的虚拟手136,HMD 112C可以各自基本上类似于图1A的HMD 112进行操作。HMD 112B可以从用户110B持有的控制器114A接收用户输入。HMD 112A也可以基本上类似于图1A的HMD 112进行操作,并且通过跟踪用户110A的手132A、132B的移动来接收用户输入。HMD 112B可以从用户110B持有的控制器114接收用户输入。控制器114可以使用诸如蓝牙的短程无线通信的近场通信、使用有线通信链路或使用另一种类型的通信链路来与HMD 112B通信。
以类似于以上关于图1A讨论的示例的方式,人工现实系统20的控制台106和/或HMD 112A生成并渲染用户界面元素,该用户界面元素可以覆盖在显示给用户110A的人工现实内容上。此外,控制台106和/或HMD 112A可以基于经由姿势跟踪对由用户110A执行的直观但有区别的手势的检测来触发用户界面元素的生成和动态显示。例如,人工现实系统20可以响应于检测到用户110A的一个或更多个特定手势,例如用户的手、手指、拇指或手臂的特定运动、构形、位置和/或取向,动态呈现一个或更多个图形用户界面元素。如图1B所示,除了通过结合到HMD 112A中的相机捕获的图像数据之外,来自外部相机102的输入数据可以用于跟踪和检测用户110的手和手臂(例如用户110A的手132A和132B)的特定运动、构形、位置和/或取向,包括手的手指(手指、拇指)的单独和/或组合的运动。
以这种方式,本文描述的技术可以通过检测手132A或132B的捏构形来提供双手文本输入。例如,当人工现实系统20在人工现实内容中为HMD 112A和用户110A输出虚拟键盘时,HMD 112A或相机102可以检测到包括手132A或手132B的手指形成捏构形的运动的手势,如本文所述。在一些示例中,人工现实系统20可以输出分离虚拟键盘,而不是输出单一的虚拟键盘,其中分离键盘输出的一半在手132A的虚拟表示的大致附近,分离键盘输出的另一半在手132B的大致附近。以这种方式,与单一键盘设计相反,人工现实系统20可以在人工现实内容中提供符合人体工程学且自然的分离键盘布局。
类似地,如果人工现实系统20将一个或更多个输入字符分配给图像数据中的手的手指,则人工现实系统20可以分析由相机102和HMD 112A捕获的图像数据,以将一个或更多个输入字符分配给手132A和132B中的每一个上的手指。人工现实系统可以避免将输入字符分配给每只手132A和132B上的一个手指,例如每只手132A和132B的拇指,而是将这些手指分配为每只手132A和132B的选择器手指。然后,人工现实系统20可以监控由相机102或HMD112A捕获的图像数据,以检测形成手势的手132A或132B之一,该手势包括形成捏构形的手132A或132B之一的手指的运动。然后,人工现实系统20可以在特定的时间量内监控图像数据,检测在该时间量内手132A或132B的这两个手指形成捏构形有多少次。然后,人工现实系统20可以基于两个手指形成捏构形的不同次数,处理对手132A或132B的特定手指的输入字符之一的选择。
图2是描绘被配置为根据本公开的技术操作的示例HMD 112的图示。图2的HMD 112可以是图1A和图1B的任何HMD 112的示例。HMD 112可以是人工现实系统(诸如图1A、图1B的人工现实系统10、20)的一部分,或者可作为被配置为实现本文所述技术的独立的、移动的人工现实系统操作。
在该示例中,HMD 112包括前刚性主体和用于将HMD 112固定到用户的带。此外,HMD 112包括面向内部的电子显示器203,该电子显示器被配置为向用户呈现人工现实内容。电子显示器203可以是任何合适的显示技术,诸如液晶显示器(LCD)、量子点显示器、点阵显示器、发光二极管(LED)显示器、有机发光二极管(OLED)显示器、阴极射线管(CRT)显示器、电子墨水、或单色、彩色或能够生成视觉输出的任何其他类型的显示器。在一些示例中,电子显示器是用于向用户的每只眼睛提供单独图像的立体显示器。在一些示例中,当跟踪HMD 112的位置和取向以用于根据HMD 112和用户的当前观看视角渲染人工现实内容时,显示器203相对于HMD 112的前刚性主体的已知取向和位置被用作参照系,也被称为局部原点。在其他示例中,HMD 112可以采取其他可佩戴的头戴式显示器的形式,例如眼镜。
如图2中进一步所示,在该示例中,HMD 112还包括一个或更多个运动传感器206,例如输出表示HMD 112的当前加速度的数据的一个或更多个加速度计(也称为惯性测量单元或“IMU”)、输出表示HMD 112的位置的数据的GPS传感器、输出表示HMD 112距各种对象的距离的数据的雷达或声纳、或提供HMD 112或物理环境中的其他对象的位置或取向的指示的其他传感器。此外,HMD 112可以包括集成的图像捕获设备138A和138B(统称为“图像捕获设备138”),例如摄像机、激光扫描仪、多普勒雷达扫描仪、深度扫描仪等,其被配置为输出表示物理环境的图像数据。更具体地,图像捕获设备138捕获表示物理环境中的对象的图像数据,这些对象在图像捕获设备138的视场130A、130B内,其通常对应于HMD 112的观察视角。HMD 112包括内部控制单元210,该内部控制单元可包括内部电源和一个或更多个印刷电路板,该印刷电路板具有一个或更多个处理器、存储器和硬件以提供用于执行可编程操作的操作环境,从而处理感测数据并在显示器203上呈现人工现实内容。
在一个示例中,根据本文描述的技术,控制单元210被配置为基于感测到的数据,识别用户执行的特定手势或手势组合,并且作为响应,执行动作。例如,响应于一个识别的手势,控制单元210可以生成并渲染覆盖在人工现实内容上的特定用户界面元素,以显示在电子显示器203上。如本文所解释的,根据本公开的技术,控制单元210可以在由图像捕获设备138捕获的图像数据内执行对象识别,以识别手132、手指、拇指、手臂或用户的另一部位,并跟踪所识别部位的移动,以识别用户执行的预定义手势。响应于识别到预定义手势,控制单元210采取一些动作,诸如从与用户界面元素相关联的选项集中选择选项、将手势翻译成输入(例如,字符)、启动应用或以其他方式显示内容等。在一些示例中,控制单元210响应于检测到被指定为用于展现用户界面的“触发”的预定义手势,动态地生成并呈现用户界面元素,例如菜单。在其他示例中,控制单元210响应于来自外部设备(例如控制台106)的指示来执行这些功能,该外部设备可以执行对象识别、运动跟踪和手势检测或其任何部分。
根据本文描述的技术,当显示在显示器203上的人工现实内容包括由一个或更多个虚拟键组成的虚拟键盘时,图像捕获设备138可以捕获包括形成捏构形的用户手132的手指运动的图像数据。根据该图像数据,控制单元210可以检测包括手132的手指形成捏构形的运动的手势。一旦控制单元210检测到形成捏构形的手指的运动的手势,就识别捏构形中涉及的两个手指的接触点,并且控制单元210识别由人工现实内容构成的虚拟环境内的对应位置。如果用于捏构形的接触点对应于虚拟键盘中的虚拟键的位置,则控制单元210可以将形成捏构形的手指的运动或者释放捏构形的手指的运动识别为在对应于接触点的位置处的虚拟键的选择。响应于该选择,控制单元210可以执行与虚拟键的选择相对应的动作,例如将文本字符或其他ASCII字符输入到文本输入框或可以分配给计算系统中键盘的键的任何其他功能。
在本文描述的技术的其他示例中,图像捕获设备138或其他外部相机可以捕获包括用户手132的图像数据。使用该图像数据,控制单元210可以区分用户手132的各个手指。控制单元210然后可以将一个或更多个输入字符分配给在图像数据中捕获的手132中的一个或更多个手指。在一些示例中,控制单元210可以在图像数据中留下手132的一个手指,例如手132的拇指,而不为其分配输入字符,而是将该手指分配为选择器手指。图像捕获设备138然后可以捕获图像数据,该图像数据包括选择器手指和用户手132的控制单元210分配一个或更多个输入字符的第二手指的形成捏构形的运动。一旦控制单元210从图像数据中检测到该运动,控制单元210可以在特定的时间量内监控图像数据,并检测在特定的时间量内两个手指运动形成和释放捏构形有多少不同实例。例如,控制单元210可以检测到,在特定的时间量内,两个手指形成捏构形的运动、释放捏构形的运动、再次形成捏构形的运动、释放捏构形的运动以及再次形成捏构形的运动将构成捏构形的三个不同实例。基于不同实例的这一数量,控制单元210选择分配给与选择器手指一起形成捏构形的特定手指的输入字符中的相应一个。控制单元210使用该选择作为捏构形形成的组合的输入。
图3是示出图1A和图1B的人工现实系统10、20的控制台106和头戴式显示器112的示例实现的框图。在图3的示例中,控制台106根据本文描述的技术,基于感测的数据,例如从HMD 112和/或外部传感器接收的运动数据和图像数据,为HMD 112执行姿势跟踪、手势检测以及用户界面生成和渲染。
在该示例中,HMD 112包括一个或更多个处理器302和存储器304,在一些示例中,处理器302和存储器304提供用于执行操作系统305的计算机平台,操作系统305可以是例如嵌入式实时多任务操作系统或其他类型的操作系统。反过来,操作系统305提供用于执行一个或更多个软件部件307(包括应用引擎340)的多任务操作环境。如参照图2的示例所讨论的,处理器302耦接到电子显示器203、运动传感器206和图像捕获设备138。在一些示例中,处理器302和存储器304可以是单独的、分立的部件。在其他示例中,存储器304可以是与单个集成电路内的处理器302并列放置的片上存储器。
一般来说,控制台106是处理从相机102(图1B)和/或HMD 112接收的图像和跟踪信息以执行HMD 112的手势检测和用户界面生成的计算设备。在一些示例中,控制台106是单个计算设备,例如工作站、台式计算机、膝上型计算机或游戏系统。在一些示例中,控制台106的至少一部分(例如处理器312和/或存储器314)可以分布在云计算系统、数据中心上或分布在网络上,例如互联网、另一公共或私有通信网络,例如宽带、蜂窝、Wi-Fi和/或用于在计算系统、服务器和计算设备之间传输数据的其他类型的通信网络。
在图3的示例中,控制台106包括一个或更多个处理器312和存储器314,在一些示例中,处理器312和存储器314提供用于执行操作系统316的计算机平台,操作系统316可以是例如嵌入式实时多任务操作系统或其他类型的操作系统。继而,操作系统316提供用于执行一个或更多个软件部件317的多任务操作环境。处理器312耦合到一个或更多个I/O接口315,I/O接口315提供一个或更多个I/O接口,用于与例如键盘、游戏控制器、显示设备、图像捕获设备、HMD等的外部设备通信。此外,一个或更多个I/O接口315可以包括一个或更多个有线或无线网络接口控制器(NIC),用于与诸如网络104的网络通信。处理器302、312中的每一个可包括多核处理器、控制器、数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)、或等效的离散或集成逻辑电路中的任何一个或更多个。存储器304、314可包括用于存储数据和可执行软件指令的任何形式的存储器,诸如随机存取存储器(RAM)、只读存储器(ROM)、可编程只读存储器(PROM)、可擦除可编程只读存储器(EPROM)、电可擦除可编程只读存储器(EEPROM)和闪存。
控制台106的软件应用317操作以提供整体人工现实应用。在该示例中,软件应用317包括应用引擎320、渲染引擎322、手势检测器324、姿势跟踪器326和用户界面引擎328。
通常,应用引擎320包括提供和呈现人工现实应用的功能,该人工现实应用例如是电话会议应用、游戏应用、导航应用、教育应用、培训或模拟应用等。应用引擎320可包括,例如,用于在控制台106上实现人工现实应用的一个或更多个软件包、软件库、硬件驱动器和/或应用程序接口(API)。响应于应用引擎320的控制,渲染引擎322生成3D人工现实内容,以由HMD 112的应用引擎340显示给用户。
应用引擎320和渲染引擎322根据参照系的当前姿势信息(通常是由姿势跟踪器326确定的HMD 112的观看视角)构建用于显示给用户110的人工内容。基于当前视角,渲染引擎322构建3D、人工现实内容,其在某些情况下可以至少部分地覆盖在用户110的真实世界3D环境上。在该过程期间,姿势跟踪器326对从HMD 112接收的感测数据(诸如移动信息和用户命令)以及在一些示例中对来自任何外部传感器90(图1A、图1B)(诸如外部相机)的数据进行操作,以捕获真实世界环境内的3D信息,诸如用户110的运动和/或相对于用户110的特征跟踪信息。基于所感测的数据,姿势跟踪器326确定HMD 112的参考系的当前姿势,并且根据当前姿势,构建用于经由一个或更多个I/O接口315传送到HMD 112以显示给用户110的人工现实内容。
此外,基于所感测的数据,手势检测器324分析跟踪到的用户的对象(例如,手、手臂、手腕、手指、手掌、拇指)的运动、构形、位置和/或取向,以识别用户110执行的一个或更多个手势。更具体地,手势检测器324分析在由HMD 112的图像捕获设备138和/或传感器90和外部相机102捕获的图像数据中识别的对象,以识别用户110的手和/或手臂,并跟踪手和/或手臂相对于HMD 112的移动,以识别用户110执行的手势。手势检测器324可以基于捕获的图像数据来跟踪手、手指和/或手臂的移动,包括位置和取向的改变,并将对象的运动矢量与手势库330中的一个或更多个条目进行比较,以检测用户110执行的手势或手势组合。手势库330中的一些条目可以各自将手势定义为一系列或模式的运动,例如用户的手、特定手指、拇指、手腕和/或手臂的相对路径或空间平移和旋转。手势库330中的一些条目可以各自将手势定义为用户的手和/或手臂(或其部分)在特定时间或一段时间内的构形、位置和/或取向。手势类型的其他示例也是可能的。此外,手势库330中的每个条目可以为所定义的手势或一系列手势指定触发动作的手势或一系列手势所需的条件,例如与HMD 112的当前视场的空间关系、与用户当前正在观察的特定区域的空间关系,这可以通过个人的实时凝视跟踪、正在显示的人工内容的类型、正在执行的应用的类型等来确定。
手势库330中的每个条目还可以为每个定义的手势或手势组合/系列指定要由软件应用317执行的期望响应或动作。例如,根据本公开的技术,某些专用手势可以被预定义,使得响应于检测到预定义手势之一,用户界面引擎328动态地生成用户界面作为向用户显示的人工现实内容的叠加,从而允许用户110即使在与人工现实内容交互时也能够容易地调用用于配置HMD 112和/或控制台106的用户界面。在其他示例中,某些手势可以与其他动作相关联,例如提供输入、选择对象、启动应用等。
根据本文描述的技术,图像捕获设备138可以被配置成捕获代表物理环境的图像数据。HMD 112可以被配置成输出人工现实内容。在一个示例中,渲染引擎322可以被配置为渲染具有多个虚拟键的虚拟键盘,作为由HMD 112输出的人工现实内容的叠加。在一些情况下,键盘可以是QWERTY键盘的虚拟表示,尽管也可以根据本文描述的技术来渲染其他键盘。在一些情况下,QWERTY键盘的虚拟表示可以是连续QWERTY键盘的虚拟表示。在其他实例中,QWERTY键盘的虚拟表示可以是分离QWERTY键盘的两半的虚拟表示,分离QWERTY键盘的第一半与第一只手相关联,分离QWERTY键盘的第二半与第二只手相关联。
手势检测器324可以被配置成从由图像捕获设备138捕获的图像数据中识别与手势库330中的条目匹配的手势。例如,手势检测器324检测到的特定手势可以是手的第一手指和手的第二手指形成捏构形的运动。当手势检测器324检测到这样的手势时,手势检测器324可以识别处于捏构形中的第一手指和第二手指之间的接触点,并确定接触点的位置是否对应于虚拟键盘的任何虚拟键的位置。作为示例,手势检测器324可以确定接触点在对应于虚拟键盘的多个虚拟键中的第一虚拟键的位置。在该示例中,用户界面引擎328响应于检测到的手势来处理对第一虚拟键的选择。
在一些情况下,手势检测器324可以进一步确定,在形成捏构形的手指的运动之后,在确定手势完成之前,发生释放捏形态的手指的附加运动,而不是简单地检测形成捏构形的手的手指的运动的手势。在这种情况下,手势检测器324可以将接触点的位置确定为刚好在捏构形被释放之前的接触点的位置,这将允许用户在选择虚拟键之前在捏构形中在虚拟键盘四处移动他们的手。在一些进一步的实例中,除了需要捏构形的形成和捏构形的释放之外,手势检测器324可能需要检测捏构形在被释放之前保持了阈值时间量,以便减少键盘中的意外输入。
在一些情况下,在识别手势之前,手势检测器324可以从由图像捕获设备138或外部相机捕获的图像数据中识别手的第一手指相对于虚拟键盘的位置,以及手的第二手指相对于虚拟键盘的位置。手势检测器324然后可以计算从手的第一手指的位置到手的第二手指的位置的选择向量,并确定选择向量和虚拟键盘的交叉点。如果第一手指和第二手指形成捏构形,该交叉点将对应于预测的接触点。渲染引擎322可以渲染选择向量和/或交叉点的图形指示,例如通过渲染代表选择向量本身的线,在虚拟键盘上渲染代表交叉点的形状,例如圆形或点,如果交叉点与特定虚拟键重叠,则用与虚拟键盘的剩余虚拟键不同的配色方案或填充不同的图案来渲染虚拟键盘的特定虚拟键,或者上述的任意组合,或者可以提供选择向量和/或交叉点的图形指示的任何其他渲染。在识别手势时,手势检测器324可以将捏构形的接触点检测为选择向量和虚拟键盘的第一虚拟键的交叉点。
响应于手势检测器324确定接触点的位置对应于第一虚拟键,用户界面引擎328可以被配置成响应于所识别的手势来处理对第一虚拟键的选择。
在一些示例中,除了单手输入之外,手势检测器324还可以识别双手输入,使得控制台106能够检测虚拟键盘的多个虚拟键的复合输入。在这种情况下,当第一只手的第一手指和第二手指处于捏构形时,手势检测器324可以从由图像捕获设备138捕获的图像数据中识别第二手势。第二手势可以包括第二只手的第一手指和第二只手的第二手指形成第二捏构形的第二运动。在第二捏构形中,手势检测器324可以将处于捏构形中的第二只手的第一手指和第二只手的第二手指之间的接触点识别为对应于虚拟键盘的多个虚拟键中的第二虚拟键的位置。一旦检测到该第二手势,响应于第一手势和第二手势的同时识别,用户界面引擎328可以接收第一虚拟键和第二虚拟键的组合选择。例如,如果第一虚拟键对应于虚拟键盘的“SHIFT”键,并且第二虚拟键对应于虚拟键盘的“p”键,则用户界面引擎328可以接收大写的“P”字符作为组合选择的输出。
当用户界面引擎328接收到用户输入时,无论是第一虚拟键的单一输入还是第一虚拟键和第二虚拟键的组合选择,渲染引擎322都可以响应于所识别的手势来渲染用户输入的指示。例如,作为所选文本字段(text field)的一部分,渲染引擎322可以渲染对应于第一虚拟键的字符,并且HMD 112可以输出该字符以在电子显示器203上显示。
作为本公开的技术的另一示例,手势检测器324可以从图像数据中识别对应于手势库330中的条目的手势。在该示例中,手势检测器324可以将手势识别为手的第一手指和手的第二手指在阈值时间量内形成特定次数的捏构形的运动。
用户界面引擎328可以将一个或更多个输入字符分配给手的多个手指中的一个或更多个。例如,用户界面引擎328可以从由图像捕获设备138或外部相机捕获的图像数据中识别图像数据中手的多个手指。用户界面引擎328可以将一个或更多个输入字符分配给手上的手指的某个子集,例如手的除了被指定为选择器手指的一个手指(例如,手的拇指)之外的所有手指。一个或更多个输入字符可以是字母、数字、符号、其他特殊字符(例如,空格字符或退格字符)或“NULL”字符中的任何一个。在该分配方案中,手势检测器324检测到选择器手指和手的给定手指之间的不同捏构形的次数可以对应于用户选择了分配给给定手指的多个输入字符中的哪个输入字符。在一些情况下,分配给每个手指的输入字符可以是用户界面引擎328分配给每个手指的输入字符的输入字符的不同集合。在一些情况下,“NULL”字符也可以被分配给已经被分配了输入字符的每个手指,如果原始选择是错误的,则使得用户能够将分配给给定手指的输入字符循环到“NULL”字符。用户界面引擎328可以响应于所识别的手势,处理对分配给手的第二手指的一个或更多个输入字符中的第一输入字符的选择。
在一些示例中,用户界面引擎328可以将分配给手的第二手指的输入字符的不同集合中的一个或更多个输入字符中的每一个映射到小于或等于该不同集合的基数(cardinality)的选择数字。然后,用户界面引擎328可以基于映射到第一输入字符的选择数字等于手的第一手指和手的第二手指在所识别的手势的阈值时间量内形成捏构形的特定次数,确定对第一输入字符的选择。换句话说,如果字符“a”、“b”和“c”各自被分配给第二手指,那么该不同集合的基数可以等于3。这样,字符“a”可以被映射到数字1,字符“b”可以被映射到数字2,并且字符“c”可以被映射到数字3。如果手势检测器324在所识别的手势中识别出3个不同的捏构形,则用户界面引擎328可以确定期望的输入字符是“c”字符。
在其他情况下,用户界面引擎328可以通过将手的第一手指和手的第二手指在所识别的手势的阈值时间量内形成捏构形的特定次数除以该不同集合的基数来计算带余数的商。用户界面引擎328然后可以基于映射到第一输入字符的选择数字等于余数来确定对第一输入字符的选择。换句话说,如果字符“a”、“b”和“c”都被分配给第二手指,那么不同集合的基数可以等于3。这样,字符“a”可以被映射到数字1,字符“b”可以被映射到数字2,并且字符“c”可以被映射到数字0。如果手势检测器324在所识别的手势中识别出4个不同的捏构形,则用户界面引擎328可以将不同捏构形(即4)除以该不同集合的基数(即3)的商计算为1,余数为1。给定余数1,并且字符“a”被映射到数字1,用户界面引擎328可以确定期望的输入字符是“a”字符。
在一些情况下,当手势检测器324在阈值时间量内检测手势时,渲染引擎322可以渲染分配给手的第二手指的一个或更多个输入字符中的当前输入字符,该当前输入字符将基于手的第一手指和手的第二手指在阈值时间段内形成捏构形的当前次数来选择。例如,在字符“a”、“b”和“c”各自被分配给第二手指的示例中,在由第一手指和第二手指形成的第一个捏构形时,渲染引擎322可以渲染字符“a”,用于在HMD 112的显示器上输出。如果在阈值时间段内,手势检测器324检测到捏构形的释放,随后是附加的捏构形,则渲染引擎322可以用字符“b”的渲染替换字符“a”的渲染,以此类推,直到阈值时间量过去。
当图像捕获设备138捕获到包括两只手的图像数据时,用户界面引擎328可以对第二只手重复分配过程。例如,除了分配给第一只手的各个手指的输入字符的不同集合之外,用户界面引擎328还可以将输入字符的不同集合分配给第二只手的多个手指中的一个或更多个的每个手指。以这种方式,每只手的拇指可以被指定为选择器手指,每只手的剩余手指为系统提供文本输入选项。
在一些情况下,为了帮助用户识别哪个手指将产生哪些字符,渲染引擎322可以将分配给手的多个手指中的一个或更多个手指的一个或更多个字符渲染为手在人工现实内容中的虚拟表示的叠加。渲染中这种字符的顺序可以对应于手势检测器324必须检测的不同捏构形的数量,以便用户界面引擎328选择特定字符。
在仅将字母或字母和数字的组合分配给一只或多只手的手指的示例中,可以在手势库330中包括附加手势的条目,用于输入特殊字符,例如符号、空格字符或退格字符。在这样的示例中,手势检测器324可以从由图像捕获设备138捕获的图像数据中识别第二手势,例如双手拍手或单手形成拳头。用户界面引擎328可以将一个或更多个特殊输入字符分配给第二手势,并且响应于所识别的第二手势,处理对分配给第二手势的一个或更多个特殊输入字符中的第一特殊输入字符的选择。
在某些情况下,阈值时间量可能是动态的。例如,手势检测器324可以将阈值时间量定义为手势检测器324识别到最近的(most recent)捏构形之后的特定时间量。在其他情况下,手势检测器324可以将阈值时间量定义为一旦手势检测器324识别出除了第一手指和第二手指之间的捏构形之外的新手势就结束。例如,如果手势检测器324在两次不同的时间检测到第一手指和第二手指形成捏构形的第一手势,然后手势检测器324在为第一手势给出的预定义阈值时间量内检测到手的第一手指和第三手指形成捏构形的第二手势,则手势检测器324可以动态地切断第一手势的输入时间,并且用户界面引擎328可以选择映射到数字2的输入字符作为输入字符。手势检测器324然后可以开始在图像数据中监视第二手势,以确定第一手指和第三手指形成捏构形的不同次数。这样,控制台106和HMD 112可以更快地在文本输入过程中导航。
图4是描绘根据本公开的技术由图1A和图1B的人工现实系统的HMD 112执行手势检测和用户界面生成的示例的框图。
在这个示例中,类似于图3,HMD 112包括一个或更多个处理器302和存储器304,在一些示例中,处理器302和存储器304提供用于执行操作系统305的计算机平台,操作系统305可以是例如嵌入式实时多任务操作系统或其它类型的操作系统。继而,操作系统305提供用于执行一个或更多个软件部件417的多任务操作环境。此外,处理器302耦接到电子显示器203、运动传感器206和图像捕获设备138。
在图4的示例中,软件部件417操作以提供整体人工现实应用。在该示例中,软件应用417包括应用引擎440、渲染引擎422、手势检测器424、姿势跟踪器426和用户界面引擎428。在各种示例中,软件部件417类似于图3的控制台106的对应部件(例如,应用引擎320、渲染引擎322、手势检测器324、姿势跟踪器326和用户界面引擎328)来操作,以根据检测到的用户110的手势来构建覆盖在人工内容上或作为人工内容的一部分的用户界面元素,以显示给用户110。在一些示例中,渲染引擎422构建3D人工现实内容,该内容可以至少部分地覆盖在用户110的真实世界物理环境上。
类似于参考图3描述的示例,基于感测到的数据,手势检测器424分析用户的对象(例如,手、手臂、手腕、手指、手掌、拇指)的被跟踪的运动、构形、位置和/或取向,以识别用户110执行的一个或更多个手势。根据本公开的技术,用户界面引擎428生成用户界面元素作为要向用户110显示的人工现实内容的一部分,例如覆盖在其上,和/或基于由手势检测器424检测到的用户110的一个或更多个手势或手势组合来执行动作。更具体地,手势检测器424分析在由HMD 112的图像捕获设备138和/或传感器90或外部相机102捕获的图像数据中识别的对象,以识别用户110的手和/或手臂,并跟踪手和/或手臂相对于HMD 112的移动,以识别用户110执行的手势。手势检测器424可以基于捕获的图像数据来跟踪手、手指和/或手臂的移动,包括位置和取向的改变,并将对象的运动矢量与手势库430中的一个或更多个条目进行比较,以检测用户110执行的手势或手势组合。
手势库430类似于图3的手势库330。手势库430中的每个条目可以为所定义的手势或一系列手势指定手势触发动作所需的条件,例如与HMD 112的当前视场的空间关系、与用户当前正在观察的特定区域的空间关系,这可以通过个人的实时凝视跟踪、正在显示的人工内容的类型、正在执行的应用的类型等来确定。
响应于检测到匹配手势或手势组合,HMD 112执行分配给手势库430中匹配条目的响应或动作。例如,根据本公开的技术,某些专用手势可以被预定义,使得响应于手势检测器424检测到预定义手势之一,用户界面引擎428动态地生成用户界面作为向用户显示的人工现实内容的叠加,从而允许用户110在观看人工现实内容时容易地调用用于配置HMD 112的用户界面。在其他示例中,响应于手势检测器424检测到预定义手势之一,用户界面引擎428和/或应用引擎440可以接收输入、选择与用户界面元素相关联的值或参数、启动应用、修改可配置设置、发送消息、启动或停止过程或执行其他动作。
根据本文描述的技术,图像捕获设备138可以被配置成捕获代表物理环境的图像数据。HMD 112可以被配置成输出人工现实内容。渲染引擎422可以被配置成渲染具有多个虚拟键的虚拟键盘,作为由HMD 112输出的人工现实内容的叠加。在一些情况下,键盘可以是QWERTY键盘的虚拟表示,尽管也可以根据本文描述的技术来渲染其他键盘。在一些情况下,QWERTY键盘的虚拟表示可以是连续QWERTY键盘的虚拟表示。在其他实例中,QWERTY键盘的虚拟表示可以是分离QWERTY键盘的两半的虚拟表示,分离QWERTY键盘的第一半与第一只手相关联,分离QWERTY键盘的第二半与第二只手相关联。
手势检测器424可以被配置成从由图像捕获设备138捕获的图像数据中识别与手势库430中的条目匹配的手势。例如,手势检测器424检测到的特定手势可以是手的第一手指和手的第二手指形成捏构形的运动。当手势检测器424检测到这种捏构形时,手势检测器424可以定位处于捏构形中的第一手指和第二手指之间的接触点,确定接触点的位置是否对应于虚拟键盘的任何虚拟键的位置。在图4的示例中,手势检测器424可以确定接触点在对应于虚拟键盘的多个虚拟键中的第一虚拟键的位置。
在一些情况下,手势检测器424可以进一步确定,在形成捏构形的手指运动之后,在确定手势完成之前,手指释放捏构形的附加运动发生,而不是简单地检测形成捏构形的手的手指运动的手势。在这种情况下,手势检测器424可以将接触点的位置确定为刚好在捏构形被释放之前的接触点的位置,这将允许用户在选择虚拟键之前在捏构形中在虚拟键盘四处移动他们的手。在一些进一步的实例中,除了需要捏构形的形成和捏构形的释放之外,手势检测器424可能需要检测捏构形在被释放之前被保持了阈值时间量,以便减少键盘中的意外输入。
在一些情况下,在识别手势之前,手势检测器424可以从由图像捕获设备138或外部相机捕获的图像数据中识别手的第一手指相对于虚拟键盘的位置,以及手的第二手指相对于虚拟键盘的位置。手势检测器424然后可以计算从手的第一手指的位置到手的第二手指的位置的选择向量,并确定选择向量和虚拟键盘的交叉点。如果第一手指和第二手指形成捏构形,该交叉点将对应于预测的接触点。渲染引擎422可以渲染选择向量和/或交叉点的图形指示,例如通过渲染代表选择向量本身的线,渲染代表交叉点的在虚拟键盘上的形状,如果交叉点与特定虚拟键重叠,则用与虚拟键盘的剩余虚拟键不同配色方案或填充不同的图案来渲染虚拟键盘的特定虚拟键,以上的任何组合,或者可以提供选择向量和/或交叉点的图形指示的任何其他渲染。在识别手势时,手势检测器424可以检测捏构形的接触点作为选择向量和虚拟键盘的第一虚拟键的交叉点。
响应于手势检测器424确定接触点的位置对应于第一虚拟键,用户界面引擎428可以被配置成响应于所识别的手势来处理对第一虚拟键的选择。
在一些示例中,除了单手输入之外,手势检测器424还可以识别双手输入,使得HMD112能够检测虚拟键盘的多个虚拟键的复合输入。在这种情况下,当第一手指和第二手指处于捏构形时,手势检测器424可以从由图像捕获设备138或外部相机捕获的图像数据中识别第二手势。第二手势可以包括第二只手的第一手指和第二只手的第二手指形成第二捏构形的第二运动。在第二捏构形中,手势检测器424可以将处于捏构形中的第二只手的第一手指和第二只手的第二手指之间的接触点识别为对应于虚拟键盘的多个虚拟键中的第二虚拟键的位置。一旦检测到该第二手势,响应于第一手势和第二手势的同时识别,用户界面引擎428可以接收第一虚拟键和第二虚拟键的组合选择。例如,如果第一虚拟键对应于虚拟键盘的“SHIFT”键,并且第二虚拟键对应于虚拟键盘的“9”键,则用户界面引擎428可以接收“(”字符作为组合选择的输出。
当用户界面引擎428接收到最终输入时,无论是第一虚拟键和第二虚拟键的组合选择中的第一虚拟键的单一输入,渲染引擎422都可以响应于所识别的手势来渲染对第一虚拟键的选择的指示。例如,作为所选文本字段的一部分,渲染引擎422可以渲染对应于所选文本字段内的第一虚拟键的字符,并且用户界面引擎428可以输出该字符以在电子显示器203上显示。
根据本文描述的其他技术,图像捕获设备138可以捕获代表物理环境的图像数据。HMD 112可以输出人工现实内容。
手势检测器424然后可以从图像数据中识别对应于手势库430中的条目的手势。在该示例中,手势检测器424可以将手势识别为手的第一手指和手的第二手指在阈值时间量内形成特定次数的捏构形的运动。
用户界面引擎428可以将一个或更多个输入字符分配给手的多个手指中的一个或更多个。例如,用户界面引擎428可以从由图像捕获设备138捕获的图像数据中识别图像数据中手的多个手指。用户界面引擎428可以将一个或更多个输入字符分配给手上的手指的某个子集,例如手的除了被指定为选择器手指的一个手指(例如,手的拇指)之外的所有手指。一个或更多个输入字符可以是字母、数字、符号、其他特殊字符(例如,空格字符或退格字符)或“NULL”字符中的任何一个。在一些情况下,分配给每个手指的输入字符可以是用户界面引擎428分配给每个手指的输入字符的输入字符不同集合。在一些情况下,“NULL”字符也可以被分配给分配了输入字符的每个手指,如果选择是错误的,则使用户能够在输入字符中循环到“NULL”字符。利用该映射,用户界面引擎328可以响应于所识别的手势,处理对分配给手的第二手指的一个或更多个输入字符中的第一输入字符的选择。
在该映射中,手势检测器424检测到不同捏构形的次数可以对应于手势选择了多个输入字符中的哪个输入字符。例如,用户界面引擎428可以将分配给手的第二手指的输入字符的不同集合中的一个或更多个输入字符中的每一个映射到小于或等于该不同集合的基数的选择数字。
在一些情况下,用户界面引擎428然后可以基于映射到第一输入字符的选择数字等于手的第一手指和手的第二手指在所识别的手势的阈值时间量内形成捏构形的特定次数来确定对第一输入字符的选择。换句话说,如果字符“a”、“b”和“c”都被分配给第二手指,那么不同集合的基数可以等于3。这样,字符“a”可以被映射到数字1,字符“b”可以被映射到数字2,并且字符“c”可以被映射到数字3。如果手势检测器424在所识别的手势中识别出3个不同的捏构形,则用户界面引擎428可以确定期望的输入字符是“c”字符。
在其他情况下,用户界面引擎428可以通过将手的第一手指和手的第二手指在所识别的手势的阈值时间量内形成捏构形的特定次数除以该不同集合的基数来计算带余数的商。用户界面引擎428然后可以基于映射到第一输入字符的选择数字等于余数来确定对第一输入字符的选择。换句话说,如果字符“a”、“b”和“c”都被分配给第二手指,那么不同集合的基数可以等于3。这样,字符“a”可以被映射到数字1,字符“b”可以被映射到数字2,并且字符“c”可以被映射到数字0。如果手势检测器424在所识别的手势中识别出4个不同的捏构形,则用户界面引擎428可以将不同捏构形(即4)除以该不同集合的基数(即3)的商计算为1,余数为1。给定余数1,并且字符“a”被映射到数字1,用户界面引擎428可以确定期望的输入字符是“a”字符。
在一些情况下,当手势检测器424在阈值时间量内检测到手势时,渲染引擎422可以渲染分配给手的第二手指的一个或更多个输入字符中的当前输入字符,该当前输入字符将基于手的第一手指和手的第二手指在阈值时间段内形成捏构形的当前次数来选择。例如,在字符“a”、“b”和“c”各自被分配给第二手指的示例中,在由第一手指和第二手指形成的第一捏构形时,渲染引擎422可以渲染字符“a”,用于在HMD 112的电子显示器203上输出。如果在阈值时间段内,手势检测器424检测到捏构形的释放,随后是附加的捏构形,则渲染引擎422可以用字符“b”的渲染来替换字符“a”的渲染,以此类推,直到阈值时间量过去。
当图像捕获设备138捕获包括两只手的图像数据时,用户界面引擎428可以对第二只手重复分配过程。例如,除了分配给第一只手的各个手指的输入字符的不同集合之外,用户界面引擎428还可以将输入字符的不同集合分配给第二只手的多个手指中的一个或更多个的每个手指。以这种方式,每只手的拇指可以被指定为选择器手指,每只手的剩余手指为系统提供文本输入选项。
在一些情况下,为了帮助用户识别哪个手指将产生哪些字符,渲染引擎422可以将分配给手的多个手指中的一个或更多个手指的一个或更多个字符渲染为手在人工现实内容中的虚拟表示的叠加。渲染中这种字符的顺序可以对应于手势检测器424必须检测的不同捏构形的数量,以便用户界面引擎428选择特定字符。
在仅将字母或字母和数字的组合分配给一只或多只手的手指的示例中,可以在手势库430中包括附加手势的条目,用于输入特殊字符,例如符号、空格字符或退格字符。在这样的示例中,手势检测器424可以从由图像捕获设备138捕获的图像数据中识别第二手势。用户界面引擎428可以将一个或更多个特殊输入字符分配给第二手势,并且响应于所识别的第二手势,处理对分配给第二手势的一个或更多个特殊输入字符中的第一特殊输入字符的选择。
在某些情况下,阈值时间量可能是动态的。例如,手势检测器424可以将阈值时间量定义为手势检测器424识别到最近的捏构形之后的特定时间量。在其他情况下,手势检测器424可以将阈值时间量定义为一旦手势检测器424识别出除了第一手指和第二手指之间的捏构形之外的新手势就结束。例如,如果手势检测器424在5次不同的时间检测到第一手指和第二手指形成捏构形的第一手势,然后手势检测器424检测到第一手指和手的第三手指在为第一手势给出的预定阈值时间量内形成捏构形的第二手势,则手势检测器424可以动态地切断第一手势的输入时间,并且用户界面引擎428可以选择映射到数字5的输入字符作为输入字符。手势检测器424然后可以开始在图像数据中监视第二手势,以确定第一手指和第三手指形成捏构形的不同次数。这样,HMD 112可以更快地在文本输入过程中导航。
图5A和图5B是描绘根据本公开的技术的示例人工现实系统的图示,该系统被配置为输出虚拟键盘并检测在对应于虚拟键盘的虚拟键的位置处捏构形的形成。图5的HMD 512可以是图1A和图1B的任何HMD 112的示例。HMD 512可以是人工现实系统(诸如图1A、图1B的人工现实系统10、20)的一部分,或者可作为被配置为实现本文所述技术的独立的、移动的人工现实系统操作。虽然以下描述描述了HMD 512执行各种动作,但是连接到HMD 512的控制台或者控制台或HMD 512内的特定引擎可以执行本文描述的各种功能。例如,HMD 512内部的渲染引擎或连接到HMD 512的控制台可以执行渲染操作,并且HMD 512内部的手势检测器或连接到HMD 512的控制台可以根据本文描述的一种或更多种技术分析图像数据以检测手632A或632B的手指形成捏构形的运动。
在图5A中,HMD 512的图像捕获设备538捕获表示在图像捕获设备538的视场530内的真实世界物理环境中的对象的图像数据。视场530通常对应于HMD 512的视角。在一些示例中,例如图5A所示的示例,人工现实应用将用户510的手532在视场530内的部分渲染为覆盖在人工现实内容522内的虚拟背景526之上的虚拟手536。在其他示例中,人工现实应用可以在包括混合现实和/或增强现实的人工现实内容522中呈现用户510的手532的真实世界图像。在任一示例中,用户510能够将他们的手532在视场530内的部分视为人工现实内容522内的对象。在图5A的示例中,人工现实内容522还包括虚拟键盘560,该虚拟键盘560具有包括虚拟键540A的多个虚拟键,虚拟键540A被分配有字符“n”。在该示例中,虚拟键盘560是连续的QWERTY键盘的虚拟表示。
HMD 512可以渲染虚拟键盘560,使得它看起来位于虚拟手536的顶部,虚拟手536手掌面向上以反映(mirror)手532的构形。HMD 512可以渲染虚拟手536的拇指,使得它看起来在虚拟键盘560之上延伸,而HMD 512可以渲染虚拟手536的剩余手指,使得剩余手指看起来落在虚拟键盘560之下。这样,当HMD 512检测到拇指和手532的另一手指形成捏构形的运动时,HMD 512渲染该运动,使得拇指和附加手指运动形成捏构形,虚拟键盘560在捏构形之间。
在图5B中,HMD 512的图像捕获设备538捕获执行手势的用户510的手532的图像数据,该手势包括手532的第一手指和第二手指(例如,拇指和食指)形成捏构形的运动。基于在物理环境中给定位置处的手532的捕获图像数据,HMD 512可以将虚拟手536渲染为在人工现实环境中相应位置处的人工现实内容522的叠加。当从图像数据中检测到手势时,HMD512可以确定处于捏构形中的两个手指之间的接触点的位置对应于虚拟键540A的位置。这样,HMD 512可以处理对虚拟键540A或“n”字符的选择,作为用户输入。HMD 512然后可以在人工现实内容522中渲染和输出文本字段550,以包括所选择的“n”字符。HMD 512还可以渲染虚拟键540A,使得虚拟键540A的填充或图案不同于虚拟键盘560中的其余虚拟键,例如通过反转虚拟键540A的配色方案,以便提供所选虚拟键的附加视觉指示。
图6A和图6B是描绘根据本公开的技术的示例人工现实系统的图示,该系统被配置为输出分离虚拟键盘并检测在对应于分离虚拟键盘的虚拟键的位置处捏构形的形成。图6的HMD 612可以是图1A和图1B的任何HMD 112的示例。HMD 612可以是人工现实系统(诸如图1A、图1B的人工现实系统10、20)的一部分,或者可作为被配置为实现本文所述技术的独立的、移动的人工现实系统操作。虽然以下描述描述了HMD 612执行各种动作,但是连接到HMD612的控制台或者控制台或HMD 612内的特定引擎可以执行本文描述的各种功能。例如,HMD612内部的渲染引擎或连接到HMD 612的控制台可以执行渲染操作,并且HMD 612内部的手势检测器或连接到HMD 612的控制台可以根据本文描述的一种或更多种技术分析图像数据以检测手632A或632B的手指形成捏构形的运动。
在图6A中,HMD 612的图像捕获设备638A和638B捕获表示在图像捕获设备638A和638B的视场630A和630B内的现实世界、物理环境中的对象的图像数据。视场630A和630B通常对应于HMD 612的观察视角。在一些示例中,例如图6A所示的示例,人工现实应用将用户610的手632A和632B在视场630A和630B内的部分渲染为人工现实内容622内的虚拟手636A和636B。在其他示例中,人工现实应用可以在包括混合现实和/或增强现实的人工现实内容622中呈现用户610的手632A和632B的真实世界图像。在任一示例中,用户610能够将他们的手632A和632B在视场630A和630B内的部分视为人工现实内容622内的对象。在图6A的示例中,人工现实内容622还包括分别用于手632A和632B中的每一个的虚拟键盘660A和660B,它们覆盖在人工现实内容622中的背景626的顶部。在该示例中,虚拟键盘660A和660B是包括多个虚拟键的分离QWERTY键盘的两半的虚拟表示,包括分配给“z”字符的虚拟键640A和分配给“k”字符的虚拟键640B。
HMD 612可以渲染虚拟键盘,使得虚拟键盘660A看起来位于虚拟手636A的顶部,并且使得虚拟键盘660B看起来位于虚拟手636B的顶部,每个虚拟手都手掌面向上,以分别反映手632A和632B的构形。HMD 612可以渲染虚拟手636A和636B的拇指,使得它们看起来分别在虚拟键盘660A和660B之上延伸,而HMD 612可以渲染虚拟手636A和636B的剩余手指,使得剩余手指看起来分别落在虚拟键盘660A和660B之下。这样,当HMD 612检测到拇指和手632A或632B中的一个的另一个手指形成捏构形的运动时,HMD 612渲染该运动,使得拇指和附加手指运动形成捏构形,虚拟键盘660A或660B中的相应一个在捏构形之间。
如图6A所示,人工现实内容622还包括选择向量642A和642B。HMD 612可以通过识别每只手630A和630B的第一手指的位置、识别每只手630A和630B的第二手指的位置、以及计算选择向量642A和642B作为连接相应手632A和632B的相应手指的位置的向量来计算这些选择向量。选择向量642A和642B与虚拟键盘660A和660B的交叉点分别对应于手630A和630B的手指的预测接触点。例如,HMD 612可以确定选择向量642A和虚拟键盘660A的交叉点对应于虚拟键640A,并且选择向量642B和虚拟键盘660B的交叉点对应于虚拟键640B。HMD612可以渲染虚拟键640A和640B,使得虚拟键640A和640B的填充或图案不同于虚拟键盘660A和660B中的其余虚拟键,例如通过反转虚拟键640A和640B的配色方案,以便提供如果相应手632A或632B的手指形成捏构形将选择哪些虚拟键的附加的视觉指示。
在图6B中,图像捕获设备638A和/或638B捕获用户610的手632B的图像数据,该用户610执行包括手632B的第一手指和第二手指(例如,拇指和食指)形成捏构形的运动的手势。基于在物理环境中给定位置处捕获的手632B的图像数据,HMD 612可以将虚拟手636B渲染为在人工现实环境中相应位置的人工现实内容622的叠加。当从图像数据中检测到手势时,HMD 612可以确定处于捏构形中的手632B的两个手指之间的接触点的位置对应于虚拟键640B的位置。这样,HMD 612可以处理虚拟键640B或“k”字符的选择,作为用户输入。HMD612然后可以在人工现实内容622中渲染和输出文本字段650,以包括所选择的“k”字符。
图7A和图7B是描绘根据本公开的技术的示例人工现实系统的图示,该系统被配置为检测特定次数的捏构形的形成,并基于捏构形中涉及的特定手指和检测到特定次数的捏构形的形成来接收输入字符作为用户输入。图7的HMD 712可以是图1A和图1B的任何HMD112的示例。HMD 712可以是人工现实系统(诸如图1A、图1B的人工现实系统10、20)的一部分,或者可作为被配置为实现本文所述技术的独立的、移动的人工现实系统操作。虽然以下描述描述了HMD 712执行各种动作,但是连接到HMD 712的控制台或者控制台或HMD 712内的特定引擎可以执行本文描述的各种功能。例如,HMD 712内部的渲染引擎或连接到HMD712的控制台可以执行渲染操作,并且HMD 712内部的手势检测器或连接到HMD 712的控制台可以根据本文描述的一种或更多种技术分析图像数据以检测手732A或732B的手指形成捏构形的运动。
在图7A中,HMD 712的图像捕获设备738A和738B捕获表示在图像捕获设备738A和738B的视场730A和730B内的现实世界、物理环境中的对象的图像数据。视场730A和730B通常对应于HMD 712的观察视角。在一些示例中,例如图7A所示的示例,人工现实应用将用户710的手732A和732B在视场730A和730B内的部分渲染为覆盖在人工现实内容722内的背景726之上的虚拟手736A和736B。在其他示例中,人工现实应用可以在包括混合现实和/或增强现实的人工现实内容722中呈现用户710的手732A和732B的真实世界图像。在任一示例中,用户710能够将他们的手732A和732B在视场730A和730B内的部分视为人工现实内容722内的对象。
在图7A的示例中,人工现实内容722还包括输入字符集740A-740H(统称为“输入字符集740”)。根据本文描述的技术,HMD 712可以在由图像捕获设备738A和738B捕获的图像数据中检测手掌面向上的手732A和732B。HMD 712可以将输入字符集740中的一个分配给虚拟手736A和736B的一些手指,留下至少一个手指(例如,虚拟手736A和736B中的每一个的拇指)而没有分配给它们的输入字符从而作为虚拟手736A和736B中的每一个的输入选择手指。HMD 712然后可以渲染分配给虚拟手736A和736B的相应手指的特定输入字符
在图7B中,图像捕获设备738A和/或738B捕获执行手势的用户710的手732A的图像数据,该手势包括手732A的第一手指和第二手指(例如,拇指和中指)在阈值时间段内形成特定次数的捏构形的运动。从检测到第一捏构形开始,HMD 712可以检测到手732A在阈值时间量内两次用输入选择手指(即拇指)和分配给输入字符集740B的手指(即中指)不同地形成捏构形(即,HMD 712检测到手732A形成捏构形,释放捏构形,然后形成一个后续的捏构形)。HMD 712可以基于输入字符集740B分配给捏构形中涉及的手指以及手732A形成捏构形的不同次数,确定选择的输入字符是“e”字符。这样,HMD 712可以接收对“e”字符的选择作为用户输入。HMD 712然后可以在人工现实内容722中渲染和输出文本字段750,以包括所选择的“e”字符。虽然未示出,但是在HMD 712检测到第一捏构形的形成之后但在HMD 712检测到第二捏构形的形成之前,HMD 712可以在人工现实内容722中渲染和输出文本字段750,以包括“d”字符;在检测到手732A的第二捏构形的形成时,用“e”字符替换“d”字符。
图8是示出根据本文描述的技术的用于人工现实系统的示例技术的流程图,该人工现实系统被配置为输出虚拟键盘并检测在对应于虚拟键盘的虚拟键的位置处的捏构形的形成。示例操作可以由HMD 112单独或结合来自图1的控制台106来执行。以下是该过程的步骤,尽管根据本公开的技术执行的过程的其他示例可以包括附加步骤或者可以不包括下面列出的步骤中的一些。虽然以下描述描述了HMD 112执行各种动作,但是连接到HMD 112的控制台(例如,控制台106)或者控制台106或HMD 112内的特定引擎可以执行本文描述的各种功能。例如,根据本文描述的一种或更多种技术,HMD 112内部的渲染引擎或连接到HMD112的控制台106可以执行渲染操作,并且HMD 112内部的手势检测器或连接到HMD 112的控制台106可以分析图像数据以检测形成捏构形的手的手指的运动。
根据本文描述的技术,HMD 112或其他图像捕获设备(例如图1B的相机102)捕获代表物理环境的图像数据(802)。HMD 112渲染人工现实内容和具有多个虚拟键的虚拟键盘,作为对人工现实内容的覆盖(804)。HMD 112然后输出人工现实内容和虚拟键盘(806)。HMD112从图像数据中识别手势,该手势包括手的第一手指和手的第二手指形成捏构形的运动(808)。当处于捏构形时,第一手指和第二手指之间的接触点对应于虚拟键盘的多个虚拟键中的第一虚拟键的位置。这样,HMD 112响应于所识别的手势来处理对第一虚拟键的选择(810)。
图9是示出根据本公开的技术的示例人工现实系统的示例技术的流程图,该示例人工现实系统被配置为检测特定次数的捏构形的形成,并且基于捏构形中涉及的特定手指和检测到的特定次数的捏构形的形成来接收输入字符作为用户输入。示例操作可以由HMD112单独或结合来自图1的控制台106来执行。以下是该过程的步骤,尽管根据本公开的技术执行的过程的其他示例可以包括附加步骤或者可以不包括下面列出的步骤中的一些。虽然以下描述描述了HMD 112执行各种动作,但是连接到HMD 112的控制台(例如,控制台106)或者控制台106或HMD 112内的特定引擎可以执行本文描述的各种功能。例如,根据本文描述的一种或更多种技术,HMD 112内部的渲染引擎或连接到HMD 112的控制台106可以执行渲染操作,并且HMD 112内部的手势检测器或连接到HMD 112的控制台106可以分析图像数据以检测形成捏构形的手的手指的运动。
根据本文描述的技术,HMD 112或其他图像捕获设备(例如图1B的相机102)捕获代表物理环境的图像数据(902)。HMD 112输出人工现实内容(904)。HMD 112可以从图像数据中识别手势,该手势包括手的第一手指和手的第二手指在阈值时间量内形成特定次数的捏构形的运动(906)。HMD 112将一个或更多个输入字符分配给手的多个手指中的一个或更多个(908)。响应于所识别的手势,HMD 112处理对分配给手的第二手指的一个或更多个输入字符中的第一输入字符的选择(910)。
本公开中描述的技术可以至少部分地以硬件、软件、固件或其任何组合实现。例如,所述技术的各个方面可在一个或更多个处理器内实现,该处理器包括一个或更多个微处理器、DSP、专用集成电路(ASIC)、现场可编程门阵列(FPGA)、或任何其他等效的集成或离散逻辑电路,以及此类部件的任何组合。术语“处理器”或“处理电路”一般可指前述逻辑电路中的任一种(单独或与其他逻辑电路组合),或任何其他等效电路。包括硬件的控制单元也可执行本公开的一种或更多种技术。
此类硬件、软件和固件可在相同的设备内或在单独的设备内实现以支持本公开中描述的各种操作和功能。此外,所述单元、模块或部件中的任一个可一起或单独地实现为离散的但可互操作的逻辑设备。将不同特征描述为模块或单元旨在突出不同的功能方面,并不一定意味着此类模块或单元必须由单独的硬件或软件部件实现。相反,与一个或更多个模块或单元相关联的功能可以由单独的硬件或软件部件执行,或者集成在公共或单独的硬件或软件部件内。
在本公开中描述的技术还可在包含指令的计算机可读介质(诸如计算机可读存储介质)中体现或编码。嵌入或编码在计算机可读存储介质中的指令可以例如在执行指令时致使可编程处理器或其他处理器执行方法。计算机可读存储介质可包括随机存取存储器(RAM)、只读存储器(ROM)、可编程只读存储器(PROM)、可擦除可编程只读存储器(EPROM)、电可擦除可编程只读存储器(EEPROM)、闪存、硬盘、CD-ROM、软盘、盒式磁带、磁介质、光学介质或其他计算机可读介质。
如本文通过各种示例所描述的,本公开的技术可包括人工现实系统或结合人工现实系统来实现。如所描述的,人工现实是在呈现给用户之前已经以某种方式调整的现实的形式,其可包括例如虚拟现实(VR)、增强现实(AR)、混合现实(MR)、混杂现实、或其某种组合和/或衍生物。人工现实内容可以包括完全生成的内容或与捕获的内容(例如,真实世界的照片)相结合的生成的内容。人工现实内容可以包括视频、音频、触觉反馈、或其某种组合,且其中任何一个都可以在单个通道中或在多个通道中被呈现(例如向观看者产生三维效果的立体视频)。另外,在一些实施例中,人工现实可以与应用、产品、附件、服务或其某种组合相关联,这些应用、产品、附件、服务或其某种组合例如用于在人工现实中创建内容和/或在人工现实中被使用(例如,在人工现实中执行活动)。提供人工现实内容的人工现实系统可以在各种平台上实现,这些平台包括连接到主计算机系统的头戴式显示器(HMD)、独立的HMD、移动设备或计算系统、或者能够向一个或更多个观看者提供人工现实内容的任何其他硬件平台。
已经描述了本公开的各种示例。设想了所描述的系统、操作或功能的任何组合。这些和其他示例都在所附权利要求的范围内。

Claims (20)

1.一种人工现实系统,包括:
图像捕获设备,其被配置为捕获代表物理环境的图像数据;
头戴式显示器(HMD),其被配置为输出人工现实内容;
手势检测器,其被配置为从所述图像数据中识别包括手的第一手指和所述手的第二手指在阈值时间量内形成特定次数的捏构形的运动的手势;和
用户界面引擎,其被配置为将一个或更多个输入字符分配给所述手的多个手指中的一个或更多个手指,并且响应于所识别的手势,处理对分配给所述手的第二手指的一个或更多个输入字符中的第一输入字符的选择。
2.根据权利要求1所述的人工现实系统,还包括渲染引擎,所述渲染引擎被配置为将分配给所述手的多个手指中的一个或更多个手指的一个或更多个字符渲染为所述手的图像的叠加。
3.根据权利要求1所述的人工现实系统,其中,为了分配所述一个或更多个输入字符,所述用户界面引擎被配置为向所述手的多个手指中的一个或更多个手指的每个手指分配输入字符的不同集合。
4.根据权利要求3所述的人工现实系统,其中,所述手包括第一只手,并且其中,所述用户界面引擎还被配置为向第二只手的多个手指中的一个或更多个手指的每个手指分配输入字符的不同集合。
5.根据权利要求1所述的人工现实系统,其中,分配给所述手的第二手指的所述一个或更多个输入字符包括输入字符的不同集合,并且其中,所述用户界面引擎还被配置为:
将分配给所述手的第二手指的输入字符的不同集合中的一个或更多个输入字符中的每一个映射到小于或等于所述不同集合的基数的选择数字。
6.根据权利要求5所述的人工现实系统,其中,为了接收对所述第一输入字符的选择,所述用户界面引擎被配置成:
基于映射到所述第一输入字符的选择数字等于所述手的第一手指和所述手的第二手指在所识别的手势的阈值时间量内形成所述捏构形的特定次数,来确定对所述第一输入字符的选择。
7.根据权利要求5所述的人工现实系统,其中,为了接收对所述第一输入字符的选择,所述用户界面引擎被配置成:
通过将在所识别的手势的阈值时间量内所述手的第一手指和所述手的第二手指形成所述捏构形的特定次数除以所述不同集合的基数来计算具有余数的商;和
基于映射到所述第一输入字符的选择数字等于所述余数来确定对所述第一输入字符的选择。
8.根据权利要求1所述的人工现实系统,还包括渲染引擎,所述渲染引擎被配置为在所述手势期间渲染分配给所述手的第二手指的所述一个或更多个输入字符中的当前输入字符,所述当前输入字符将基于所述手的第一手指和所述手的第二手指在所述阈值时间段内形成所述捏构形的当前次数来被选择。
9.根据权利要求1所述的人工现实系统,其中,所述手势包括第一手势,
其中,所述手势检测器还被配置成从所述图像数据中识别第二手势;并且
其中,所述用户界面引擎被配置为将一个或更多个特殊输入字符分配给所述第二手势,并且响应于所识别的第二手势,处理对分配给所述第二手势的一个或更多个特殊输入字符中的第一特殊输入字符的选择。
10.根据权利要求1所述的人工现实系统,其中,所述一个或更多个输入字符包括字母、数字、符号或空字符中的一个或更多个。
11.根据权利要求1所述的人工现实系统,其中,所述图像捕获设备集成在所述HMD内。
12.一种方法,包括:
由人工现实系统的图像捕获设备捕获代表物理环境的图像数据;
由所述人工现实系统的头戴式显示器(HMD)输出人工现实内容;
从所述图像数据中识别包括手的第一手指和所述手的第二手指在阈值时间量内形成特定次数的捏构形的运动的手势;
将一个或更多个输入字符分配给所述手的多个手指中的一个或更多个手指;和
响应于所识别的手势,处理对分配给所述手的第二手指的一个或更多个输入字符中的第一输入字符的选择。
13.根据权利要求12所述的方法,还包括将分配给所述手的多个手指中的一个或更多个手指的一个或更多个字符渲染为所述手的图像的叠加。
14.根据权利要求12所述的方法,其中,所述手包括第一只手,并且其中,分配所述一个或更多个输入字符包括:
将输入字符的不同集合分配给所述第一只手的多个手指中的一个或更多个手指的每个手指;和
将输入字符的不同集合分配给第二只手的多个手指中的一个或更多个手指的每个手指。
15.根据权利要求12所述的方法,其中,分配给所述手的第二手指的所述一个或更多个输入字符包括输入字符的不同集合,并且其中,所述用户界面引擎还被配置为:
将分配给所述手的第二手指的输入字符的不同集合中的一个或更多个输入字符中的每一个映射到小于或等于所述不同集合的基数的选择数字。
16.根据权利要求15所述的方法,其中,接收对所述第一输入字符的选择包括:
基于映射到所述第一输入字符的选择数字等于所述手的第一手指和所述手的第二手指在所识别的手势的阈值时间量内形成所述捏构形的特定次数,来确定对所述第一输入字符的选择。
17.根据权利要求15所述的方法,其中,接收对所述第一输入字符的选择包括:
通过将在所识别的手势的阈值时间量内所述手的第一手指和所述手的第二手指形成所述捏构形的特定次数除以所述不同集合的基数来计算具有余数的商;和
基于映射到所述第一输入字符的选择数字等于所述余数来确定对所述第一输入字符的选择。
18.根据权利要求12所述的方法,还包括在所述手势期间渲染分配给所述手的第二手指的所述一个或更多个输入字符中的当前输入字符,所述当前输入字符将基于所述手的第一手指和所述手的第二手指在所述阈值时间段内形成所述捏构形的当前次数来被选择。
19.根据权利要求12所述的方法,其中,所述手势包括第一手势,并且其中,所述方法还包括:
从所述图像数据中识别第二手势;
将一个或更多个特殊输入字符分配给所述第二手势;和
响应于所识别的第二手势,处理对分配给所述第二手势的一个或更多个特殊输入字符中的第一特殊输入字符的选择。
20.一种包括指令的非暂时性计算机可读介质,所述指令在被执行时,使得人工现实系统的一个或更多个处理器:
捕获代表物理环境的图像数据;
输出人工现实内容;
从所述图像数据中识别包括手的第一手指和所述手的第二手指在阈值时间量内形成特定次数的捏构形的运动的手势;
将一个或更多个输入字符分配给所述手的多个手指中的一个或更多个手指;和
响应于所识别的手势,处理对分配给所述手的第二手指的一个或更多个输入字符中的第一输入字符的选择。
CN202080031604.6A 2019-06-07 2020-06-08 具有手指映射自触觉输入方法的人工现实系统 Pending CN113785262A (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US16/435,139 2019-06-07
US16/435,139 US10955929B2 (en) 2019-06-07 2019-06-07 Artificial reality system having a digit-mapped self-haptic input method
PCT/US2020/036580 WO2020247908A1 (en) 2019-06-07 2020-06-08 Artificial reality system having a digit-mapped self-haptic input method

Publications (1)

Publication Number Publication Date
CN113785262A true CN113785262A (zh) 2021-12-10

Family

ID=71899887

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202080031604.6A Pending CN113785262A (zh) 2019-06-07 2020-06-08 具有手指映射自触觉输入方法的人工现实系统

Country Status (6)

Country Link
US (1) US10955929B2 (zh)
EP (1) EP3953798A1 (zh)
JP (1) JP2022534639A (zh)
KR (1) KR20220016984A (zh)
CN (1) CN113785262A (zh)
WO (1) WO2020247908A1 (zh)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20220050527A1 (en) * 2020-08-12 2022-02-17 Himax Technologies Limited Simulated system and method with an input interface
US11600051B2 (en) * 2021-04-23 2023-03-07 Google Llc Prediction of contact points between 3D models
CN113253908B (zh) * 2021-06-22 2023-04-25 腾讯科技(深圳)有限公司 按键功能执行方法、装置、设备及存储介质
US20230135974A1 (en) * 2021-11-04 2023-05-04 Microsoft Technology Licensing, Llc Multi-factor intention determination for augmented reality (ar) environment control
US11914789B2 (en) * 2022-01-20 2024-02-27 Htc Corporation Method for inputting letters, host, and computer readable storage medium
WO2023155672A1 (en) * 2022-02-15 2023-08-24 Beijing Source Technology Co., Ltd. Input device model projecting method, apparatus and system
US20230384928A1 (en) * 2022-05-31 2023-11-30 Snap Inc. Ar-based virtual keyboard
US11947122B1 (en) * 2022-12-08 2024-04-02 Varjo Technologies Oy Tracking system and method incorporating selective control of light sources of controller

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120306740A1 (en) * 2011-05-30 2012-12-06 Canon Kabushiki Kaisha Information input device using virtual item, control method therefor, and storage medium storing control program therefor
US20140267044A1 (en) * 2013-03-14 2014-09-18 Carl F. Andersen Columnar fitted virtual keyboard
US20180329209A1 (en) * 2016-11-24 2018-11-15 Rohildev Nattukallingal Methods and systems of smart eyeglasses

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20150261429A1 (en) * 2014-01-02 2015-09-17 Benjamin Firooz Ghassabian Systems to enhance data entry in mobile and fixed environment
GB0801396D0 (en) 2008-01-25 2008-03-05 Bisutti Giovanni Electronic apparatus
JP5751775B2 (ja) 2010-09-01 2015-07-22 キヤノン株式会社 撮像装置、その制御方法及びプログラム並びに記録媒体
US9116616B2 (en) 2011-02-10 2015-08-25 Blackberry Limited Portable electronic device and method of controlling same
JP5715007B2 (ja) 2011-08-29 2015-05-07 京セラ株式会社 表示機器
CH705918A2 (de) * 2011-12-19 2013-06-28 Ralf Trachte Feld-Analysen für flexible Computer-Eingabe.
US8902198B1 (en) 2012-01-27 2014-12-02 Amazon Technologies, Inc. Feature tracking for device input
GB2500416B8 (en) * 2012-03-21 2017-06-14 Sony Computer Entertainment Europe Ltd Apparatus and method of augmented reality interaction
JP2014238725A (ja) 2013-06-07 2014-12-18 シャープ株式会社 情報処理装置および制御プログラム
US10139906B1 (en) * 2014-01-29 2018-11-27 Guiyu Bai Ring human-machine interface
US9524142B2 (en) 2014-03-25 2016-12-20 Honeywell International Inc. System and method for providing, gesture control of audio information
US20160004300A1 (en) * 2014-07-07 2016-01-07 PinchVR Inc. System, Method, Device and Computer Readable Medium for Use with Virtual Environments
US10419655B2 (en) * 2015-04-27 2019-09-17 Snap-Aid Patents Ltd. Estimating and using relative head pose and camera field-of-view
US10388071B2 (en) 2016-03-25 2019-08-20 Sony Interactive Entertainment Inc. Virtual reality (VR) cadence profile adjustments for navigating VR users in VR environments
US11243293B2 (en) 2017-02-07 2022-02-08 Samsung Electronics Company, Ltd. Radar-based system for sensing touch and in-the-air interactions
US10963066B2 (en) 2017-06-26 2021-03-30 Seoul National University R&Db Foundation Keyboard input system and keyboard input method using finger gesture recognition
US11321965B2 (en) * 2018-07-10 2022-05-03 Dell Products, L.P. Scalable gesture and eye-gaze tracking in virtual, augmented, and mixed reality (xR) applications

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120306740A1 (en) * 2011-05-30 2012-12-06 Canon Kabushiki Kaisha Information input device using virtual item, control method therefor, and storage medium storing control program therefor
US20140267044A1 (en) * 2013-03-14 2014-09-18 Carl F. Andersen Columnar fitted virtual keyboard
US20180329209A1 (en) * 2016-11-24 2018-11-15 Rohildev Nattukallingal Methods and systems of smart eyeglasses

Also Published As

Publication number Publication date
JP2022534639A (ja) 2022-08-03
WO2020247908A1 (en) 2020-12-10
EP3953798A1 (en) 2022-02-16
US10955929B2 (en) 2021-03-23
KR20220016984A (ko) 2022-02-10
US20200387229A1 (en) 2020-12-10

Similar Documents

Publication Publication Date Title
CN113826058A (zh) 具有自触觉虚拟键盘的人工现实系统
US10890983B2 (en) Artificial reality system having a sliding menu
US11003307B1 (en) Artificial reality systems with drawer simulation gesture for gating user interface elements
CN113785262A (zh) 具有手指映射自触觉输入方法的人工现实系统
US11334212B2 (en) Detecting input in artificial reality systems based on a pinch and pull gesture
US20200387286A1 (en) Arm gaze-driven user interface element gating for artificial reality systems
US11086475B1 (en) Artificial reality systems with hand gesture-contained content window
US10921879B2 (en) Artificial reality systems with personal assistant element for gating user interface elements
US11043192B2 (en) Corner-identifiying gesture-driven user interface element gating for artificial reality systems
US10990240B1 (en) Artificial reality system having movable application content items in containers
US11422669B1 (en) Detecting input using a stylus in artificial reality systems based on a stylus movement after a stylus selection action
US10852839B1 (en) Artificial reality systems with detachable personal assistant for gating user interface elements

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
CB02 Change of applicant information

Address after: California, USA

Applicant after: Yuan Platform Technology Co.,Ltd.

Address before: California, USA

Applicant before: Facebook Technologies, LLC

CB02 Change of applicant information