CN117015753A - 对人工现实环境中的手势的稳定 - Google Patents

对人工现实环境中的手势的稳定 Download PDF

Info

Publication number
CN117015753A
CN117015753A CN202180094975.3A CN202180094975A CN117015753A CN 117015753 A CN117015753 A CN 117015753A CN 202180094975 A CN202180094975 A CN 202180094975A CN 117015753 A CN117015753 A CN 117015753A
Authority
CN
China
Prior art keywords
user
artificial reality
motion
reality environment
virtual object
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
CN202180094975.3A
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
Meta Platforms 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 Meta Platforms Technologies LLC filed Critical Meta Platforms Technologies LLC
Publication of CN117015753A publication Critical patent/CN117015753A/zh
Pending legal-status Critical Current

Links

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
    • 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
    • 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/0093Optical systems or apparatus not provided for by any of the groups G02B1/00 - G02B26/00, G02B30/00 with means for monitoring data relating to the user, e.g. head-tracking, eye-tracking
    • 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
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T19/00Manipulating 3D models or images for computer graphics
    • G06T19/006Mixed reality

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (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)

Abstract

一种方法包括:向用户显示人工现实环境;确定用户与人工现实环境交互的上下文;以及基于该上下文,确定用户想要使用手势与人工现实环境内的目标虚拟对象进行交互。该方法还包括:当用户正试图与目标虚拟对象进行交互时,监测用户相对于目标虚拟对象而做出的手势的运动模式,以及基于这些运动模式生成与用户相关联的运动稳定轮廓。运动稳定轮廓被配置为用于在人工现实环境内的后续用户交互期间、稳定用户所做出的手势。

Description

