CN113892075A - 用于人工现实系统的拐角识别手势驱动的用户界面元素选通 - Google Patents

用于人工现实系统的拐角识别手势驱动的用户界面元素选通 Download PDF

Info

Publication number
CN113892075A
CN113892075A CN202080039021.8A CN202080039021A CN113892075A CN 113892075 A CN113892075 A CN 113892075A CN 202080039021 A CN202080039021 A CN 202080039021A CN 113892075 A CN113892075 A CN 113892075A
Authority
CN
China
Prior art keywords
gesture
hand
artificial reality
user
orientation
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
CN202080039021.8A
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 CN113892075A publication Critical patent/CN113892075A/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/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/03Arrangements for converting the position or the displacement of a member into a coded form
    • G06F3/0304Detection arrangements using opto-electronic means
    • 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
    • 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/002Specific input/output arrangements not covered by G06F3/01 - G06F3/16
    • G06F3/005Input arrangements through a video camera
    • 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/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0481Interaction techniques based on graphical user interfaces [GUI] based on specific properties of the displayed interaction object or a metaphor-based environment, e.g. interaction with desktop elements like windows or icons, or assisted by a cursor's changing behaviour or appearance
    • G06F3/04815Interaction with a metaphor-based environment or interaction object displayed as three-dimensional, e.g. changing the user viewpoint with respect to the environment or object
    • 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
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T19/00Manipulating 3D models or images for computer graphics
    • G06T19/006Mixed reality
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V40/00Recognition of biometric, human-related or animal-related patterns in image or video data
    • G06V40/20Movements or behaviour, e.g. gesture recognition
    • G06V40/28Recognition of hand or arm movements, e.g. recognition of deaf sign language
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G5/00Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators
    • G09G5/36Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators characterised by the display of a graphic pattern, e.g. using an all-points-addressable [APA] memory
    • G09G5/37Details of the operation on graphic patterns
    • G09G5/377Details of the operation on graphic patterns for mixing or overlaying two or more graphic patterns
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2200/00Indexing scheme for image data processing or generation, in general
    • G06T2200/04Indexing scheme for image data processing or generation, in general involving 3D image data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2200/00Indexing scheme for image data processing or generation, in general
    • G06T2200/24Indexing scheme for image data processing or generation, in general involving graphical user interfaces [GUIs]
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G2354/00Aspects of interface with display user

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • Computer Graphics (AREA)
  • Multimedia (AREA)
  • Health & Medical Sciences (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • General Health & Medical Sciences (AREA)
  • Psychiatry (AREA)
  • Social Psychology (AREA)
  • User Interface Of Digital Computer (AREA)

Abstract

描述了一种人工现实系统,其在人工现实环境中渲染、呈现和控制用户界面元素,并响应于检测到的用户的一个或更多个手势来执行动作。该人工现实系统包括图像捕获设备、头戴式显示器(HMD)、手势检测器、用户界面(UI)引擎和渲染引擎。图像捕获设备捕获代表物理环境的图像数据。HMD输出人工现实内容。手势检测器从图像数据中识别包括手的构形的手势,该手在至少阈值时间段内基本静止并且被定位成使得手的食指和拇指形成近似直角。UI引擎响应于所识别的手势生成UI元素。渲染引擎将UI元素渲染为对人工现实内容的叠加。

Description

用于人工现实系统的拐角识别手势驱动的用户界面元素选通
相关申请的交叉引用
本申请要求2019年6月7日提交的美国申请第16/435,079号的优先权,该申请的内容为了所有目的通过引用以其整体并入本文。
技术领域
本公开总体上涉及人工现实系统,例如虚拟现实、混合现实、增强现实和/或其他计算机介导的现实系统(computer-mediated reality system),且更具体地,涉及人工现实系统的用户界面。
背景
人工现实系统正变得越来越普遍,应用于许多领域,诸如计算机游戏、健康和安全、工业和教育。作为几个示例,人工现实系统正在被合并到移动设备、游戏机、个人计算机、电影院和主题公园中。通常,人工现实是在呈现给用户之前已经以某种方式调整的现实的形式,其可包括例如虚拟现实(VR)、增强现实(AR)、混合现实(MR)、混杂现实(hybridreality)、或其某种组合和/或衍生物。
典型人工现实系统包括用于渲染和向用户显示内容的一个或更多个设备。作为一个示例,人工现实系统可合并头戴式显示器(HMD),该HMD由用户佩戴并且被配置为向用户输出人工现实内容。人工现实内容可包括完全生成内容或与捕获内容(例如,真实世界视频和/或图像)组合的生成内容。在操作期间,用户通常与人工现实系统交互,以选择内容、启动应用或以其他方式配置系统。
概述
总的来说,本公开描述了人工现实系统,更具体地,描述了用于在人工现实环境中呈现和控制用户界面(UI)元素的系统配置和技术。本公开的技术和系统配置的一些示例涉及响应于检测或识别到由用户执行的特定手势而调用UI元素。UI元素的调用在本公开中也被称为“触发(triggering)”UI元素或“选通(gating)”UI元素。这种UI元素的示例包括但不限于用户可选选项的菜单。本公开的各方面还涉及响应于检测到某些手势来修改当前渲染的UI元素,诸如通过响应于这些手势来改变UI元素的取向或数据粒度级别。
例如,描述了人工现实系统,其响应于检测到由用户执行的如在人工现实系统可访问的手势库中定义的一个或更多个预定义手势,生成并渲染图形UI元素以显示给用户。这种手势的示例包括用户的手、手指、拇指或手臂的特定运动、移动、静态构形(configuration)、移动构形、位置、相对位置和/或取向,或者预定义手势的组合。在一些示例中,人工现实系统还可以响应于结合其他条件的特定手势的检测来触发图形用户界面元素的生成和渲染,其他条件例如是物理环境中特定手势相对于用户的当前视场的位置和取向,这可以通过用户的实时凝视跟踪来确定,或者相对于用户佩戴的HMD的姿势(pose)来确定。
在一些示例中,人工现实系统可以生成并呈现图形UI(GUI)元素作为相对于当前正在人工现实系统的显示器内渲染的人工现实内容的叠加元素(overlay element)。UI元素可以例如包括交互式GUI元素,或者是交互式GUI元素的一部分,例如用户与之交互以操作人工现实系统的菜单或子菜单。在一些情况下,UI元素可以包括单独的GUI元素,例如可由用户选择和/或操纵的元素。在各种示例中,这种单独的GUI元素包括切换(或可切换)元素、下拉元素、菜单选择元素(例如,基于复选框的菜单(checkbox-based menu))、二维或三维形状、图形输入键或键盘、内容显示窗口等中的一个或更多个。
在一个示例中,一种人工现实系统包括图像捕获设备、头戴式显示器(HMD)、手势检测器、用户界面(UI)引擎和渲染引擎。图像捕获设备被配置成捕获代表物理环境的图像数据。HMD被配置为输出人工现实内容。手势检测器被配置成从图像数据识别手势,该手势包括手的构形,该手在至少阈值时间段内基本静止并且被定位成使得手的食指和拇指形成近似直角。UI引擎被配置成响应于所识别的手势生成UI元素。渲染引擎被配置为将UI元素渲染为对人工现实内容的叠加。
在另一个示例中,一种方法包括由头戴式显示器(HMD)输出人工现实内容,以及由HMD捕获代表物理环境的图像数据。该方法还包括由手势检测器从图像数据识别手势,该手势包括手在至少阈值时间段内基本静止并且被定位成使得手的食指和拇指形成近似直角。该方法还包括由用户界面(UI)引擎响应于所识别的手势生成UI元素,并且由渲染引擎将UI元素渲染为对人工现实内容的叠加。
在另一个示例中,一种非暂时性计算机可读存储介质被编码有指令,当指令被执行时,使得人工现实系统的处理电路:通过头戴式显示器(HMD)输出人工现实内容,从HMD接收代表物理环境的图像数据,从图像数据识别手势,该手势包括手在至少阈值时间段内基本静止并且被定位成使得手的食指和拇指形成近似直角,响应于所识别的手势生成UI元素,并且将UI元素渲染为对人工现实内容的叠加。
在另一个示例中,一种系统包括用于经由头戴式显示器(HMD)输出人工现实内容的装置,以及用于捕获代表物理环境的图像数据的装置。该系统还包括用于从图像数据识别手势的装置,该手势包括手在至少阈值时间段内基本静止并且被定位成使得手的食指和拇指形成近似直角。该系统还包括用于响应于所识别的手势生成UI元素的装置,以及用于将UI元素渲染为对人工现实内容的叠加的装置。
在一些示例中,提供了一种人工现实系统,包括:图像捕获设备,该图像捕获设备被配置为捕获代表物理环境的图像数据;头戴式显示器(HMD),该HMD被配置为输出人工现实内容;手势检测器,该手势检测器被配置为:从图像数据识别手势,该手势包括手在至少阈值时间段内基本静止并且被定位成使得手的食指和拇指形成近似直角的构形;用户界面(UI)引擎,该UI引擎被配置为响应于所识别的手势生成UI元素;以及渲染引擎,该渲染引擎被配置为将UI元素渲染为对人工现实内容的叠加。
在一些实施例中,手的定位可以是手的第一定位,其中所识别的手势是第一手势,其中为了生成UI元素,UI引擎被配置为生成UI元素以符合由第一手势指示的第一取向,其中手势检测器被进一步配置为:从图像数据识别手的第二定位,并且识别由手势库中与手的第二定位匹配的另一条目表示的第二手势;其中,UI引擎还被配置为修改UI元素以符合基于所识别的第二手势的第二取向,并且其中,渲染引擎还被配置为根据第二取向渲染UI元素。
在一些实施例中,第二手势可以表示相对于第一手势的90度手旋转和180度手映像(reflection)。
在一些实施例中,第一UI取向可以是纵向取向(portrait orientation),并且其中第二UI取向是横向取向(landscape orientation)。
在一些实施例中,第一UI取向可以包括包含在第二UI取向中的用户可选选项的子集。
在一些实施例中,所识别的手势可以指示UI元素的左下角的位置和UI元素在人工现实内容中的取向。
在一些实施例中,由从图像数据识别的手的食指和拇指形成的直角的拐角可以指示UI的左下角在人工现实内容中的位置。
在一些实施例中,从图像数据识别的手的食指的定位可以指示UI在人工现实内容中的取向,其中UI的长边基本上与手的食指对齐。
在一些实施例中,为了识别包括在至少阈值时间段内基本静止并且被定位成使得手的食指和拇指形成近似直角的手的手势,手势检测器可以被配置成将手势识别为由手势库中的条目表示。
在一些实施例中,图像捕获设备集成在HMD内。
在一些示例中,提供了一种方法,包括:由头戴式显示器(HMD)输出人工现实内容;由HMD捕获代表物理环境的图像数据;由手势检测器从图像数据识别手势,该手势包括手在至少阈值时间段内基本静止并且被定位成使得手的食指和拇指形成近似直角;响应于所识别的手势,由用户界面(UI)引擎生成UI元素;以及由渲染引擎将UI元素渲染为对人工现实内容的叠加。
在一些实施例中,手的定位可以是手的第一定位,其中所识别的手势是第一手势,其中生成UI元素包括由UI引擎生成UI元素以符合由第一手势指示的第一取向,该方法还包括:由手势检测器从图像数据识别手的第二定位,由手势检测器识别由手势库中与手的第二定位匹配的另一条目表示的第二手势;由UI引擎修改UI元素,以符合基于所识别的第二手势的第二取向;以及由渲染引擎根据第二取向渲染UI元素。
在一些实施例中,第二手势可以表示相对于第一手势的90度手旋转和180度手映像。
在一些实施例中,第一UI取向可以是纵向取向,并且其中第二UI取向是横向取向。
在一些实施例中,第一UI取向可以包括包含在第二UI取向中的用户可选选项的子集。
在一些实施例中,所识别的手势可以指示UI元素的左下角的位置和UI元素在人工现实内容中的取向。
在一些实施例中,由从图像数据识别的手的食指和拇指形成的直角的拐角可以指示UI的左下角在人工现实内容中的位置。
在一些实施例中,从图像数据识别的手的食指的定位可以指示UI在人工现实内容中的取向,其中UI的长边基本上与手的食指对齐。
在一些实施例中,识别手势可以包括由手势检测器将手势识别为由手势库中的条目表示。
在一些示例中,提供了用指令编码的非暂时性计算机可读存储介质,所述指令在被执行时使得人工现实系统的处理电路:通过头戴式显示器(HMD)输出人工现实内容;从HMD接收代表物理环境的图像数据;从图像数据识别手势,该手势包括在至少阈值时间段内基本静止并且被定位成使得手的食指和拇指形成近似直角的手;响应于所识别的手势生成UI元素;并将UI元素渲染为对人工现实内容的叠加。
这样,本公开的系统配置和技术使得人工现实系统的用户能够通过执行特定手势来调用或选通由人工现实内容表示的虚拟环境中的特定UI元素。在各种示例中,人工现实系统可以将检测到的图像数据与存储在人工现实系统可访问的手势库中的预定义手势相匹配。在各种实施方式中,本公开的人工现实系统可以用预定义手势来填充手势库的条目,该预定义手势可以在不按压物理或虚拟按钮的情况下执行,并且在一些情况下,可以使用单手来执行。本公开的人工现实系统在常规人工现实操作过程中利用独特的手势,以在人工现实环境中使用这些特定手势对UI元素进行选通。
应当理解,本文中描述的适于结合到本公开的一个或更多个示例中的任何特征旨在可推广到本公开的任何和所有示例和实施例。本公开的技术的一个或更多个示例的细节在附图和下面的描述中阐述。本发明的其他特征、目的和优点将从说明书和附图以及权利要求中显而易见。
附图简述
图1A是描绘根据本公开的技术在人工现实环境中呈现和控制用户界面元素的示例人工现实系统的图示。
图1B是描绘根据本公开技术的另一示例人工现实系统的图示。
图2是描绘根据本公开的技术操作的示例HMD的图示。
图3是示出图1A和图1B的人工现实系统的控制台和HMD的示例实现的框图。
图4是描绘根据本公开的技术由图1A和图1B的人工现实系统的HMD执行手势检测和用户界面生成的示例的框图。
图5是示出根据本公开的手势驱动的UI元素选通技术,本公开的人工现实系统可以执行的过程的流程图。
图6A-图6D示出了手的基于拐角的选通构形(corner-based gatingconfiguration)以及本公开的人工现实系统可以响应于手的基于拐角的选通构形的识别而调用的UI元素。
图7A和图7B示出了手的圆形边界构形(rounded-boundary configuration),本公开的人工现实系统可以检测手的圆形边界构形作为用于选通由人工现实内容表示的虚拟环境内的某些UI元素的刺激(stimuli)。
图8A和图8B示出了手臂的构形,本公开的人工现实系统可以检测该手臂的构形作为用于选通由人工现实内容表示的虚拟环境内的某些UI元素的刺激。
图9A-图9C示出了根据本公开的一些方面形成抓握和投掷手势(grip-and-throwgesture)的手的各种构形,本公开的人工现实系统可以响应于该手势选通UI元素。
图10A和图10B示出了手和相对手臂(opposite arm)的各种构形,本公开的手势检测器可以使用这些构形来检测通常对应于源自相对手臂的预定区域的抓握(或“握持(holding)”或“抓取(grabbing)”)手势的手势。
图11示出了源自相对手腕的手的抓握和拉动手势(grip-and-pull gesture)以及本公开的人工现实系统可以响应于抓握和拉动手势的识别而调用的UI元素。
在整个附图和说明书中,相同的参考字符表示相同的元件。
详细描述
图1A是描绘根据本公开的技术在人工现实环境中呈现和控制用户界面元素的示例人工现实系统10的图示。在一些示例实现中,人工现实系统10响应于由用户110执行并由人工现实系统10和/或其部件检测到的一个或更多个手势,生成图形用户界面元素并将其渲染给用户110。也就是说,如本文所述,人工现实系统10响应于检测到用户110执行的一个或更多个特定手势,例如用户的手、手指、拇指、手臂等的特定运动、构形、位置和/或取向,呈现一个或更多个图形用户界面元素124、126。
在一些示例中,人工现实系统10可以基于满足的附加条件来检测预定义的手势,该附加条件例如是可以通过用户的实时凝视跟踪来确定的物理环境中手臂134(例如,手腕)和/或手132(或其手指)的部分相对于用户110的当前视场130的位置和取向,或其他条件。在其他示例中,人工现实系统10呈现并控制专门为人工现实环境中的用户交互和操纵而设计的用户界面元素,例如菜单选择元素(例如,包括一个或更多个用户可选选项的菜单)、专用切换元素、下拉元素、图形输入键或键盘、内容显示窗口等。
在图1A的示例中,人工现实系统10包括头戴式设备(HMD)112、控制台106以及在一些示例中的一个或更多个外部传感器90。如所示的,HMD 112通常由用户110佩戴,并且包括用于向用户110呈现人工现实内容122的电子显示器和光学组件。此外,HMD 112包括一个或更多个传感器(例如,加速度计),用于跟踪HMD 112的运动。HMD 112可以包括一个或更多个图像捕获设备138,例如相机、行扫描仪(line scanner)等。图像捕获设备138可以被配置为捕获周围物理环境的图像数据。在该示例中,控制台106被示为单个计算设备,诸如游戏机、工作站、台式计算机或膝上型计算机。
在其他示例中,控制台106可分布在多个计算设备上,诸如分布式计算网络、数据中心或云计算系统。如该示例所示,控制台106、HMD 112和传感器90可以经由网络104通信耦合,网络104可以是有线或无线网络,例如基于
Figure BDA0003374968730000081
Figure BDA0003374968730000082
的网络、以太网、网状网络或短程无线(例如
Figure BDA0003374968730000083
)通信介质。尽管在该示例中,HMD 112被示出为与控制台106通信,例如系留(tethered to)到控制台或与控制台进行无线通信,但在一些实现中,HMD 112作为独立的移动人工现实系统进行操作。
通常,人工现实系统10使用从真实世界三维(3D)物理环境捕获的信息来渲染人工现实内容122以显示给用户110。在图1A的示例中,用户110观看由在控制台106和/或HMD112上执行的人工现实应用构建和渲染的人工现实内容122。作为一个示例,人工现实内容122可以是消费者游戏应用,其中用户110被渲染为具有一个或更多个虚拟对象128A、128B的化身120。在一些示例中,人工现实内容122可以包括现实世界图像和虚拟对象的混合,例如混合现实和/或增强现实。在其他示例中,人工现实内容122可以是例如视频会议应用、导航应用、教育应用、培训或模拟应用、或实现人工现实的其他类型的应用。
在操作期间,人工现实应用通过跟踪和计算参考系(通常是HMD 112的视角)的姿势信息来构建用于向用户110显示的人工现实内容122。使用HMD 112作为参考系,并且基于由HMD 112的当前估计姿势确定的当前视场130,人工现实应用渲染3D人工现实内容,在一些示例中,该3D人工现实内容可以至少部分地覆盖在用户110的真实世界3D物理环境上。在该过程中,人工现实应用使用从HMD 112接收的感测数据,例如运动信息和用户命令,并且在一些示例中,使用来自任何外部传感器90(例如外部相机102A和/或102B)的数据来捕获真实世界、物理环境中的3D信息,例如用户110的运动和/或关于用户110的特征跟踪信息。基于所感测的数据,人工现实应用确定HMD 112的参考系的当前姿势,并且根据当前姿势,渲染人工现实内容122。
此外,根据本公开的技术,基于所感测的数据,人工现实应用检测由用户110执行的手势,并且响应于检测到一个或更多个特定手势,生成一个或更多个用户界面元素,例如UI菜单124和UI元素126,其可以覆盖在呈现给用户110的底层人工现实内容122上。在这方面,用户界面元素124、126可以被视为在人工现实环境中呈现给用户110的人工现实内容122的一部分。以这种方式,人工现实系统10响应于检测到用户110的一个或更多个特定手势,例如用户的手、手指、拇指或手臂的特定运动、构形、位置和/或取向,动态地呈现一个或更多个图形用户界面元素124、126。用户的手的示例构形可以包括拳头、伸出一个或更多个手指的部分拳头、伸出所有手指的张开的手、两个或更多个手指环绕虚拟对象的抓握构形、手132的一个或更多个单独手指的相对和/或绝对位置和取向、手掌的形状(例如,基本平坦、杯状(cupped)等),等等。
例如,用户界面元素可以包括、可以是图形用户界面或其一部分,例如用户110与之交互以操作人工现实系统的菜单或子菜单,或者用户110可选择和操纵的单个用户界面元素,例如切换元素、下拉元素、菜单选择元素、二维或三维形状、图形输入键或键盘、内容显示窗口等。虽然被描绘为二维元素,但是例如,UI元素126可以是二维或三维形状,其可由用户110通过执行手势来在由人工现实内容122表示的虚拟环境内平移、缩放和/或旋转该形状来操纵。
此外,如本文所述,在一些示例中,人工现实系统10可以响应于其他条件,例如系统正在执行的一个或更多个应用的当前状态,或者物理环境中特定检测到的手势相对于用户110的当前视场130的位置和取向(这可以通过用户的实时凝视跟踪或其他条件来确定),触发图形用户界面元素124、126的生成和渲染。更具体地说,如本文进一步所述的,HMD 112的图像捕获设备138捕获表示在图像捕获设备138的视场130内的真实世界物理环境中的对象的图像数据。视场130通常对应于HMD 112的视角。
在一些示例中,例如图1A所示的示例,人工现实应用将用户110的手132在视场130内的部分渲染为人工现实内容122内的虚拟手136。在其他示例中,人工现实应用可以在人工现实内容122中呈现用户110的手132和/或手臂134的真实世界图像,人工现实内容122包括混合现实、增强现实和/或直接再现具有计算机介导的内容的物理环境的任何其他信息组合。在任一示例中,用户110能够将他/她的手132和/或手臂134在视场130内的部分视为由人工现实内容122表示的虚拟环境内的对象。在其他示例中,人工现实应用可能根本不在人工现实内容122内渲染用户110的手132或手臂134。
在操作期间,人工现实系统10在由HMD 112的图像捕获设备138(和/或由外部相机102)捕获的图像数据内执行对象识别,以识别手132,包括可选地识别用户110的单个手指或拇指,和/或手臂134的全部或部分。此外,人工现实系统10在滑动时间窗口上跟踪手132(可选地包括手的特定手指)和/或手臂134的部分的位置、取向和构形。人工现实应用分析手132和/或手臂134的部分的任何被跟踪的运动、构形、位置和/或取向,以识别由用户110的特定对象,例如手132(包括但不限于手132的一个或更多个特定手指)和/或手臂134的部分(或其特定部分,例如手腕)执行的一个或更多个手势。
为了检测手势,人工现实应用可以将手132和/或手臂134的部分的运动、构形、位置和/或取向与存储在人工现实系统10的手势库中的手势定义进行比较,其中手势库中的每个手势可以各自被映射到一个或更多个动作。在一些示例中,检测移动可以包括跟踪手132的一个或更多个手指(单个手指和拇指)的位置,包括手指的任何定义的组合(例如食指和拇指)是否在物理环境中被带到一起以触摸或近似触摸,或者以夹住(bookend)或环绕作为人工现实内容122的一部分呈现的用户界面元素(例如,助理元素(assistant element)或显示元素)。在其他示例中,检测移动可以包括跟踪手132的取向(例如,手指指向HMD 112或远离HMD 112)和/或手臂134相对于HMD 112的当前姿势的取向(即,手臂的法线面向HMD112)。手132或其手臂134的相应部分或整体的位置和取向可替代地被称为手132或手臂134的姿势,或者手132或手臂134的构形。
此外,人工现实应用可以分析手132和/或手臂134的构形、运动、位置和/或取向,以识别包括手132和/或手臂134被保持在一个或更多个特定构形、移动、位置和/或取向至少阈值时间段的手势。作为示例,手132和/或手臂134在视场130内保持基本静止至少一段可配置时间的一个或更多个特定位置可以被人工现实系统10用作用户110正试图执行旨在触发人工现实应用的期望响应的手势的指示,诸如触发特定类型的用户界面元素124、126(诸如菜单)的显示。
作为另一个示例,手132的手指(digit)(手指(finger)或拇指)和/或手掌和/或手臂134的一个或更多个特定构形被保持在视场130内至少一段可配置的时间,可以被人工现实系统10用作用户110正试图执行手势的指示。例如,人工现实系统10可以使用检测到的图像数据作为用户110正试图执行存储到人工现实系统10可访问的手势库中的预定义手势的指示。尽管在图1A中仅将用户110的右手和右手臂示出为手132和右手臂134,但是应当理解,在各种示例中,对于本公开的手势检测技术,人工现实系统10可以识别用户110的左手和/或左手臂,或者用户110的右手和/或右手臂以及用户110的左手和/或左手臂。以这种方式,人工现实系统10可以检测物理环境中由手执行的单手手势、双手手势或基于手臂的手势,并响应于检测到的手势生成相关联的用户界面元素。
根据本公开的系统配置和技术的一些示例,在人工现实系统10上运行的人工现实应用确定所识别的手势是否对应于由手势库中的多个条目之一定义的预定义手势。手势库可以本地存储在控制台106和/或HMD 112处,或者可由控制台106和/或HMD 112以其他方式访问。如下文更详细描述的,手势库中的每个条目可以将不同的手势定义为用户的手、手指(手指或拇指)和/或手臂随时间的特定运动、构形、位置和/或取向,或者这些属性的组合。此外,每个定义的手势可以与以要由人工现实应用执行的一个或更多个动作的形式的期望的响应相关联。
作为一个示例,手势库中的一个或更多个预定义的手势可以触发一个或更多个用户界面元素(例如UI菜单124)的生成、转换和/或配置,以被渲染并覆盖在人工现实内容122上,其中手势可以定义UI菜单124在人工现实内容122中的位置和/或取向。作为另一示例,一个或更多个定义的手势可以指示用户110与特定用户界面元素的交互,例如选择UI菜单124的UI元素126,以触发对所呈现的用户界面的改变、所呈现的用户界面的子菜单的呈现等。
同样,本公开的技术和系统配置的一些示例涉及响应于检测或识别到由用户执行的特定手势而调用UI元素。UI元素的调用在本公开中也被称为“触发”UI元素或“选通”UI元素。这种UI元素的示例包括但不限于用户可选选项的菜单。本公开的各方面还涉及响应于检测到某些手势来修改当前渲染的UI元素,诸如通过响应于这些手势来改变UI元素的取向或数据粒度级别。人工现实系统10可用于选通目的的手势的示例包括手132在阈值时间段内以特定构形的定位,或者手132在对应于已经显示的UI元素的虚拟位置的位置处的特定构形和移动。如本文所使用的,术语“选通”指的是直到选通事件发生时才在虚拟环境中显示的某些UI元素的生成和渲染。
根据本文描述的一些技术,运行在人工现实系统10上的人工现实应用响应于检测到手势来执行UI元素选通,其中手132被构形为使得两个手指形成近似直角。例如,如果手132的食指和拇指形成近似直角,则人工现实系统10检测到选通手势。在一些示例中,人工现实系统10将时间部分添加到要识别的选通手势的标准中。也就是说,如果手132的构形在至少阈值时间段内基本静止,并且在手132静止的时间段内,手132被定位成使得手132的食指和拇指形成近似直角,则人工现实系统10可以识别到该手势。应当理解,虽然手132的位置在本文中被描述为形成由两条直线之间的转弯表示的“角度”,但是人工现实系统10调整本公开的角度确定以适应人类解剖学特性,例如拇指和食指之间的指蹼(webbing)的曲率、由手132的手指的指骨间关节引起的任何自然弯曲等。
在一些示例中,当食指和拇指近似成直角定位时,人工现实系统10基于手132的取向来识别不同的选通手势。例如,如果手132的背面面向HMD 112,则人工现实系统10可以识别一个选通手势,并且如果手132的手掌面向HMD 112,则可以识别不同的选通手势。也就是说,当用户110佩戴HMD 112时,当手132(或其特定部分)在用户110的视场(FoV)内时,人工现实系统10可以基于手132的某些属性来识别选通手势。作为另一个示例,如果手132的拇指在HMD 112的FoV中朝上,则人工现实系统10可以识别一个选通手势,并且如果手132的食指在HMD 112的FoV中朝上,则可以识别不同的选通手势。在一些示例中,人工现实系统10可以基于上述手132的各种取向属性的组合来识别特定手势。
根据本公开的一些技术,如果手132被定位成在至少阈值时间段内基本静止,并且手132的手指被定位成使得手132的拇指和至少一个其他手指形成近似圆形或近似圆弓形(circular segment),则人工现实系统10检测到选通手势。在一些示例中,如果面向HMD112的FoV的手132的视图是侧向取向,并且表示拇指所位于的手132的一侧,则人工现实系统10可以检测到该手势。例如,从HMD 112画到手132的法线可以与由手132的拇指和其他手指形成的圆形或圆弓形的内部区域相交。应当理解,虽然手132的构形在本文被描述为近似形成“圆形”或“圆弓形”的几何形状,但是人工现实系统10调整本公开的角度确定以适应人类解剖学特性,例如由手132的手指的指骨间关节、拇指和食指之间的指蹼中的褶皱等引起的更尖锐的弯曲(sharper bend)。在这些示例中,人工现实系统10可以在对应于食指和拇指的虚拟表示之间的空间的虚拟位置处选通UI元素。
根据本公开的一些技术,如果手臂134的一部分在至少阈值时间段内基本静止,并且在至少阈值时间段内处于HMD 112的FoV中,则人工现实系统10检测到选通手势。例如,如果手臂134的构形使得手腕在至少阈值时间段内基本静止,并且手腕被定位成使得来自手腕的法线面向HMD112的FoV,则人工现实系统10可以检测到该手势。在一些示例中,如果面向外部相机102和/或HMD 112的图像捕获设备138的手臂134的视图是侧向取向,并且表示手腕的内侧,即手132的拇指所在的一侧,则人工现实系统10可以检测到该手势。例如,从HMD 112画到手132的法线可以与手臂134的手腕的内表面相交。在这些示例中,人工现实系统10可以在对应于相对手腕的表示的虚拟位置处选通UI元素。
根据本公开的一些技术,人工现实系统10向由HMD 112输出供用户110观看的人工现实内容122添加显示元素。在一些情况下,就本文描述的选通技术而言,显示元素可以被称为“助理”。根据这些示例,人工现实系统10可以检测在通常对应于显示元素的位置的位置处执行的某些预定义手势,以选通人工现实内容122内的UI元素。
在一些实施方式中,人工现实系统10的UI引擎可以生成助理元素来模拟无人机(drone),因为在由人工现实内容122表示的虚拟环境中,助理元素悬停在用户110的虚拟表示(例如化身)之上或旁边,例如在虚拟手136旁边。在这些实现中,人工现实系统10可以基于手132相对于包括在人工现实内容122中的助理元素执行的抓握和投掷组合来检测手势。
例如,如果人工现实系统10识别出以下组合,则人工现实系统10可以检测选通手势:(i)手132的两个或更多个手指的抓握运动,以在对应于由人工现实内容122表示的虚拟环境内的助理元素的位置处形成抓握构形,以及(ii)手132相对于助理元素的投掷运动,其中投掷运动发生在抓握运动之后。例如,人工现实系统10可以通过识别手132的抓握构形的释放和手132和/或手臂134的特定移动的组合来检测投掷运动。伴随、跟随抓握构形的释放或与抓握构形的释放部分地重叠的特定移动可以包括手132或手臂134的手腕的屈曲、手132的至少一个手指的向外轻弹运动(flicking motion)等中的一个或更多个。在这些示例中,人工现实系统10可以在对应于助理元素被虚拟投掷的虚拟位置处选通UI元素。
在一些实施方式中,人工现实系统10的UI引擎可以生成显示元素来模拟可穿戴或部分粘附的实体。例如,人工现实系统10的UI引擎可以使人工现实系统10的渲染引擎在对应于用户110的相对手臂(即,除手臂134之外的另一手臂)的表示的位置处输出显示元素。在一个示例中,人工现实系统10的UI引擎和渲染引擎渲染显示元素,以呈现为叠加在用户110的相对手臂上并附着到其上。在一些这样的实现中,人工现实系统10可以基于抓握和移动组合、抓握和释放组合、抓握-移动-释放组合,或者简单地基于手132相对于看起来叠加并附着到用户110的相对手臂的助理元素执行的抓握来检测手势。
例如,在由人工现实内容122表示的虚拟环境中,人工现实系统10可以通过识别手132相对于放置在用户110的相对手臂上的显示元素的抓握运动来检测手势。响应于手势的识别,人工现实系统10可以更新显示元素以显得与用户110的相对手臂脱离并分开。人工现实系统10还可以响应于预定义手势的识别而选通UI元素。例如,人工现实系统10的UI引擎和渲染引擎可以在由人工现实系统122表示的虚拟环境内调用用户可选选项的菜单。在一些情况下,人工现实系统10可以将UI元素定位在显示元素旁边或以其他方式在显示元素大致附近,而显示元素仍然看起来与用户110的相对手臂脱离并分开。
在一些实施方式中,人工现实系统10可以响应于识别到源自用户110的另一只手臂的预定区域(例如另一只手臂的手腕)的移动,来选通UI元素(例如,用户可选选项的菜单),所述移动例如是抓握和拉动组合或捏拉组合(pinch-and-pull combination)。根据这些实现中的一些,人工现实系统10的UI引擎和渲染引擎可以输出UI元素,作为对人工现实内容122中另一只手臂的手腕的表示的叠加。
在这些实施方式中,响应于识别手132相对于虚拟地叠加在手腕上的UI元素的抓握和拉动组合运动,人工现实系统10的UI引擎和渲染引擎可以通过修改UI元素来选通UI菜单。例如,人工现实系统10可以识别手132的两个或更多个手指的抓握运动以形成抓握构形,以及相同的两个或更多个手指远离另一只手的手腕的后续拉动运动,同时相同的两个或更多个手指处于抓握构形。也就是说,人工现实系统10可以检测叠加在手腕上的UI元素在由人工现实内容122表示的虚拟环境内的位置处的抓握构形。这样,上述本公开的这些特定方面在调用UI元素方面模拟抽屉(drawer)或文件柜(filing cabinet)。
因此,本公开的技术和系统配置为通过人工现实系统渲染和显示内容的计算机相关领域提供了具体的技术改进。例如,本文描述的人工现实系统可以通过基于对由用户执行的直观但有区别的手势的检测来生成和渲染覆盖在人工现实内容上的用户界面元素,来向人工现实应用的用户(例如用户110)提供高质量的人工现实体验。
此外,本文所述的系统可以被配置为基于被定义为避免跟踪遮挡的手和手臂移动来检测某些手势。当用户的一只手至少部分地与另一只手重叠时,可能会发生跟踪遮挡,使得难以准确地跟踪每只手的各个手指(手指和拇指),以及每只手的位置和取向。因此,本文描述的系统可以被配置成主要检测基于单手或单手臂的手势。基于单手或单手臂的手势的使用可以进一步为具有大运动和精细运动技能限制的用户提供增强的可访问性。此外,本文描述的系统可以被配置成检测基于双手或基于双手臂的手势,其中用户的手不相互交互或重叠。
此外,本文描述的系统可以被配置成检测向用户提供自触觉反馈的手势。例如,用户每只手上的拇指和一个或更多个手指可以在物理世界中触摸或近似触摸,作为指示与人工现实内容中的特定用户界面元素的交互的预定义手势的一部分。用户的手的拇指和一个或更多个手指之间的触摸可以为用户提供当直接与物理用户输入对象(例如物理键盘或其他物理输入设备上的按钮)交互时用户感受到的感觉的模拟。
在各种示例中,为了执行上述技术的手势检测/识别方面,人工现实系统10可以将检测到的图像数据与存储到人工现实系统10可访问的手势库中的预定义手势相匹配。在各种实现中,人工现实系统10可以用不一定需要与虚拟控制器或物理设备交互的预定义手势来填充手势库的条目。人工现实系统10还可以包括UI引擎,该UI引擎被配置为生成本文描述的各种元素,无论是否响应特定刺激。人工现实系统10还可以包括被配置成渲染人工现实内容122的渲染引擎。
以这种方式,可以根据本公开的各个方面来配置人工现实系统,以使用户110能够通过执行特定手势来调用或选通人工现实增强的物理环境中的特定UI元素。通过使用易于执行且不需要用户110握持物理设备的预定义手势,本公开的人工现实系统10利用在常规人工现实操作过程中执行这些手势的便利性来在由人工现实内容122表示的虚拟环境内使用这些特定手势对UI元素进行选通。
图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上执行的人工现实应用基于相应用户110的相应参考系的当前观看视角向用户110A-110C(统称为“用户110”)中的每一个呈现人工现实内容。也就是说,在该示例中,人工现实应用通过跟踪和计算每个HMD 112的参考系的姿势信息来构建人工内容。人工现实系统20使用从相机102、HMD112和控制器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可以使用诸如
Figure BDA0003374968730000181
的短程无线通信的近场通信、使用有线通信链路或使用另一种类型的通信链路来与HMD 112B通信。
以类似于以上关于图1A讨论的示例的方式,人工现实系统20的控制台106和/或HMD 112C生成并渲染用户界面元素124、126,该用户界面元素可以覆盖在显示给用户110C的人工现实内容122上。此外,控制台106和/或HMD 112C可以基于经由姿势跟踪对由用户110CA执行的直观但有区别的手势的检测来触发用户界面元素124、126的生成和动态显示。例如,人工现实系统20可以响应于检测到用户110C的一个或更多个特定手势,例如用户的手、手指、拇指或手臂的特定运动、构形、位置和/或取向,动态呈现一个或更多个图形用户界面元素124、126。如图1B所示,除了经由HMD 112C的相机138捕获的图像数据之外,来自外部相机102的输入数据可用于跟踪和检测用户110的手和手臂(例如用户110C的手132)的特定运动、构形、位置和/或取向,包括手132的手指(手指、拇指)的单独和/或组合的运动。HMD112的外部相机102和/或图像捕获设备138被统称为人工现实系统20的“图像捕获设备”,因为将会理解,运行在人工现实系统20上的人工现实应用可以使用这些图像捕获设备中的任何一个或更多个来捕获物理环境和本文描述的各种手势的图像数据。
根据本公开中描述的技术,人工现实系统20可以检测用户110C的手指(手指或拇指)和/或手132的手掌和/或手臂134的一个或更多个特定构形被保持在视场130内至少一段可配置的时间,并且将所保持的构形解释为相应用户110C正试图执行手势的指示。例如,人工现实系统20可以使用检测到的图像数据作为用户110C正试图执行存储到人工现实系统20可访问的手势库中的预定义手势的指示。尽管在图1B中仅将用户110C的右手和右手臂示出为手132和右手臂134,但是应当理解,在各种示例中,对于本公开的手势检测技术,人工现实系统20可以识别相应用户110C的左手和/或左手臂,或者相应用户110C的右手和/或右手臂以及相应用户110C的左手和/或左手臂。
以这种方式,人工现实系统20可以检测物理环境中由手执行的单手手势、双手手势或基于手臂的手势,并响应于检测到的手势生成相关联的用户界面元素。通过利用纯手手势、纯手和手腕手势、单手手势和/或手势检测不需要手132的所有手指的手势,人工现实系统20提高了用户110的可访问性,以适应残疾、解剖学特征、损伤、暂时性疾病等。
在人工现实系统20上运行的人工现实应用可以选通(或“触发”)一个或更多个用户界面元素(例如UI菜单124)的生成、渲染、变换和/或配置,以渲染和覆盖在人工现实内容122上,其中手势可以定义UI菜单124在人工现实内容122中的位置和/或取向。如以上关于图1A进一步详细描述的,根据本公开的系统配置和技术的各种示例,运行在人工现实系统20上的人工现实应用可以响应于检测到由手132执行的单手手势来选通UI元素,其中两个手指形成近似直角(例如,形成近似“L”形状或近似“L”形状的镜像)。根据本公开的其他技术和系统配置,如果手132被定位成在至少阈值时间段内基本静止,并且手132的手指被定位成使得手132的拇指和至少一个其他手指形成近似圆形(例如,近似“O”形、近似“C”形或近似“C”形的镜像),则在人工现实系统20上运行的人工现实应用检测到选通手势。
根据本公开的其他技术和系统配置,如果相应手臂134的手腕的特定表面定位成在至少阈值时间段内基本上静止,并且在至少阈值时间段内处于HMD的视场(FoV)中,则在人工现实系统20上运行的人工现实应用检测到选通手势。根据本公开的一些技术,在人工现实系统20上运行的人工现实应用向由HMD 112输出的人工现实内容122添加显示元素(例如,在本公开中也称为“助理元素”)。根据这些示例,人工现实系统20可以检测在通常对应于显示元素的位置的位置处执行的某些预定义手势,以选通人工现实内容122内的UI元素。人工现实系统20可以检测到的关于显示或助理元素的选通手势的示例包括,当显示/助理元素叠加在相对手臂的手腕的表示上时来自相应用户110C的相对手臂(即,不是手臂134)的手腕的抓握和拉动,当显示/助理元素被呈现为在由人工现实内容122表示的虚拟环境中与相应用户110C的化身一起行进时,显示/助理元素的抓握和投掷,或者当显示/助理元素被叠加在另一个手臂的手腕的表示上时,从相对手臂的抓握和脱离。
图2是描绘被配置为根据本公开的技术操作的示例HMD 112的图示。图2的HMD 112可以是图1A和图1B的任何HMD 112的示例。HMD 112可以是人工现实系统(诸如图1A的人工现实系统10、图1B的人工现实系统20)的一部分,或者可作为被配置为实现本文所述技术的独立的、移动的人工现实系统操作。
在该示例中,HMD 112包括前刚性主体和用于将HMD 112固定到用户的带。此外,HMD 112包括面向内部的电子显示器203,该电子显示器被配置为向用户呈现人工现实内容。电子显示器203可以包括、可以是任何合适的显示技术或其部分,诸如液晶显示器(LCD)、量子点显示器、点阵显示器、发光二极管(LED)显示器、有机发光二极管(OLED)显示器、阴极射线管(CRT)显示器、电子墨水、或单色、彩色或能够生成视觉输出的任何其他类型的显示器。在一些示例中,电子显示器是用于向用户的每只眼睛提供单独图像的立体显示器。在一些示例中,当跟踪HMD112的位置和取向以用于根据HMD 112和用户的当前观看视角渲染人工现实内容时,显示器203相对于HMD 112的前刚性主体的已知取向和位置被用作参照系,也被称为局部原点。在其他示例中,HMD可以采取其他可佩戴的头戴式显示器的形式,例如眼镜。
如图2中进一步所示,在该示例中,HMD 112还包括一个或更多个运动传感器206,例如输出表示HMD 112的当前加速度的数据的一个或更多个加速度计(也称为惯性测量单元或“IMU”)、输出表示HMD 112的位置的数据的GPS传感器、输出表示HMD 112距各种对象的距离的数据的雷达或声纳、或提供HMD 112或物理环境中的其他对象的位置或取向的指示的其他传感器。此外,HMD 112可以包括集成的图像捕获设备138A和138B(统称为“图像捕获设备138”),例如摄像机、激光扫描仪、多普勒雷达扫描仪、深度扫描仪等,其被配置为输出表示物理环境的图像数据。
更具体地,图像捕获设备138捕获表示物理环境中的对象的图像数据,这些对象在图像捕获设备138的视场130A、130B内,其通常对应于HMD112的观看视角。HMD 112包括内部控制单元210,该内部控制单元可包括内部电源和一个或更多个印刷电路板,该印刷电路板具有一个或更多个处理器、存储器和硬件以提供用于执行可编程操作的操作环境,从而处理感测数据并在显示器203上呈现人工现实内容。
在一个示例中,根据本文描述的技术,控制单元210被配置为基于感测到的数据来识别用户110执行的特定手势或手势的一个或更多个组合。控制单元210可以响应于识别或检测到手势或手势组合来执行一个或更多个特定动作。例如,响应于一个识别的手势,控制单元210可以生成并渲染覆盖在人工现实内容上的特定用户界面元素,以显示在电子显示器203上。如本文所解释的,根据本公开的技术,控制单元210可以在由图像捕获设备138捕获的图像数据内执行对象识别,以识别手132(或手指,例如其手指或拇指)、手臂134(或其手腕)或用户110的另一部位,并跟踪所识别部位的移动,以识别用户110执行的预定义手势。
响应于识别到预定义手势(或其组合/序列),控制单元210采取一些动作,诸如选通菜单、从与用户界面元素(例如,前述菜单)相关联的选项集中选择选项、将手势翻译成输入(例如,字符)、启动应用或以其他方式显示内容等。在一些示例中,控制单元210响应于检测到被指定为用于展现用户界面或其特定元素(例如用户可选选项的菜单)的“触发器”的预定义手势,动态地选通(生成和呈现)用户界面元素,例如菜单。在其他示例中,控制单元210响应于来自外部设备(例如控制台106)的指示来执行这些功能,该外部设备可以执行对象识别、运动跟踪和手势检测或其任何部分。
作为一个示例,根据本公开的各个方面,控制单元210可以响应于检测到由手132执行的单手手势而选通UI元素,在该单手手势中,两个手指形成近似直角(例如,形成近似“L”形或近似“L”形的镜像)。根据本公开的其他技术和系统配置,如果手132被定位成在至少阈值时间段内基本静止,并且手132的手指被定位成使得手132的拇指和至少一个其他手指形成近似圆形(例如,近似“O”形、近似“C”形或近似“C”形的镜像),则控制单元210检测或识别到选通手势。
作为附加示例,根据本公开的其他技术和系统配置,如果手臂134的手腕的特定表面在至少阈值时间段内基本上静止,并且在至少阈值时间段内处于HMD 112的FoV中,则控制单元210检测或识别到选通手势。根据本公开的一些方面,控制单元210向由HMD 112输出的人工现实内容122添加显示元素(例如,在本公开中有时也被称为“助理元素”)。根据这些示例,控制单元210可以检测在通常对应于显示元素的位置的位置处执行的某些预定义手势,以选通经由HMD 112显示的人工现实内容122内的UI元素。
控制单元210可以检测到的关于显示或助理元素的选通手势的示例包括当显示/助理元素叠加在另一个手臂的手腕的表示上时,来自用户110的另一个手臂(即,不是手臂134)的手腕的抓握和拉动,当显示/助理元素被呈现为在由人工现实内容122表示的虚拟环境中与相应用户110的化身一起行进时,显示/助理元素的抓握和投掷,或者当显示/助理元素被叠加在另一只手臂的手腕的表示上时,抓握和脱离另一只手臂。
图3是示出图1A的人工现实系统10和图1B的人工现实系统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人工现实内容,以由HMD112的应用引擎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的用户界面。在其他示例中,某些手势可以与其他动作相关联,例如提供输入、选择对象、启动应用等。
根据本公开的系统配置和技术的一些示例,手势检测器324确定用户的对象(例如,手、手臂、手腕、手指、手掌、拇指)的识别的运动和/或构形是否对应于由手势库330中的多个条目之一定义的预定义手势。手势库330的每个条目可以将不同的手势定义为用户的手、手指(手指或拇指)和/或手臂随时间的特定运动、构形、位置和/或取向,或者这些属性的组合。此外,每个定义的手势可以与以待由控制台106和/或HMD 112的其他部件执行的一个或更多个动作的形式的期望响应相关联。
作为一个示例,手势库330中的一个或更多个预定义手势可以触发UI引擎328生成、转换和/或配置一个或更多个用户界面元素。渲染引擎322可以渲染和叠加UI引擎328基于手势检测器324检测到预定义手势而生成的UI元素。在一些示例中,UI引擎328和渲染引擎322可以定义UI元素(通过UI菜单124的示例来讨论)在传送给HMD 112的人工现实内容122中的位置和/或取向。
根据本文描述的一些技术,UI引擎328和渲染引擎322响应于手势检测器324识别一个或更多个手势来执行UI元素选通,在该手势中,手132被构形为使得两个手指形成近似直角。例如,如果手132的食指和拇指形成近似直角,手势检测器324识别到选通手势。在一些示例中,手势检测器324将时间部分添加到要识别的选通手势的标准中。也就是说,如果手132的构形在至少阈值时间段内基本静止,并且在手132静止的时间段内,手132被定位成使得手132的食指和拇指形成近似直角,则手势检测器324可以识别到手势。应当理解,虽然手132的位置在本文中被描述为形成由两条直线之间的转弯表示的“角度”,但是手势检测器324调整本公开的角度确定,以适应人类解剖学特性,例如拇指和食指之间的指蹼的曲率、由手132的手指的指骨间关节引起的任何自然弯曲等。
在一些示例中,当食指和拇指近似成直角定位时,手势检测器324基于手132的取向识别不同的选通手势。例如,如果手132的背面面向图像捕获设备138,则手势检测器324可以识别一个选通手势,并且如果手132的手掌面向图像捕获设备138,则可以识别不同的选通手势。作为另一个示例,如果手132的拇指在由图像捕获设备138捕获的视图中朝上,则手势检测器324可以识别一个选通手势,并且如果手132的食指在由图像捕获设备138捕获的视图中朝上,则手势检测器324可以识别不同的选通手势。在一些示例中,人工现实系统10可以基于上述手132的各种取向属性的组合来识别特定手势。
在这些示例中,UI引擎328可以生成UI元素,使得食指和拇指之间形成的角度的近似顶点通常指示UI元素的拐角的位置。在一个示例中,假设手132是用户110的右手,UI引擎328可以生成UI元素,使得手132的食指和拇指之间的角度的顶点指示UI元素的右下角的位置。相反,在一个示例中,假设手132是用户110的左手,UI引擎328可以生成UI元素,使得手132的食指和拇指之间的角度的顶点指示UI元素的左下角的位置。
另外,如果当食指和拇指形成近似直角时手势检测器324检测到手132的取向变化,UI引擎328可以编辑UI元素的取向、粒度、内容等中的一个或更多个。例如,如果手势检测器324检测到手132的食指指向上方并且手132的背部面向图像捕获设备138,则UI引擎328可以将UI元素选通为纵向取向的菜单。在该示例中,如果手势检测器324检测到手132的取向已经改变,使得手132的拇指朝上并且手132的手掌面向图像捕获设备138,则UI引擎328可以将菜单切换为具有横向取向。
在一些这样的示例中,UI引擎328还可以基于手势检测器324所识别的手132的取向的改变来改变菜单的内容。例如,UI引擎328可以编辑菜单以包括用户可选选项,与纵向取向的菜单相比,用户可选选项在横向取向的菜单中提供更细粒度的一组用户可选选项。例如,UI引擎328可以生成横向取向的菜单作为下钻菜单(drilldown menu),其显示比纵向取向的菜单更深层次的用户可选选项。在一些示例中,如果手势检测器324检测到与上述“L”或镜像“L”构形相比倒置的手132的构形,则UI引擎328可以被配置为通过识别UI元素的右上角或左上角来选通UI元素。
根据本公开的一些技术,如果手132被定位成在至少阈值时间段内基本静止,并且手132的手指被定位成使得手132的拇指和至少一个其他手指形成近似圆形或近似圆弓形,则手势检测器324检测到选通手势。在一些示例中,如果面向图像捕获设备138的手132的视图是侧向取向,并且表示拇指位于的手132的一侧,则手势检测器324可以检测到手势。例如,从图像捕获设备138画到手132的法线可以与由手132的拇指和其他手指形成的圆形或圆弓形的内部区域相交。在这些实现中的一些实现中,UI引擎328可以定位移动图片以在由手132形成的圆形或圆弓形内播放视频,从而在由人工现实内容122表示的整体虚拟环境内创建“视频直通(video passthrough)”的效果。在其他实现中,UI引擎328可以在通常对应于由手132形成的圆形或圆弓形的位置内或位置处显示UI元素,例如用户可选选项的菜单。渲染引擎322被配置成渲染人工现实内容122以经由电子显示器203输出,包括或不包括由UI引擎328响应于手势检测器324检测到的手势而生成的各种UI元素。
根据本公开的一些技术,如果手臂134的一部分在至少阈值时间段内基本静止,并且在至少阈值时间段内处于HMD 112的Fov中,则手势检测器324检测到选通手势。例如,如果手臂134的构形使得手腕在至少阈值时间段内基本静止,并且手腕被定位成使得来自手腕的法线面向HMD112,则手势检测器324可以检测到该手势。在一些示例中,如果面向HMD112的手臂134的视图是侧向取向,并且表示手腕的内侧,即手132的拇指所在的一侧,则手势检测器324可以检测到该手势。例如,从HMD 112画到手臂134的法线可以与手腕的内表面相交。在这些实现的一些中,UI引擎328可以生成UI元素,例如菜单,渲染引擎322将其渲染为叠加在由人工现实内容122表示的虚拟环境内的手腕的表示上。
根据本公开的一些技术,UI引擎328包括人工现实内容122内的显示元素,使得手势检测器324能够识别相对于显示元素执行的手势。在这些示例中,手势检测器324可以检测在通常对应于显示元素在虚拟环境中的位置的位置处执行的某些预定义手势,并且响应于手势检测器324在对应于显示元素的位置的位置处检测到这些预定义手势中的一个或更多个,UI引擎324可以选通UI元素。这样,显示元素可以被认为是“助理”或“个人助理”,其在由人工现实内容122表示的虚拟环境内与代表用户110的化身一起行进。根据本公开的各个方面,UI引擎328可以使渲染引擎322将助理元素渲染为附着到化身的虚拟身体,或者从化身脱离并跟随化身。
在一些示例中,渲染引擎322可以生成助理元素,以显得与化身脱离,并且跟随化身在由人工现实内容122表示的虚拟环境内的移动。根据这些示例,在由人工现实内容122表示的虚拟环境中,助理元素模拟悬停在用户110的化身上方或漂浮在化身旁边的无人机。在这些实现中,手势检测器324可以基于手132相对于包括在人工现实内容122中的助理元素执行的抓握和投掷组合来检测选通手势。
例如,手势检测器324可以根据检测到的以下组合来识别选通手势:(i)手132的两个或更多个手指的抓握运动,以在对应于由人工现实内容122表示的虚拟环境内的助理元素的位置处形成抓握构形,以及(ii)手132相对于助理元素的投掷运动,其中投掷运动发生在抓握运动之后。
例如,人工现实系统10可以通过识别手132的抓握构形的释放和手132和/或手臂134的特定移动的组合来检测投掷运动。伴随、跟随抓握构形的释放或与抓握构形的释放部分地重叠的特定移动可以包括手臂134的手腕和/或手132的关节的屈曲、手132的至少一个手指的向外轻弹运动或其各种排列/组合。
在一些示例中,渲染引擎322可以将助理元素渲染为附着到化身的手腕。例如,渲染引擎322可以将助理元素渲染为附着到非主导手臂(例如在手臂134代表用户110的主导右手臂的场景中的左手臂)的手腕。在这些示例中,助理元素可以模拟可穿戴项目,因为助理元素被渲染为当前附接到用户110的另一只手臂,但是可能可从用户110的另一只手臂脱离。例如,渲染引擎322可以在对应于用户110的另一只手臂(即,除手臂134之外的另一手臂)的表示的位置处渲染显示元素,在一些示例中,该另一只手臂可以表示用户110的非主导手臂。在一些这样的实现中,手势检测器324可以检测包括抓握和移动组合、抓握和释放组合、抓握-移动-释放组合的手势,或者简单地由手132相对于看起来叠加在用户110的另一只手臂上并附着到其上的助理元素执行的抓握。
例如,手势检测器324可以通过识别手132相对于显示元素的抓握运动来检测手势,并且作为响应,UI引擎328和渲染引擎322可以更新显示元素的外观,以显得与用户110的另一只手臂脱离并分开。在一些示例中,手势检测器324可以在距离用户110的另一只手臂(即,从其移除了助理元素的手臂)一定距离的位置处检测手132的抓握构形的释放,如虚拟环境中所示。反过来,UI引擎328可以使渲染引擎322在手132的抓握构形被释放的大致位置处显示助理元素。在该示例中,手势检测器324利用单手手势,从而减轻与双手手势相关联的用户负担。
此外,基于手势检测器324识别到手132的抓握构形的释放,UI引擎328可以选通UI元素,例如用户可选选项的菜单。例如,UI引擎328可以使渲染引擎322渲染菜单,使得菜单被定位在助理元素的旁边或以其他方式在其大致附近,而助理元素看起来悬停在释放手132的抓握构形的位置。在一些示例中,手势检测器324可以随后检测手132相对于助理元素的抓握和移动手势,使得显示元素移回到用户110的另一只手臂的手腕。在这些示例中,UI引擎328可以从人工现实内容122中移除菜单,从而使得渲染引擎322停止在虚拟环境中渲染菜单。
在一些实施方式中,手势检测器324可以检测相对于显示元素的抓握和拉动组合或捏拉组合,该组合源自用户110的另一只手臂的预定区域,例如另一只手臂的手腕。根据这些实现,响应于手势检测器324识别这些移动中的任何一个,UI引擎328可以选通用户可选选项的UI菜单。根据这些实现中的一些,UI引擎328和渲染引擎322可以响应于手势检测器324检测到来自另一只手臂手腕的不同长度的拉动,来改变菜单的内容、形状因子或选择粒度。
例如,响应于识别到手132相对于虚拟叠加在手腕上的UI元素(例如,上述助理元素的示例)的抓握和拉动组合运动,人工现实系统10的UI引擎328和渲染引擎322可以通过修改UI元素来选通UI菜单。如果手势检测器324识别到手132的两个或更多个手指的抓握运动以形成抓握构形,以及相同的两个或更多个手指远离另一只手的手腕的后续拉动运动,同时相同的两个或更多个手指处于抓握构形,则UI引擎328可以使渲染引擎322输出菜单,例如圆形菜单。
这样,上述本公开的这些特定方面在调用UI元素方面模拟抽屉或文件柜。如果手势检测器324在抓握构形仍然完整的情况下识别出拉动运动的停止,随后是抓握构形仍然完整的进一步拉动运动,则UI引擎328可以对菜单进行更新,并且使得渲染引擎122经由人工现实内容122输出更新的菜单。在一些示例中,渲染引擎322可以将原始菜单和更新的菜单定位在不同的位置,例如在相应的拉动运动停止的位置。
因此,本公开的技术和系统配置为通过人工现实系统渲染和显示内容的计算机相关领域提供了具体的技术改进。例如,图3的人工现实系统可以通过基于对由用户执行的直观但有区别的手势的检测来生成和渲染覆盖在人工现实内容上的用户界面元素,来向用户(例如用户110)提供高质量的人工现实体验。
此外,本文所述的系统可以被配置为基于被定义为避免跟踪遮挡的手和手臂移动来检测某些手势。当用户的一只手至少部分地与另一只手重叠时,可能会发生跟踪遮挡,使得难以准确地跟踪每只手的各个手指(手指和拇指),以及每只手的位置和取向。因此,本文描述的系统可以被配置成主要检测基于单手或单手臂的手势。基于单手或单手臂的手势的使用可以进一步为具有大运动和精细运动技能限制的用户提供增强的可访问性。此外,本文描述的系统可以被配置成检测基于双手或基于双手臂的手势,其中用户的手不相互交互或重叠。
图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中的每个条目可以为所定义的手势或一系列手势指定手势触发动作所需的条件,例如与HMD112的当前视场的空间关系、与用户当前正在观察的特定区域的空间关系,这可以通过个人的实时凝视跟踪、正在显示的人工内容的类型、正在执行的应用的类型等来确定。
响应于检测到匹配手势或手势组合,HMD 112执行分配给手势库430中匹配条目的响应或动作。例如,根据本公开的技术,某些专用手势可以被预定义,使得响应于手势检测器424检测到预定义手势之一,用户界面引擎428动态地生成用户界面作为向用户显示的人工现实内容的叠加,从而允许用户110在观看人工现实内容时容易地调用用于配置HMD 112的用户界面。在其他示例中,响应于手势检测器424检测到预定义手势之一,用户界面引擎428和/或应用引擎440可以接收输入、选择与用户界面元素相关联的值或参数、启动应用、修改可配置设置、发送消息、启动或停止过程或执行其他动作。
手势检测器424可以从由图像捕获设备138捕获的图像数据中识别的各种手势包括手132的“L”形构形、手132执行的抓握和拉动移动以及手132执行的抓握和投掷移动。手势检测器424可以从图像数据中识别的手势的另一个示例是手腕凝视的手势,其中用户110的相对手臂的手腕被放置在HMD 112的FoV中至少一个阈值时间段,并且至少在该阈值时间段内基本静止。响应于手势检测器424识别出本公开的任何预定义手势,UI引擎428和渲染引擎422可以选通各种UI元素,例如用户可选选项的菜单。在一些示例中,响应于手势检测器424从图像数据中识别出后续的“去选通(de-gating)”手势,UI引擎428和渲染引擎422可以移除先前选通的UI元素。
图5是示出人工现实系统10、20和/或其部件可以根据本公开的手势驱动的UI元素选通技术来执行的过程450的流程图。虽然图5以特定顺序/序列示出了各种步骤作为示例,但是应当理解,人工现实系统10、20可以以各种顺序/序列执行所示步骤,包括部分或全部同时,并且可以多次重复各种步骤。UI引擎328、428和渲染引擎322、422可以输出人工现实内容122(452)。例如,UI引擎328、428和渲染引擎322、422可以经由电子显示器203输出人工现实内容122,以生成虚拟环境。
图像捕获设备138和/或外部相机102可以捕获图像数据(454)。图像数据可以反映用户110周围的物理环境。手势检测器324、424可以确定是否在HMD 112的FoV内检测到预定义的手势(判定框456)。例如,手势检测器324、424可以处理从图像捕获设备138和/或外部相机102接收的图像数据,以确定从图像数据检测到的手/手臂构形和/或运动/移动中的一个或更多个是否匹配手势库330、430的条目。
如果手势检测器324、424没有从图像数据中识别出预定义的手势(判定框456的“否”分支),则人工现实系统10、20可以继续输出人工现实内容122并从用户110的物理环境中捕获图像数据(实际上重复步骤452和454)。如果手势检测器324、424从图像数据中识别出预定义的手势(判定框456的“是”分支),则UI引擎328、428和渲染引擎322、422可以根据本公开的手势驱动的UI元素选通技术来选通一个或更多个UI元素(458)。根据本公开的技术的预定义手势和可以选通的UI元素的各种示例将在下面进一步详细描述。
图6A-图11是示出根据本公开的方面,手势检测器324、424可以用来识别各种预定义选通手势的手132(以及在一些情况下,手臂134的手腕)的各种移动和构形的概念图。在图5A-图10的一些中,手臂134的手腕被标记为手腕135,用户110的另一只手臂被标记为相对手臂934,另一只手臂的手腕被标记为相对手腕902。
图6A-图6D示出了手132的基于拐角的选通构形以及人工现实系统10、20可以响应于手132的基于拐角的选通构形的识别而调用的UI元素。图6A示出了手势检测器324、424可以识别的手132的构形502,响应于此,UI引擎328、428可以基于标识UI元素的拐角的近似位置的构形502来选通UI元素。如图6A所示,构形502需要手132的食指和拇指之间的近似直角。也就是说,图像捕获设备138和/或外部相机102可以捕获表示用户110的物理环境的图像数据,并且电子显示器203可以输出人工现实内容。手势检测器328、428可以从图像数据中识别包括构形502的手势,在构形502中,手132在至少阈值时间段内基本静止,并且被定位成使得手132的食指和拇指形成近似直角。UI引擎可以响应于所识别的手势生成UI元素,并且渲染引擎322、422可以将UI元素渲染为对人工现实内容的叠加。在构形502的情况下,手132的食指在HMD 112的视场(FoV)中指向上方,并且手132的背部面向图像捕获设备138。基于手势检测器322、422检测到手132处于构形502中至少阈值时间段,UI引擎328、428可以使渲染引擎322、422根据纵向取向渲染UI元素。
图6B示出了手势检测器324、424可以识别的手132的另一构形504,响应于此,UI引擎328、428可以基于标识UI元素的拐角的近似位置的构形504来选通UI元素。在构形504的情况下,手132的拇指在由图像捕获设备138捕获的视图中指向上方,并且手132的手掌面向HMD 112。基于手势检测器322、422检测到手132处于构形504中至少阈值时间段,UI引擎328、428可以使渲染引擎322、422根据横向取向渲染UI元素。构形504表示相对于构形502的90度手旋转和180度手映像。
图6C示出了UI引擎328、428和渲染引擎322、422可以响应于手势检测器324、424识别到手132在至少阈值时间段内符合构形502的手势而选通的菜单506。如图6C所示,响应于手势检测器324、424确定手132在至少阈值时间段内符合构形502,UI引擎328、428和渲染引擎322、422根据纵向取向来选通菜单506。
图6D示出了UI引擎328、428和渲染引擎322、422可以响应于手势检测器324、424识别到手132在至少阈值时间段内符合构形504的手势而选通的菜单508。如图6D所示,响应于手势检测器324、424确定手132在至少阈值时间段内符合构形504,UI引擎328、428和渲染引擎322、422根据横向取向来选通菜单508。
在一些用例场景中,手势检测器324、424可以检测手132从构形502到构形504的转换,作为两个单独的、顺序的手势的执行。这样,手势检测器324、424可以基于符合构形502的手132的位置和符合构形504的手的位置来识别两个单独的手势。在该特定用例场景中,手势检测器324、424基于检测到的第一位置(符合构形502)识别第一手势,然后基于检测到的第二位置(符合构形504)识别第二手势。在这种情况下,UI引擎328、428和渲染引擎322、422可以修改符合第一(纵向)取向的菜单506,以形成符合第二(横向)取向的菜单508。在图6C和图6D所示的示例中,菜单506(符合第一取向,即纵向取向)包括包含在菜单508(符合第二取向,即横向取向)中的用户可选选项的子集。
在图6C和图6D的特定示例中,UI引擎328、428解释由手势检测器324、424提供的数据,以确定手132符合构形502、504的每个手势分别指示菜单506、508的右下角的位置。然而,应当理解,在其他示例中,UI引擎328、428和渲染引擎322、422可以基于由手势检测器324、424提供的信息来识别各种UI元素的左下角、左上角或右上角。在图6C和图6D的每一个中,UI引擎328、428和渲染引擎322、422渲染菜单506和508,使得相应菜单506、508的长边基本上与手132的食指对齐。
图7A和图7B示出了手132的圆形边界构形,人工现实系统10、20可以检测该构形作为用于选通由人工现实内容122表示的虚拟环境内的某些UI元素的刺激。图7A示出了构形602,其中手132的食指和拇指形成圆弓形或近似圆弓形。构形602的圆弓形通常代表一个弧,如果从两个开口端延伸,将潜在地形成一个包围空间,例如一个圆或近似一个圆。如果手132符合构形602并且在构形602中保持至少阈值时间段,则手势检测器324、424可以识别到图7A所示的选通手势。也就是说,如果手132的定位满足在至少阈值时间段内保持基本静止并且手132的两个手指被定位成使得这两个手指形成构形602的圆弓形这两个条件,则手势检测器324、424识别到图7A的选通手势。
为了帮助用户体验并且基于人手的一般结构,如果手132的拇指在阈值时间段期间与至少一个其他手指(除拇指之外)组合形成圆弓形,则手势检测器324、424可以检测到选通手势。本公开的示例针对手132的食指和拇指形成圆弓形。然而,应当理解,手势检测器324、424可以基于拇指与各种手指(例如仅与食指、与所有四个其他手指且通过食指遮挡剩余手指、或者与除拇指和食指之外的任何一个或更多个剩余手指)形成圆弓形来识别选通手势。
根据构形602由手132形成的圆弓形包括包围区域604A。在一些示例中,如果手132被定位成使得来自构形602的圆弓形内的包围区域604A中的任何地方的法线面向HMD 112,则手势检测器324、424可以识别到选通手势。在这些示例中,UI引擎328、428响应于手势检测器324、424识别到图7A所示的选通手势而生成UI元素,并且可以使得渲染引擎322、422将UI元素渲染为相对于由人工现实内容122表示的虚拟环境的一部分的叠加。
例如,渲染引擎322、422可以将由UI引擎328、428生成的UI元素(例如,内容)渲染为出现在包围区域604A内或者至少部分地出现在包围区域604A内。在一些示例中,UI引擎328、428生成UI元素,以包括表示由图像捕获设备138和/或外部相机102捕获的物理环境的图像数据的一部分的再现。在这些示例中,人工现实系统10、20实现本公开的技术,以通过在圆弓形内再现用户110的实际物理环境来提供“直通”效果,同时保持由人工现实内容122表示的虚拟环境的剩余部分。在一个示例中,UI引擎328、428和渲染引擎322、422生成并渲染包含在UI元素中的图像数据的一部分,使得该图像数据对应于物理环境的一部分,物理环境的该部分处于沿着来自圆弓形内的包围区域604A、面向HMD 112的法线。
在其他示例中,UI引擎328、428生成UI元素以包括视频数据,例如移动图片。在这些示例中,人工现实系统10、20实现本公开的技术,以通过在圆弓形内播放视频来提供视频“直通”效果或视频“叠加”效果,同时保持由人工现实内容122表示的虚拟环境的剩余部分。在其他示例中,UI引擎328、428生成UI元素以包括用户可选选项的菜单。在这些示例中,人工现实系统10、20实现本公开的技术以在圆弓形内提供菜单调用功能,同时保持由人工现实内容122表示的虚拟环境的剩余部分。在这些示例中,UI引擎328、428和渲染引擎322、422输出包含在虚拟窗口内的内容。虚拟窗口的完整边界或部分边界由手132形成的内环指示。
图7B示出了构形606,其中手132的食指和拇指形成圆形或近似圆形。在考虑到由手132的解剖属性引起的非平滑过渡之后,构形606的圆形或近似圆形通常表示具有大致边界的闭合形状。如果手132符合构形606并且在构形606中保持至少阈值时间段,则手势检测器324、424可以识别到图7B所示的选通手势。也就是说,如果手132的定位满足在至少阈值时间段内保持基本静止并且手132的两个手指被定位成使得这两个手指形成构形606的圆形这两个条件,则手势检测器324、424识别到图7B的选通手势。
为了帮助用户体验并且基于人手的一般结构,如果手132的拇指在阈值时间段期间与至少一个其他手指(除拇指之外)结合形成圆形,则手势检测器324、424可以检测到选通手势。本公开的示例针对手132的食指和拇指形成圆形。然而,将会理解,手势检测器324、424可以基于拇指与各种手指(例如仅与食指、与所有四个其他手指且通过食指遮挡其余手指、或者与除拇指和食指之外的任何一个或更多个其余手指)形成圆形来识别选通手势。
根据构形606由手132形成的圆形包括包围区域604B。在一些示例中,如果手132被定位成使得来自构形606的圆形内的包围区域604B中的任何地方的法线面向HMD 112,则手势检测器324、424可以识别到选通手势。在这些示例中,UI引擎328、428响应于手势检测器324、424识别到图7B中所示的选通手势而生成UI元素,并且可以使得渲染引擎322、422将UI元素渲染为相对于由人工现实内容122表示的虚拟环境的一部分的叠加。
例如,渲染引擎322、422可以将由UI引擎328、428生成的UI元素(例如,内容)渲染为出现在包围区域604B内或者至少部分地出现在包围区域604B内。在一些示例中,UI引擎328、428生成UI元素,以包括表示由图像捕获设备138和/或外部相机102捕获的物理环境的图像数据的一部分的再现。在这些示例中,人工现实系统10、20实现本公开的技术,以通过在圆形内再现用户110的实际物理环境来提供“直通”效果,同时保持由人工现实内容122表示的虚拟环境的剩余部分。在一个示例中,UI引擎328、428和渲染引擎322、422生成并渲染包含在UI元素中的图像数据的部分,使得图像数据对应于物理环境的一部分,物理环境的该部分位于沿着来自圆内的包围区域604B、面向HMD 112的法线。
在其他示例中,UI引擎328、428生成UI元素以包括视频数据,例如移动图片。在这些示例中,人工现实系统10、20实现本公开的技术,以通过在圆形内播放视频来提供视频“直通”效果或视频“叠加”效果,同时保持由人工现实内容122表示的虚拟环境的剩余部分。在其他示例中,UI引擎328、428生成UI元素以包括用户可选选项的菜单。在这些示例中,人工现实系统10、20实现本公开的技术以在圆形内提供菜单调用功能,同时保持由人工现实内容122表示的虚拟环境的剩余部分。在这些示例中,UI引擎328、428和渲染引擎322、422输出包含在虚拟窗口内的内容。虚拟窗口的完整边界或部分边界由手132形成的内环指示。
图8A和图8B示出了人工现实系统10、20可以检测为用于选通由人工现实内容122表示的虚拟环境内的某些UI元素的刺激的手臂134的构形。图8A和图8B示出了手腕702,手腕702是紧邻手132的手臂134的一段或一部分。手势检测器324、424可以基于手臂134的构形来识别选通手势,使得手腕702在至少阈值时间段内基本静止,并且被定位成使得来自手腕702的法线面向HMD 112。例如,法线可以表示从手腕702的任何点画到HMD 112的前刚性主体的直线。这样,图8A示出了构形704,其中手腕702相对于HMD 112定位,使得从手腕702画出的假想法线与HMD 112的前刚性主体相交。手腕702的构形可以模拟或基本上与握持控制器时的手腕构形相同。以这种方式,人工现实系统10、20利用用户的自然位置,并且即使用户手持一个或更多个控制器,也可以启用UI元素选通。
图8B示出了由人工现实内容122表示的虚拟现实环境中的手132和手腕702的表示。响应于手势检测器324、424基于手腕702在阈值时间段内基本静止并沿着从HMD 112的前刚性主体画出的法线而识别手势,UI引擎328、428可以响应于所识别的手势生成UI元素,并且渲染引擎322、422可以渲染叠加在手腕702的图像上的UI元素。通过图8B中所示的构形706,示出了虚拟环境中叠加有UI元素的手腕702的表示。在图8B的示例中,UI引擎328、428生成菜单708形式的UI元素,并且渲染引擎322、422渲染该UI元素。在其他实现中,UI引擎328、428可以响应于手势检测器324、424识别到由构形704指示的手势而生成不同的UI元素,在构形704中,手腕702在至少阈值时间段内基本静止,并且被定位成使得来自手腕702的法线面向HMD 112。
在一些实例中,其中渲染引擎322、422将菜单708叠加在手腕702的图像上,手势检测器324、424可以检测看起来叠加在手腕702的图像上的菜单708的一部分处的触摸手势。例如,用户110可以使用他/她的另一只手(不是手132)来选择菜单708的一部分,并且通过接触或者通过以非接触方式遮挡手腕702的一个点来提供自触觉反馈。在这些示例中,UI引擎328、428可以将表示物理环境的图像数据中的接触点或遮挡点映射到菜单708上的点,如人工现实内容122的虚拟环境中所示。基于菜单708上的映射点的位置,响应于从用户110接收的输入,人工现实系统10、20可以识别要调用的特定用户可选选项。
例如,人工现实系统10、20可以调用手势检测器324、424来识别指示上述输入的选择手势。响应于手势检测器324、424识别到选择手势,并且基于菜单708上触觉输入的对应坐标,UI引擎328、428可以鉴于先前通过选择输入选择的选项例如以具有选择的选项和/或一组另外的可选选项的菜单708的形式来生成更新的UI元素。以这种方式,人工现实系统10、20利用用户110不间断地凝视他/她自己的手腕一段时间的手势来选通诸如菜单708的UI元素,从而在由人工现实内容122表示的虚拟环境中向用户110提供可选选项。
图9A-图9C示出了根据本公开的一些方面,形成抓握和投掷手势的手132的各种构形,响应于该手势,人工现实系统10、20可以选通UI元素。在本公开的各种实现中,UI引擎328、428可以生成助理元素802,并且渲染引擎322、422可以经由电子显示器203输出助理元素802,以出现在由人工现实内容122表示的虚拟环境中。UI引擎328、428和渲染引擎322、422可以输出助理元素802来模拟无人机,因为助理元素802可以看起来悬停在虚拟环境中代表用户110的化身之上或旁边,并且与化身同步地导航通过虚拟环境。
图9A示出了手132的抓握构形810。手势检测器324、424可以识别包括手132的两个或更多个手指的抓握运动以在对应于助理元素802的位置处形成抓握构形810的手势。例如,手势检测器324、424可以通过确定手132的拇指在对应于助理元素802的第一部分的位置,并且确定除拇指之外的手132的至少一个手指在对应于助理元素802的第二部分的位置,来检测手132的抓握运动的完成。例如,助理元素802的第一部分与助理元素802的第二部分至少大致在直径上相对(diametrically opposed)。以这种方式,手势检测器324、424可以基于手132的手指在助理元素802的虚拟位置周围形成钳形(指尖对指尖)抓握、在助理元素802的虚拟位置周围形成捏(指肚对指肚)抓握、蚓状肌抓握(lumbrical grip)(其中手指接触对应于助理元素802的位置,但是没有包围在其上)等来检测抓握构形810的形成。
如果手势检测器324、424识别到手132的抓握运动序列以在对应于助理元素802的虚拟位置的位置处形成抓握构形810,随后是手132相对于助理元素802的投掷运动,则手势检测器324、424可以检测到选通手势。手势检测器324、424可以通过识别抓握构形810的释放以及手132和/或手腕702的特定移动的组合来检测投掷运动。该特定移动可以伴随、跟随抓握构形810的释放或与抓握构形810的释放部分地重叠。
图9B示出了手势检测器324、424检测的通过手132的一个或更多个手指的向外轻弹运动来进行的投掷运动。根据图9B的投掷构形820,手势检测器324、424检测到抓握运动810的释放,因为手势检测器324、424确定形成抓握构形810的拇指和其他手指不再处于对应于助理元素802的虚拟位置的两个位置(例如,基本上直径上相对的位置)。在图9B的示例中,手势检测器324、424基于向外轻弹运动804来识别后续投掷运动。
手势检测器324、424可以基于形成抓握构形810的拇指和其他手指的指骨的伸直来检测向外轻弹运动804,其中伸直满足最小速度以便模拟物理环境中基于手指的投掷。为了模拟相对于诸如助理元素802的UI元素的投掷运动,UI引擎328、428和渲染引擎322、422可以更新人工现实内容122以显示助理元素802远离手132的移动,诸如模拟助理元素802的移动。
图9C示出了手势检测器324、424检测的通过手腕702的屈曲进行的投掷运动。根据图9C的投掷构形830,手势检测器324、424检测到抓握运动810的释放,因为手势检测器324、424确定形成抓握构形810的拇指和其他手指不再处于对应于助理元素802的虚拟位置的两个位置(例如,基本上直径上相对的位置)。在图9C的示例中,手势检测器324、424基于手腕屈曲806识别后续投掷运动。
如果手腕702的弯曲满足最小速度以便模拟助理元素802的基于手腕的投掷(toss),手势检测器324、424可以基于连同或基本上与抓握构形810的释放同时的手腕702的弯曲,检测屈曲806。虽然图9C示出了基于手腕702的弯曲运动来执行屈曲806的投掷构形830,但是应当理解,在其他用例场景中,手势检测器324、424可以基于手腕802的伸直运动来检测投掷屈曲。为了模拟相对于诸如助理元素802的UI元素的投掷运动,UI引擎328、428和渲染引擎322、422可以更新人工现实内容122以显示助理元素802远离手132的外展运动(abduction movement)。
在各种示例中,响应于手势检测器324、424识别到包括抓握运动以形成抓握构形810,随后是投掷运动820、830中的一个或两个的选通手势,UI引擎328、428和渲染引擎322、422选通由人工现实内容122表示的虚拟环境内的UI元素。在一些示例中,UI元素包括用户可选选项的至少一个菜单。也就是说,UI引擎328、428可以响应于手势的识别来生成UI元素,并且渲染引擎322、422可以将UI元素渲染为对至少一些人工现实内容122的叠加。
在一些用例场景中,在将UI元素渲染为对人工现实内容122的叠加之后,手势检测器324、424识别相对于助理元素的按压并保持手势。例如,手势检测器324、424可以检测手132的一个手指在对应于助理元素802的虚拟位置的位置处的放置,这一个或更多个手指的放置保持在原位至少一个阈值时间段。也就是说,手势检测器324、424可以通过识别手132的至少一个手指位于对应于人工现实内容中的助理元素的位置并且在至少阈值时间段内基本静止来识别按压并保持手势。
手势检测器324、424可以将按压并保持手势识别为在渲染引擎322、422将UI元素渲染为对人工现实内容122的叠加之后发生的。在这些示例中,响应于手势检测器324、424在对应于助理元素802的虚拟位置的位置处识别到按压并保持手势,渲染引擎322、422可以从人工现实内容中移除UI元素的叠加。以这种方式,人工现实系统10、20可以基于从用户110接收的后续按压并保持手势形式的输入来取消UI元素(例如,菜单)的选通。
图10A和图10B示出了手132和相对手臂934的各种构形,手势检测器324、424可以使用这些构形来检测通常对应于源自相对手臂934的预定区域的抓握(或“握持”或“抓取”)手势的手势。例如,如果手势源自相对手臂934的相对手腕902,则手势检测器324、424可以检测抓握和拉动手势。在图9的示例中,UI引擎328、428生成并渲染助理元素802,使其看起来被动地驻留在相对手臂934上。也就是说,UI引擎328、428和渲染引擎322、422可以输出助理元素802,作为经由电子显示器203显示的人工现实内容122的一部分,使得助理元素802看起来叠加并附着到相对手臂934上。例如,UI引擎328、428和渲染引擎322、422可以输出助理元素802,以看起来叠加并附着到相对手腕902上。
手势检测器324、424可以根据从图像捕获设备138接收的图像数据中识别包括手132相对于助理元素802的抓握运动的手势。也就是说,手势检测器324、424可以检测手132的手指的运动,该运动将拇指和一个或更多个其他手指带到一起以形成图9A的抓握构形810,或者其他类型的抓握(gripping)(或“抓握(gripped)”或“握持”)构形。就在虚拟环境中抓握助理元素802而言,抓握运动包括手132的拇指被定位成接触助理元素802的第一部分,并且手132的至少一个手指(除拇指之外)被定位成接触助理元素802的第二部分。
例如,助理元素802的第一部分可以与助理元素802的第二部分在直径上相对或者至少大致在直径上相对。同样,手臂134不同于相对手臂934,并且手132是手臂134的一部分。手臂134和相对手臂934表示由人工现实内容122表示的虚拟环境中的用户110的手臂。在一个示例中,手臂134代表用户110的主导手臂,并且相对手臂934代表用户110的非主导手臂。
在图10A的特定示例中,手势检测器324、424基于识别另一个动作来识别手势,即,在抓握构形810仍然完整的情况下拉动运动908。拉动运动908表示外展离开相对手腕902。手势检测器324、424还可以在抓握构形810仍然完整时识别额外的运动,例如由手臂134的摇摄(panning)和/或垂直运动和/或基于深度的平移运动引起的手132的随机运动、由手腕702的屈曲引起的运动等。在这些示例中,只要抓握构形810相对于助理元素802的虚拟表示周围的手132的两个或更多个手指保持完整,UI引擎328、428和渲染引擎322、422可以在由人工现实内容122表示的虚拟环境内与手132的移动同步地移动助理元素802。
图10B示出了一种场景,其中UI引擎328、428和渲染引擎322、422基于助理元素802在由人工现实内容122表示的虚拟环境中的特定位置的放置来选通UI菜单912。图10B示出了一个示例,其中UI引擎328、428和渲染引擎322、422响应于手132的拉动运动908的停止同时抓握构形810仍然完整而选通UI菜单912。在其他示例中,UI引擎328、428和渲染引擎322、422可以响应于其他刺激,诸如手势检测器324、424对抓握构形810的释放的确定等,来选通UI菜单912。UI引擎328、428和渲染引擎322、422可以响应于手势检测器324、424检测到的这些手势来选通各种类型的UI元素。
UI菜单912代表用户可选选项的菜单。UI引擎328、428和渲染引擎322、422输出UI菜单912作为对人工现实内容122的叠加,以出现在虚拟环境中。在该示例中,手势检测器324、424可以识别由手132执行的表示菜单选通手势的后续手势。在一些示例中,手势检测器324、424可以检测滚动运动(scrolling movement),该滚动运动包括手132近似平行于UI菜单912的垂直轴或垂直表面的平移运动。滚动运动可以表示滚动手势,其中包括在UI菜单912中的复选框近似平行于手132(或其水平延伸的手指),并且UI引擎328、428可以更新平行复选框以“选中(checked)”形式出现。
图11示出了源自相对手腕902的手132的抓握和拉动手势以及人工现实系统10、20可以响应于抓握和拉动手势的识别而调用的UI元素。在这些示例中,UI引擎328、428和渲染引擎322、422可以输出助理元素802作为对由人工现实内容122表示的虚拟环境中的相对手腕902的表示的叠加。手势检测器324、424可以基于检测手132的两个或更多个手指的抓握运动以在对应于虚拟环境中的助理元素802的位置处形成抓握构形810,并且在处于抓握构形810的同时手132的两个或更多个手指的远离(例如,通常垂直于)相对手腕902的拉动运动918,来识别抓握和拉动手势。
响应于图11所示的抓握和拉动手势的识别,UI引擎328、428和渲染引擎322、422可以选通UI元素的渲染,例如圆形(径向)菜单922。在一些示例中,如果拉动运动918在距相对手腕902的预定距离内终止,则UI引擎328、428和渲染引擎322、422可以仅选通圆形菜单922。然而,如果拉动运动918在距相对手腕902大于预定距离的任何距离处终止,则UI引擎328、428和渲染引擎322、422可以通过也选通粒度菜单924的渲染,在用户可选选项方面提供更精细的粒度。粒度菜单924包括至少一个附加的用户可选选项,该附加的用户可选选项不包括在经由圆形菜单922呈现的用户可选选项集合中。在一些这样的实例中,粒度菜单924可以包括一个或更多个子选择,这些子选择表示在已经选择了来自圆形菜单922的选项之后变得可用的选项。在一些这样的示例中,拉动运动918可以在人工现实内容中被描绘为弦(string)或线,例如采用虚拟系绳(tether)926的形式。被显示为拉动运动918的检测到的运动可以包括两个不同的部分,即,在预定距离内终止以选通圆形菜单922的第一拉动运动,以及超过该预定距离以除了圆形菜单922之外选通粒度菜单924的第二拉动运动。
如上所述,在检测到抓握和拉动手势并渲染圆形菜单922以及在一些示例中渲染粒度菜单924时,手势检测器324、424可以进一步检测大体垂直于运动918的平面中的径向运动(即,相对于由运动918定义的轴的径向运动)。响应于检测到径向运动,UI引擎328、428渲染助理元素802的显示,以选择和取消选择圆形菜单922和/或粒度菜单924内的UI元素。
手势检测器324、424还可以识别手132的拇指和其他抓握手指之间的接触的停止,从而检测抓握构形810的释放。在一些这样的示例中,响应于手势检测器324、424识别抓握构形810的释放,UI引擎328、428和渲染引擎322、422可以移除圆形菜单922和(如果选通的话)粒度菜单924的叠加。以这种方式,参考图11描述的本公开的技术在调用UI元素方面模拟抽屉或文件柜,增加了弹性或磁性模拟,因为虚拟抽屉在释放手柄时被“关闭”。
本公开中描述的技术可以至少部分地以硬件、软件、固件或其任何组合实现。例如,所述技术的各个方面可在一个或更多个处理器内实现,该处理器包括一个或更多个微处理器、DSP、专用集成电路(ASIC)、现场可编程门阵列(FPGA)、或任何其他等效的集成或离散逻辑电路,以及此类部件的任何组合。术语“处理器”或“处理电路”通常可以指前述逻辑电路、固定功能电路、可编程电路中的任何一种,无论是单独的还是与其他逻辑电路组合的,或者任何其他等效电路。包括硬件的控制单元也可执行本公开的一种或更多种技术。
此类硬件、软件和固件可在相同的设备内或在单独的设备内实现以支持本公开中描述的各种操作和功能。此外,所述单元、模块或部件中的任一个可一起或单独地实现为离散的但可互操作的逻辑设备。将不同特征描述为模块或单元旨在突出不同的功能方面,并不一定意味着此类模块或单元必须由单独的硬件或软件部件实现。相反,与一个或更多个模块或单元相关联的功能可以由单独的硬件或软件部件执行,或者集成在公共或单独的硬件或软件部件内。
在本公开中描述的技术还可在包含指令的计算机可读介质(诸如计算机可读存储介质)中体现或编码。嵌入或编码在计算机可读存储介质中的指令可以例如在执行指令时致使可编程处理器或其他处理器执行方法。计算机可读存储介质可包括随机存取存储器(RAM)、只读存储器(ROM)、可编程只读存储器(PROM)、可擦除可编程只读存储器(EPROM)、电可擦除可编程只读存储器(EEPROM)、闪存、硬盘、CD-ROM、软盘、盒式磁带、磁介质、光学介质或其他计算机可读介质。
如本文通过各种示例所描述的,本公开的技术可包括人工现实系统或结合人工现实系统来实现。如所描述的,人工现实是在呈现给用户之前已经以某种方式调整的现实的形式,其可包括例如虚拟现实(VR)、增强现实(AR)、混合现实(MR)、混杂现实、或其某种组合和/或衍生物。人工现实内容可以包括完全生成的内容或与捕获的内容(例如,真实世界的照片)相结合的生成的内容。人工现实内容可以包括视频、音频、触觉反馈、或其某种组合,且其中任何一个都可以在单个通道中或在多个通道中被呈现(例如向观看者产生三维效果的立体视频)。另外,在一些实施例中,人工现实可以与应用、产品、附件、服务或其某种组合相关联,这些应用、产品、附件、服务或其某种组合例如用于在人工现实中创建内容和/或在人工现实中被使用(例如,在人工现实中执行活动)。提供人工现实内容的人工现实系统可以在各种平台上实现,这些平台包括连接到主计算机系统的头戴式显示器(HMD)、独立的HMD、移动设备或计算系统、或者能够向一个或更多个观看者提供人工现实内容的任何其他硬件平台。

Claims (14)

1.一种人工现实系统,包括:
图像捕获设备,其被配置为捕获代表物理环境的图像数据;
头戴式显示器(HMD),其被配置为输出人工现实内容;
手势检测器,其被配置为:
从所述图像数据识别手势,所述手势包括手在至少阈值时间段内基本静止并且被定位成使得所述手的食指和拇指形成近似直角的构形;
用户界面(UI)引擎,其被配置为响应于所识别的手势生成UI元素;和
渲染引擎,其被配置为将所述UI元素渲染为对所述人工现实内容的叠加。
2.根据权利要求1所述的人工现实系统,
其中,所述手的定位是所述手的第一定位,
其中,所识别的手势是第一手势,
其中,为了生成所述UI元素,所述UI引擎被配置成生成所述UI元素以符合由所述第一手势指示的第一取向,
其中,所述手势检测器还被配置成:
从所述图像数据识别所述手的第二定位,以及
识别由手势库中与所述手的第二定位匹配的另一条目表示的第二手势;
其中,所述UI引擎还被配置为修改所述UI元素以符合基于所识别的第二手势的第二取向,并且
其中,所述渲染引擎还被配置为根据所述第二取向渲染所述UI元素。
3.根据权利要求2所述的人工现实系统,其中,所述第二手势表示相对于所述第一手势的90度手旋转和180度手映像;和/或优选地,其中,所述第一UI取向是纵向取向,并且
其中,所述第二UI取向是横向取向;和/或优选地,其中所述第一UI取向包括包含在所述第二UI取向中的用户可选选项的子集。
4.根据权利要求1、权利要求2或权利要求3所述的人工现实系统,其中,所识别的手势指示所述UI元素的左下角的位置和所述UI元素在所述人工现实内容中的取向;并且优选地,其中由从所述图像数据中识别的所述手的食指和拇指形成的直角的拐角指示所述UI的左下角在所述人工现实内容中的位置;和/或优选地,其中从所述图像数据识别的所述手的食指的定位指示所述UI在所述人工现实内容中的取向,其中,所述UI的长边基本上与所述手的食指对齐。
5.根据权利要求1至4中任一项所述的人工现实系统,其中,为了识别包括在至少所述阈值时间段内基本静止并且被定位成使得所述手的食指和拇指形成近似直角的手的手势,所述手势检测器被配置成将所述手势识别为由手势库中的条目表示。
6.根据权利要求1至5中任一项所述的人工现实系统,其中,所述图像捕获设备集成在所述HMD内。
7.一种方法,包括:
由头戴式显示器(HMD)输出人工现实内容;
由所述HMD捕获代表物理环境的图像数据;
由手势检测器从所述图像数据识别手势,所述手势包括手在至少阈值时间段内基本静止并且被定位成使得所述手的食指和拇指形成近似直角;
响应于所识别的手势,由用户界面(UI)引擎生成UI元素;和
由渲染引擎将所述UI元素渲染为对所述人工现实内容的叠加。
8.根据权利要求7所述的方法,
其中,所述手的定位是所述手的第一定位,
其中,所识别的手势是第一手势,
其中,生成所述UI元素包括由所述UI引擎生成所述UI元素以符合由所述第一手势指示的第一取向,
所述方法还包括:
由所述手势检测器从所述图像数据识别所述手的第二定位,
由所述手势检测器识别由手势库中与所述手的第二定位匹配的另一条目表示的第二手势;
由所述UI引擎修改所述UI元素,以符合基于所识别的第二手势的第二取向;和
由所述渲染引擎根据所述第二取向渲染所述UI元素。
9.根据权利要求8所述的方法,其中,所述第二手势表示相对于所述第一手势的90度手旋转和180度手映像。
10.根据权利要求8或权利要求9所述的方法,
其中,所述第一UI取向是纵向取向,并且
其中,所述第二UI取向是横向取向。
11.根据权利要求8、权利要求9或权利要求10所述的方法,其中,所述第一UI取向包括包含在所述第二UI取向中的用户可选选项的子集。
12.根据权利要求8至11中任一项所述的方法,其中,所识别的手势指示所述UI元素的左下角的位置和所述UI元素在所述人工现实内容中的取向;并且优选地,其中由从所述图像数据中识别的所述手的食指和拇指形成的直角的拐角指示所述UI的左下角在所述人工现实内容中的位置;和/或优选地,其中从所述图像数据识别的所述手的食指的定位指示所述UI在所述人工现实内容中的取向,其中,所述UI的长边基本上与所述手的食指对齐。
13.根据权利要求8至12中任一项所述的方法,其中,识别所述手势包括由所述手势检测器将所述手势识别为由手势库中的条目表示。
14.一种编码有指令的非暂时性计算机可读存储介质,所述指令在被执行时使得人工现实系统的处理电路:
通过头戴式显示器(HMD)输出人工现实内容;
从所述HMD接收代表物理环境的图像数据;
从所述图像数据识别手势,所述手势包括手在至少阈值时间段内基本静止并且被定位成使得所述手的食指和拇指形成近似直角;
响应于所识别的手势生成UI元素;和
将所述UI元素渲染为对所述人工现实内容的叠加。
CN202080039021.8A 2019-06-07 2020-06-03 用于人工现实系统的拐角识别手势驱动的用户界面元素选通 Pending CN113892075A (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US16/435,079 US11043192B2 (en) 2019-06-07 2019-06-07 Corner-identifiying gesture-driven user interface element gating for artificial reality systems
US16/435,079 2019-06-07
PCT/US2020/035855 WO2020247450A1 (en) 2019-06-07 2020-06-03 Corner-identifying gesture-driven user interface element gating for artificial reality systems

Publications (1)

Publication Number Publication Date
CN113892075A true CN113892075A (zh) 2022-01-04

Family

ID=71842798

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202080039021.8A Pending CN113892075A (zh) 2019-06-07 2020-06-03 用于人工现实系统的拐角识别手势驱动的用户界面元素选通

Country Status (7)

Country Link
US (1) US11043192B2 (zh)
EP (1) EP3980868A1 (zh)
JP (1) JP2022535322A (zh)
KR (1) KR20220018562A (zh)
CN (1) CN113892075A (zh)
TW (1) TW202101170A (zh)
WO (1) WO2020247450A1 (zh)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2021173839A1 (en) * 2020-02-26 2021-09-02 Magic Leap, Inc. Hand gesture input for wearable system
US11652959B2 (en) 2020-05-12 2023-05-16 True Meeting Inc. Generating a 3D visual representation of the 3D object using a neural network selected out of multiple neural networks
US11805157B2 (en) * 2020-05-12 2023-10-31 True Meeting Inc. Sharing content during a virtual 3D video conference
CN113190110A (zh) * 2021-03-30 2021-07-30 青岛小鸟看看科技有限公司 头戴式显示设备的界面元素控制方法及装置
CN113282167B (zh) * 2021-05-08 2023-06-27 青岛小鸟看看科技有限公司 头戴式显示设备的交互方法、装置及头戴式显示设备
US11829531B2 (en) * 2021-09-13 2023-11-28 Htc Corporation Human-computer interaction method and system and non-transitory computer readable storage medium
US12045385B2 (en) * 2022-03-23 2024-07-23 Htc Corporation Wearable tracking system and wearable tracking method
US20240264660A1 (en) * 2023-02-08 2024-08-08 Meta Platforms Technologies, Llc Facilitating User Interface Interactions in an Artificial Reality Environment

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20140168267A1 (en) * 2012-12-18 2014-06-19 Samsung Electronics Co., Ltd. Augmented reality system and control method thereof
CN105027033A (zh) * 2013-02-14 2015-11-04 高通股份有限公司 用于头部安装显示器的基于人体手势的区域和空间选择
US20160004908A1 (en) * 2013-02-19 2016-01-07 Brilliantservice Co., Ltd. Shape recognition device, shape recognition program, and shape recognition method
CN106937531A (zh) * 2014-06-14 2017-07-07 奇跃公司 用于产生虚拟和增强现实的方法和系统
CN113841110A (zh) * 2019-06-07 2021-12-24 脸谱科技有限责任公司 具有用于选通用户界面元素的个人助理元素的人工现实系统
CN113892074A (zh) * 2019-06-07 2022-01-04 脸谱科技有限责任公司 用于人工现实系统的手臂凝视驱动的用户界面元素选通

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20140168267A1 (en) * 2012-12-18 2014-06-19 Samsung Electronics Co., Ltd. Augmented reality system and control method thereof
CN105027033A (zh) * 2013-02-14 2015-11-04 高通股份有限公司 用于头部安装显示器的基于人体手势的区域和空间选择
US20160004908A1 (en) * 2013-02-19 2016-01-07 Brilliantservice Co., Ltd. Shape recognition device, shape recognition program, and shape recognition method
CN106937531A (zh) * 2014-06-14 2017-07-07 奇跃公司 用于产生虚拟和增强现实的方法和系统
CN113841110A (zh) * 2019-06-07 2021-12-24 脸谱科技有限责任公司 具有用于选通用户界面元素的个人助理元素的人工现实系统
CN113892074A (zh) * 2019-06-07 2022-01-04 脸谱科技有限责任公司 用于人工现实系统的手臂凝视驱动的用户界面元素选通

Also Published As

Publication number Publication date
EP3980868A1 (en) 2022-04-13
JP2022535322A (ja) 2022-08-08
WO2020247450A1 (en) 2020-12-10
US20200388247A1 (en) 2020-12-10
US11043192B2 (en) 2021-06-22
KR20220018562A (ko) 2022-02-15
TW202101170A (zh) 2021-01-01

Similar Documents

Publication Publication Date Title
US11003307B1 (en) Artificial reality systems with drawer simulation gesture for gating user interface elements
CN113892074A (zh) 用于人工现实系统的手臂凝视驱动的用户界面元素选通
US11461955B2 (en) Holographic palm raycasting for targeting virtual objects
US10890983B2 (en) Artificial reality system having a sliding menu
CN113826058B (zh) 具有自触觉虚拟键盘的人工现实系统
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
US11086475B1 (en) Artificial reality systems with hand gesture-contained content window
TW202105133A (zh) 在人工實境環境中使用周邊裝置的虛擬使用者介面
US10852839B1 (en) Artificial reality systems with detachable personal assistant for gating user interface elements
US10990240B1 (en) Artificial reality system having movable application content items in containers
KR20220016984A (ko) 디지트-매핑된 자가-햅틱 입력 방법을 갖는 인공 현실 시스템

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
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