对人工现实环境中的手势的稳定
技术领域
本公开总体上涉及人工现实环境,并且更具体地,涉及对人工现实环境中的手势的稳定。
背景技术
虚拟现实环境通常可以包括计算机生成的环境,该计算机生成的环境包括虚拟现实人工产物(例如,虚拟位置、和虚拟事件等)。这样的虚拟世界及其人工产物通常包括各种虚拟应用(例如,虚拟视频游戏),这些虚拟应用可以允许用户通过以下方式来利用这些人工产物:以其计算机生成的表示(通常称为化身)的形式操纵其虚拟存在。某些虚拟现实应用(例如,虚拟现实视频游戏、虚拟现实游览、虚拟现实界面)可以允许不同的用户相见以进行社交、就虚拟现实应用内的一个或多个任务进行协作、或在虚拟环境内相互竞争。
用户通常可以使用控制器来在虚拟环境内进行交互。然而,在一些实例中,允许用户利用一个或多个身体部位(例如,手)在虚拟环境内进行交互可以增强用户的虚拟现实体验,尤其是例如关于第一人称视角(point of view,POV)虚拟视频游戏的虚拟现实体验。然而,由于缺乏会被虚拟现实设备接收的来自用户的身体部位的任何定位数据,因此虚拟现实设备可能难以追踪和确定某些动作或手势。例如,如果用户要在半空中做手势以手动地与虚拟用户界面交互,则用户的手颤动或抖动将阻碍用户在虚拟现实环境内提供命令或选择。提供用于改进在虚拟现实环境中对身体部位进行追踪和确定的技术可能有用。
发明内容
根据当前所公开的各实施例,本实施例包括用于在人工现实环境中学习用户特定的运动模式并稳定手势的技术。
根据本发明,提供了一种方法,该方法包括:由计算系统:向用户显示人工现实环境;确定用户与人工现实环境交互的上下文;基于该上下文,确定用户想要使用手势与人工现实环境内的目标虚拟对象进行交互;在用户正试图与目标虚拟对象进行交互时,监测用户相对于目标虚拟对象而做出的手势的运动模式;以及基于这些运动模式,生成与用户相关联的运动稳定轮廓,其中,运动稳定轮廓被配置为:用于在人工现实环境内的后续用户交互期间,稳定用户所做出的手势。
可选地,计算平台可以通过以下方式来确定用户与人工现实环境交互的上下文:确定开始对用户相对于目标虚拟对象而做出的手势的运动模式进行监测的触发。所确定的上下文可以用作开始对用户相对于目标虚拟对象而做出的手势的运动模式进行监测的触发,以及用作标识关于目标虚拟对象的特定地面真值(ground truth)的工具,通过该特定地面真值来评估用户相对于目标虚拟对象而做出的手势的运动模式。
可选地,计算平台可以基于上下文通过以下方式来确定用户想要使用手势与目标虚拟对象进行交互:确定例如当用户正试图与目标虚拟对象进行交互时所经过的时间、用户可相对于目标虚拟对象而做出的一个或多个特定手动作或腕部动作、用户可保持一段时间的一个或多个特定手势、一个或多个特定手势(例如,挥手、手指指向、握拳、签名)、和一个或多个手势序列等。
可选地,计算平台可以利用机器学习(machine learning,ML)模型,该ML模型可以在用户正试图与各种目标虚拟对象进行交互时接收用户相对于各种目标虚拟对象而做出的手势的运动模式,并且随后可以利用这些运动模式来为这个特定用户生成运动稳定轮廓。可选地,运动稳定轮廓可以仅与该特定用户相关联,使得计算平台可以生成N个不同的运动稳定轮廓,该N个不同的运动稳定建档用于N个不同用户中的各个用户。
可选地,计算平台可以基于运动稳定轮廓来确定与用户相关联的运动范围(例如,距离范围、体素范围、像素范围、和姿势范围等)。例如,当用户正试图执行与人工现实环境中的虚拟对象的后续用户交互时,计算平台可以监测用户相对于虚拟对象而做出的手势的运动。可选地,计算平台随后可以在用户所做出的手势的运动超出运动范围(例如,距离范围、体素范围、像素范围、和姿势范围等)时,确定在与人工现实环境中的虚拟对象的后续用户交互期间稳定用户所做出的手势。
可选地,当用户正试图执行与人工现实环境中的虚拟对象的后续用户交互时,计算平台可以监测用户相对于虚拟对象而做出的手势的运动。可选地,计算平台随后可以在用户所做出的手势的运动处于运动范围(例如,距离范围、体素范围、像素范围、和姿势范围等)内时,确定放弃在与人工现实环境中的虚拟对象的后续用户交互期间、稳定用户所做出的手势。
可选地,所述用户是第一用户,并且可选地,所述运动稳定轮廓是第一运动稳定轮廓。可选地,该方法还包括:在第二用户正试图与人工现实环境内的目标虚拟对象进行交互时,监测第二用户相对于目标虚拟对象而做出的手势的运动模式,并且还可选地,基于这些运动模式生成与第二用户相关联的第二运动稳定轮廓,其中,第二运动稳定轮廓被配置为:用于在与人工现实环境中的虚拟对象的后续用户交互期间,稳定第二用户所做出的手势。
根据本发明,还提供了一种系统,该系统包括:一个或多个非暂态计算机可读存储介质,该一个或多个非暂态计算机可读存储介质包括指令;以及一个或多个处理器,该一个或多个处理器耦接到该存储介质,该一个或多个处理器被配置为执行所述指令以:向用户显示人工现实环境;确定用户与人工现实环境交互的上下文;基于该上下文确定用户想要使用手势与人工现实环境内的目标虚拟对象进行交互;当用户正试图与目标虚拟对象进行交互时,监测用户相对于目标虚拟对象而做出的手势的运动模式;以及基于这些运动模式生成与用户相关联的运动稳定轮廓,其中,运动稳定轮廓被配置为:用于在人工现实环境内的后续用户交互期间,稳定用户所做出的手势。
可选地,用于确定用户与人工现实环境交互的上下文的指令还包括用于以下操作的指令:确定开始对用户相对于目标虚拟对象而做出的手势的运动模式进行监测的触发。
可选地,用于基于上下文确定用户想要使用手势与目标虚拟对象进行交互的指令还包括用于以下操作的指令:确定在用户正试图与目标虚拟对象进行交互时所经过的时间。
可选地,所述指令还包括用于以下操作的指令:基于运动稳定轮廓,确定与用户相关联的运动范围。
可选地,所述指令还包括用于以下操作的指令:在用户正试图执行与人工现实环境中的虚拟对象的后续用户交互时,监测用户相对于该虚拟对象而做出的手势的运动;以及可选地,在用户所做出的手势的运动超出运动范围时,在与人工现实环境中的虚拟对象的后续用户交互期间稳定用户所做出的手势。
可选地,所述指令还包括用于以下操作的指令:在用户正试图执行与人工现实环境中的虚拟对象的后续用户交互时,监测用户相对于该虚拟对象而做出的手势的运动;以及可选地,在用户所做出的手势的运动处于运动范围内时,放弃在与人工现实环境中的虚拟对象的后续用户交互期间稳定用户所做出的手势。
可选地,所述用户是第一用户。可选地,所述运动稳定轮廓是第一运动稳定轮廓。可选地,所述指令还包括用于以下操作的指令:在第二用户正试图与人工现实环境内的目标虚拟对象进行交互时,监测第二用户相对于目标虚拟对象而做出的手势的运动模式;以及可选地,基于这些运动模式生成与第二用户相关联的第二运动稳定轮廓,其中,可选地,第二运动稳定轮廓被配置为:用于在与人工现实环境中的虚拟对象的后续用户交互期间,稳定第二用户所做出的手势。
可选地,第二运动稳定轮廓与第一运动稳定轮廓不同。
可选地,与用户相关联的运动稳定轮廓是利用以下过程来生成的:该过程在相对于人工现实环境的后台中执行。
根据本发明,还进一步提供了一种非暂态计算机可读介质,该非暂态计算机可读介质包括指令,所述指令在被计算系统的一个或多个处理器执行时使该一个或多个处理器:向用户显示人工现实环境;确定用户与人工现实环境交互的上下文;基于该上下文,确定用户想要使用手势与人工现实环境内的目标虚拟对象进行交互;在用户正试图与目标虚拟对象进行交互时,监测用户相对于目标虚拟对象而做出的手势的运动模式;以及基于这些运动模式,生成与用户相关联的运动稳定轮廓,其中,运动稳定轮廓被配置为:用于在人工现实环境内的后续用户交互期间,稳定用户所做出的手势。
因此,本技术被提供用于在人工现实环境中学习用户特定的运动模式并稳定手势。具体地,在人工现实环境中学习用户特定的运动模式并稳定用户的运动模式的本技术可以例如允许用户身体部位(例如,手、头、四肢、和手指等)用作人工现实设备的唯一输入模态。例如,当特定用户正在人工现实环境内进行交互时,可以在人工现实设备上对(例如,在后台中执行的)手势稳定过程进行实例化,以学习特定用户的运动模式,为特定用户生成运动稳定轮廓,并且随后在用户正与人工现实设备上执行的人工现实应用进行交互时稳定用户的手势。实际上,手势稳定技术可以利用机器学习(ML)模型来实现,以学习用户的运动模式,并利用所学习的运动模式来生成运动稳定轮廓(例如,签名手颤动、手抖动,以及更一般地,任何学习到或观察到的可特定于特定用户的手运动模式或手移动模式)。在生成用户特定的运动稳定轮廓并生成感兴趣的像素区域或范围(通过其定义了运动稳定轮廓)之后,当用户所做出的手势的运动没有处于运动范围(例如,距离范围、体素范围、像素范围、和姿势范围等)内时,计算平台可以在与人工现实环境中的虚拟对象的后续用户交互期间自动地稳定用户所做出的手势。以这种方式,本技术可以允许用户身体部位(特别是用户的手)完全地替代用于在人工现实环境中进行交互的所有控制器或其他物理对象,并因此可以增强用户在人工现实环境中的体验。
本文所公开的各实施例仅是示例,并且本公开的范围不限于这些实施例。某些实施例可以包括以上所公开的各实施例中的全部或一些的部件、元件、特征、功能、操作或步骤,或者不包括这些部件、元件、特征、功能、操作或步骤。根据本发明的实施例在所附的针对方法、存储介质、系统和计算机程序产品的权利要求中特别公开,其中,在一个权利要求类别(例如,方法)中所提到的任何特征也可以在另一个权利要求类别(例如,系统)中被要求保护。所附权利要求书中的从属关系或回引仅出于形式原因而选择。但是,由于故意回引任何先前权利要求(特别是多项从属关系)而产生的任何主题也可以被要求保护,使得权利要求及其特征的任何组合被公开,并且可以被要求保护,而不管所附权利要求中所选择的从属关系如何。可以被要求保护的主题不仅包括在所附权利要求中阐述的特征的组合,还包括权利要求中的特征的任何其他组合,其中,权利要求中提及的每个特征可以与权利要求中的任何其他特征或其他特征的组合相结合。此外,本文所描述或所描绘的各实施例和特征中的任何实施例和特征可以在单独的权利要求中被要求保护,和/或在与本文所描述或所描绘的任何实施例或特征的任何组合中或在与所附权利要求书中的任何特征的任何组合中被要求保护。
附图说明
图1示出了人工现实系统的示例实施例。
图2示出了人工现实环境的示例实施例。
图3示出了人工现实环境的另一示例实施例。
图4示出了用于在人工现实环境中学习用户特定的运动模式并稳定手势的方法的流程图。
图5示出了与虚拟现实系统相关联的示例网络环境。
图6示出了示例计算机系统。
具体实施方式
虚拟现实环境通常可以包括计算机生成的环境,该计算机生成的环境包括虚拟现实人工产物(例如,虚拟位置、和虚拟事件等)。这样的虚拟世界及其人工产物通常包括各种虚拟应用(例如,虚拟视频游戏),这些虚拟应用可以允许用户通过以下方式来利用这些人工产物:以其计算机生成的表示(通常称为化身)的形式操纵其虚拟存在。某些虚拟现实应用(例如,虚拟现实视频游戏、虚拟现实游览、虚拟现实界面)可以允许不同的用户相见以进行社交、就虚拟现实应用内的一个或多个任务进行协作、或在虚拟环境内相互竞争。
用户通常可以使用控制器来在虚拟环境内进行交互。然而,在一些实例中,允许用户利用一个或多个身体部位(例如,手)在虚拟环境内进行交互可以增强用户的虚拟现实体验,尤其是例如关于第一人称视角(POV)虚拟视频游戏的虚拟现实体验。然而,由于缺乏会被虚拟现实设备接收的来自用户的身体部位的任何定位数据,因此虚拟现实设备可能难以追踪和确定某些动作或手势。例如,如果用户要在半空中做手势以手动地与虚拟用户界面交互,则用户的手颤动、手抖动(以及更一般地,可能与特定用户相关联的任何手运动模式或手移动模式)将阻碍用户在虚拟现实环境内提供命令或选择。提供用于在人工现实环境中学习用户特定的运动模式并稳定手势的技术可能有用。
因此,根据当前所公开的各实施例,本实施例包括用于在人工现实环境中学习用户特定的运动模式并稳定手势的技术。在某些实施例中,计算平台可以向用户显示人工现实环境。在某些实施例中,计算平台可以确定用户与人工现实环境交互的上下文。例如,在某些实施例中,计算平台可以通过以下方式来确定用户与人工现实环境交互的上下文:确定开始对用户相对于目标虚拟对象而做出的手势的运动模式进行监测的触发。实际上,在一些实施例中,所确定的上下文可以用作开始对用户相对于目标虚拟对象而做出的手势的运动模式进行监测的触发,以及用作标识关于目标虚拟对象的特定地面真值的工具,通过该特定地面真值来评估用户相对于目标虚拟对象而做出的手势的运动模式。在某些实施例中,计算平台可以基于上下文,确定用户想要使用手势与人工现实环境内的目标虚拟对象进行交互。例如,在某些实施例中,计算平台例如可以基于上下文通过以下方式来确定用户想要使用手势与目标虚拟对象进行交互:确定在用户正试图与目标虚拟对象进行交互时所经过的时间、用户可相对于目标虚拟对象而做出的一个或多个特定手动作或腕部动作、用户可保持一段时间的一个或多个特定手势、一个或多个特定手势(例如,挥手、手指指向、握拳、签名)、和一个或多个手势序列等。
在某些实施例中,计算平台随后可以在用户正试图与目标虚拟对象进行交互时,监测用户相对于目标虚拟对象而做出的手势的运动模式。在某些实施例中,计算平台随后可以基于运动模式,来生成与用户相关联的运动稳定轮廓,其中,该运动稳定轮廓可以用于在与人工现实环境中的虚拟对象的后续用户交互期间、稳定该用户所做出的手势。例如,在一些实施例中,计算平台可以利用机器学习(ML)模型,该ML模型可以在用户正试图与各种目标虚拟对象进行交互时,接收用户相对于各种目标虚拟对象而做出的手势的运动模式,并且随后可以利用这些运动模式来为这个特定用户生成运动稳定轮廓。在一个实施例中,运动稳定轮廓可以仅与该特定用户相关联,使得计算平台可以生成N个不同的运动稳定轮廓,该N个不同的运动稳定轮廓用于N个不同用户中的各个用户。
在某些实施例中,计算平台可以基于运动稳定轮廓,来确定与用户相关联的运动范围(例如,距离范围、体素范围、像素范围、和姿势范围等)。例如,在某些实施例中,当用户正试图执行与人工现实环境中的虚拟对象的后续用户交互时,计算平台可以监测用户相对于虚拟对象而做出的手势的运动,并且随后可以在用户所做出的手势的运动超出运动范围(例如,距离范围、体素范围、像素范围、和姿势范围等)时,确定在与人工现实环境中的虚拟对象的后续用户交互期间稳定用户所做出的手势。在另一实施例中,计算平台可以在用户正试图执行与人工现实环境中的虚拟对象的后续用户交互时,确定监测用户相对于虚拟对象而做出的手势的运动,并且随后可以在用户所做出的手势的运动处于运动范围(例如,距离范围、体素范围、像素范围、和姿势范围等)内时,确定放弃在与人工现实环境中的虚拟对象的后续用户交互期间稳定用户所做出的手势。
实际上,本技术被提供用于在人工现实环境中学习用户特定的运动模式并稳定手势。具体地,在人工现实环境中学习用户特定的运动模式并稳定用户的运动模式的本技术可以例如允许用户身体部位(例如,手、头、四肢、和手指等)用作人工现实设备的唯一输入模态。例如,在某些实施例中,当特定用户正在人工现实环境内进行交互时,可以在人工现实设备上对(例如在后台中执行的)手势稳定过程进行实例化,以学习特定用户的运动模式,为特定用户生成运动稳定轮廓,并且随后在用户正与人工现实设备上执行的人工现实应用进行交互时稳定该用户的手势。实际上,手势稳定技术可以利用机器学习(ML)模型来实现,以学习用户运动模式,并利用所学习的运动模式来生成运动稳定轮廓(例如,签名手颤动、手抖动,以及更一般地,任何学习到或观察到的可特定于特定用户的手运动模式或手移动模式)。在生成用户特定的运动稳定轮廓并生成感兴趣的像素区域或范围(通过其定义了运动稳定轮廓)之后,当用户所做出的手势的运动超出运动范围(例如,距离范围、体素范围、像素范围、和姿势范围等)时,计算平台可以在与人工现实环境中的虚拟对象的后续用户交互期间,自动地稳定用户所做出的手势。以这种方式,本技术可以允许用户身体部位(特别是用户的手)完全地替代用于在人工现实环境中进行交互的所有控制器或其他物理对象,并因此可以增强用户在人工现实环境中的体验。
如本文所使用的,“人工现实”可以指在向用户呈现之前已经以某种方式进行了操纵的基于电子的现实形式,其例如包括虚拟现实(virtual reality,VR)、增强现实(augmented reality,AR)、混合现实(mixed reality,MR)、混合现实(hybrid reality)、模拟现实、沉浸式现实、全息、或它们的任意组合。例如,“人工现实”内容可以完全包括计算机生成的内容、或者部分地包括与所采集的内容(例如,真实世界的图像)相结合的计算机生成的内容。在一些实施例中,“人工现实”内容还可以包括视频、音频、触觉反馈、或它们的某种组合,以上中的任何一种可以在单个通道或多个通道中呈现(例如对观看者产生三维(three-dimensional,3D)效果的立体视频)。此外,如文本所使用的,应理解的是,“人工现实”可以与以下应用、产品、附件、服务、或它们的组合相关联,这些应用、产品、附件、服务、或它们的组合例如可以用于在人工现实中创建内容和/或用于人工现实中(例如,在人工现实中执行活动)。因此,“人工现实”内容可以在各种平台上实现,这些平台包括连接到主计算机系统的头戴式设备(head-mounted device,HMD)、独立HMD、移动设备或计算系统、或能够向一位或多位观看者提供人工现实内容的任何其他硬件平台。
考虑到上述内容,如图1所示,对示例人工现实系统100进行描述可能有用,该示例人工现实系统用于在人工现实环境中学习用户特定的运动模式并稳定手势。在某些实施例中,人工现实系统100可以包括用户102,该用户可以与这样的人工现实应用交互:该人工现实应用可以在例如由该用户佩戴的人工现实设备104上执行。例如,如由图1所进一步示出的,人工现实系统100可以包括人工现实设备104和计算系统108。用户102可以佩戴人工现实设备104,该人工现实设备可以向用户102显示视觉人工现实内容。例如,在一个实施例中,人工现实设备104可以向用户102显示各种人工现实应用和/或其他人工现实体验,以供用户与多个人工现实设备104的一个或多个附加用户进行交互。在一些实施例中,人工现实设备104可以包括音频设备,该音频设备可以向用户102提供音频人工现实内容。人工现实设备104还可以包括一个或多个摄像头,该一个或多个摄像头可以采集环境的图像和视频。人工现实设备104可以包括眼动追踪系统,以确定用户102的辐辏距离(vergencedistance)。在一些实施例中,人工现实设备104可以包括头戴式显示器(head-mounteddisplay,HDM)。
在某些实施例中,如由图1所进一步描绘的,与利用控制器在人工现实应用(其在人工现实设备104上执行)内进行交互相对,用户102可以使用一个或多个身体角色110(例如,手、头、四肢、和手指等)进行交互。例如,在某些实施例中,人工现实设备104可以通过以下方式来追踪用户102的一个或两个身体角色110:将光阵列112(例如,红外(infrared,IR)光)照射到用户102的一个或两个角色110上,并基于对照射的光阵列112的反射进行采集,来将用户102所做出的姿态确定为从用户102指向计算系统108和/或人工现实设备104的各种输入。计算系统108可以通过有线或无线连接而连接到人工现实设备104。计算系统108可以响应于所确定的由用户的一个或多个角色110做出的用户姿态,控制人工现实设备104向用户102提供人工现实内容并接收来自该用户的输入。计算系统108可以是独立的主计算机系统、与人工现实设备104集成在一起的板载计算机系统、移动电子设备、或能够向用户102提供人工现实内容并接收来自该用户的输入的任何其他硬件平台。
现在转向图2,根据当前所公开的各实施例,人工现实环境200可用于在人工现实环境中学习用户特定的运动模式并稳定手势。如所描绘的,人工现实环境200可以包括一个或多个用户102,该一个或多个用户佩戴着各自的人工现实设备104,这些人工现实设备可以适于允许该一个或多个用户102参与人工现实体验202A至202D。具体地,如图2所描绘的,人工现实设备104可以通过一个或多个网络206耦接到计算平台204。在某些实施例中,计算平台204例如可以包括基于云的计算架构,该基于云的计算架构适于对在人工现实设备104上执行的人工现实体验202A至202D进行托管并为这些人工现实体验提供服务。例如,在一个实施例中,计算平台204可以包括平台即服务(Platform as a Service,PaaS)架构、软件即服务(Software as a Service,SaaS)架构、和基础设施即服务(Infrastructure as aService,IaaS)、或其他类似的基于云的计算架构。
在某些实施例中,如由图2所进一步描绘的,计算平台204可以包括一个或多个处理设备208(例如,服务器)、和一个或多个数据存储库210。例如,在一些实施例中,处理设备208(例如,服务器)可以包括一个或多个通用处理器,或可以包括一个或多个图形处理单元(graphic processing unit,GPU)、一个或多个专用集成电路(application-specificintegrated circuit,ASIC)、一个或多个片上系统(system-on-chip,SoC)、一个或多个微控制器、一个或多个现场可编程门阵列(field-programmable gate array,FPGA)、或可适于为人工现实体验202A至202D提供处理和/或计算支持的一个或多个任何其他处理设备。类似地,数据存储库210例如可以包括一个或多个内部数据库,该一个或多个内部数据库可以用于存储与一个或多个用户102相关联的信息(例如,用户上下文数据、用户角色110的移动和姿态数据)。
在某些实施例中,如前所述,计算平台204可以是在人工现实设备104上执行的人工现实体验202A至202D的托管和服务平台。例如,在一些实施例中,人工现实体验202A至202D(例如,“人工现实体验”)例如可以包括人工现实应用,例如视频游戏应用(例如,单玩家游戏、多玩家游戏、第一人称视角(POV)游戏)、地图绘制应用、音乐播放应用、视频共享平台应用、视频流应用、电子商务应用、社交媒体应用、用户界面(user interface,UI)应用、或用户102可在其中体验和导航的其他人工现实应用。
在某些实施例中,如由图2所进一步描绘的,计算平台204可以使人工现实设备104向用户102显示人工现实应用212A至212D中的一个或多个人工现实应用。如所描绘的,在一些实施例中,人工现实体验202A至202D可以包括用户102的一只或两只手110的表示。实际上,根据当前所公开的各实施例,例如,一旦用户102佩戴上人工现实设备104并开始与人工现实应用212A至212D中的一个或多个人工现实应用进行交互以在人工现实设备104上启动,就可以在人工现实设备104上为用户102实例化稳定手势过程(例如,该稳定手势过程相对于人工现实应用212A至212D中的一个或多个人工现实应用而在后台中执行)。例如,在某些实施例中,如由一个或多个人工现实应用212A至212D的实例所描绘的,一旦用户102佩戴上人工现实设备104,计算平台204就可以确定用户102与该一个或多个人工现实应用212A至212D交互的上下文。
例如,在某些实施例中,计算平台204可以以如下方式来确定用户102与一个或多个人工现实应用212A至212D交互的上下文:确定开始对用户102相对于一个或多个目标虚拟对象214A至214D而做出的一个或多个手势110A至110D的运动模式(例如,用户手势、用户捏合手势、用户捏合并转动手势、腕部移动、手指和关节移动、用户的手静止、以及交互期间的用户手等)进行监测的触发。例如,在某些实施例中,计算平台204可以通过以下方式来确定用户102与一个或多个人工现实应用212A至212D交互的上下文:确定开始对用户102相对于一个或多个目标虚拟对象214A至214D而做出的手势的运动模式进行监测的触发。
在某些实施例中,所确定的上下文可以用作开始对用户102相对于目标虚拟对象而做出的手势的运动模式进行监测的触发,以及用作标识关于一个或多个目标虚拟对象214A至214D的特定地面真值的工具,通过该特定地面真值来评估用户102相对于一个或多个目标虚拟对象214A至214D而做出的一个或多个手势110A至110D的运动模式。在某些实施例中,计算平台204可以基于上下文,确定用户102想要使用一个或多个手势110A至110D来与一个或多个人工现实应用212A至212D内的一个或多个目标虚拟对象214A至214D进行交互。例如,在某些实施例中,计算平台204可以基于上下文通过以下方式来确定用户想要使用一个或多个手势110A至110D来与一个或多个目标虚拟对象214A至214D进行交互:确定在用户102正试图与一个或多个目标虚拟对象214A至214D进行交互时所经过的时间、用户102可相对于一个或多个目标虚拟对象214A至214D而做出的一个或多个特定手动作或腕部动作、用户102可保持一段时间的一个或多个特定手势、一个或多个特定手势(例如,挥手,手指指向、握拳、签名)、和一个或多个手势序列等。
应理解的是,上下文可以包括可与一个或多个人工现实应用212A至212D相关联的任何上下文数据,并且更具体地,包括关于用户102可以如何与一个或多个人工现实应用212A至212D进行交互(例如,从而允许计算平台204确定用户102的意图)的上下文数据或其他信息。例如,在一个实施例中,在第一人称POV射击游戏中,该游戏可以呈现出现在人工现实设备104的显示器上的一个或多个目标虚拟对象214A至214D(例如,鸭子、鹅)。由用户102做出的一个或多个手势110A至110D的运动模式可以仅大致跟随一个或多个目标虚拟对象214A至214D。然而,根据当前所公开的各实施例,简单地来说,射击游戏正在显示一个或多个目标虚拟对象214A至214D(例如,射击游戏中的鸭子、鹅)、以及由用户102执行的一个或多个手势110A至110D的运动模式的这一事实可以,为计算平台204开始监测用户102所做出的手势的运动模式以及知晓用户102想要例如射击一个或多个目标虚拟对象214A至214D(例如,射击游戏中的鸭子、鹅)提供足够的上下文。在另一示例中,可以向用户102呈现用户协议,并且用户102退出的唯一方式是选择“同意”按钮、窗口小部件或其他3D虚拟对象。根据当前所公开的各实施例,向用户102呈现该非替代状态的这一事实可以足以使计算平台204:开始监测用户102所做出的手势的运动模式,并知晓用户102想要例如选择该“同意”按钮、窗口小部件或其他3D虚拟对象。
在某些实施例中,计算平台204随后可以基于运动模式,来生成与用户102相关联的运动稳定轮廓,其中,该运动稳定轮廓可以用来在与人工现实应用212A至212D中的一个或多个虚拟对象214A至214D的后续用户交互期间,稳定用户102所做出的一个或多个手势110A至110D。例如,在一些实施例中,计算平台102可以利用机器学习(ML)模型,该ML模型可以在用户102正试图与各种目标虚拟对象214A至214D进行交互时,接收用户102相对于该各种目标虚拟对象而做出的一个或多个手势110A至110D的运动模式,并且随后可以利用这些运动模式来为这个特定用户102生成运动稳定轮廓。例如,在一个实施例中,运动稳定轮廓可以仅与特定用户102相关联,使得计算平台102可以生成N个不同的运动稳定轮廓,该N个不同的运动稳定轮廓用于N个不同用户中的各个用户。
在某些实施例中,计算平台204可以基于运动稳定轮廓来确定与用户102相关联的运动范围(例如,距离范围、体素范围、像素范围、和姿势范围等)。例如,在某些实施例中,当用户102正试图执行与人工现实环境中的虚拟对象的后续用户交互时,计算平台204可以监测用户102相对于虚拟对象214A至214D而做出的一个或多个手势110A至110D的运动,并且随后可以在用户所做出的一个或多个手势的运动超出所确定的与用户102相关联的运动范围(例如,距离范围、体素范围、像素范围、和姿势范围等)时,确定在与一个或多个人工现实应用212A至212D中的其他虚拟对象214A至214D的后续用户交互期间、稳定用户102所做出的一个或多个手势110A至110D。在另一实施例中,当用户102正试图执行与一个或多个人工现实应用212A至212D中的虚拟对象214A至214D的后续用户交互时,计算平台204可以确定监测用户102相对于虚拟对象214A至214D而做出的一个或多个手势110A至110D的运动,并且随后可以在用户102所做出的一个或多个手势110A至110D的运动处于运动范围内时、确定放弃在与一个或多个人工现实应用212A至212D中的虚拟对象214A至214D的后续用户102交互期间、稳定用户102所做出的一个或多个手势110A至110D。
在某些实施例中,运动范围例如可以包括可由计算平台204的特定于特定用户102的ML模型生成的感兴趣体素区域(例如,这样的子区域:3x3x3体素、5x5x5体素、和10x10x10体素等)。在某些实施例中,计算平台204的ML模型可以计算合适的手势范围,该手势范围例如可以包括手势平移和转动的量,该手势平移和转动的量可以允许计算平台204(例如基于用户102所做出的一个或多个手势110A至110D的运动是否处于运动范围内)确定:是在与一个或多个人工现实应用212A至212D中的虚拟对象214A至214D的后续用户102交互期间稳定用户102所做出的一个或多个手势110A至110D,还是放弃在与该一个或多个人工现实应用212A至212D中的虚拟对象214A至214D的后续用户102交互期间稳定用户102所做出的一个或多个手势110A至110D。在某些实施例中,基于所确定的移动稳定轮廓,计算平台204可以基于运动范围(例如,距离范围、体素范围、像素范围、和姿势范围等)来调整一只或两只手110B、110C的手势以补偿移动稳定轮廓。
因此,本技术被提供用于在一个或多个人工现实应用212A至212D中学习用户特定的运动模式并稳定用户102所做出的一个或多个手势110A至110D。具体地,在一个或多个人工现实应用212A至212D内学习用户特定的运动模式并稳定用户的运动模式的本技术可以例如允许用户身体部位(例如,手、头、四肢、和手指等)用作人工现实设备104的唯一输入模态。例如,如上所论述的,当特定用户102正在一个或多个人工现实应用212A至212D内进行交互时,可以在人工现实设备104上对手势稳定过程进行实例化,以学习该特定用户的运动模式,为特定用户102生成运动稳定轮廓,并且随后确定是否在用户102正与人工现实设备104上执行的一个或多个人工现实应用212A至212D进行交互时、稳定用户102的一个或多个手势110A至110D。
实际上,手势稳定技术可以利用一个或多个ML模型来实现,以学习用户运动模式,并利用所学习的运动模式来生成运动稳定轮廓(例如,签名手颤动、手抖动,以及更一般地,任何学习到或观察到的可特定于特定用户102的手运动模式或手移动模式)。在生成用户特定的运动稳定轮廓并生成感兴趣的像素区域或范围(通过其定义了运动稳定轮廓)之后,当用户所做出的手势的运动超出运动范围(例如,距离范围、体素范围、像素范围、和姿势范围等)时,计算平台102可以在与人工现实环境中的虚拟对象214A至214D的后续用户交互期间,自动地稳定用户102所做出的一个或多个手势110A至110D。以这种方式,本技术可以允许用户身体部位(特别是用户102的手)完全替代用于在人工现实应用212A至212D中进行交互的所有控制器或其他物理对象,并因此可以增强用户在人工现实应用212A至212D中的体验。
图3示出了根据当前所公开的各实施例的人工现实环境300的另一实施例,该人工现实环境可用于在人工现实环境中学习用户特定的运动模式并稳定手势。具体地,图3可以表示校准过程,该校准过程可以结合上面参考图2所论述的后台过程来执行,或者代替上面参考图2所论述的后台过程。例如,人工现实体验202A至202D示例示出了多阶段校准过程(例如,该多阶段校准过程增加了复杂性),该多阶段校准过程可以用于确定和补偿与特定用户102的一只或两只手110A至110D相关联的移动稳定轮廓)。
例如,关于人工现实体验202A至202D的校准过程示例可以包括:第一示例时期,在该第一示例时期中,在一个或多个人工现实应用212A至212D中表示用户102的一只或两只手110A;另一示例时期,在该另一示例时期中,用户102被提示选择目标虚拟对象216B;另一示例时期,在该另一示例时期中,用户102被提示选择目标虚拟对象216C;以及最后一示例时期,在该最后一示例时期中,用户102被提示选择目标虚拟对象216D。例如,如由图3所描绘的,在由一个或多个人工现实应用212A至212D表示的第一示例时期中,可以指示用户102在佩戴上人工现实设备104之后的最初几个渲染帧或最初几秒内保持其一只手或两只手110A不动。在由人工现实应用212B表示的第二示例时期中,可以指示用户102使用其一只手或两只手110B来选择相对较小的目标虚拟对象216B。
在用户交互复杂性增加的特定实施例中,在由人工现实应用212C表示的第三示例时期中,可以指示用户102使用其一只手或两只手110C来选择(例如,与目标虚拟对象216B相比)更大的目标虚拟对象216C。用户交互复杂性进一步增加,在由人工现实应用212D表示的最后一示例时期中,可以指示用户102使用其一只手或两只手110D来选择(例如,与可选择的对象216B和216C相比)更大且更复杂的目标虚拟对象216D。因此,在某些实施例中,当用户102正试图与目标虚拟对象216B、216C和216D进行交互时,计算平台204可以监测用户102相对于各自的目标虚拟对象216B、216C和216D而做出的手势110B至110D的运动模式。在某些实施例中,计算平台204随后可以基于运动模式,来生成与用户102相关联的运动稳定轮廓,其中,运动稳定轮廓被用来在与人工现实应用212B至212D中的虚拟对象的后续用户交互期间、稳定用户102所做出的手势110B至110D。
因此,本技术被提供用于在一个或多个人工现实应用212A至212D中学习用户特定的运动模式并稳定用户102所做出的一个或多个手势110A至110D。具体地,在一个或多个人工现实应用212A至212D内学习用户特定的运动模式并稳定用户的运动模式的本技术可以例如允许用户身体部位(例如,手、头、四肢、和手指等)用作人工现实设备104的唯一输入模态。例如,如上所论述的,当特定用户102正在一个或多个人工现实应用212A至212D内进行交互时,可以在人工现实设备104上对手势稳定过程进行实例化,以学习该特定用户的运动模式,为特定用户102生成运动稳定轮廓,并且随后确定是否在用户102正与人工现实设备104上执行的一个或多个人工现实应用212A至212D进行交互时、稳定用户102的一个或多个手势110A至110D。
实际上,手势稳定技术可以利用一个或多个ML模型,以学习用户运动模式,并利用所学习的运动模式来生成运动稳定轮廓(例如,签名手颤动、手抖动,以及更一般地,任何学习到或观察到的可特定于特定用户102的手运动模式或手移动模式)。在生成用户特定的运动稳定轮廓并生成感兴趣的像素区域或范围(通过其定义了运动稳定轮廓)之后,当用户所做出的手势的运动超出运动范围(例如,距离范围、体素范围、像素范围、和姿势范围等)时,计算平台102可以在与人工现实环境中的虚拟对象214A至214D的后续用户交互期间、自动地稳定用户102所做出的一个或多个手势110A至110D。以这种方式,本技术可以允许用户身体部位(特别是用户102的手)完全地替代用于在人工现实应用212A至212D中进行交互的所有控制器或其他物理对象,并因此可以增强用户在人工现实应用212A至212D中的体验。
图4示出了根据当前所公开技术的用于在人工现实环境中学习用户特定的运动模式并稳定手势的方法400的流程图。方法400可以利用一个或多个处理设备(例如,计算平台104)来执行,该一个或多个处理设备可以包括硬件(例如,通用处理器、图形处理单元(GPU)、专用集成电路(ASIC)、片上系统(SoC)、微控制器、现场可编程门阵列(FPGA)、中央处理单元(central processing unit,CPU)、应用处理器(application processor,AP)、视觉处理单元(visual processing unit,VPU)、神经处理单元(neural processing unit,NPU)、神经决策处理器(neural decision processor,NDP),或可适于处理图像数据的一个或多个任何其他处理设备)、软件(例如,在一个或多个处理器上运行/执行的指令)、固件(例如,微代码)、或它们的某种组合。
方法400可以在框402处开始,其中一个或多个处理设备(例如,计算平台104)向用户显示人工现实环境。方法400随后可以在框404处继续,其中一个或多个处理设备(例如,计算平台104)确定用户与人工现实环境交互的上下文。方法400随后可以在框406处继续,其中一个或多个处理设备(例如,计算平台104)基于上下文,确定用户想要使用手势与人工现实环境内的目标虚拟对象进行交互。方法400随后可以在框408处继续,其中一个或多个处理设备(例如,计算平台104)在用户正试图与目标虚拟对象进行交互时,监测用户相对于该目标虚拟对象而做出的手势的运动模式。方法400随后可以在框410处结束,其中一个或多个处理设备(例如,计算平台104)基于运动模式,生成与用户相关联的运动稳定轮廓,其中,运动稳定轮廓被配置为用于在与人工现实环境中的虚拟对象的后续用户交互期间、稳定用户所做出的手势。
因此,如图4中的方法400所描述的,根据当前所公开的各实施例,本技术针对在人工现实环境中学习用户特定的运动模式并稳定手势。在某些实施例中,计算平台可以向用户显示人工现实环境。在某些实施例中,计算平台可以确定用户与人工现实环境交互的上下文。例如,在某些实施例中,计算平台可以通过以下方式来来确定用户与人工现实环境交互的上下文:确定开始对用户相对于目标虚拟对象而做出的手势的运动模式进行监测的触发。实际上,在一些实施例中,所确定的上下文可以用作开始监测用户相对于目标虚拟对象而做出的手势的运动模式的触发,以及用作标识关于目标虚拟对象的特定地面真值的工具,通过该特定地面真值来评估用户相对于目标虚拟对象而做出的手势的运动模式。在某些实施例中,计算平台可以基于上下文,确定用户想要使用手势与人工现实环境内的目标虚拟对象进行交互。例如,在某些实施例中,计算平台例如可以基于上下文通过以下方式来确定用户想要使用手势与目标虚拟对象进行交互:确定例如用户正试图与目标虚拟对象进行交互时所经过的时间、用户可相对于目标虚拟对象而做出的一个或多个特定手动作或腕部动作、用户可保持一段时间的一个或多个特定手势、一个或多个特定手势(例如,挥手、手指指向、握拳、签名)、和一个或多个姿势序列等。
在某些实施例中,当用户正试图与目标虚拟对象进行交互时,计算平台随后可以监测用户相对于目标虚拟对象而做出的手势的运动模式。在某些实施例中,计算平台随后可以基于运动模式,来生成与用户相关联的运动稳定轮廓,其中,该运动稳定轮廓可以用来在与人工现实环境中的虚拟对象的后续用户交互期间、稳定用户所做出的手势。例如,在一些实施例中,计算平台可以利用机器学习(ML)模型,该ML模型可以在用户正试图与各种目标虚拟对象进行交互时、接收用户相对于各种目标虚拟对象而做出的手势的运动模式,并且随后可以利用这些运动模式来为这个特定用户生成运动稳定轮廓。在一个实施例中,运动稳定轮廓可以仅与特定用户相关联,使得计算平台可以生成N个不同的运动稳定轮廓,该N个不同的运动稳定轮廓用于N个不同用户中的各个用户。
在某些实施例中,计算平台可以基于运动稳定轮廓,来确定与用户相关联的运动范围(例如,距离范围、体素范围、像素范围、和姿势范围等)。例如,在某些实施例中,当用户正试图执行与人工现实环境中的虚拟对象的后续用户交互时,计算平台可以监测用户相对于虚拟对象而做出的手势的运动,并且随后可以在用户所做出的手势的运动超出运动范围(例如,距离范围、体素范围、像素范围、和姿势范围等)时、确定在与人工现实环境中的虚拟对象的后续用户交互期间稳定用户所做出的手势。在另一实施例中,当用户正试图执行与人工现实环境中的虚拟对象的后续用户交互时,计算平台可以确定监测用户相对于虚拟对象而做出的手势的运动,并且随后可以在用户所做出的手势的运动处于运动范围(例如,距离范围、体素范围、像素范围、和姿势范围等)内、确定放弃在与人工现实环境中的虚拟对象的后续用户交互期间、稳定用户所做出的手势。
因此,本技术被提供用于在人工现实环境中学习用户特定的运动模式并稳定手势。具体地,在人工现实环境中学习用户特定的运动模式并稳定用户的运动模式的本技术例如可以允许用户身体部位(例如,手、头、四肢、和手指等)用作人工现实设备的唯一输入模态。例如,在某些实施例中,当特定用户正在人工现实环境内进行交互时,可以在人工现实设备上对手势稳定过程进行实例化,以学习特定用户的运动模式,为特定用户生成运动稳定轮廓,并且随后在用户正与人工现实设备上执行的人工现实应用进行交互时稳定用户的手势。实际上,手势稳定技术可以利用机器学习(ML)模型来实现,以学习用户的运动模式,并利用所学习的运动模式来生成运动稳定轮廓(例如,签名手颤动、手抖动,以及更一般地,任何学习到或观察到的可特定于特定用户的手运动模式或手移动模式)。在生成用户特定的运动稳定轮廓并生成感兴趣的像素区域或范围(通过其定义了运动稳定轮廓)之后,当用户所做出的手势的运动在运动范围(例如,距离范围、体素范围、像素范围、和姿势范围等)内时,计算平台可以在与人工现实环境中的虚拟对象的后续用户交互期间、自动地稳定用户所做出的手势。以这种方式,本技术可以允许用户身体部位(特别是用户的手)完全地代替用于在人工现实环境中进行交互的所有控制器或其他物理对象,并因此可以增强用户在人工现实环境中的体验。
图5示出了与虚拟现实系统相关联的示例网络环境500。网络环境500包括正与客户端系统530交互的用户501、社交网络系统560和第三方系统570,该客户端系统、社交网络系统和第三方系统通过网络510彼此连接。尽管图5示出了用户501、客户端系统530、社交网络系统560、第三方系统570和网络510的特定布置,但是本公开考虑了用户501、客户端系统530、社交网络系统560、第三方系统570和网络510的任何合适的布置。作为示例而非限制,用户501、客户端系统530、社交网络系统560和第三方系统570中的两者或更多者可以绕过网络510而彼此直接连接。作为另一示例,客户端系统530、社交网络系统560和第三方系统570中的两者或更多者可以在物理上或逻辑上整体或部分地与彼此位于一处。此外,尽管图5示出了特定数量的用户501、客户端系统530、社交网络系统560、第三方系统570和网络510,但是本公开考虑了任何合适数量的客户端系统530、社交网络系统560、第三方系统570和网络510。作为示例而非限制,网络环境500可以包括多个用户501、多个客户端系统530、多个社交网络系统560、多个第三方系统570以及多个网络510。
本公开考虑了任何合适的网络510。作为示例而非限制,网络510的一个或多个部分可以包括自组网、内联网、外联网、虚拟专用网络(virtual private network,VPN)、局域网(local area network,LAN)、无线LAN(wireless LAN,WLAN)、广域网(wide areanetwork,WAN)、无线WAN(wireless WAN,WWAN)、城域网(metropolitan area network,MAN)、互联网的一部分、公共交换电话网(Public Switched Telephone Network,PSTN)的一部分、蜂窝电话网络、或这些网络中的两者或更多者的组合。网络510可以包括一个或多个网络510。链路550可以将客户端系统530、社交网络系统560和第三方系统570连接到通信网络510,或者可以将该客户端系统、该社交网络系统和该第三方系统彼此连接。本公开考虑了任何合适的链路550。在某些实施例中,一条或多条链路550包括一条或多条有线(例如,数字用户线路(Digital Subscriber Line,DSL)或有线电缆数据服务接口规范(DataOver Cable Service Interface Specification,DOCSIS))链路、一条或多条无线(例如,Wi-Fi或全球微波接入互操作性(Worldwide Interoperability for Microwave Access,WiMAX))链路、或一条或多条光学(例如,同步光纤网络(Synchronous Optical Network,SONET)或同步数字体系(Synchronous Digital Hierarchy,SDH))链路。在某些实施例中,一条或多条链路550各自包括自组网、内联网、外联网、VPN、LAN、WLAN、WAN、WWAN、MAN、互联网的一部分、PSTN的一部分、基于蜂窝技术的网络、基于卫星通信技术的网络、另一链路550、或两个或更多个这种链路550的组合。在整个网络环境500中,多条链路550不必都是相同的。在一个或多个方面,一条或多条第一链路550可以与一条或多条第二链路550不同。
在某些实施例中,客户端系统530可以是如下的电子设备:该电子设备包括硬件、软件或嵌入式逻辑部件、或两个或更多个这些部件的组合,并且能够执行客户端系统530所实现或支持的适当功能。作为示例而非限制,客户端系统530可以包括计算机系统,该计算机系统例如为,台式计算机、笔记本或膝上型计算机、上网本、平板计算机、电子书阅读器、全球定位系统(GPS)设备、摄像头、个人数字助理(personal digital assistant,PDA)、手持式电子设备、蜂窝电话、智能手机、虚拟现实头戴式视图器和控制器、其它合适的电子设备、或它们的任何合适的组合。本公开考虑了任何合适的客户端系统530。客户端系统530可以使客户端系统530处的网络用户能够访问网络510。客户端系统530可以使其用户能够与其它客户端系统530处的其他用户通信。客户端系统530可以生成虚拟现实环境以供用户与内容进行交互。
在某些实施例中,客户端系统530可以包括虚拟现实(或增强现实)头戴式视图器532、以及一个或多个虚拟现实输入设备534(例如,虚拟现实控制器)。客户端系统530处的用户可以佩戴虚拟现实头戴式视图器532,并使用该一个或多个虚拟现实输入设备来与虚拟现实头戴式视图器532生成的虚拟现实环境536进行交互。尽管未示出,但是客户端系统530还可以包括单独的处理计算机、和/或虚拟现实系统的任何其它部件。虚拟现实头戴式视图器532可以生成虚拟现实环境536,该虚拟现实环境可以包括系统内容538(包括但不限于操作系统),该系统内容例如为软件或固件更新,并且该虚拟现实环境还包括第三方内容540,该第三方内容例如为来自应用的内容或从互联网动态下载的内容(例如,网页内容)。虚拟现实头戴式视图器532可以包括一个或多个传感器542(例如,加速度计、陀螺仪、磁力计)以生成追踪头戴式视图器设备532的位置的传感器数据。头戴式视图器532还可以包括眼动追踪器,该眼动追踪器用于追踪用户的眼睛的位置或其观看方向。客户端系统可以使用来自该一个或多个传感器542的数据,来确定相对于头戴式视图器的速度、方位和重力。
一个或多个虚拟现实输入设备534可以包括一个或多个传感器544(例如,加速度计、陀螺仪、磁力计和触摸传感器)以生成追踪输入设备534的位置和用户手指的位置的传感器数据。客户端系统530可以使用由外向内的追踪,在该由外向内的追踪中,追踪摄像头(未示出)被放置在虚拟现实头戴式视图器532的外部并且处于虚拟现实头戴式视图器532的视线内。在由外向内的追踪中,追踪摄像头可以(例如,通过追踪虚拟现实头戴式视图器532上的一个或多个红外发光二极管(LED)标记)追踪虚拟现实头戴式视图器532的位置。替代地或附加地,客户端系统530可以利用由内向外的追踪,在该由内向外的追踪中,追踪摄像头(未示出)可以被放置在虚拟现实头戴式视图器532上或虚拟现实头戴式视图器1032自身的内部。在由内向外的追踪中,追踪摄像头可以采集真实世界中在该追踪摄像头周围的图像,并且可以使用真实世界的变化的视角来确定该追踪摄像头自身在空间中的位置。
第三方内容540可以包括网页浏览器(例如微软IE浏览器(MICROSOFT INTERNETEXPLORER)、谷歌浏览器(GOOGLE CHROME)或摩斯拉火狐浏览器(MOZILLA FIREFOX)),并且可以具有一个或多个附件、插件或其他扩展件(例如工具栏(TOOLBAR)或雅虎工具栏(YAHOOTOOLBAR))。客户端系统530处的用户可以输入统一资源定位符(Uniform ResourceLocator,URL)或其他地址,将网页浏览器引导到特定服务器(例如,服务器562或与第三方系统570相关联的服务器),并且网页浏览器可以生成超文本传输协议(Hyper TextTransfer Protocol,HTTP)请求,并向服务器传送该HTTP请求。服务器可以接受该HTTP请求,并且响应于该HTTP请求向客户端系统530传送一个或多个超文本标记语言(Hyper TextMarkup Language,HTML)文件。客户端系统530可以基于来自服务器的HTML文件来渲染网页界面(例如,网页),以用于呈现给用户。本公开考虑了任何合适的源文件。作为示例而非限制,根据特定需要,可以根据HTML文件、可扩展超文本标记语言(Extensible Hyper TextMarkup Language,XHTML)文件、或可扩展标记语言(Extensible Markup Language,XML)文件来渲染网页界面。这些界面还可以执行脚本,这些脚本例如但不限于用JAVASCRIPT、JAVA、MICROSOFT SILVERLIGHT编写的那些脚本、和标记语言与脚本的组合(例如,异步JAVASCRIPT和XML(AJAX))。本文中,在适当的情况下,对网页界面的引用涵盖一个或多个对应的源文件(浏览器可以使用该一个或多个对应的源文件来渲染网页界面),反之亦然。
在某些实施例中,社交网络系统560可以是可托管在线社交网络的网络可寻址计算系统。社交网络系统560可以生成、存储、接收和发送社交网络数据,该社交网络数据例如为,用户资料数据、概念资料数据、社交图谱信息、或与在线社交网络相关的其它合适的数据。社交网络系统560可以由网络环境500中的其它部件直接地访问或通过网络510访问。作为示例而非限制,客户端系统530可以使用第三方内容540中的网页浏览器、或与社交网络系统560相关联的本地应用(例如,移动社交网络应用、消息传递应用、另一合适的应用、或它们的任何组合),来直接地或通过网络510访问社交网络系统560。在某些实施例中,社交网络系统560可以包括一个或多个服务器562。每个服务器562可以是单一服务器、或跨越多个计算机或多个数据中心的分布式服务器。服务器562可以是各种类型的,这些类型例如但不限于:网页服务器、新闻服务器、邮件服务器、消息服务器、广告服务器、文件服务器、应用服务器、交换服务器、数据库服务器、代理服务器、适于执行本文所描述的功能或过程的另一服务器、或它们的任何组合。
在某些实施例中,每个服务器562可以包括用于执行由服务器562实现或支持的合适功能的硬件、软件、或嵌入式逻辑部件、或两个或更多个这些部件的组合。在某些实施例中,社交网络系统560可以包括一个或多个数据存储库564。数据存储库564可以用于存储各种类型的信息。在某些实施例中,可以根据特定的数据结构来组织存储在数据存储库564中的信息。在某些实施例中,每个数据存储库564可以是关系型数据库、列式数据库、关联型数据库、或其他合适的数据库。尽管本公开描述或示出了特定类型的数据库,但本公开考虑了任何合适类型的数据库。某些实施例可以提供这种接口:所述接口使客户端系统530、社交网络系统560或第三方系统570能够对存储在数据存储库564中的信息进行管理、检索、修改、添加或删除。
在某些实施例中,社交网络系统560可以将一个或多个社交图谱存储在一个或多个数据存储库564中。在某些实施例中,社交图谱可以包括多个节点——该多个节点可以包括多个用户节点(每个用户节点与特定用户相对应)或多个概念节点(每个概念节点与特定概念相对应)——以及连接该多个节点的多条边。社交网络系统560可以向在线社交网络的用户提供与其他用户通信和交互的能力。在某些实施例中,用户可以通过社交网络系统560加入在线社交网络,并且随后可以增加与社交网络系统560中他们想要与之连接的多个其他用户的联系(例如,关系)。本文中,术语“朋友”可以指社交网络系统560中用户已经通过社交网络系统560与之形成了联系、关联或关系的任何其他用户。
在某些实施例中,社交网络系统560可以向用户提供对社交网络系统560所支持的各种类型的项或对象采取行动的能力。作为示例而非限制,该项和对象可以包括:社交网络系统560的用户可能属于的群组或社交网络、用户可能感兴趣的事件或日程表条目、用户可能使用的基于计算机的应用、允许用户通过服务购买或出售项的交易、用户可能执行的与广告的交互、或其他合适的项或对象。用户可以与能够在社交网络系统560中表示的任何事物交互、或者与能够由第三方系统570的外部系统表示的任何事物交互,该第三方系统1070与社交网络系统560分开,并通过网络510耦接到社交网络系统560。
在某些实施例中,社交网络系统560可以能够链接各种实体。作为示例而非限制,社交网络系统560可以使多个用户能够彼此交互、以及接收来自第三方系统570或其他实体的内容,或者能够允许用户通过应用编程接口(application programming interface,API)或其他通信信道来与这些实体交互。在某些实施例中,第三方系统570可以包括一种或多种类型的服务器、一个或多个数据存储库、一个或多个接口(包括但不限于,API)、一个或多个网络服务、一个或多个内容源、一个或多个网络、或任何其它合适的部件(例如,服务器可以与该部件进行通信)。可以由与运行社交网络系统560的实体不同的实体来运行第三方系统570。然而,在某些实施例中,社交网络系统560和第三方系统570可以彼此协同运行,以向社交网络系统560的用户或第三方系统570提供社交网络服务。在这个意义上,社交网络系统560可以提供平台或主干网,其它系统(例如,第三方系统570)可以使用该平台或主干网来向互联网上的用户提供社交网络服务和功能。
在某些实施例中,第三方系统570可以包括第三方内容对象供应商。第三方内容对象供应商可以包括一个或多个内容对象源,可以向客户端系统530传送该一个或多个内容对象源。作为示例而非限制,内容对象可以包括关于用户感兴趣的事物或活动的信息,例如电影放映时间、电影评论、餐馆评论、餐馆菜单、产品信息和评论、或其他合适的信息。作为另一示例而非限制,内容对象可以包括激励内容对象,例如优惠券、折扣票、礼品券、或其他合适的激励对象。
在某些实施例中,社交网络系统560还包括用户生成的内容对象,这可以增强用户与社交网络系统560的交互。用户生成的内容可以包括用户可添加、上传、发送、或“发布”到社交网络系统560的任何内容。作为示例而非限制,用户将帖子从客户端系统530传送到社交网络系统560。帖子可以包括如下数据:例如状态更新或其他文本数据、位置信息、照片、视频、链接、音乐、或其他类似数据或媒体。还可以由第三方通过“通信通道(communicationchannel)”(例如,新闻推送或流)将内容添加到社交网络系统560中。在某些实施例中,社交网络系统560可以包括各种服务器、子系统、程序、模块、日志和数据存储库。在某些实施例中,社交网络系统560可以包括以下中的一者或多者:网页服务器、操作日志记录器(actionlogger)、API请求服务器、相关性和排名引擎、内容对象分类器、通知控制器、动作日志、第三方内容对象曝光日志、推断模块、授权/隐私服务器、搜索模块、广告定位模块、用户界面模块、用户资料存储库、联系存储库、第三方内容存储库、或位置存储库。社交网络系统560还可以包括合适的部件,这些合适的部件例如为,网页界面、安全机制、负载均衡器、故障转移服务器、管理和网络操作控制台、其它合适的部件、或它们的任何合适的组合。
在某些实施例中,社交网络系统560可以包括用于存储用户资料的一个或多个用户资料存储库。用户资料例如可以包括生物信息、人口统计信息、行为信息、社会信息、或其他类型的描述性信息(例如,工作经历、教育历史、爱好或偏好、兴趣、姻亲关系、或位置)。兴趣信息可以包括与一个或多个类别相关的兴趣。类别可以是通用的或特定的。作为示例而非限制,如果用户“喜欢”关于一鞋子的品牌的物品,则该类别可以是该品牌,或者可以是“鞋子”或“服装”的通用类别。联系存储库可用于存储关于用户的联系信息。联系信息可以指示具有相似或共同的工作经历、群组成员资格、爱好、教育历史、或者以任何方式相关或共享共同属性的用户。联系信息还可以包括不同的用户与内容之间的(内部和外部这两者)由用户定义的联系。网页服务器可以用于通过网络510来链接社交网络系统560和一个或多个客户端系统530或者一个或多个第三方系统570。网页服务器可以包括邮件服务器或其他消息收发功能,以用于在社交网络系统560与一个或多个客户端系统530之间接收和路由消息。API请求服务器可以允许第三方系统570通过调用一个或多个API来从社交网络系统560访问信息。操作日志记录器可以用于接收来自网页服务器的关于用户在社交网络系统560上或在社交网络系统560外的动作的通信。
与活动记录相结合,第三方内容对象日志可以保持用户到第三方内容对象中的曝光。通知控制器可以向客户端系统530提供关于内容对象的信息。可以将信息作为通知推送到客户端系统530,或者可以响应于接收到的来自客户端系统530的请求而从客户端系统530提取信息。授权服务器可以用于实施社交网络系统560的用户的一个或多个隐私设置。用户的隐私设置确定可以如何共享与用户相关联的特定信息。授权服务器可以允许用户例如通过设置适当的隐私设置,选择让或不让他们的动作被社交网络系统560记录或与其它系统(例如,第三方系统570)共享。第三方内容对象存储库可以用于存储从第三方(例如,第三方系统570)接收到的内容对象。位置存储库可以用于存储从与用户相关联的客户端系统530接收到的位置信息。广告定价模块可以结合社交信息、当前时间、位置信息、或其他合适的信息,来以通知的形式向用户提供相关广告。
图6示出了可用于执行本文当前所公开的一个或多个前述技术的示例计算机系统600。在某些实施例中,一个或多个计算机系统600执行本文所描述或所示出的一个或多个方法的一个或多个步骤。在某些实施例中,一个或多个计算机系统600提供本文所描述或所示出的功能。在某些实施例中,在一个或多个计算机系统600上运行的软件执行本文所描述或所示出的一个或多个方法的一个或多个步骤,或者提供本文所描述或所示出的功能。某些实施例包括一个或多个计算机系统600的一个或多个部分。本文中,在适当的情况下,对计算机系统的引用可以涵盖计算设备,反之亦然。此外,在适当的情况下,对计算机系统的引用可以涵盖一个或多个计算机系统。
本公开考虑了任何合适数量的计算机系统600。本公开考虑了采用任何合适的物理形式的计算机系统600。作为示例而非限制,计算机系统600可以是:嵌入式计算机系统、片上系统(SOC)、单板计算机系统(single-board computer system,SBC)(例如,模块上计算机(computer-on-module,COM)或模块上系统(system-on-module,SOM))、台式计算机系统、膝上型或笔记本计算机系统、交互式自助服务终端(kiosk)、大型机、计算机系统网、移动电话、个人数字助理(PDA)、服务器、平板计算机系统、增强/虚拟现实设备、或这些系统中的两者或更多者的组合。在适当的情况下,计算机系统600可以包括一个或多个计算机系统600;可以是单一的或分布式的;可以跨越多个位置;可以跨越多个机器;可以跨越多个数据中心;或可以位于云中,该计算机系统可以包括一个或多个网络中的一个或多个云部件。在适当的情况下,一个或多个计算机系统600可以在无实质性的空间限制或时间限制的情况下,执行本文所描述或所示出的一个或多个方法的一个或多个步骤。
作为示例而非限制,一个或多个计算机系统600可以实时地或以分批处理模式执行本文所描述或所示出的一个或多个方法的一个或多个步骤。在适当的情况下,一个或多个计算机系统600可以在不同的时间或在不同的位置执行本文所描述或所示出的一个或多个方法的一个或多个步骤。在某些实施例中,计算机系统600包括处理器602、存储器604、存储装置606、输入/输出(input/output,I/O)接口608、通信接口610和总线612。尽管本公开描述并示出了具有特定数量的特定部件的以特定布置的特定计算机系统,但本公开考虑了具有任何合适数量的任何合适部件的以任何合适布置的任何合适的计算机系统。
在某些实施例中,处理器602包括用于执行指令(例如,构成计算机程序的那些指令)的硬件。作为示例而非限制,为了执行指令,处理器602可以检索(或读取)来自内部寄存器、内部高速缓冲存储器、存储器604、或存储装置606的多个指令;解码并执行这些指令;并且随后将一个或多个结果写入内部寄存器、内部高速缓冲存储器、存储器604或存储装置606。在某些实施例中,处理器602可以包括用于数据、指令或地址的一个或多个内部高速缓冲存储器。在适当的情况下,本公开内容考虑了包括任何合适数量的任何合适的内部高速缓冲存储器的处理器602。作为示例而非限制,处理器602可以包括一个或多个指令高速缓冲存储器、一个或多个数据高速缓冲存储器和一个或多个页表缓存(translationlookaside buffer,TLB)。指令高速缓冲存储器中的指令可以是存储器604或存储装置606中的指令的副本,并且该指令高速缓冲存储器可以加速处理器602对这些指令的检索。
数据高速缓冲存储器中的数据可以是存储器604或存储装置606中的数据的副本,以供在处理器602处执行的指令进行操作;可以是在处理器602处执行的先前指令的结果,以供在处理器602处执行的后续指令访问或用于写入存储器604或存储装置606;或者可以是其他合适的数据。数据高速缓冲存储器可以加速处理器602的读操作或写操作。TLB可以加速用于处理器602的虚拟地址转换。在某些实施例中,处理器602可以包括用于数据、指令或地址的一个或多个内部寄存器。在适当的情况下,本公开考虑了处理器602包括任何合适数量的任何合适的内部寄存器。在适当的情况下,处理器602可以包括一个或多个算术逻辑单元(arithmetic logic unit,ALU);可以是多核处理器;或包括一个或多个处理器602。尽管本公开描述并示出了特定处理器,但是本公开考虑了任何适当的处理器。
在某些实施例中,存储器604包括主存储器,该主存储器用于存储供处理器602执行的指令或供处理器602操作的数据。作为示例而非限制,计算机系统600可以将指令从存储装置606或另一源(例如,另一计算机系统600)加载到存储器604。然后,处理器602可以将指令从存储器604加载到内部寄存器或内部高速缓冲存储器。为了执行多个指令,处理器602可以从内部寄存器或内部高速缓冲存储器检索这些指令并对其进行解码。在对指令的执行期间或之后,处理器602可以将一个或多个结果(其可以是中间结果或最终结果)写入内部寄存器或内部高速缓冲存储器。然后,处理器602可以将这些结果中的一个或多个结果写入存储器604。在某些实施例中,处理器602仅执行一个或多个内部寄存器中或内部高速缓冲存储器中或存储器604(而不是存储装置606或其他地方)中的指令,且仅操作一个或多个内部寄存器中或内部高速缓冲存储器中或存储器604(而不是存储装置606或其他地方)中的数据。
一个或多个存储器总线(其可以各自包括地址总线和数据总线)可以将处理器602耦接到存储器604。如下所述,总线612可以包括一个或多个存储器总线。在某些实施例中,一个或多个内存管理单元(memory management unit,MMU)位于处理器602与存储器604之间,并且促进由处理器602请求的对存储器604的访问。在某些实施例中,存储器604包括随机存取存储器(random access memory,RAM)。在适当的情况下,该RAM是易失性存储器。在适当的情况下,该RAM可以为动态RAM(dynamic RAM,DRAM)或静态RAM(static RAM,SRAM)。此外,在适当的情况下,该RAM可以是单端口或多端口RAM。本公开考虑了任何合适的RAM。在适当的情况下,存储器604可以包括一个或多个存储器604。尽管本公开描述并示出了特定的存储器,但本公开考虑了任何合适的存储器。
在某些实施例中,存储装置606包括用于数据或指令的大容量存储装置。作为示例而非限制,存储装置606可以包括硬盘驱动器(hard disk drive,HDD)、软盘驱动器(floppydisk drive,FDD)、闪存、光盘、磁光盘、磁带、或通用串行总线(Universal Serial Bus,USB)驱动器、或这些中的两者或更多者的组合。在适当的情况下,存储装置606可以包括可移除介质或不可移除(或固定)介质。在适当的情况下,存储装置606可以处于计算机系统600的内部或外部。在某些实施例中,存储装置606是非易失性、固态存储器。在某些实施例中,存储装置606包括只读存储器(read-only memory,ROM)。在适当的情况下,该ROM可以是掩码编程的ROM、可编程ROM(programmable ROM,PROM)、可擦除PROM(erasable PROM,EPROM)、电子可擦除PROM(electrically erasable PROM,EEPROM)、电改写ROM(electrically alterable ROM,EAROM)、或闪存、或这些中的两者或更多者的组合。本公开考虑了采用任何合适物理形式的大容量存储装置606。在适当的情况下,存储装置606可以包括促进处理器602与存储装置606之间的通信的一个或多个存储控制单元。在适当的情况下,存储装置606可以包括一个或多个存储装置606。尽管本公开描述并示出了特定的存储装置,但是本公开考虑了任何合适的存储装置。
在某些实施例中,I/O接口608包括如下的硬件、软件或这两者:该硬件、软件或这两者为计算机系统600与一个或多个I/O设备之间的通信提供一个或多个接口。在适当的情况下,计算机系统600可以包括这些I/O设备中的一个或多个I/O设备。这些I/O设备中的一个或多个I/O设备可以实现人与计算机系统600之间的通信。作为示例而非限制,I/O设备可以包括键盘、小键盘、传声器、监测器、鼠标、打印机、扫描仪、扬声器、静物照相机(stillcamera)、手写笔、平板电脑、触摸屏、轨迹球、摄影机、另一合适的I/O设备、或这些中的两者或更多者的组合。I/O设备可以包括一个或多个传感器。本公开考虑了任何合适的I/O设备和用于该I/O设备的任何合适的I/O接口608。在适当的情况下,I/O接口608可以包括一个或多个设备或软件驱动程序,该一个或多个设备或软件驱动程序使处理器602能够驱动这些I/O设备中的一个或多个I/O设备。在适当的情况下,I/O接口608可以包括一个或多个I/O接口608。尽管本公开描述并示出了特定的I/O接口,但本公开考虑了任何合适的I/O接口。
在某些实施例中,通信接口610包括如下的硬件、软件或这两者:该硬件、软件或这两者为计算机系统600与一个或多个其他计算机系统600或与一个或多个网络之间的通信(例如,基于包(packet-based)的通信)提供一个或多个接口。作为示例而非限制,通信接口610可以包括用于与以太网或其他基于有线的网络进行通信的网络接口控制器(networkinterface controller,NIC)或网络适配器,或者可以包括用于与无线网络(例如,Wi-Fi网络)进行通信的无线NIC(wireless NIC,WNIC)或无线适配器。本公开考虑了任何合适的网络和用于任何合适的网络的任何合适的通信接口610。
作为示例而非限制,计算机系统600可以与如下的网络进行通信:自组网、个域网(personal area network,PAN)、局域网(LAN)、广域网(WAN)、城域网(MAN)、或互联网的一个或多个部分、或这些中的两者或更多者的组合。这些网络中的一者或多者的一个或多个部分可以是有线的或无线的。例如,计算机系统600可以与如下的网络进行通信:无线PAN(wireless PAN,WPAN)(例如,蓝牙WPAN)、Wi-Fi网络、WI-MAX网络、蜂窝电话网络(例如,全球移动通信系统(Global System for Mobile Communications,GSM)网络)、或其他合适的无线网络、或这些中的两者或更多者的组合。在适当的情况下,计算机系统600可以包括用于这些网络中的任何一个网络的任何合适的通信接口610。在适当情况下,通信接口610可以包括一个或多个通信接口610。尽管本公开描述并示出了特定的通信接口,但是本公开考虑了任何合适的通信接口。
在某些实施例中,总线612包括将计算机系统600的多个部件耦接到彼此的硬件、软件或这两者。作为示例而非限制,总线612可以包括:加速图形端口(AcceleratedGraphics Port,AGP)或其他图形总线、增强型工业标准体系结构(Enhanced IndustryStandard Architecture,EISA)总线、前端总线(front-side bus,FSB)、超传输(HYPERTRANSPORT,HT)互连、工业标准体系结构(Industry Standard Architecture,ISA)总线、无限带宽(INFINIBAND)互连、低引脚数(low-pin-count,LPC)总线、存储器总线、微通道体系结构(Micro Channel Architecture,MCA)总线、外围部件互连(PeripheralComponent Interconnect,PCI)总线、快速PCI(PCI-Express,PCIe)总线、串行高级技术附件(serial advanced technology attachment,SATA)总线、本地视频电子标准协会(VideoElectronics Standards Association local,VLB)总线、或另一合适的总线、或这些中的两者或更多者的组合。在适当的情况下,总线612可以包括一个或多个总线612。尽管本公开描述并示出了特定的总线,但本公开考虑了任何合适的总线或互连。
在本文中,在适当的情况下,一个或多个计算机可读非暂态存储介质可以包括:一个或多个基于半导体的集成电路(integrated circuit,IC)或其他集成电路(例如,现场可编程门阵列(FPGA)或专用IC(ASIC))、硬盘驱动器(HDD)、混合硬盘驱动器(hybrid harddrive,HHD)、光盘、光盘驱动器(optical disc drive,ODD)、磁光盘、磁光驱动器、软盘、软盘驱动器(FDD)、磁带、固态驱动器(solid-state drive,SSD)、RAM驱动器、安全数字卡或驱动器、任何其他合适的计算机可读非暂态存储介质、或这些中的两者或更多者的任何合适的组合。在适当的情况下,计算机可读非暂态存储介质可以是易失性的、非易失性的、或易失性与非易失性的组合。
在本文中,除非另有明确指示或上下文另有指示,否则“或”是开放性的而非排他性的。因此,在本文中,除非另有明确指示或上下文另有指示,否则“A或B”指的是“A、B、或这两者”。此外,除非另有明确指示或上下文另有指示,否则“和”既是联合的,也是各自的。因此,在本文中,除非另有明确指示或上下文另有指示,否则“A和B”指的是“A和B,共同地或单独地”。
本公开的范围涵盖对本文所描述或所示出的示例实施例的所有改变、替换、变型、变换和修改,本领域普通技术人员将理解这些改变、替换、变型、变换和修改。本公开的范围不限于本文所描述或所示出的示例实施例。此外,尽管本公开将本文的各个实施例描述和示出为包括特定的部件、元件、特征、功能、操作、或步骤,但这些实施例中的任何实施例都可以包括本领域普通技术人员将理解的、本文中任何地方所描述或所示出的部件、元件、特征、功能、操作、或步骤的任何组合或排列。此外,在所附权利要求书中对适用于、被布置为、能够、被配置为、使能够、能够操作、或可操作以执行特定功能的装置或系统、或装置或系统的部件的引用包括该装置、系统、部件,无论该装置、系统、部件或该特定功能是否被激活、开启或解锁,只要该装置、系统或部件如此适用于、被布置为、能够、被配置为、使能够、能够操作、或可操作。另外,尽管本公开将某些实施例描述或示出为提供特定优点,但某些实施例可以不提供这些优点,或者可以提供这些优点的部分或全部。

Claims (15)

1.一种方法,包括:由计算系统:
向用户显示人工现实环境;
确定所述用户与所述人工现实环境交互的上下文;
基于所述上下文,确定所述用户想要使用手势与所述人工现实环境内的目标虚拟对象进行交互;
在所述用户正试图与所述目标虚拟对象进行交互时,监测所述用户相对于所述目标虚拟对象而做出的手势的运动模式;以及
基于所述运动模式,生成与所述用户相关联的运动稳定轮廓,其中,所述运动稳定轮廓被配置为:用于在所述人工现实环境内的后续用户交互期间,稳定所述用户所做出的手势。
2.根据权利要求1所述的方法,其中,确定所述用户与所述人工现实环境交互的所述上下文包括:确定开始对所述用户相对于所述目标虚拟对象而做出的手势的所述运动模式进行监测的触发。
3.根据权利要求1所述的方法,其中,基于所述上下文确定所述用户想要使用手势与所述目标虚拟对象进行交互包括:确定在所述用户正试图与所述目标虚拟对象进行交互时所经过的时间。
4.根据权利要求1所述的方法,还包括:基于所述运动稳定轮廓,确定与所述用户相关联的运动范围。
5.根据权利要求4所述的方法,还包括:
在所述用户正试图执行与所述人工现实环境中的虚拟对象的后续用户交互时,监测所述用户相对于所述虚拟对象而做出的手势的运动;以及
在所述用户所做出的手势的运动超出所述运动范围时,在与所述人工现实环境中的虚拟对象的所述后续用户交互期间稳定所述用户所做出的手势;
和/或:
在所述用户正试图执行与所述人工现实环境中的虚拟对象的后续用户交互时,监测所述用户相对于所述虚拟对象而做出的手势的运动;以及
在所述用户所做出的手势的运动处于所述运动范围内时,放弃在与所述人工现实环境中的虚拟对象的所述后续用户交互期间稳定所述用户所做出的手势。
6.根据权利要求1所述的方法,其中,所述用户是第一用户,并且其中,所述运动稳定轮廓是第一运动稳定轮廓,所述方法还包括:
在第二用户正试图与所述人工现实环境内的目标虚拟对象进行交互时,监测所述第二用户相对于所述目标虚拟对象而做出的手势的运动模式;以及
基于所述运动模式,生成与所述第二用户相关联的第二运动稳定轮廓,其中,所述第二运动稳定轮廓被配置为:用于在与所述人工现实环境中的虚拟对象的后续用户交互期间,稳定所述第二用户所做出的手势;
其中,所述第二运动稳定轮廓与所述第一运动稳定轮廓不同。
7.根据权利要求1所述的方法,其中,与所述用户相关联的所述运动稳定轮廓是利用以下过程来生成的:所述过程在相对于所述人工现实环境的后台中执行。
8.一种系统,包括:
一个或多个非暂态计算机可读存储介质,所述一个或多个非暂态计算机可读存储介质包括指令;以及
一个或多个处理器,所述一个或多个处理器耦接到多个所述存储介质,所述一个或多个处理器被配置为执行所述指令以:
向用户显示人工现实环境;
确定所述用户与所述人工现实环境交互的上下文;
基于所述上下文,确定所述用户想要使用手势与所述人工现实环境内的目标虚拟对象进行交互;
在所述用户正试图与所述目标虚拟对象进行交互时,监测所述用户相对于所述目标虚拟对象而做出的手势的运动模式;以及
基于所述运动模式,生成与所述用户相关联的运动稳定轮廓,其中,所述运动稳定轮廓被配置为:用于在所述人工现实环境内的后续用户交互期间,稳定所述用户所做出的手势。
9.根据权利要求8所述的系统,其中,用于确定所述用户与所述人工现实环境交互的所述上下文的所述指令还包括用于以下操作的指令:确定开始对所述用户相对于所述目标虚拟对象而做出的手势的所述运动模式进行监测的触发;和/或
其中,用于基于所述上下文确定所述用户想要使用手势与所述目标虚拟对象进行交互的所述指令还包括用于以下操作的指令:确定在所述用户正试图与所述目标虚拟对象进行交互时所经过的时间。
10.根据权利要求8所述的系统,其中,所述指令还包括用于以下操作的指令:基于所述运动稳定轮廓,确定与所述用户相关联的运动范围。
11.根据权利要求10所述的系统,其中,所述指令还包括用于以下操作的指令:
在所述用户正试图执行与所述人工现实环境中的虚拟对象的后续用户交互时,监测所述用户相对于所述虚拟对象而做出的手势的运动;以及
在所述用户所做出的手势的运动超出所述运动范围时,在与所述人工现实环境中的虚拟对象的所述后续用户交互期间稳定所述用户所做出的手势;和/或
其中,所述指令还包括用于以下操作的指令:
在所述用户正试图执行与所述人工现实环境中的虚拟对象的后续用户交互时,监测所述用户相对于所述虚拟对象而做出的手势的运动;以及
在所述用户所做出的手势的运动处于所述运动范围内时,放弃在与所述人工现实环境中的虚拟对象的所述后续用户交互期间稳定所述用户所做出的手势。
12.根据权利要求8所述的系统,其中,所述用户是第一用户,并且其中,所述运动稳定轮廓是第一运动稳定轮廓,所述指令还包括用于以下操作的指令:
在第二用户正试图与所述人工现实环境内的目标虚拟对象进行交互时,监测所述第二用户相对于所述目标虚拟对象而做出的手势的运动模式;以及
基于所述运动模式生成与所述第二用户相关联的第二运动稳定轮廓,其中,所述第二运动稳定轮廓被配置为:用于在与所述人工现实环境中的虚拟对象的后续用户交互期间,稳定所述第二用户所做出的手势;
其中,所述第二运动稳定轮廓与所述第一运动稳定轮廓不同。
13.根据权利要求8所述的系统,其中,与所述用户相关联的所述运动稳定轮廓是利用以下过程来生成的:所述过程在相对于所述人工现实环境的后台中执行。
14.一种非暂态计算机可读介质,所述非暂态计算机可读介质包括指令,所述指令在被计算系统的一个或多个处理器执行时,使所述一个或多个处理器:
向用户显示人工现实环境;
确定所述用户与所述人工现实环境交互的上下文;
基于所述上下文,确定所述用户想要使用手势与所述人工现实环境内的目标虚拟对象进行交互;
在所述用户正试图与所述目标虚拟对象进行交互时,监测所述用户相对于所述目标虚拟对象而做出的手势的运动模式;以及
基于所述运动模式,生成与所述用户相关联的运动稳定轮廓,其中,所述运动稳定轮廓被配置为:用于在所述人工现实环境内的后续用户交互期间,稳定所述用户所做出的手势。
15.根据权利要求14所述的非暂态计算机可读介质,其中,与所述用户相关联的所述运动稳定轮廓是利用以下过程来生成的:所述过程在相对于所述人工现实环境的后台中执行。
CN202180094975.3A 2020-12-30 2021-12-25 对人工现实环境中的手势的稳定 Pending CN117015753A (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US17/138,256 US11687165B2 (en) 2020-12-30 2020-12-30 Stabilizing gestures in artificial reality environments
US17/138,256 2020-12-30
PCT/US2021/065183 WO2022146901A1 (en) 2020-12-30 2021-12-25 Stabilizing gestures in artificial reality environments

Publications (1)

Publication Number Publication Date
CN117015753A true CN117015753A (zh) 2023-11-07

Family

ID=79927464

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202180094975.3A Pending CN117015753A (zh) 2020-12-30 2021-12-25 对人工现实环境中的手势的稳定

Country Status (4)

Country Link
US (2) US11687165B2 (zh)
EP (1) EP4272055A1 (zh)
CN (1) CN117015753A (zh)
WO (1) WO2022146901A1 (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2022051033A1 (en) * 2020-09-02 2022-03-10 Sterling Labs Llc Mapping a computer-generated trackpad to a content manipulation region
US11687165B2 (en) * 2020-12-30 2023-06-27 Meta Platforms Technologies, Llc Stabilizing gestures in artificial reality environments
CN116467859B (zh) * 2023-03-30 2024-05-10 昆易电子科技(上海)有限公司 数据处理方法、系统、设备和计算机可读存储介质

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8070775B2 (en) * 2007-06-05 2011-12-06 Spartek Medical, Inc. Deflection rod system for a dynamic stabilization and motion preservation spinal implantation system and method
US9874977B1 (en) 2012-08-07 2018-01-23 Amazon Technologies, Inc. Gesture based virtual devices
US20160038088A1 (en) * 2014-07-31 2016-02-11 David Lari Systems and devices for measuring, capturing, and modifying partial and full body kinematics
US10429935B2 (en) 2016-02-08 2019-10-01 Comcast Cable Communications, Llc Tremor correction for gesture recognition
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
EP3797345A4 (en) 2018-05-22 2022-03-09 Magic Leap, Inc. TRANSMODAL INPUT FUSION FOR A BODY WEARABLE SYSTEM
JP7161736B2 (ja) * 2019-03-14 2022-10-27 日本電信電話株式会社 符号化方法、符号化装置及びプログラム
IL269809B (en) * 2019-10-03 2021-12-01 Eyejets Ltd A compact retinal scanning device for tracking pupil movements of a user's eye and its applications
US11687165B2 (en) * 2020-12-30 2023-06-27 Meta Platforms Technologies, Llc Stabilizing gestures in artificial reality environments
US20230004229A1 (en) * 2021-06-30 2023-01-05 International Business Machines Corporation Item selection with smart device monitoring of gestures
US20230045759A1 (en) * 2021-08-04 2023-02-09 Meta Platforms Technologies, Llc 3D Calling Affordances
US20230061174A1 (en) * 2021-08-26 2023-03-02 Obsidian Sensors, Inc. Charge transfer circuitry for mems devices

Also Published As

Publication number Publication date
US11687165B2 (en) 2023-06-27
EP4272055A1 (en) 2023-11-08
WO2022146901A1 (en) 2022-07-07
US20230236671A1 (en) 2023-07-27
US20220206586A1 (en) 2022-06-30

Similar Documents

Publication Publication Date Title
US11308698B2 (en) Using deep learning to determine gaze
US20190228580A1 (en) Dynamic Creation of Augmented Reality Effects
CN117015753A (zh) 对人工现实环境中的手势的稳定
US11507179B2 (en) Systems and methods for predicting lower body poses
US11350030B2 (en) Flicker detector
CN117425870A (zh) 虚拟现实中的动态混合现实内容
US12020508B2 (en) Systems and methods for predicting elbow joint poses
US12093447B2 (en) Ephemeral artificial reality experiences
CN116075848A (zh) 对图像的自适应采样
US11854261B2 (en) Linking to social experiences in artificial reality environments
US10976979B1 (en) Social experiences in artificial reality environments
US12125126B1 (en) Managing visual clutter in artificial reality environments
US20210390661A1 (en) Enhancing the resolution of a video stream

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