CN109416580B - 用于选择场景中的对象的系统、方法和可穿戴计算设备 - Google Patents

用于选择场景中的对象的系统、方法和可穿戴计算设备 Download PDF

Info

Publication number
CN109416580B
CN109416580B CN201780039933.3A CN201780039933A CN109416580B CN 109416580 B CN109416580 B CN 109416580B CN 201780039933 A CN201780039933 A CN 201780039933A CN 109416580 B CN109416580 B CN 109416580B
Authority
CN
China
Prior art keywords
user
objects
movement
scene
data
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.)
Active
Application number
CN201780039933.3A
Other languages
English (en)
Other versions
CN109416580A (zh
Inventor
C·R·Q·马泰-欧文斯
A·汤姆林
M·加利
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.)
Microsoft Technology Licensing LLC
Original Assignee
Microsoft Technology Licensing 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 Microsoft Technology Licensing LLC filed Critical Microsoft Technology Licensing LLC
Publication of CN109416580A publication Critical patent/CN109416580A/zh
Application granted granted Critical
Publication of CN109416580B publication Critical patent/CN109416580B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

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/011Arrangements for interaction with the human body, e.g. for user immersion in virtual reality
    • G06F3/013Eye tracking input arrangements
    • 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/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/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/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/0482Interaction with lists of selectable items, e.g. menus
    • 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
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T19/00Manipulating 3D models or images for computer graphics
    • G06T19/006Mixed reality
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/10Segmentation; Edge detection
    • G06T7/12Edge-based segmentation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/50Depth or shape recovery
    • G06T7/536Depth or shape recovery from perspective effects, e.g. by using vanishing points
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/50Depth or shape recovery
    • G06T7/55Depth or shape recovery from multiple images
    • G06T7/579Depth or shape recovery from multiple images from motion

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 Vision & Pattern Recognition (AREA)
  • Computer Graphics (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • User Interface Of Digital Computer (AREA)

Abstract

用户可以使用凝视跟踪和移动跟踪来选择场景中的对象或者与场景中的对象交互。在一些示例中,场景可以包括虚拟现实场景或者混合现实场景。用户可以移动环境中的输入对象并且面向朝向输入对象的移动的方向。计算设备可以使用传感器来获得对应于输入对象的移动的移动数据,以及对应于用户的眼睛的位置的凝视跟踪数据。计算设备的一个或多个模块可以使用移动数据和凝视跟踪数据来确定场景中的三维选择空间。在一些示例中,被包括在三维选择空间中的对象可以被选择或以其他方式与之交互。

Description

用于选择场景中的对象的系统、方法和可穿戴计算设备
技术领域
本公开的实施例涉及选择场景中的对象。
背景技术
计算设备可以被用来生成三维场景并且与三维场景交互,三维场景包括虚拟现实场景和/或混合现实场景。虚拟现实是沉浸式体验,其模拟经投影的或经显示的场景中的物理空间。混合现实(也被称为增强现实)是混合现实体验,其通过在物理环境中呈现虚拟对象来合并现实世界和虚拟世界,以提供混合现实场景。在诸如此类的虚拟现实和混合现实场景中,计算设备可以使得用户能够与物理对象和虚拟对象进行交互。例如,用户可以通过执行对对象的虚拟选择并且对对象执行动作(例如,对对象进行绘图、对对象调整大小、移动对象等)来与场景中的对象交互。在一些实例中,用户可能想要对场景中的多个对象执行相同动作。用于选择虚拟现实和/或混合现实场景中的对象(物理对象和/或虚拟对象)的现有解决方案是不足的且繁琐的。
发明内容
本公开描述了用于对虚拟和/或混合现实场景中的一个或多个对象的选择的技术。
在一些示例中,一个或多个对象(例如,物理对象和/或虚拟对象)可以存在于用户想要与之交互的场景(即,虚拟现实或混合现实场景)中。计算设备可以跟踪由用户在环境中使用传感器控制的输入对象(例如,手、手指、触笔、六自由度控制等)的移动。在一些示例中,用户可以使用输入对象来执行开始动作(例如,按压按钮、手势、夹捏姿势等),该开始动作指示用户想要利用场景中的一个或多个对象来执行操作(例如,选择)。计算设备可以使用传感器来在开始动作之后跟踪输入对象的移动直到检测到结束动作(例如,按压按钮、释放按钮、另一手势等)为止。附加地,计算设备可以使用传感器来在用户移动环境中的输入对象时跟踪用户的眼睛相对于输入对象的位置以获得跟踪数据。通过在输入对象的移动期间跟踪输入对象的移动和用户的眼睛的位置,计算设备可以标识由用户对输入对象的移动告知的形状。如本文所描述的,用户的环境是包括物理对象的物理环境或现实世界环境。场景是虚拟场景或者混合现实场景,在虚拟场景中仅仅虚拟对象被呈现(例如,被呈现在显示器上)并且不包括物理环境,在混合现实场景中虚拟对象被呈现在物理环境内或者作为物理环境的一部分。
在各种示例中,计算设备可以在基本上平行于在用户的眼睛处或附近开始并且延伸到沿着形状的位置(诸如形状的中心(即中心向量)的向量的方向上延伸和/或扩大场景中的形状,以创建三维(3D)选择空间。例如,计算设备可以计算源自用户的眼睛处或附近的与沿着由输入对象的移动定义的形状的点相交的向量。尽管这些向量被定义为在用户的眼睛附近或处的位置开始,但是它们可以源自场景或环境中的另一点。向量可以包括穿过形状的点(诸如检测到开始动作和结束动作的点)的向量。计算系统可以使用这些向量来将由输入对象在环境中的移动定义的形状在基本上平行于中心向量的方向上延伸以创建场景中的3D体积。即,所创建的3D体积是位于在基本上平行于中心向量的方向上延伸的向量与在远离用户的眼睛的方向上并且通过形状的中心向量之间的空间。在一些示例中,位于或者至少部分地位于该3D体积或选择空间内的对象可以被交互(即,选择)。在一些示例中,对象必须完全位于要被选择的3D体积内,而在其他示例中,各种阈值可以被设置或确定为也选择仅仅具有被包括在3D体积中的部分的对象。
本文所描述的选择技术提供选择三维空间中的多个对象的快速且简单的方式,而无需对对象的单独选择。在一些示例中,选择技术可能需要更少的时间和计算资源来选择多个对象和/或对多个对象执行动作。例如,不是单独地处理针对多个选择的输入和/或对多个对象中的每个对象执行的动作,本文所描述的技术可以通过减少由计算设备处理的输入和动作的量来对多个对象执行相同的选择和/或动作来得到更少的处理能力。因此,在一些实例中,本文所描述的选择技术的使用可以减少选择多个对象和/或对多个对象执行动作的处理和时间要求。尽管本文在虚拟现实或混合现实场景的上下文中描述了这些技术,但是在其他示例中,这些技术可以被应用于其他上下文,例如具有相机的计算机、具有相机的游戏控制台、交通工具显示器等。
提供本发明内容从而以简化的形式介绍下面在具体实施方式中进一步描述的一系列概念。本发明内容不旨在标识所要求保护的主题内容的关键特征或必要特征,也不旨在被用于限制所要求保护的主题内容的范围。
附图说明
参考附图阐述具体实施方式,其中附图标记的最左边的数字标识附图标记首次出现在其中的附图。在相同的或不同的附图中对相同的附图标记的使用指示相似的或相同的项或特征。
图1是示出用于使用计算设备来支持对多个对象的选择的示例环境的示意图。
图2A-图2D图示了用于使用输入对象的移动和凝视(gaze)跟踪数据来选择场景中的多个对象的示例过程。
图3A和图3B图示了用于使用输入对象的另一移动和凝视跟踪数据来选择场景中的多个对象的示例过程。
图4图示了可用于实现对场景中的多个对象的选择的示例头戴式计算设备的细节。
图5A-图5C图示了通过跟踪用户的凝视来标识凝视目标的示例细节。
图6A-图6F描述了用于获得用于凝视跟踪的校准数据的示例技术。
图7A-图7F描述了用于处理校准数据和其他数据以标识凝视目标的示例技术。
图8是图示用于从凝视跟踪数据来确定凝视目标的示例过程的方面的流程图。
图9是图示可用于实现对象的选择的方面的示例计算机架构的示意图。
图10是图示能够实现选择对象的方面的示例分布式计算环境的示意图。
图11是图示可用于实现选择对象的方面的另一示例计算设备架构的示意图。
图12是图示用于创建用于选择三维空间中的对象的选择空间的示例过程的方面的流程图。
具体实施方式
如上所述,计算设备可以帮助用户与虚拟和/或混合现实场景中的虚拟和/或物理对象进行交互。例如,用户可以通过虚拟地选择对象和/或对对象执行动作(例如,调整大小、移动、绘图等)来与这些场景中的对象交互。在一些实例中,用户可能想要基本上同时地、顺序地和/或成批地选择多个对象和/或与多个对象交互。然而,现有对象选择技术当涉及多个对象时变得繁重且耗时。例如,现有技术要求用户一次选择一个对象并且与一个对象交互,当多个对象必须单独地被选择和交互时其变得繁重且耗时。
本公开描述了用于使用凝视跟踪和移动跟踪来选择3D场景中的一个或多个对象的选择技术。在一些示例中,多个对象(即,物理对象和/或虚拟对象)可以存在和/或被投影在场景中。用户可能想要将多个对象作为组进行选择或者与之交互。计算设备可以使用移动传感器(例如,环境相机、加速度计、深度感测相机、磁场传感器等)以通过跟踪由用户在环境中控制的输入对象(例如,手、手指、触笔、远程控制等)的移动来获得移动数据。在一些示例中,计算设备可以检测由用户执行的开始动作(例如,按压按钮、手势、语音命令等),该开始动作指示用户想要选择场景中的一个或多个对象或者以其它方式与之交互。计算设备还可以使用移动传感器以在开始动作之后跟踪输入对象的移动直到移动停止为止,或者直到检测到结束动作为止。附加地,计算设备可以使用凝视传感器(例如,红外(“IR”)发射器和传感器、可见光传感器、深度感测相机、加速度计、接近度传感器、相机等)以通过跟踪用户的眼睛相对于输入对象的位置或者通过在用户移动环境中的输入对象时跟踪用户的凝视来获得凝视跟踪数据。如本文中所定义的,凝视跟踪数据可以包括由凝视跟踪传感器收集的数据,诸如用户的眼睛相对于输入对象的位置或者用户的凝视(即,视线)。向量计算技术在本文中被描述为通过使用凝视跟踪传感器(例如,面向用户的环境相机、面向外部的环境相机、加速度计、接近度传感器、磁场传感器等)确定针对用户的眼睛处或附近的向量相对于环境中的点(诸如输入对象)的原始位置来计算向量。然而,在一些示例中,向量计算技术可以包括使用凝视跟踪传感器来计算向量,凝视跟踪传感器标识环境中的用户的凝视,如参考图4至图8更详细地描述的,以标识用户正在看向哪里并且基于用户的凝视来定义向量。
在各种示例中,计算设备可以使用从跟踪输入对象的移动和在输入对象的移动期间用户的眼睛的位置获得的移动数据和凝视跟踪数据来确定由输入对象的移动形成的二维(2D)或3D形状。例如,计算设备可以计算源自用户的眼睛处或附近的与沿着由输入对象的移动定义的形状(例如,在2D形状的情况下x和y坐标,或者在3D形状的情况下x、y和z坐标)的点相交的向量。向量穿过的形状的点可以是空间中的与检测到开始动作和结束动作的地方相对应的点。在一些示例中,移动可以是对角线,并且形状可以是具有与对角线相对应的对角的矩形。在其他示例中,形状可以由输入对象的移动定义为采用圆形形状、球形形状、自由形式有界形状、或者“套索”、或者任何其他形状。
如以上所指出的,在一些示例中,用户的眼睛的位置可以被跟踪并且源自用户的眼睛处或附近的与沿着形状的点相交的向量(即,凝视向量)可以被计算。在这样的示例中,计算系统可以使用这些向量来将由输入对象的移动定义的形状的虚拟表示在基本上平行于从在用户的眼睛处或附近开始延伸到形状上的位置(诸如形状的中心)的向量的方向上延伸和/或扩展,以创建场景中的虚拟3D选择空间或体积。作为示例,形状可以类似于光如何从闪光灯或汽车上的前灯延伸而被延伸和扩展。在这样的示例中,形状可以被扩展使得几何上/数学上类似的但是更大的或扩展的形状定义在进一步远离用户的距离处的形状。
在一些示例中,向量和由向量创建的3D选择空间可以在移动被检测和获得时被创建和/或计算。例如,当用户移动输入对象时,向量和3D选择空间可以在移动继续时被计算并且逐渐扩展。在各种示例中,显示器可以呈现向量和/或3D选择空间的虚拟表示以通告用户3D选择空间和/或对象的形状当前完全位于或部分位于(例如,对象的任何部分,超过对象的一半等)3D选择空间中。在一些示例中,当移动继续并且3D选择空间扩展时,落入或者部分地落入3D选择空间内的对象可以被突出显示或者以其他方式被指示为被包括在3D选择空间中。因此,当移动被检测到时,用户可以可视化或预览哪些对象当前位于3D选择空间内或移动到3D选择空间中。
在一些示例中,形状可以在平行于在用户的眼睛处或附近开始并且针对无限距离(即,计算设备的传感器不再能够测量的距离或位置)延伸到形状上的任何位置(诸如形状的中心)的凝视向量的方向上延伸和/或扩展。在其他示例中,有限3D体积可以通过确定距用户的最大距离和最小距离(在其处“剪切”或界定3D体积)来计算。例如,可以通过利用垂直于在用户的眼睛处或附近开始并且在距用户的最大距离(即远边界)处和/或最小距离(即,近边界)处延伸到形状的中心的向量的平面来剪切3D体积以创建有限3D体积(例如,圆锥体、截头锥体、圆柱体等)来界定3D体积。在一些示例中,最大距离和最小距离可以是剪切3D体积的预定距离。例如,最大距离和最小距离可以是远离用户的任意的且可重新配置的距离(例如,1英尺、2英尺、10英尺、15英尺等)。在其他实例中,最大距离和最小距离可以由用户的动作确定或设置。例如,用户可以将输入对象移动朝向用户的身体或者移动远离用户的身体,以在用户移动输入对象以定义横截面形状之前、当用户移动输入对象以定义横截面形状时、或者在用户移动输入对象以定义横截面形状之后设置最小和/或最大距离。在各种示例中,用户可以使用不移动输入对象的手臂,以通过将他们的手臂移动朝向他们的身体或者远离他们的身体来定义深度,或者用户可以将他们的身体相对于输入对象向前或向后移动来定义距用户的最小和最大距离以创建有限3D体积。在一些示例中,当使用该移动来计算最小和最大距离时,输入对象、相邻手臂和/或身体的移动可以乘以缩放因子(例如,2倍、5倍等)。即,输入对象、相邻手臂或身体的相对小的移动可以导致3D选择空间的大小的更长增加/减少。
在一些示例中,相对于输入对象转动用户的头或者移动用户的头移动场景中的选择空间(例如,类似于闪光灯的光束)。以这种方式,用户可以通过相对于输入对象移动他们的头或者转动他们的头来改变场景中的选择空间的角度或方向。
计算设备可以使用3D体积作为3D选择空间,其中被包括于或者至少部分地包括于3D选择空间中的所有对象被选择或以其他方式被作用于其上。例如,落入或至少部分地落入已经沿着平行于在用户的眼睛处或附近开始并且延伸到形状的中心的向量的方向延伸和/或扩展以创建3D选择空间的形状内的所有对象可以被选择或以其他方式与之交互。在一些示例中,落入或至少部分地落入3D选择空间内的对象可以具有与它们相关联的一个或多个虚拟指示符以通告用户哪些对象被选择。例如,位于或至少部分地位于3D选择空间内的对象可以被突出显示、勾勒轮廓、着色,或者具有被定位在它们附近的可见指示符(例如,数字、箭头等)、或者可用于指示对象已经被选择的任何其他指示符。指示符可以响应于检测到定义形状的输入对象的移动的结束或者响应于检测到结束动作而被呈现。
在一些示例中,输入对象的多个姿势或移动可以被用于标识被包括在或至少部分地被包括在3D选择空间中的对象。例如,对象的初始组可以使用本文所描述的技术在它们落入或至少部分地落入由输入对象的第一移动形成的3D选择空间内时被选择。然后,输入对象的第二移动可以在选择对象的初始组之后被检测,对象的初始组选择位于或至少部分地位于3D选择空间内的对象的子组。以这种方式,多个姿势可以被用于选择与之交互的组和那些组内的子组。因此,用户可以定义第一选择空间并且想要与该选择空间内的子组交互而无需定义第一选择空间。
在一些示例中,对象可以“被锁定”或者以其他方式被防止与之交互。例如,场景中的对象可以是不能够与之交互或被选择的预定义对象。当那些对象落入或至少地落入选择空间内时,可以防止它们被选择或者与之交互。以这种方式,用户或系统可以创建“锚”(anchor)对象,或者防止与之交互或者被选择以允许用户与锚对象周围的对象交互而无需解除选择他们想要保持静态的对象的对象。
在各种示例中,完成的3D选择空间和所选择的对象可以被固定在空间中并且允许由用户进一步交互。例如,用户可以在场景中的对象和3D选择空间周围走动或查看并且执行各种操作,诸如解除选择被选择的一个或多个对象,或者将对象移动到3D选择空间中并且从3D选择空间中移动出来。
因此,本文所描述的技术允许用户创建从用户的视角定义的虚拟3D选择空间,以通过在表示用户的视角、凝视或视线的向量被用于将图像在平行于在用户的眼睛处或附近开始并且延伸到形状的中心位置的向量的方向上延伸和/或扩展时定义包含对象的形状来选择多个对象。
在一些示例中,本文所描述的选择技术可以整体地或部分地使用具有凝视跟踪相机的头戴式计算设备(例如,Occulus VR的Occulus
Figure GDA0003405037580000081
谷歌公司的Google Glass、或者微软公司的HoloLens)来实现。头戴式计算设备还可以包括显示器和/或环境相机(例如,面向用户的环境相机、面向外部的环境相机等)以捕获用户的周围环境或环境。当用户期望使用头戴式显示器或可经由头戴式显示器访问的其他计算资源时,用户可以简单地凝视由头戴式显示设备显示的场景、他的或她的现实世界周围环境的现实世界场景、或者在混合现实场景,用户的凝视可以由凝视跟踪相机跟踪。在其他示例中,本文所描述的选择技术可以使用具有面向用户的网络相机以捕获用户的眼睛位置、凝视和移动的个人计算机(例如,膝上型或台式)来实现。在其他示例中,本文所描述的选择技术可以使用与深度相机(例如,微软公司的
Figure GDA0003405037580000091
索尼公司的
Figure GDA0003405037580000092
相机)通信的游戏控制台或其他计算设备来实现为用户输入。在一些示例中,本文所描述的选择技术可以使用具有面向用户的相机以捕获用户的眼睛位置、凝视和移动的交通工具中的显示器来实现。
尽管描述了涉及各种硬件和软件配置的某些特定示例,但是本文所描述的技术不限于那些示例并且可以使用能够在用户查看场景时跟踪用户的凝视或眼睛位置的任何计算设备或计算设备的组合来实现。可用于实现本文所描述的技术的其他计算设备的示例包括但不限于:台式计算机、膝上型计算机、平板计算机、移动设备、智能电话、可穿戴计算机、植入式计算设备、电信设备、汽车计算机、网络实现的电视、瘦客户端、终端、游戏控制台、游戏设备、工作站、媒体播放器、数字视频记录器(DVR)、机顶盒、相机、到建筑物或其他设施的接入点、用于包括在计算设备中的集成部件、电器、或者包括或者具有对能够跟踪用户的凝视和/或眼睛位置的相机或其他传感器的访问的任何其他种类的计算设备。
尽管本文所描述的主题内容主要在用于选择环境或场景中的多个对象的技术的一般上下文中被呈现,但是本文所描述的技术可以应用于对一个或多个对象的任何类型的动作,诸如调整大小、移动、着色等。附加地,尽管本文所描述的技术是参考选择多个对象的,但是这些技术也可用于选择场景中的个体对象。
本文所描述的选择技术提供在无需对对象的单独选择的情况下选择三维空间中的多个对象的快速且简单的方式。在一些示例中,选择技术可能需要更少的时间和计算资源来选择多个对象和/或对多个对象执行动作。例如,不是单独地处理针对多个选择的输入和/或对多个对象中的每个对象执行的动作,本文所描述的技术可以通过减少由计算设备处理的输入和动作的量来对多个对象执行相同的选择和/或动作来得到更少的处理能力。因此,在一些实例中,本文所描述的选择技术的使用可以减少选择多个对象和/或对多个对象执行动作的处理和时间要求。
这些和各种其他示例特征将从以下描述的阅读和相关联的附图的审查变得明显。然而,所要求保护的主题内容不限于解决在本公开内容的任何部分中提到的任何或所有缺点或者提供公开内容的任何部分中提到的任何益处的实现方式。
示例环境
图1是示出多个对象选择技术可以被实现的示例环境100的示意图。示例环境100可以包括可由用户104用于选择呈现于场景106中的多个对象的一个或多个计算设备102。该图中所图示的(多个)示例计算设备102包括头戴式计算设备102A、膝上型计算机102B、平板计算机102C、游戏设备102D以及分布式计算环境102P。然而,如上所述,本文所描述的技术还可以使用包括或具有对能够跟踪用户的眼睛的位置和移动的相机或其他传感器的访问的任何其他计算设备来实现。
在该示例中,用户104正在尝试虚拟地选择场景106中的多个对象。环境100可以包括物理的或现实世界的环境。如以上所指出的,场景106可以是计算机生成的场景、现实世界场景、或混合现实场景。例如,场景可以包括现实世界环境和一个或多个虚拟对象。附加地或备选地,场景可以是不包括物理的、现实世界环境的虚拟现实场景。用户可以移动场景106中的输入对象以定义形状。例如,用户可以执行开始动作,执行选择移动或姿势,并且执行结束姿势。如上所述,计算设备102可以包括传感器以获得数据,诸如凝视跟踪数据和移动数据。
计算设备102可以包括一个或多个处理单元(例如,(多个)处理器108)、计算机可读介质110(诸如存储器)和一个或多个传感器112(例如,凝视跟踪相机、环境相机、加速度计、接近度传感器、磁场传感器等)。计算机可读介质110可以包括一个或多个应用114,诸如操作系统、浏览器等。在用户104执行移动以定义形状时,计算设备102可以使用(多个)传感器112或计算设备102的其他传感器来捕获凝视跟踪数据和移动数据。例如,计算设备102可以使用(多个)传感器112(诸如接近度传感器)来确定用户的眼睛相对于环境中的输入对象的位置。在另一示例中,(多个)传感器112可以包括环境相机或凝视跟踪相机,其标识用户的眼睛相对于环境中的输入对象的位置。凝视跟踪数据可以包括指示用户的眼睛在环境100中相对于某点(诸如输入对象)的位置的数据。在一些示例中,计算机可读介质110包括选择模块116,其分析凝视跟踪数据和移动数据。例如,选择模块116可以分析凝视跟踪数据和移动数据,并且计算或确定由输入对象的移动定义的形状、计算源自用户104的眼睛处或附近并且穿过沿着形状的点的向量、并且使用向量来将形状在平行于在用户104的眼睛处或附近开始并且延伸到形状的中心的向量的方向上延伸和/或扩展。以这种方式,选择模块116可以定义3D选择空间。在一些示例中,计算设备102还可以包括显示器118。显示器118可以呈现或显示场景中的虚拟对象。例如,显示器可以显示现实世界环境100中或者虚拟现实环境中的虚拟对象。选择模块116可以标识包括于3D选择空间中的对象,诸如由显示器118呈现的虚拟对象或者环境100中的物理对象,并且选择对象,其可以包括将指示符与所选择的对象相关联。以这种方式,计算设备102可以促进对虚拟或混合现实场景106中的对象的选择。
示例选择技术
图2A-3B图示在各种不同的示例计算机生成的现实世界和混合现实场景的上下文中的示例选择过程。
图2A-2D图示了用于使用输入对象的移动和凝视跟踪数据来选择场景200中的对象的示例过程。如上所述,场景200可以包括物理现实世界环境以及由显示器呈现的虚拟对象,或者场景可以完全是由显示器呈现的虚拟现实对象。如图2A所示,用户202可以使用输入对象206(例如,手、手指、六自由度控制等)在场景200中进行移动204(即,姿势)。尽管移动204被图示为对角线,但是移动204可以是可用于选择场景200中的对象的任何类型的移动。
在一些示例中,用户202可以佩戴计算设备208(诸如计算设备102)或以其他方式与之相关联。尽管被图示为可穿戴计算设备,但是计算设备208可以包括可用于跟踪用户202的移动和眼睛的位置的任何类型的计算设备。计算设备208可以包括传感器(即,(多个)传感器112)以获得与输入对象206的移动204相对应的移动数据。附加地,计算设备208还可以包括传感器(即,(多个)传感器112)以获得与用户202的眼睛处或附近的位置相对应的凝视跟踪数据。
图2B图示了用于基于由计算设备208获得的移动数据和凝视跟踪数据来确定一个或多个凝视向量210的技术。例如,计算设备208可以包括一个或多个模块,诸如选择模块116,其被配置为计算源自原点212并且沿着由输入对象206的移动204定义的形状216与一个或多个点214(即,点214A和214B)相交的(多个)凝视向量210。例如,(多个)凝视向量210可以源自原点212并且沿着形状216穿过(多个)点214。在一些示例中,(多个)凝视向量210可以使用凝视跟踪数据和/或移动数据来计算或确定。例如,选择模块116可以分析凝视跟踪数据以标识环境中的用户202的眼睛相对于点(诸如输入对象206)的位置,并且分析移动数据以确定沿着当输入对象206的移动204被执行时用户正在面对的形状的(多个)点214。在各种示例中,(多个)点214的位置可以通过分析移动数据并且计算空间中的点的3D位置(例如,x1、y1、z1)来确定。(多个)点214的3D位置可以相对于原点212来计算,该原点可以被定义为定义场景200的网格的原点(即,x0、y0、z0)。在一些示例中,选择模块116还可以分析移动数据和凝视跟踪数据来标识中心凝视向量211,其从用户的眼睛附近或眼睛处的位置(诸如原点212)延伸并延伸到由形状216定义的点,诸如中心点。
在各种示例中,移动204可以定义形状216。例如,如图2A和图2B所示,移动204可以是对角线,其被用作针对基于对角线而被计算的矩形形状216的对角。因此,移动204可以定义场景200中的形状216。然而,在其他示例(诸如图3A和图3B的示例)中,移动204可以定义形状216的周长。
图2C图示了用于使用场景200中的(多个)凝视向量210延伸形状216的技术。例如,选择模块116可以通过针对无限距离(即,无限距离、计算设备的传感器不再能够测量的或者直到对象阻止向量延伸为止的距离或位置)将(多个)凝视向量210在平行于中心凝视向量211的方向上延伸来延伸形状216。以这种方式,形状216可以被延伸以创建3D体积或者3D选择空间。
在一些示例中,场景200可以包括多个对象218,诸如对象218A和218B。对象218可以是现实的物理对象或由计算设备208投影到场景中的虚拟对象。落入或至少部分地落入(即,超过阈值量)3D选择空间内的(多个)对象218(诸如对象218A和218B)可以被选择,而落在或至少部分地落在(即,超过阈值量)3D选择空间外部的对象(诸如对象220)保持未被选择。在各种示例中,计算设备208可以投影一个或多个虚拟指示符222,诸如指示符222A和222B,以将对象218A和218B指示为被选择。尽管(多个)指示符222被表示为(多个)对象218周围的虚线,但是(多个)指示符222可以突出显示(多个)所选择的对象218、(多个)对象218中的颜色变化、被放置在(多个)所选择的对象218附近的图标(例如,箭头、数字等)或者将(多个)对象218示出为被选择的任何其他可见指示符。以这种方式,可以通告用户202场景中的哪些对象被选择或者以其他方式被包括在3D选择空间中。
图2D图示了用于创建有限3D选择空间224的技术。例如,选择模块116可以确定或计算在其处“剪切”3D选择空间的距用户202的最大和/或最小距离。例如,3D选择空间可以通过在距用户202的最大距离228(即,远边界)和/或最小距离226(即,近边界)处利用垂直于中心凝视向量211的平面剪切3D选择空间来界定,以创建有限3D选择空间224(例如,圆锥体、截头锥体、圆柱体等)。
在一些示例中,最大距离228和/或最小距离226可以是在其处剪切3D体积的预定距离。例如,最大距离228和最小距离226可以是远离用户的预定的且可重新配置的距离(例如,1英尺、2英尺、10英尺、15英尺等)。在其他实例中,最大距离228和最小距离226可以由用户202的动作确定或设置。例如,用户可以将输入对象206朝向或者远离用户的身体移动距离D1,或者将用户的身体或头相对于输入对象206移动距离D2,以在用户移动输入对象206以定义形状216之前、在用户202移动输入对象206以定义形状216时、或者在用户202移动输入对象206以定义形状216之后设置最大距离228。在各种示例中,用户202可以使用不移动输入对象206的手臂以通过将他们的手臂移动朝向他们的身体或者远离他们的身体来定义深度,或者用户可以将他们的身体向前或向后(如图2D所示)以定义距用户的最小和最大距离以创建有限3D体积。在一些示例中,输入对象206、相邻手臂和/或身体的移动的距离D1可以乘以缩放因子(例如,2倍、5倍等)以确定距离D3,通过其设置最大距离228。最小距离226可以是距离D1的移动开始或结束的位置。
在各种示例中,与图2C的无限3D选择空间相比较,有限3D选择空间224可以包括一些对象(诸如218A),而排除其他对象(诸如218B)。在这样的示例中,在有限3D选择空间224可以包括或至少部分地包括对象222A但是排除对象218B的情况下,仅对象222A可以具有指示符222A。因此,通过设置最大距离228和/或最小距离226,用户202可以包括或排除某些项通过控制有限3D选择空间224的深度而被选择。
在一些示例中,一旦有限3D选择空间224被创建(并且类似地针对无限3D选择空间),用户202就可以与被包括在选择空间中的(多个)对象218交互。例如,用户202可以在对象上执行各种动作(例如,移动、调整大小、着色等)和/或可以解除选择被包括在选择空间中的对象中的一个或多个对象。在各种示例中,3D选择空间(例如,有限或无限的)可以通过创建场景200中的3D选择空间的虚拟表示来对用户202可见。以这种方式,用户202可以将3D选择空间可视化为虚拟表示以确定3D选择空间的边界和大小。
图3A和图3B图示了用于使用针对输入对象的移动数据和凝视跟踪数据来选择场景300中的对象的示例过程。如上所述,场景300可以包括现实世界环境以及由显示器呈现的虚拟对象,或者场景可以完全是由显示器呈现的虚拟现实对象。如图3A所示,用户302可以使用输入对象306(例如,手、手指、六自由度控制等)在场景300中进行移动304(即,姿势)。尽管移动304被图示为基本上圆形形状(例如,套索工具形成),但是移动304可以是可用于选择场景300中的对象的任何类型的移动。
在一些示例中,用户302可以佩戴计算设备308(诸如计算设备102)或以其他方式与之相关联。尽管被图示为可穿戴计算设备,但是计算设备308可以包括可用于跟踪用户302的移动和凝视的任何类型的计算设备。计算设备308可以包括传感器(即,(多个)传感器112)以获得与输入对象306的移动304相对应的移动数据。附加地,计算设备308还可以包括传感器(即,(多个)传感器112)以获得与用户302的眼睛的位置相对应的凝视跟踪数据。
如图3A所示,多个凝视向量310可以被计算。例如,计算设备308可以包括被配置为计算源自原点312并且沿着由移动304定义的形状穿过多个点314(例如,314A、314B、314C等)的凝视向量310的一个或多个模块(例如,选择模块116)。在一些示例中,凝视向量310可以使用凝视跟踪数据和/或移动数据来计算或确定。例如,选择模块116可以分析凝视跟踪数据以标识场景300中的用户302的眼睛相对于空间中的点(诸如输入对象306的位置)的位置,并且分析移动数据以确定沿着当输入对象306的移动304被执行时用户正在面对或者观察的形状的点314。在各种示例中,点314的位置可以通过分析移动数据并计算空间中的点的3D位置(例如,x1、y1、z1)来确定。点314的3D位置可以相对于原点312来计算,该原点可以被定义为定义场景300的网格的原点(即,x0、y0、z0)。
图3B图示了用于投影由输入对象306在场景300中的移动304定义的形状。例如,选择模块116可以通过将凝视向量310在平行于针对无限距离(即,向外延伸到无限远,延伸到计算设备的传感器不再能够测量的距离或位置,或者延伸直到对象阻止向量延伸位置)从用户的眼睛附近或眼睛处的位置延伸到由形状定义的点(诸如中心点)的向量的方向上延伸来投影形状。以这种方式,形状可以基于向量310来投影以创建3D体积或者3D选择空间316。在各种示例中,3D选择空间316可以使用以上参考图2D所描述的技术被界定到有限体积。
如图3B所示,场景300可以包括:多个对象318(其被包括在或至少部分地包括在3D选择空间316中)以及对象320(其未被包括在或者少于阈值部分被包括在3D选择空间216中)。被包括在3D选择空间中的对象318可以与指示符322相关联以指示对象318被选择。尽管指示符322被表示为对象318周围的虚线,但是指示符322可以突出显示所选择的对象318、对象318中的颜色变化、被放置在所选择的对象318附近的图标(例如,箭头、数字等)或者将对象318示出为被选择的任何其他可见指示符。以这种方式,可以通告用户302场景中的哪些对象被选择或者以其他方式被包括在3D选择空间中。
在一些示例中,一旦3D选择空间316被创建(并且类似地针对无限3D选择空间),用户302就可以与被包括在选择空间中的对象318交互。例如,用户302可以对对象执行各种动作(例如,移动、调整大小、着色等),和/或可以解除选择被包括在选择空间中的对象中的一个或多个对象。在各种示例中,3D选择空间(例如,有限或无限的)可以通过创建场景300中的3D选择空间的虚拟表示来对用户302可见。以这种方式,用户302可以将3D选择空间可视化为虚拟表示以确定3D选择空间的边界和大小。
在各种示例中,可以直接与对象交互(例如,移动、着色/绘图等)而无需首先选择。例如,响应于输入对象306的移动的结束,或者响应于检测到结束动作,被包括在3D选择空间中的形状可以自动地具有在它们上执行的动作而无需首先选择。在一些示例中,用户可能已经在先前进入一种模式,诸如绘图模式,其中动作是预定的并且被采取在被包括在或至少部分地被包括在3D选择空间中的对象上。在其他示例中,在对象上所采取的动作的类型可以基于开始动作或者由对象306的移动定义的形状的类型来定义。例如,特别的开始动作可以与要被采取于对象上的特定动作相关联,或者输入对象306的特别的移动可以与特定动作相关联。例如,输入对象306的左顶部到右底部的移动可以导致被包括在3D体积或选择空间中的对象被绘图上特定颜色。
示例计算设备
图4图示了可以被用于实现本文所描述的选择技术的示例计算设备400的细节。计算设备400可以表示图1中的计算设备102中的任何计算设备。计算设备400在该示例中包括(多个)处理器402、计算机可读介质404、(多个)传感器406、(多个)输入接口408和(多个)输出接口410。在图4中,设备400被图示为头戴式设备。然而,设备400可以是被配置为能够检测用户的凝视跟踪的任何类型的设备。该示例被提供用于说明性目的并且不应被解释为限制性的。下面参考图9至图11描述附加细节和示例计算环境和计算设备。
(多个)处理器402可以表示例如CPU类型处理单元、GPU类型处理单元、现场可编程门阵列(FPGA)、另一类别的数字信号处理器(DSP)或者可以在一些实例中由CPU驱动的其他硬件逻辑部件。例如但非限制性的,可以被使用的说明性类型的硬件逻辑部件包括专用集成电路(ASIC)、专用标准产品(ASSP)、片上系统(SOC)、复杂可编程逻辑器件(CPLD)等。在各种示例中,(多个)处理器402可以执行一个或多个指令、模块和/或过程以使设备402执行各种功能,诸如被描述为如由本文中的计算设备所执行的那些功能。附加地,(多个)处理器402中的每个可以处理它自己的本地存储器,其还可以存储程序模块、程序数据和/或一个或多个操作系统。下面参考图9和图11描述可以被用作(多个)处理器402的示例处理器的附加细节。
在至少一个配置中,设备400的计算机可读介质404可以存储促进用户与计算设备400之间的交互的部件。例如,计算机可读介质404可以包括操作系统412、(多个)传感器数据收集模块414、选择模块416、反馈模块418以及一个或多个应用420。操作系统412可以被配置为管理设备400内且被耦合到该设备的硬件和服务以用于其他部件和/或模块。(多个)传感器数据收集模块414收集、存储和/或处理从计算设备的(多个)传感器406收集的传感器数据。选择模块416包括程序指令以计算供用户选择虚拟或混合现实场景中的对象的选择空间。具体地,选择模块416可以被配置为基于凝视跟踪数据、移动数据和用户的其他输入来建立创建3D选择空间并且选择定位于3D选择空间中的一个或多个对象。反馈模块418可以被配置为生成并且引起经由计算设备400的显示器、扬声器、触觉设备或其他输出将反馈输出给用户。通过示例而非限制,当用户已经成功地选择了场景中的一个或多个对象时,反馈模块418可以生成并且输出通知用户的反馈。(多个)应用420可以对应于整体地或部分地被存储在计算设备400上的任何其他应用。通过示例而非限制,应用420可以包括游戏应用、文件共享应用、浏览器应用、搜索应用、生产率应用(例如,文字处理应用、演示文稿应用、计算机辅助设计应用等)、通信应用(例如,电子邮件、即时通讯、音频和/或视频会议、社交网络应用等)。(多个)应用420可以被存储在计算机可读介质404中或者以其他方式对设备400可访问(例如,经由网络,诸如网络104)。下面参考图9至图11描述可以表示(多个)应用420的示例应用的附加细节。
尽管图4将选择模块416和反馈模块418图示为与操作系统412和(多个)应用420分离,但是在备选示例中,选择模块416和/或反馈模块418可以被包括在操作系统412和/或应用420中的一个或多个应用中或者与之集成。在这样的示例中,具有集成的选择功能的操作系统412和/或(多个)应用420可以执行如针对选择模块416和/或反馈模块418所描述的相同或相似的功能。
这些模块可以表示在计算设备(例如,计算设备102)上执行的代码片段。在一些示例中,个体模块可以包括接口,诸如应用程序接口(API),以执行其功能(例如,操作)中的一些或全部。在附加的和/或备选的示例中,部件可以被实现为计算机可读指令、数据结构等,其可由至少一个处理单元(例如,(多个)处理器402)执行以将设备400配置为执行包括本文所描述的选择技术的操作。执行这些操作的功能可以由单个设备实现或者跨多个设备分布。参考图10描述示例分布式计算情景的附加细节。下面参考图9至图11提供可以被用于计算机可读介质106和404的示例类型的计算机可读介质的附加细节。
在至少一个示例中,(多个)传感器406可以是被配置为感测用户的状况或者用户的周围环境的任何设备或设备的组合。(多个)传感器406包括一个或多个面向用户的相机406A或用于跟踪用户的眼睛在环境中的位置、眼睛移动或凝视、面部表情、瞳孔扩张和/或收缩、姿势和/或用户的其他特性的其他传感器。在一些示例中,(多个)传感器406还包括用于捕获现实世界对象和用户的周围环境的图像的一个或多个面向外部的或环境相机406B。(多个)传感器406可以附加地或备选地包括一个或多个生物识别传感器(例如,用于测量皮肤电反应的皮肤电反应传感器、心率监测器、用于测量皮肤的表面上的温度的皮肤温度传感器、用于测量大脑的电活动的脑电图(EEG)设备、用于测量心脏的电活动的心电图(ECG或EKG))、一个或多个其他相机(例如,网络相机、红外相机、深度相机等)、用于测量语音的音量、语音的速率等的麦克风或其他声音传感器、光传感器、光学扫描仪等。(多个)个体传感器406可以将传感器数据输出到(多个)对应的传感器数据收集模块414以进行合适的处理。例如,面向用户的相机406A可以捕获凝视跟踪数据,并且环境相机406B可以捕获移动数据,其可以由对应的传感器数据收集模块414处理以确定用户的一个或多个凝视向量和/或凝视路径或形状。在另一示例中,面向用户的相机406A和/或其他传感器(例如,加速度计、接近度传感器、磁场传感器等)可以标识用户的眼睛相对于环境中的另一位置的位置。传感器数据收集模块414可以然后将凝视向量和/或凝视路径输出到选择模块416以用于在建立针对用户的3D选择空间中使用。
在附加的和/或备选的示例中,(多个)传感器406可以是被配置为检测设备102和其他对象的位置或移动的任何设备或设备的组合。例如,(多个)传感器406可以附加地和/或备选地包括深度图传感器、光场传感器、陀螺仪、声纳传感器、红外传感器、指南针、加速度计、全球定位系统(GPS)传感器和/或用于检测设备400和/或其他对象的位置或移动的任何其他设备或部件。(多个)传感器406还可以实现对表征与设备400的交互(诸如用户姿势)的数据的生成。出于说明性目的,(多个)传感器406和/或输入接口408可以实现对定义位置和移动的方面的数据的生成,例如一个或多个对象的速度、方向、加速度,其可以包括设备400、设备400附近的物理项、和/或用户。
图4示出了(多个)传感器406中的至少一些是设备400的部分或被构建到该设备中的示例。更具体地,图4示出了设备400包括面向用户的相机传感器406A和设置在头戴式显示器400的鼻梁部件中或者与之集成的环境相机406B的非限制性示例。如上所述,每个设备400可以包括可以为设备400的部分或者被构建到该设备中的一个或多个传感器406的任何配置。然而,在一些示例中,一个或多个传感器406可以被可移除地耦合到设备400,或者与设备400分离并且通信地耦合到该设备。在后一情况下,传感器数据可以从一个或多个传感器被传送到设备400,例如经由有线和/或无线网络。
如上所述,设备400可以包括(多个)输入接口408和(多个)输出接口410。通过示例而非限制,(多个)输入接口408可以包括键盘、小键盘、鼠标、麦克风、触摸传感器、触摸屏、操纵杆、控制按钮、滚动按钮、相机、神经接口、或者适合于生成定义与设备400的用户交互的信号和/或数据的任何其他设备。通过示例而非限制,(多个)输出接口410可以包括显示器(例如,全息显示器、平视显示器、保护器、触摸屏、液晶显示器(LCD)等)、扬声器、触觉接口等。在一些示例中,显示器可以呈现场景中的虚拟对象,诸如场景200和场景300。显示器可以呈现场景中的虚拟对象,其中场景包括物理的现实世界环境,该物理的现实世界环境包括在观察显示器或通过显示器查看时的虚拟对象。
在至少一个示例中,输出接口410可以是硬件显示表面422,其可以被配置为允许通过硬件显示表面422针对对象的现实世界视图,同时还提供计算机生成的内容或场景的渲染的显示。硬件显示表面422可以包括用于产生对象和/或数据的显示的一个或多个部件,诸如投影仪、屏幕或其他合适的部件。在一些配置中,硬件显示表面422可以被配置为覆盖用户的至少一只眼睛。在一个说明性示例中,硬件显示表面422可以包括被配置覆盖用户的两只眼睛的屏幕。硬件显示表面422可以渲染或者引起对一个或多个图像的显示以用于生成一个或多个计算机生成的虚拟对象的视图或立体图像。出于说明性目的,对象可以是项、数据、设备、个人、地点、或者任何类型的实体。在至少一个示例中,对象可以与和应用相关联的功能或特征相关联。如下面将更详细地描述的,一些配置使得设备400能够将全息用户界面和其他图形元件与通过硬件显示表面422看到的对象或者被显示在硬件显示表面422上的渲染的对象图形地相关联。
硬件显示表面422可以被配置为允许用户从不同环境观察对象。在一些配置中,硬件显示表面422可以显示计算机生成的虚拟对象的渲染。另外,硬件显示表面422的一些配置可以允许用户透视硬件显示表面422的具有可控制的透明度水平的可选择的区段,从而使得用户能够在他的或她的周围环境中观察对象。出于说明性目的,用户通过硬件显示表面422对对象的查看的视角在本文中被称为对象的“现实世界视图”或者“物理对象的现实世界视图”。如下面将更详细地描述的,对对象和/或数据的计算机生成的渲染可以被显示在硬件显示表面422的所选择的部分中、周围或附近,从而使得用户能够查看计算机生成的渲染以及通过硬件显示表面422的所选择的部分观察到的对象的现实世界视图。
本文所描述的一些配置提供“透视显示”和“增强现实显示”两者。出于说明性目的,“透视显示”可以包括可以具有显示在其上的内容的透明透镜。“增强现实显示”可以包括被配置为在对图像的渲染上显示内容的不透明显示,该内容可以来自任何源,诸如来自被用于捕获环境的图像的相机的视频馈送。出于说明性目的,本文所描述的一些示例描述了在图像的显示上对渲染的内容的显示。另外,本文所描述的一些示例描述通过“透视显示”显示渲染的内容使得用户能够看到具有内容的对象的现实世界视图的技术。可以理解,本文所描述的技术的示例可以应用于“透视显示”、“增强现实显示”或其变型或组合。出于说明性目的,被配置为实现“透视显示”、“增强现实显示”或其组合的设备在本文中被称为能够提供“混合环境”或“混合现实场景”的设备。
下面参考图5A-5C、图6A-6F、图7A-7F描述与硬件显示表面422相关联的附加细节。下面参考图9和图11描述与(多个)输入接口408和/或(多个)输出接口410相关联的附加细节。
示例凝视跟踪
现在参考图5A-5C、图6A-6F、图7A-7F和图8,以下段描述了用于标识凝视目标的技术,诸如在前面的示例(例如,点314A、314B、314C等)中所描述的。在具有面向用户的凝视跟踪相机的头戴式计算设备的上下文中描述这些技术。然而,在该段中描述的技术也可以被应用于具有用于凝视跟踪的面向用户的相机的其他类型的计算设备(例如,具有网络相机102B的计算机、具有面向用户的相机102C的平板电脑或智能电话、具有面向用户的相机102D的游戏控制台等)。如上所述,本文所描述的技术可以包括分析凝视跟踪数据以计算或确定源自用户的眼睛处或附近并且穿过由对象的移动定义的形状上的点的向量。这些技术可以独立于用户的实际凝视而被执行,并且凝视跟踪数据可以标识用户的眼睛相对于输入对象的位置而不管用户的凝视如何。然而,在一些示例中,凝视跟踪数据可以标识用户的凝视并且基于用户正在注视之处来计算向量。下面至少参考图5A-5C、图6A-6F、图7A-7F和图8描述这些和其他技术。
图5A是具有硬件显示表面502(例如,硬件显示表面422)和一个或多个传感器504和504’(诸如分别为计算设备400的相机406B和406A)的设备500(例如,设备102、设备400等)的后视图。为了促进本文所描述的功能,在至少一个示例中,(多个)传感器504’是面向用户的(诸如面向用户的相机406A)并且可以被配置为跟踪用户的至少一只眼睛的位置。另外,至少一个其他传感器504是面向环境的(诸如,环境相机406B)并且可以被指向用于生成现实世界对象的图像数据的现实世界对象。如下面将更详细地描述的,示例可以处理眼睛位置数据、图像数据和其他数据以标识凝视目标,凝视目标是被显示在硬件显示表面502上的渲染的对象或者通过硬件显示表面502的透明区段观察到的现实世界对象。如下面还将描述的,本文所描述的示例还可以确定用户是否正在看硬件显示表面502的特定区段、现实世界对象的特定部分、或者渲染的对象的特定部分。这样的信息可以有用于根据凝视跟踪数据来确定凝视目标(例如,点314A、314B和314C)以建立形状304。
在图5A中,设备500包括用于生成指示用户的至少一只眼睛的位置或移动的数据或信号的面向用户的传感器504’中的两个面向用户的传感器。传感器504’可以采用用于跟踪用户的至少一只眼睛的位置或移动的相机或另一合适的设备的形式。设备500还包括用于允许用户观察一个或多个对象的至少一个硬件显示表面502(例如,诸如计算设备400的硬件显示器422、或者与计算设备108B、108C或108D之一相关联的显示屏)。如上所述,硬件显示表面502可以提供通过硬件显示表面502对现实世界对象的视图以及可以被显示在硬件显示表面502上的渲染的对象的图像。
图5B是图5A中所示出的设备500的侧面剖视图506。图5B包括用户通过硬件显示表面502查看的眼睛508。硬件显示表面502被配置为创建使得用户能够通过硬件显示表面502观察对象的透明区段。图5B示出了示例布置,其中现实世界对象510与硬件显示表面502的透明区段对齐,允许用户通过硬件显示表面502观察现实世界对象510。硬件显示表面502可以显示一个或多个渲染的对象。设备500还包括指向用户的至少一只眼睛508的至少一个传感器504’。
图5C图示了可以由用户经由硬件显示表面502观察到的示例场景或视图512。粗双线514图示了硬件显示表面502的边界。在该说明性示例中,场景或视图512包括被显示在硬件显示表面502上的第一渲染的对象516、第二渲染的对象518和第三渲染的对象520。现实世界对象510通过硬件显示表面502被观察到。
在上述非限制性示例中,用户可以尝试创建形状(例如,形状304)。例如,为了选择场景512中的对象,用户可以定义形状。在该示例中,形状包括与第一渲染的对象516、第二渲染的对象518和现实世界对象510相对应的点314A、314B和314C。在实践中,其他填充对象(即,不与沿着形状304的点314相对应的渲染的对象和/或现实世界对象)也可以被被包括在场景或视图512中。选择模块(例如,116或416)可以在用户移动环境中的对象以定义形状304时从计算设备的一个或多个传感器(例如,(多个)传感器112、406、或504)接收传感器数据。选择模块和/或反馈模块(例如,418)可以使将被呈现的反馈(例如,音频、视觉、触觉等)通知用户形状304已经被定义。
为了促进这样的示例的方面,设备500可以利用用于校准设备500的一个或多个技术。结合图6A-6F的以下段描述了用于获得校准数据的技术的方面。结合图7A-图7F的随后段描述示例情景的方面,其中设备500处理校准数据和其他数据以标识凝视目标。
设备500可以以许多方式来校准。在一个示例中,设备500可以利用在预定位置处许多图形元素的显示。当图形元素被显示时,设备500可以提示用户查看特定图形元素并且提供输入以核实用户正在查看特定图形元素。当用户核实他或她正在查看特定图形元素时,(多个)传感器504’可以生成定义至少一只眼睛的位置的眼睛位置数据。响应于从用户接收核实,眼睛位置数据可以以数据结构被存储在存储器中。
图6A图示了可以由设备500的传感器504’捕获的示例视图600。从这种视角,设备500可以确定定义用户的至少一只眼睛508的位置的一个或多个值。在一个说明性示例中,值可以包括指示用户的眼睛之间的距离的第二值(D2)、以及第三值(D3)、第四值(D4)、以及指示用户的至少一只眼睛与参考点602之间的距离的第五值(D5)。可以理解,通过使用一个或多个图形处理技术,眼睛的一个或多个方面(诸如瞳孔)可以被标识和利用以确定眼睛位置。
另外,通过使用一个或多个合适的技术,参考点602可以被选择。参考点602可以基于用户的特征,例如鼻尖、眉毛、雀斑,或者参考点602可以处于任意位置中。在图6A的示例中,用户的眼睛之间的点被用作参考点602。该示例参考点602被提供用于说明性目的并且不应被解释为限制性的。可以理解,参考点602可以处于任何合适的位置中,其可以基于用户或任何对象的可标识的特征或特性。
如上所述,设备500可以生成在硬件显示表面502的预定位置处的许多图形元素。当图形元素被显示在硬件显示表面502时,设备500可以提示用户查看图形元素并且提供输入以核实用户正在查看图形元素。图6B图示了可以由设备500生成以促进校准过程的图形元素606的示例视图604。在该示例中,设备500生成在观察区域的中心中对图形元素606的渲染。在图形元素606被显示时,设备500可以生成用于使用户核实他或她正在查看图形元素606的提示。提示以及对提示的用户响应可以包括姿势、语音命令、或者其他合适类型的输入。
当设备500核实用户正在查看图形元素606时,设备500可以记录指示用户的至少一只眼睛508的位置和/或移动的一个或多个值。例如,以上所描述的并且在图5B和图6A中被示出的一个或多个值可以以数据结构被存储在存储器中。可以理解,任何合适的值或值的组合可以被存储并利用,包括但不限于:指示传感器504’与用户的至少一只眼睛508之间的距离的第一值(D1),指示用户的眼睛之间的距离的第二值(D2),以及指示至少一只眼睛508与参考点602之间的距离的其他值(D3、D4和D5)。这些值被提供用于说明性目的并且不应被解释为限制性的。可以理解,这样的值、这样的值的子集、以及其他测量的其他值可以被用在确定用户的一只或多只眼睛的移动和/或位置中。
在各种位置中显示的其他图形元素的显示期间可以测量值的其他集合。例如,如图6C所示,值的第二集合(D2’,D3’,D4’,和D5’)可以在第二图形元素1408被显示时被测量,如图6D所示。如图6E所示,值的第三集合(D2”,D3”,D4”,和D5”)可以在第三图形元素610被显示时被测量,如图6F所示。
这些示例测量和图形元素的位置被提供用于说明性目的。可以理解,任何数量的图形元素可以被放置在不同位置处以获得可以被用来校准设备500的测量。例如,设备500可以顺序地显示在视图604的预定位置处的图形元素,诸如视图604的每个角落。如可以理解的,更多的或更少的图形元素可以被使用在校准过程中。
指示在每个预定位置处的至少一只眼睛508的位置的值可以被用来生成校准数据。校准数据可以被配置为将眼睛位置数据的集合与标识图形元素的位置的数据相关。
适合于生成校准数据的任何已知的技术可以被使用。可以理解,校准数据的生成可以包括可以投影眼睛位置数据的集合与硬件显示表面502的各种区段和/或硬件显示表面502的像素之间的相关性的外插、投影和/或估计技术。这些示例被提供用于说明性目的并且不应被解释为限制性的,但是值和/或校准数据可以以其他方式来获得,包括从一个或多个远程资源接收这样的校准数据。
一旦校准数据被生成或获得,这样的数据和其他数据就可以由设备500用来确定用户是否正在查看特定凝视目标,其可以包括硬件显示表面502的一部分、渲染的对象、渲染的对象的部分、现实世界对象、或者现实世界对象的部分。图7A-7F描述了示例情景的方面,其中具有至少一个传感器504’的设备500被用来跟踪用户的至少一只眼睛508的移动以标识凝视目标。
现在参考图7A和图7B,示出并描述了示出凝视目标的标识的示例情景。在该示例中,用户正在查看示例视图512。如以上参考图5C所概述的,示例视图512包括硬件显示表面502上的两个渲染的对象(例如,第一渲染的对象516、第二渲染的对象518、以及第三渲染的对象510)的视图。在用户查看视图512时,(多个)传感器504’可以引起对一个或多个测量到的值(诸如图7A中所示出的值)的生成。在一些示例中,使用合适的技术的任何组合,这样的值可以针对校准数据和/或其他数据进行比较以标识凝视目标。在该示例中,在图7A中所描绘的情景中测量到的一个或多个值可以与校准数据一起被处理以确定用户正在查看第一渲染的对象516。在这样的示例中,图7A中所示出的一个或多个测量到的值也可以被用来确定用户正在查看接口的预定区段,诸如图7B中的硬件显示表面502的第一区段700。
继续当前示例,在图7C中所描绘的情景中测量到的一个或多个值可以与校准数据一起被处理以确定用户正在查看第二渲染的对象518。在这样的示例中,图7C中所示出的一个或多个测量到的值也可以被用来确定用户正在查看图7D中的硬件显示表面502的第二区段702。
继续当前示例,在图7E中所描绘的情景中测量到的一个或多个值可以与校准数据一起被处理以确定用户正在查看现实世界对象510。在这样的示例中,图7E中示出的一个或多个测量到的值也可以与校准数据一起被处理以确定用户正在查看图7F中的硬件显示表面502的第三区段704。
在一些示例中,设备500可以利用来自资源的组合的数据来确定用户是否正在通过硬件显示表面502查看现实世界对象510。如以上所概述的,被安装到设备500的相机或其他类型的传感器504(图5A)可以指向用户的视场。从相机生成的图像数据可以被分析以确定视场中的对象处于图像数据的图像的预定位置中。如果对象被定位在图像的预定区域(诸如图像的中心)内,则设备可以确定凝视目标,处理这样的数据与眼睛位置数据。这样的数据可以被用来补充其他类型的数据,诸如来自GPS的位置数据和/或从指南针或加速度计生成的数据,以帮助设备500确定凝视方向,例如,左、右、上或下,和/或凝视目标。
图8是图示用于确定凝视目标的示例过程800的方面的流程图。在图8中,为方便起见,在设备400的上下文中描述操作。然而,操作也可应用于其他设备,包括但不限于计算设备102和500。
框802图示了获得校准数据。在至少一个示例中,操作系统412、应用420、或与计算机可读介质404相关联的另一模块可以获得校准数据。校准数据可以以数据结构被存储在计算机可读介质404或任何计算机可读存储介质中以供稍后访问。校准数据可以由设备400生成或者校准数据可以从远程资源被接收。在一些示例中,计算设备400的传感器406A可以被定位以跟踪用户的至少一只眼睛的位置。传感器406A可以引起对将用户的至少一只眼睛的位置与硬件显示表面422的具体区段或位置相关的一个或多个值的生成。这样的示例可以利用初始化过程,其中设备400显示在预定位置处的一个或多个图形元素。在一个或多个图形元素的显示期间,来自用户的一个或多个输入可以指示他们正在查看一个或多个图形元素。响应于输入,设备可以生成包括将用户的至少一只眼睛的位置与标识硬件显示表面422的具体位置或区段的数据相关的值的校准数据。
框804图示了获得指示用户的至少一只眼睛的位置的传感器数据。在至少一个示例中,操作系统412、应用420、或与计算机可读介质404相关联的另一模块可以从(多个)传感器406A获得校准数据。传感器数据可以以数据结构被存储在计算机可读介质404的(多个)传感器数据收集模块414或其他地方或任何计算机可读存储介质中以供稍后访问。如以上所概述的,被指向用户的至少一只眼睛的(多个)传感器406A可以引起指示用户的至少一只眼睛的位置的传感器数据(例如,凝视跟踪数据)的生成。传感器数据可以被处理以生成指示用户的凝视方向的数据。如下面将描述的,指示用户的凝视方向的数据可以与校准数据一起被处理以确定用户是否正在查看凝视目标,其可以包括在硬件显示表面422上显示的渲染的对象。
框806图示了获得对象的图像数据。在至少一个示例中,操作系统412、应用420、或与计算机可读介质404相关联的另一模块可以获得传感器数据。图像数据或关于对象的其他信息可以以数据结构被存储在(多个)传感器数据收集模块414、基于凝视的密码模块416、或计算机可读介质404的其他地方或任何计算机可读存储介质中以供稍后访问。在一些示例中,被安装到计算设备400或以其它方式与之通信的相机或其他类型的传感器406B可以被指向用户的视场。相机或其他类型的传感器406B可以引起图像数据的生成,图像数据可以包括在用户的视场内的对象的一个或多个图像。图像数据可以采用任何合适的格式并且由任何合适的传感器406B生成,其可以包括使用深度图传感器、相机等。
框808图示了利用图像数据或传感器数据来确定凝视目标。在至少一个示例中,操作系统412、应用420、基于凝视的密码模块416、或与计算机可读介质404相关联的另一模块可以确定凝视目标。例如,如果用户正通过硬件显示表面422查看对象的现实世界视图,并且指向用户的视场的传感器406B生成对象的图像数据,则图像数据可以被分析以确定视场中的对象是否处于图像数据的图像的预定位置中。例如,如果对象被定位在图像的预定区域(诸如图像的中心)内,则计算设备400可以确定对象是凝视目标。在另一示例中,指示用户的至少一只眼睛的位置的传感器数据(即,凝视跟踪数据)可以与校准数据和/或图像数据一起被处理,以确定用户是否正在查看被显示在硬件显示表面422上的渲染的对象。这样的示例可以被用来确定被显示在硬件显示表面422上的渲染的对象是凝视目标。
附加的示例计算架构
图9示出了针对能够执行上述用于选择场景中的对象的程序部件的计算机的示例计算机架构900的附加细节,计算机诸如计算设备108、计算设备400、设备500和/或(多个)服务器110。因此,图9中所图示的计算机架构900图示了针对服务器计算机、移动电话、PDA、智能电话、台式计算机、笔记本计算机、平板计算机、膝上型计算机和/或可穿戴计算机的架构。计算机架构900是可以被用来整体地或部分地执行本文所呈现的软件部件的方面的示例架构。
图9中所图示的计算机架构900包括中央处理单元902(“CPU”)、包括随机存取存储器906(“RAM”)的只读存储器(“ROM”)908的系统存储器904、以及将存储器1704耦合到CPU1702的系统总线910。包含有助于诸如在启动期间在计算机架构900内的各元件之间传递信息的基本例程的基本输入/输出系统(“BIOS”)被存储在ROM 908中。计算机架构900还包括用于存储如以上参考图1和图4所描述的操作系统914(例如,操作系统412)、(多个)应用916(例如,(多个)应用114、(多个)应用420等)程序、(多个)模块918(例如,选择模块116和416、(多个)传感器数据收集模块414、(多个)反馈模块418等)等的大容量存储设备912。附加地或备选地,大容量存储设备912可以存储入本文所描述的(例如,来自传感器112、406、504等的)传感器数据920、图像数据922(例如,照片、计算机生成的图像、关于场景中的真实对象和/或虚拟对象的对象信息、关于前述中的任何的元数据等)、校准数据924、选择数据926(例如,凝视目标、凝视路径、凝视向量、坐标或定义选择形状或空间的其他信息)、内容数据928(例如,计算机生成的图像、视频、场景等)、呈现数据930(例如,指令、提示等)等。
大容量存储设备912通过被连接到总线910的大容量存储控制器(未被示出)连接到CPU 902。大容量存储设备912及其相关联的计算机可读介质提供针对计算机架构900的非易失性存储装置。根据本公开,大容量存储设备912、计算机可读介质110和计算机可读介质404是计算机可读介质的示例。尽管本文中所包含的计算机可读介质的描述指代大容量存储设备,诸如固态驱动器、硬盘驱动器或CD-ROM驱动器,但是本领域技术人员应当理解,计算机可读介质可以是可以由计算机架构900访问的任何可用的计算机存储介质或通信介质。
通信介质包括计算机可读指令、数据结构、程序模块、或经调制的数据信号(诸如载波或其他传输机制)中的其他数据,并且包括任何递送介质。术语“经调制的数据信号”意指使其特性中的一个或多个以在信号中编码信息的方式改变或设置的信号。通过示例而非限制,通信介质包括诸如有线网络或直接有线连接的有线介质和诸如声学、RF、红外和其他无线介质的无线介质。以上中的任何的组合还应当被包括在通信介质的范围内。
通过示例而非限制,计算机存储介质可以包括以任何方法或技术实现的用于存储诸如计算机可读指令、数据结构、程序模块或其他数据的信息的易失性介质和非易失性介质、可移除介质和不可移除介质。例如,计算机存储介质包括但不限于:RAM、ROM、可擦除可编程只读存储器(“EPROM”)、电可擦除可编程只读存储器(“EEPROM”)、闪存或其他固态存储器技术、光盘只读存储器(“CD-ROM”)、数字多用盘(DVD)、高清/密度数字多用/视频盘(“HD-DVD”)、蓝光(BLU-RAY)盘、或其他光学存储装置、磁带盒、磁带、磁盘存储装置或其他磁性存储设备、或者能够被用来存储期望信息并且能够由计算机架构900访问的任何其他介质。为了权利要求的目的,词语“计算机存储介质”、“计算机可读存储介质”以及其变型不包括通信介质。
根据各种配置,计算机架构900可以在使用通过网络932和/或另一网络(未被示出)到远程计算机的逻辑连接的网络化环境中进行操作。计算机架构900可以通过被连接到总线910的网络接口单元934连接到网络932。应当理解,网络接口单元934还可以被用来连接到其他类型的网络和远程计算机系统。计算机架构900还可以包括用于接收并处理来自(多个)输入设备或(多个)输入接口的输入并将输出提供到输出设备或输出接口的输入/输出控制器936。贯穿本申请,提供了输入和输出设备和接口的许多示例。例如,输入/输出控制器936可以从以上参考图4所描述的(多个)输入接口408接收数据并对该数据进行处理和/或将输出提供到(多个)输出接口410。
应当理解,本文中所描述的软件部件可以在被加载到CPU 902中并且被执行时将CPU 902和总体计算机架构900从通用计算系统变换成被定制为促进本文中所呈现的功能的专用计算系统。CPU 902可以由任何数目的晶体管或其他分立电路元件(其可以单独地或集体地呈现任何数目的状态)构造。更具体地,CPU 902可以响应于被包含在本文所描述的软件模块内的可执行指令而用作有限状态机。这些计算机可执行指令可以通过规定CPU902如何在各状态之间转变由此变换构成CPU 902的晶体管或其他分立硬件元件来变换CPU902。在一些示例中,(多个)处理器108和/或(多个)处理器402可以对应于CPU 902。
对本文中所呈现的软件模块进行编码还可以变换本文中所呈现的计算机可读介质的物理结构。在本说明书的不同实现方式中,物理结构的特定变换可以取决于各种因素。这种因素的示例可以包括但不限于被用来实现计算机可读介质的技术,无论计算机可读介质被表征为主存储装置还是次存储装置等。例如,如果计算机可读介质被实现为基于半导体的存储器,则本文所描述的软件可以通过变换半导体存储器的物理状态而被编码在计算机可读介质上。例如,软件可以变换构成半导体存储器的晶体管、电容器、或其他分立电路元件的状态。软件还可以变换这样的部件的物理状态以便将数据存储在其上。
作为另一示例,本文所描述的计算机可读介质可以使用磁性技术或光学技术来实现。在这样的实现方式中,本文中所呈现的软件可以当软件被编码在其中时变换磁性介质或光学介质的物理状态。这些变换可以包括改变给定磁性介质内的特定位置的磁性特性。这些变换还可以包括改变给定光学介质内的特定位置的物理特征或特性,以改变那些位置的光学特性。在不脱离本说明书的范围和精神的情况下,物理介质的其他变换是可能的,其中前述示例仅被提供以促进本讨论。
鉴于以上内容,应当理解,许多类型的物理变换在计算机架构900中进行以便存储和执行本文中所呈现的软件部件。还应当理解,计算机架构900可以包括其他类型的计算实体,包括手持式计算机、嵌入式计算机系统、个人数字助理、以及对本领域技术人员已知的其他类型的计算实体。还预见到,计算机架构900可以不包括图9中所示出的部件中的全部、可以包括未在图9中被明确示出的其他部件、或者可以利用与图9中所示出的架构完全不同的架构。
图10描绘了能够执行本文所描述的用于实现选择技术的软件部件的示例分布式计算环境1000。因此,图10中所图示的分布式计算环境1000可以被用来执行本文中所呈现的软件部件的任何方面,以实现本文所描述的技术的方面。
根据各种实现方式,分布式计算环境1000包括在网络1004上操作、与网络1004通信、或作为网络1004的部分的计算环境1002。在至少一个示例中,计算环境1002中的至少一些可以对应于计算设备102、计算设备400、和/或计算设备500中的一个或多个。网络1004可以是或者可以包括以上参考图9所描述的网络932。网络1004还可以包括各种访问网络。一个或多个客户端设备1006A-1006N(下文中共同地和/或一般地被称为“客户端1006”)可以经由网络1004和/或其他连接(未被图示在图10中)与计算环境1002通信。通过示例,图1中的计算设备102、图4中的计算设备400、以及图5A中的设备500可以对应于客户端设备1006A-1006Q(被统称为“客户端1006”)中的一个或多个,其中取决于期望的架构,Q可以是大于或等于1的任何整数。在一个经图示的配置中,客户端1006包括:计算设备1006A,诸如膝上型计算机、台式计算机、或其他计算设备;板式或平板计算设备(“平板计算设备”)1006B;移动计算设备1006C,诸如移动电话、智能电话、或其他移动计算设备;服务器计算机1006D、可穿戴计算机1006E;和/或其他设备1006N。应当理解,任何数目的客户端1006可以与计算环境1002进行通信。本文中参考图9和图11图示和描述了针对客户端1006的两个示例计算架构。应当理解,所图示的客户端1006以及本文中所图示的和描述的计算架构是说明性的,并且不应当以任何方式被解释为受限制。
在所图示的配置中,计算环境1002包括应用服务器1008、数据存储装置1010、以及一个或多个网络接口1012。根据各种实现方式,应用服务器1008的功能可以由用作网络1004的部分执行或与网络1004进行通信的一个或多个服务器计算机提供。在一些示例中,计算环境1002可以对应于或者表示一个或多个服务器(即,分布式计算环境102P),其与客户端1006通信并且可由客户端1006访问。在这种情况下,应用服务器1008是被包括在分布式计算环境102P中的服务器的示例。例如,计算环境1002可以对应于分布式计算环境102P中的设备,其提供针对设备102的附加服务和/或功能。应当理解,该示例是说明性的,并且不应当以任何方式被解释为限制性的。
在至少一个示例中,应用服务器1008能够托管各种服务、虚拟机、端口和/或其他资源。在所图示的配置中,应用服务器1008可以托管用于执行应用或其他功能的一个或多个虚拟机1014。根据各种实现方式,虚拟机1014可以执行用于实现选择技术的一个或多个应用和/或软件模块。应用服务器1008还托管或提供对一个或多个端口、链接页面、网站和/或其他信息(“网络端口”)1016的访问。网络端口1016可以被用来与一个或多个客户端计算机进行通信。应用服务器1008可以包括一个或多个娱乐服务1018。娱乐服务1018可以包括针对一个或多个用户104的各种游戏体验。
根据各种实现方式,应用服务器1008还包括一个或多个邮箱和/或消息传送服务1020。邮箱和/或消息传送服务1020可以包括电子邮件(“email”)服务、各种个人信息管理(“PIM”)服务(例如,日历服务、联系人管理服务、协作服务等)、即时通讯服务、聊天服务、论坛服务、和/或其他通信服务。
应用服务器1008还可以包括一个或多个社交网络服务1022。社交网络服务1022可以包括各种社交网络服务,其包括但不限于:用于共享或发布状态更新、即时消息、链接、照片、视频、和/或其他信息的服务;用于评论或显示对文章、产品、博客、或其他资源的兴趣的服务;和/或其他服务。在一些配置中,社交网络服务1022由
Figure GDA0003405037580000331
社交网络服务、
Figure GDA0003405037580000341
专业网络服务、
Figure GDA0003405037580000342
社交网络服务、
Figure GDA0003405037580000343
地理网络服务、
Figure GDA0003405037580000344
办公室同事网络服务等提供或包括
Figure GDA0003405037580000345
社交网络服务、
Figure GDA0003405037580000346
专业网络服务、
Figure GDA0003405037580000347
社交网络服务、
Figure GDA0003405037580000348
地理网络服务、
Figure GDA0003405037580000349
办公室同事网络服务等。在其他配置中,社交网络服务1022由其他服务、站点和/或可以或者可以不明确已知为社交网络提供者的提供者提供。例如,一些网站允许用户在各种活动和/或情境(诸如阅读发布文章、评论商品或服务、发布、协作、玩游戏等)期间经由电子邮件、聊天服务、和/或其他手段与彼此交互。这样的服务的示例包括但不限于来自华盛顿州雷德蒙德的微软公司的WINDOWS
Figure GDA00034050375800003410
服务和XBOX
Figure GDA00034050375800003411
服务。其他服务是可能的并且被预期。
社交网络服务1022还可以包括发评论、发博客和/或微博服务。这样的服务的示例包括但不限于:
Figure GDA00034050375800003412
发评论服务、
Figure GDA00034050375800003413
审查服务、
Figure GDA00034050375800003414
企业微博服务、
Figure GDA00034050375800003415
消息传送服务、
Figure GDA00034050375800003416
Figure GDA00034050375800003417
服务、和/或其他服务。应当理解,以上服务列表不是穷尽的,并且为简洁起见本文中未提到许多附加的和/或备选的社交网络服务1022。这样,以上配置是说明性的,并且不应当以任何方式被解释为受限制。根据各种实现方式,社交网络服务1022可以托管用于为计算设备提供针对上下文感知的位置共享服务的功能的一个或多个应用和/或软件模块。例如,社交网络应用、邮件客户端、消息传送客户端、运行在手机或任何其他客户端1006上的浏览器可以与社交网络服务1022通信。
如图10所示,应用服务器1008还可以托管其他服务、应用、端口和/或其他资源(“其他资源”)1024。其他资源1024可以部署面向服务的架构或任何其他客户端服务器管理软件。因此,可以理解,计算环境1002可以提供本文所描述的选择构思和技术与各种邮箱、消息传送、社交网络和/或其他服务或资源的结合。
如以上所提到的,计算环境1002可以包括数据存储装置1010。根据各种实现方式,数据存储装置1010的功能由一个或多个数据库提供,一个或多个数据库在网络1004上进行操作或者与网络604进行通信。数据存储装置1010的功能还可以由一个或多个服务器计算机提供,一个或多个服务器计算机被配置为计算环境1002托管数据。数据存储装置1010可以包括、托管或提供一个或多个真实或虚拟容器1026A-1026N(被共同地和/或一般地称为“容器1026”)。尽管未被图示在图10中,但是容器1026还可以托管或存储用于由远程计算设备的一个或多个模块(例如,计算设备102中的一个的选择模块116、或者计算设备400的选择模块416或(多个)传感器数据收集模块414)执行的数据结构和/或算法。容器1026的方面可以与数据库程序、文件系统和/或存储具有安全访问特征的数据的任何程序相关联。容器1026的方面还可以使用诸如ACTIVE
Figure GDA0003405037580000351
Figure GDA0003405037580000352
的产品或服务来实现。
通信环境1002可以与网络接口1012进行通信或者由网络接口1012访问。网络接口1012可以包括用于支持两个或更多个计算实体(包括但不限于客户端1006与应用服务器1008)之间的通信的各种类型的网络硬件和软件。应当理解,网络接口1012还可以被用来连接到其他类型的网络和/或计算机系统。
应当理解,本文中所描述的分布式计算环境1000可以利用可以被配置为执行本文所描述的软件部件的任何方面的任何数目的虚拟计算资源和/或其他分布式计算功能来提供本文中所描述的软件元件的任何方面。根据本文所描述的构思和技术的各种实现方式,分布式计算环境1000将本文中被描述为服务的软件功能提供给客户端1006。应当理解,客户端1006可以包括真实机或虚拟机,其包括但不限于:服务器计算机、网络服务器、个人计算机、平板计算机、游戏控制台、智能电视、移动计算实体、智能电话、和/或其他设备。这样,本文所描述的构思和技术的各种配置使得被配置为访问分布式计算环境1000的任何设备能够利用本文中所描述的用于提供选择技术的功能以及其他方面。在一个特定示例中,如以上所概述的,本文中所描述的技术可以至少部分地由可以结合图10的应用服务器1008工作的网络浏览器应用实现。
图11是针对能够执行所描述的在一些示例中可用于实现选择场景中的对象的方面的各种软件部件的计算设备的说明性计算设备架构1100。计算设备架构1100可应用于部分地归因于形成因子、无线连通性、和/或电池供电的操作而促进移动计算的计算实体。在一些配置中,计算实体包括但不限于:移动电话、平板设备、板式设备、可穿戴设备、便携式视频游戏设备等。此外,计算设备架构1100的各方面可以可应用于传统台式计算机、便携式计算机(例如,膝上型电脑、笔记本、超便携本、以及上网本)、服务器计算机、以及其他计算机系统。通过示例而非限制,计算设备架构1100可适用于图1、4、5、9和10中所示出的客户端中的任何客户端(例如,计算设备102、计算设备400、设备500和/或设备1006)。
图11中所图示的计算设备架构1100包括处理器1102、存储器部件1104、网络连通性部件1106、传感器部件1108、输入/输出部件1110、以及功率部件1112。在所图示的配置中,处理器1102与存储器部件1104、网络连通性部件1106、传感器部件1108、输入/输出(“I/O”)部件1110、以及功率部件1112进行通信。尽管在图11中所图示的各个部件之间未示出连接,但是这些部件可以交互以执行设备功能。在一些配置中,部件被布置以便经由一个或多个总线(未被示出)进行通信。
处理器1102包括被配置为处理数据、执行一个或多个应用程序的计算机可执行指令、并且与计算设备架构1100的其他部件进行通信以便执行本文所描述的各种功能。处理器1102可以被用来执行本文中所呈现的软件部件的方面。在一些示例中,处理器1102可以对应于如以上参考图1、图4和图9所描述的(多个)处理器108、(多个)处理器402、和/或CPU902。
在一些配置中,处理器1102包括图形处理单元(“GPU”),其被配置为加速由CPU执行的操作,包括但不限于由执行通用科学和/或工程计算应用以及图形密集计算应用执行的操作,图形密集计算应用诸如为高分辨率视频(例如,1080i、1080p以及更高分辨率)、视频游戏、三维(“3D”)建模应用等。在一些配置中,处理器1102被配置为与分立GPU(未被示出)进行通信。在一些示例中,处理器1102可以附加地或备选地包括全息处理单元(HPU),其专门被设计为处理并结合来自头戴式计算设备的多个传感器的数据并且处理诸如空间映射、姿势识别以及声音和语音识别的任务。在任何情况下,CPU、GPU和/或HPU可以根据协同处理CPU/GPU/HPU计算模型来配置,其中处理任务根据它们相应的强度被划分在CPU、GPU和/或HPU之间。例如,应用的顺序部分可以在CPU上执行,计算密集部分由GPU加速,并且某些专门的功能(例如,空间映射、姿势识别以及声音和语音识别)可以由HPU执行。
在一些配置中,处理器1102为片上系统(“SoC”)以及下面本文所描述的其他部件中的一个或多个部件或者被包括在片上系统(“SoC”)以及下面本文所描述的其他部件中的一个或多个部件中。例如,SoC可以包括处理器1102、GPU、网络连通性部件1106中的一个或多个以及传感器部件1108中的一个或多个。在一些配置中,处理器1102部分地利用封装叠加(“PoP”)集成电路封装技术来制造。处理器1102可以是单核处理器或多核处理器。
处理器1102可以根据可从英国剑桥的ARM HOLDINGS获得许可的ARM架构来创建。备选地,处理器1102可以根据诸如可从加利福尼亚州山景城的INTEL公司以及其他获得的x86架构来创建。在一些配置中,处理器1102为可从加利福尼亚州圣地亚哥的QUALCOMM获得的SNAPDRAGON SoC、可从加利福尼亚州圣克拉拉的NVIDIA获得的TEGRA SoC、可从韩国首尔的SAMSUNG获得的HUMMINGBIRD SoC、可从德克萨斯州达拉斯的TEXAS INSTRUMENTS获得的开放多媒体应用平台(““OMAP”)SoC、以上SoC中的任何SoC的定制版本、或专用SoC。
存储器部件1104包括随机存取存储器(“RAM”)1114、只读存储器(“ROM”)1116、集成存储存储器(“集成存储装置”)1118、以及可移除存储存储器(“可移除存储装置”)1120。在一些配置中,RAM 1114或其部分、ROM 1116或其部分、和/或RAM 1114和ROM 1116的一定组合被集成在处理器1102中。在一些配置中,ROM 1116被配置为存储固件、操作系统或其部分(例如,操作系统内核)、和/或从集成存储装置1118和/或可移除存储装置1120加载操作系统内核的引导程序。在一些示例中,存储器部件1104可以对应于如以上分别参考图1、图4和图9所描述的计算机可读介质110、计算机可读介质404、和/或存储器904。
集成存储装置1118可以包括固态存储器、硬盘、或固态存储器和硬盘的组合。集成存储装置1118可以被焊接或以其他方式连接到逻辑板,处理器1102和本文中所描述的其他部件也可以被连接到该逻辑板上。这样,集成存储装置1118被集成在计算设备中。集成存储装置1118被配置为存储操作系统及其部分、应用程序、数据、以及本文中所描述的其他软件部件。
可移除存储装置1120可以包括固态存储器、硬盘、或固态存储器和硬盘的组合。在一些配置中,可移除存储装置1120被提供以代替集成存储装置1118。在其他配置中,可移除存储装置1120被提供为附加的可选存储装置。在一些配置中,可移除存储装置1120与集成存储装置1118逻辑地组合,使得总可用存储装置可用作总组合的存储容量。在一些配置中,集成存储装置1118和可移除存储装置1120的总组合的容量代替针对集成存储装置1118和可移除存储装置1120的分立存储能力被示出给用户。
可移除存储装置1120被配置为被插入到可移除存储存储器槽(未被示出)或其他机构中,可移除存储装置1120通过该其他机构被插入和固定以促进可移除存储装置1120能够通过其与计算设备的其他部件(例如处理器1102)进行通信的连接。可移除存储装置1120可以以各种存储卡格式来体现,各种存储卡格式包括但不限于:PC卡、紧凑型闪存(CompactFlash)卡、存储器棒、安全数字(“SD”)、迷你SD、微型SD、通用集成电路(“UICC”)(例如,订户身份模块(“SIM”)或通用SIM(“USIM”))、专用格式等。
可以理解,存储器部件1104中的一个或多个可以存储操作系统。根据各种配置,操作系统包括但不限于:来自SYMBIAN有限公司的SYMBIAN OS、来自华盛顿州雷德蒙德的微软公司的WINDOWS MOBILE OS、来自微软公司的WINDOWS PHONE OS、来自微软公司的WINDOWS、来自加利福尼亚州帕洛阿尔托的惠普公司的PALM WEBOS、来自加拿大的安大略滑铁卢的Research In Motion有限公司的BLACKBERRY OS、来自加利福尼亚州库比蒂诺的苹果公司的IOS、以及来自加利福尼亚州山景城的谷歌公司的ANDROID OS。还预期其他操作系统。
网络连通性部件1106包括无线广域网部件(“WWAN部件”)1122、无线局域网部件(“WLAN部件”)1124、以及无线个人区域网络部件(“WPAN部件”)1126。网络连通性部件1106促进到和自网络1127或另一网络的通信,另一网络可以为WWAN、WLAN或WPAN。尽管仅仅图示了网络1127,但是网络连通性部件1106可以促进与包括图11的网络1127的多个网络的通信。例如,网络连通性部件1106可以经由WWAN、WLAN或WPAN中的一个或多个促进与多个网络的通信。在一些示例中,网络1127可以对应于如图9和图10中所示出的网络932和/或网络1004中的全部或部分。
网络1127可以是或者可以包括WWAN,诸如移动电信网络,其利用一个或多个移动电信技术来将语音和/或数据服务提供到经由WWAN部件1122利用计算设备架构1100的计算设备。移动电信技术可以包括但不限于:全球移动通信系统(“GSM”)、码分多址(“CDMA”)ONE、CDMA2000、通用移动电信系统(“UMTS”)、长期演进(“LTE”)以及微波存取全球互通(“WiMAX”)。此外,网络1127可以利用各种信道访问方法(其可以或者可以不由上述标准使用),其包括但不限于:时分多址(“TDMA”)、频分多址(“FDMA”)、CDMA、宽带CDMA(“W-CDMA”)、正交频分复用(“OFDM”)、空分多址(“SDMA”)等。数据通信可以使用通用分组无线电服务(“GPRS”)、全域进化增强数据率(“EDGE”)、高速分组接入(“HSPA”)协议系列(包括高速下行链路分组接入(“HSDPA”)、增强上行链路(“EUL”)或以其他方式命名的高速上行链路分组接入(“HSUPA”)、进化HSPA(“HSPA+”))、LTE以及各种其他当前的和未来的无线数据访问标准来提供。网络1127可以被配置为提供利用以上技术的任何组合来提供语音和/或数据通信。网络1127可以被配置为或者适于根据未来代技术来提供语音和/或数据通信。
在一些配置中,WWAN部件1122被配置为向网络1127提供双多模式连通性。例如,WWAN部件1122可以被配置为向网络1127提供连通性,其中,网络1127经由GSM和UMTS技术或经由技术的某个其他组合提供服务。备选地,多个WWAN部件1122可以被用来执行这种功能,和/或提供附加的功能以支持其他不可兼容技术(即,不能够由单个WWAN部件支持)。WWAN部件1122可以促进到多个网络(例如,UMTS网络和LTE网络)的类似连通性。
网络1127可以是根据诸如IEEE 802.15a、802.15b、802.15g、802.15n和/或未来的802.15标准(在本文中被统称为WI-FI)的一个或多个电气与电子工程师协会(“IEEE”)标准操作的WLAN。还预期草拟的802.15标准。在一些配置中,WLAN利用一个或多个无线WI-FI接入点来实现。在一些配置中,无线WI-FI接入点中的一个或多个是具有到用作WI-FI热点的WWAN的连通性的另一计算设备。WLAN部件1124被配置为经由WI-FI接入点连接到网络1127。这样的连接可以经由各种加密技术来保证安全,各种加密技术包括但不限于WI-FI保护访问(“WPA”)、WPA2、有线等效保密(“WEP”)等。
网络1127可以是根据红外数据协会(“IrDA”)、BLUETOOTH、无线通用串行总线(“USB”)、Z波、ZIGBEE、或者某种其他短程无线技术操作的WPAN。在一些配置中,WPAN部件1126被配置为经由WPAN促进与其他设备(诸如外围设备、计算机、或其他计算实体)的通信。
在至少一个示例中,传感器部件1108可以包括磁力计1128、环境光传感器1130、接近度传感器1132、加速度计1134、陀螺仪1136以及全球定位系统传感器(“GPS传感器”)1138。附加地,传感器部件1108可以包括如以上参考图4所描述的(多个)传感器406中的任何或全部。预期其他传感器(诸如但不限于温度传感器或冲击检测传感器、应变传感器、湿度传感器)还可以被并入计算设备架构1100中。
磁力计1128被配置为测量磁场的强度和方向。在一些配置中,磁力计1128将测量提供到被存储在存储器部件1104中的一个内的指南针应用程序以便向用户提供在包括基本方向(北、南、东和西)的参考系中的准确方向。类似的测量可以被提供到包括指南针部件的导航应用程序。由磁力计1128获得的测量的其他使用被预期。
环境光传感器1130被配置为测量环境光。在一些配置中,环境光传感器1130将测量提供到被存储在一个存储器部件1104内的应用程序以便自动调节(下面所描述的)显示器的亮度来补偿弱光和强光环境。由环境光传感器1130获得的测量的其他使用被预期。
接近度传感器1132被配置为检测接近计算设备而没有直接接触的对象或事物的存在。在一些配置中,接近度传感器1132检测用户的身体(例如,用户的面部)的存在并将该信息提供到被存储在存储器部件1104中的一个内的利用该接近度信息来启用或禁用计算设备的某个功能的应用程序。例如,电话应用程序可以响应于接收到接近度信息而自动禁用(下面描述的)触摸屏,使得用户的面部不会疏忽地结束呼叫或者在呼叫期间启用/禁用电话应用程序内的其他功能。由接近度传感器1128检测到的接近度的其他使用被预期。
加速度计1134被配置为测量合适的加速度。在一些配置中,来自加速度计1134的输出由应用程序用作输入机制以控制应用程序的某个功能。例如,应用程序可以是视频游戏,其中,角色、角色的一部分、或对象响应于经由加速度计1134接收到的输入而被移动或以其他方式被操纵。在一些配置中,来自加速度计1134的输出被提供到应用程序以用于在横向模式与纵向模式之间进行切换、计算坐标加速度、或者检测下降中使用。加速度计1134的其他使用被预期。
陀螺仪1136被配置为测量并维持定向。在一些配置中,来自陀螺仪1136的输出由应用程序用作输入机制以控制应用程序的某个功能。例如,陀螺仪1136可以被用于准确识别视频游戏应用或某个其他应用的3D场景内的移动。在一些配置中,应用程序利用来自陀螺仪1136和加速度计1134的输出来增强应用程序的某个功能的控制。陀螺仪1136的其他使用被预期。
GPS传感器1138被配置为从GPS卫星接收信号以在计算位置中使用。由GPS传感器1138计算的位置可以由要求或者受益于位置信息的任何应用程序使用。例如,由GPS传感器1138计算的位置可以由导航应用程序使用以提供从该位置到目的地的方向或从目的地到该位置的方向。此外,GPS传感器1138可以被用来将位置信息提供到外部的基于位置的服务,诸如E1515服务。GPS传感器1138可以获得经由利用网络连通性部件1106中的一个或多个来辅助GPS传感器738获得位置固定的WI-FI、WIMAX、和/或蜂窝三角测量技术生成的位置信息。GPS传感器1138还可以被用在辅助GPS(“A-GPS”)系统中。
在至少一个示例中,I/O部件1110可以对应于以上参考图4所描述的(多个)输入接口408和/或(多个)输出接口410。附加地或备选地,I/O部件可以包括显示器1140、触摸屏1142、数据I/O接口部件(“数据I/O”)1144、音频I/O接口部件(“音频I/O”)1146、视频I/O接口部件(“视频I/O”)1148、以及相机1150。在一些配置中,显示器1140和触摸屏1142被组合。在一些配置中,数据I/O部件1144、音频I/O部件1146、以及视频I/O部件1148中的两个或更多个被组合。I/O部件1110可以包括被配置为支持下面描述的各种接口的分立处理器或者可以包括内置于处理器1102的处理功能。
显示器1140是被配置为以视觉形式呈现信息的输出设备。特别地,显示器1140可以呈现图形用户界面(“GUI”)元素、文本、图像、视频、通知、虚拟按钮、虚拟键盘、消息传送数据、互联网内容、设备状态、时间、日期、日历数据、偏好、地图信息、位置信息、以及能够以视觉形式被呈现的任何其他信息。在一些配置中,显示器1140是利用任何有源或无源矩阵技术和任何背光技术(如果使用的话)的液晶显示器(“LCD”)。在一些配置中,显示器1140是有机发光二极管(“OLED”)显示器。在一些配置中,显示器1140是全息显示器。其他显示器类型被预期。
在至少一个示例中,显示器1140可以对应于硬件显示表面422和/或硬件显示表面502。如上所述,硬件显示表面422和硬件显示表面502可以被配置为将全息用户界面和其他图形元素与通过硬件显示表面看到的对象或者被显示在硬件显示表面上的渲染的对象图形地相关联。以上分别参考图4和图5描述与硬件显示表面422和硬件显示表面502相关联的附加特征。
触摸屏1142(在本文中也被称为“支持触摸的屏幕”)是被配置为检测触摸的存在和位置的输入设备。触摸屏1142可以是电阻性触摸屏、电容性触摸屏、表面声波触摸屏、红外触摸屏、光学成像触摸屏、色散信号触摸屏、声学脉冲识别触摸屏、或者可以利用任何其他触摸屏技术。在一些配置中,触摸屏1142作为透明层被并入在显示器1140的顶部上以使得用户能够使用一个或多个触摸来与被呈现在显示器1140上的对象或其他信息进行交互。在其他配置中,触摸屏1142是被并入在不包括显示器1140的计算设备的表面上的触摸板。例如,计算设备可以具有被并入在显示器1140的顶部上的触摸屏和与显示器1140相对的表面上的触摸板。
在一些配置中,触摸屏1142是单触摸触摸屏。在一些配置中,触摸屏1142是多触摸触摸屏。在一些配置中,触摸屏1142被配置为检测分立触摸、单触摸姿势、和/或多触摸姿势。为方便起见,这些在本文中被统称为姿势。现在将描述若干姿势。应当理解,这些姿势是说明性的并且不旨在限制所附权利要求的范围。此外,所描述的姿势、附加的姿势、和/或备选姿势可以被实现在用于与触摸屏1142一起使用的软件中。这样,开发者可以创建对特别的应用程序特定的姿势。
在一些配置中,触摸屏1142支持轻敲姿势,其中,用户在被呈现在显示器1140上的项目上轻敲触摸屏1142一次。轻敲姿势可以被用来执行各种功能,包括但不限于打开或发起用户轻敲的任何东西。在一些配置中,触摸屏1142支持双击姿势,其中,用户在被呈现在显示器1140上的项目上轻敲触摸屏1142两次。双击姿势可以被用来执行各种功能,包括但不限于按阶段放大或缩小。在一些配置中,触摸屏1142支持轻敲并保持姿势,其中,用户轻敲触摸屏1142并且维持接触至少预定义时间。轻敲并保持姿势可以被用来执行各种功能,包括但不限于打开上下文特定菜单。
在一些配置中,触摸屏1142支持平移姿势,其中,用户将手指放置在触摸屏1142上并在将手指在触摸屏1142上移动的同时维持与触摸屏1142接触。平移姿势可以被用来执行各种功能,包括但不限于以受控制的速率移动通过屏幕、图像或菜单。多个手指平移姿势也被预期。在一些配置中,触摸屏1142支持轻弹姿势,其中,用户在用户想要使屏幕移动的方向上滑动手指。轻弹姿势可以被用来执行各种功能,包括但不限于水平地或垂直地滚动通过菜单或页面。在一些配置中,触摸屏1142支持夹捏和拉伸姿势,其中,用户在触摸屏1142上利用两个手指(例如,拇指和食指)做出夹捏运动或将两个手指移动开。夹捏和拉伸姿势可以被用来执行各种功能,包括但不限于逐渐放大或缩小网站、地图或图片。
尽管已经参考一个或多个手指的使用以用于执行姿势描述了以上姿势,但是其他附肢(诸如脚趾头)或对象(诸如触笔)可以被用来与触摸屏1142进行交互。这样,以上姿势应当被解释为说明性的,并且不应当以任何方式被解释为限制性的。
数据I/O接口部件1144被配置为促进将数据输入到计算设备和从计算设备输出数据。在一些配置中,数据I/O接口部件1144包括被配置为例如出于同步操作目的而在计算设备与计算机系统之间提供有线连通性的连接器。连接器可以是专用连接器或标准化连接器,诸如USB、微型USB、迷你USB等。在一些配置中,连接器是用于将计算设备与另一设备(诸如转接站、音频设备(例如,数字音乐播放器)、或视频设备)进行转接的转接连接器。
音频I/O接口部件1146被配置为向计算设备提供音频输入和/或输出能力。在一些配置中,音频I/O接口部件1146包括被配置为收集音频信号的麦克风。在一些配置中,音频I/O接口部件1146包括被配置为提供针对耳机或其他外部扬声器的连通性的耳机插孔。在一些配置中,音频I/O接口部件1146包括用于输出音频信号的扬声器。在一些配置中,音频I/O接口部件1146包括光学音频线缆出口。
视频I/O接口部件1148被配置为向计算设备提供视频输入和/或输出能力。在一些配置中,视频I/O接口部件1148包括被配置为接收来自另一设备(例如,视频媒体播放器,诸如DVD或BLURAY播放器)的视频作为输入或将视频作为输出发送到另一设备(例如,监视器、电视、或某种其他外部显示器)。在一些配置中,视频I/O接口部件1148包括用于输入/输出视频内容的高清晰度多媒体接口(“HDMI”)、迷你HDMI、微型HDMI、显示器端口(DisplayPort)、或专用连接器。在一些配置中,视频I/O接口部件1148或其部分与音频I/O接口部件1146或其部分进行组合。
相机1150可以被配置为捕获静态图像和/或视频。相机1150可以利用电荷耦合设备(“CCD”)或互补金属氧化物半导体(“CMOS”)图像传感器来捕获图像。在一些配置中,相机1150包括闪光灯以辅助在弱光环境中拍摄照片。针对相机1150的设置可以被实现为硬件或软件按钮。由相机1150捕获的图像和/或视频可以附加地或备选地被用来检测用户的非触摸姿势、面部表情、眼部移动、或者其他移动和/或特性。
尽管未被图示,但是一个或多个硬件按钮还可以被包括在计算设备架构1100中。硬件按钮可以被用于控制计算设备的某个操作方面。硬件按钮可以是专用按钮或多用途按钮。硬件按钮可以是机械的或基于传感器的。
所图示的功率部件1112包括一个或多个电池1152,其可以被连接到电池量表1154。电池1152可以是可充电的或一次性的。可充电电池类型包括但不限于锂聚合物、锂离子、镍镉和镍金属氢化物。电池1152中的每个可以由一个或多个单元组成。
电池量表1154可以被配置为测量电池参数,诸如电流、电压和温度。在一些配置中,电池量表1154被配置为测量电池的放电率、温度、寿命和其他因素的效果,以在一定的错误百分比内预测剩余寿命。在一些配置中,电池量表1154将测量提供给被配置为利用这些测量来向用户呈现有用功率管理数据的应用程序。功率管理数据可以包括以下中的一个或多个:所使用的电池的百分比、剩余的电池的百分比、电池状况、剩余时间、剩余容量(例如,以瓦特时为单位)、电流消耗以及电压。
功率部件1112还可以包括功率连接器,其可以与前述I/O部件1110中的一个或多个进行组合。功率部件1112可以经由功率I/O部件与外部功率系统或充电装备进行接口。
示例选择技术
图12是图示可以使用本文所描述的设备和/或计算架构中的一个或多个来实现的示例选择技术的流程图。为方便起见,这些技术在图1的环境100的上下文中进行描述,但是这些技术不限于在图1中所示出的环境中使用或与图1中所示出的设备一起使用。相反,图12的技术可适用于其他环境和设备,包括图4、5、9、10和11中所示出的环境和设备以及其他环境和计算设备。
下面参考图12所描述的过程被图示为逻辑流程图中的块的汇集,其表示可以采用硬件、软件、或其组合来实施的操作的序列。在软件的背景下,块表示被存储在一个或多个计算机可读存储介质上的计算机可执行指令,其在由一个或多个处理器执行时执行所记载的操作。一般地,计算机可执行指令包括例程、程序、对象、部件、数据结构等,其执行特定功能或实现特定抽象数据类型。各操作被描述的顺序不旨在被解释为限制,并且任何数目的所描述的块可以以任何顺序和/或与实施该过程并行地来组合。
图12图示实现三维场景(例如,计算机生成的场景、虚拟现实场景、混合现实场景等)中的选择技术的示例过程1200。框1202图示了计算设备(例如,计算设备102)使用一个或多个传感器(例如,(多个)传感器112)以通过跟踪由用户控制的输入对象在环境中的移动来获得移动数据。在一些示例中,获得移动数据可以包括检测由用户执行的开始动作(例如,按压按钮、手势、语音命令等),其指示用户想要与场景中的多个对象交互。计算设备102还可以使用(多个)传感器112以在开始动作之后跟踪输入对象的移动直到移动停止为止,或者直到检测到结束动作为止。
在框1204处,计算设备102可以使用(多个)传感器112来获得包括用户的眼睛的位置的凝视跟踪数据。凝视跟踪数据可以从计算设备的凝视跟踪环境相机(例如,(多个)传感器112或凝视跟踪相机406A)、或者(多个)其他传感器112和406(例如,加速度计、接近度传感器、磁场传感器等)获得。在一些示例中,凝视跟踪数据可以响应于检测由(多个)传感器112检测到的开始动作和/或移动的开始而被获得。
在框1206处,计算设备可以使用一个或多个模块(例如,选择模块116)来确定与移动相关联的形状。例如,选择模块116可以确定:移动数据包括对角线移动。在一些示例中,选择模块116可以定义或者计算具有对应于被包括在移动数据中的对角线移动的对角的矩形。
在框1208处,选择模块116可以基于移动数据和凝视跟踪数据来计算向量。例如,选择模块116可以计算源自用户的眼睛附近或处的位置并且穿过沿着被包括在移动数据中的移动的形状的点的向量。
在框1210处,选择模块116可以使用向量来将由输入对象的移动定义的形状的虚拟表示在基本上平行于从用户的眼睛附近或处的位置延伸到形状处或附近的点(诸如形状的中心)的向量的方向上延伸和/或扩展,以创建场景中的虚拟3D体积。在一些示例中,向量可以被延伸有限的距离。
在框1212处,选择模块116可以利用在距用户的最大距离(即远边界)处和/或最小距离(即,近边界)处垂直于用户的凝视的平面来剪切或界定3D体积以创建有限3D体积(例如,圆锥体、截头锥体、圆柱体等)。最大距离和/或最小距离可以是预定距离,或者基于用户的各种动作所计算的距离(例如,输入对象的移动、用户的另一手臂的移动、用户的身体的移动等)。以这种方式,选择模块116可以创建有限3D选择空间。
在框1214处,选择模块116可以标识位于或者至少部分地位于3D选择空间内的一个或多个对象。例如,选择模块116可以访问由环境相机获得的数据以确定场景中的哪些对象落入或者至少部分地落入3D选择空间中。
在框1216处,选择模块116可以对被包括在3D选择空间中的对象执行一个或多个操作。例如,选择模块116可以选择对象和/或呈现视觉指示符(例如,虚线、突出显示、颜色等)以指示对象已经被选择。在一些示例中,选择模块116可以附加地或备选地引起将对被包括在3D选择空间中的对象执行的操作(例如,移动、调整大小、着色等)。
示例条款
本文中所呈现的公开内容可以鉴于以下条款来考虑。
A.在一些示例中,一种系统包括:显示器,其用来呈现场景,场景包括至少一个虚拟对象;一个或多个传感器,其用来从现实世界环境捕获数据;一个或多个处理器,其被通信地耦合到一个或多个传感器和显示器;以及存储器,其具有存储在其上的计算机可执行指令,计算机可执行指令在由一个或多个处理器执行时使计算设备执行包括以下的操作:从一个或多个传感器获得对应于用户的现实世界环境中的输入对象的移动的移动数据;从一个或多个传感器获得包括现实世界环境中的用户的眼睛的位置的凝视跟踪数据;至少部分地基于移动数据和凝视跟踪数据来确定场景中的三维(3D)选择空间;标识场景中的位于或者至少部分地位于3D选择空间中的一个或多个对象,对象包括环境中的物理对象或者至少一个虚拟对象中的至少一个;以及对一个或多个对象执行操作。
B.根据段落A的系统,其中场景包括混合现实场景或虚拟现实场景中的一个,混合现实场景包括现实世界环境以及物理对象或至少一个虚拟对象中的至少一个,虚拟现实场景包括至少一个虚拟对象并且不包括现实世界环境。
C.根据段落A或B的系统,获得移动数据包括:由一个或多个传感器检测开始动作;由一个或多个传感器检测结束动作;以及标识对应于在开始动作与结束动作之间被检测到的输入对象的移动的形状。
D.根据段落A-C中的任一项的系统,确定场景中的3D选择空间包括:标识沿着由输入对象的移动定义的形状的第一位置和第二位置;计算源自用户的眼睛处或附近的位置并且沿着形状与第一位置相交的第一向量;计算源自用户的眼睛处或附近的位置并且沿着形状与第二位置相交的第二向量;以及在与第三向量基本上平行的方向上延伸第一向量和第二向量,第三向量从用户的眼睛附近或处的位置延伸到形状处或附近的位置。
E.根据段落D的系统,确定场景中的3D选择空间还包括:确定从用户的眼睛到选择空间的距离以通过剪切3D选择空间来创建近边界;以及通过将3D选择空间界定在近边界处来创建有限3D选择空间,界定包括利用在该距离处垂直于第三向量的平面来剪切3D选择空间。
F.根据段落D的系统,确定场景中的3D选择空间还包括:确定从用户到选择空间的距离以通过防止3D选择空间比远边界延伸得更远来创建远边界;以及通过将3D选择空间界定在远边界处来创建有限3D选择空间,界定包括利用在该距离处垂直于第三向量的平面来剪切3D选择空间。
G.根据段落F的系统,确定从用户的眼睛到选择空间的距离以创建远边界包括以下中的至少一个:标识预定最大距离;或者分析移动数据以标识输入对象或用户的身体部分中的至少一个在平行于第三向量的方向上的另一移动;以及对另一移动应用缩放因子以确定最大距离或最小距离中的至少一个。
H.根据段落A-G中的任一项的系统,其中一个或多个传感器包括以下中的至少一个:加速度计;面向用户的环境相机;面向外部的环境相机;凝视跟踪数据;接近度传感器;或者磁场传感器。
I.根据段落A-H中的任一项的系统,其中输入对象在环境中的移动包括线性移动或自由形式移动中的至少一个。
J.根据段落A-I中的任一项的系统,其中输入对象包括控制器或用户的身体部分中的至少一个。
K.根据段落A-J中的任一项的系统,对一个或多个对象执行操作包括:选择一个或多个对象;并且通过将指示符与一个或多个对象虚拟地相关联来视觉地指示一个或多个对象被选择。
L.在一些示例中,一种计算机实现的方法包括:从一个或多个传感器获得对应于现实世界环境中的输入对象的移动的移动数据;从一个或多个传感器获得包括环境中的用户的眼睛的位置的凝视跟踪数据;在显示器上呈现包括至少一个虚拟对象的场景;至少部分地基于凝视跟踪数据和移动数据来计算多个向量,多个向量中的每个源自用户的眼睛处或附近并且穿过沿着由输入对象的移动定义的形状的位置;在与参考向量基本上平行的方向上延伸向量,参考向量从用户的眼睛处或附近的位置延伸到形状处或附近的位置以定义场景中的三维(3D)体积;标识场景中的被包括在或者至少部分地被包括在3D体积中的一个或多个对象,一个或多个对象包括现实世界环境中的物理对象或者至少一个虚拟对象中的至少一个;以及对被包括在或者至少部分地被包括在3D体积中的一个或多个对象执行操作。
M.根据段落L的计算机实现的方法,其中场景包括混合现实场景或虚拟现实场景中的一个,混合现实场景包括现实世界环境以及物理对象或至少一个虚拟对象中的至少一个,虚拟现实场景包括至少一个虚拟对象并且不包括现实世界环境。
N.根据段落L或M的计算机实现的方法,获得移动数据包括:由一个或多个传感器检测输入对象的开始动作;由一个或多个传感器检测输入对象的结束动作;以及捕获在开始动作与结束动作之间所检测到的输入对象的移动。
O.根据段落L-N中的任一项的计算机实现的方法,还包括:确定从用户到选择空间的距离以创建近边界,将3D体积界定在近边界处;以及通过利用在该距离处垂直于参考向量的平面剪切3D体积来将3D体积界定在近边界处。
P.根据段落L-O中的任一项的计算机实现的方法,还包括:确定从用户到选择空间的距离以通过防止3D选择空间比远边界延伸得更远来创建远边界,将3D体积界定在远边界处;以及通过利用在该距离处基本上垂直于参考向量的平面剪切3D体积来将3D体积界定在远边界处。
Q.根据段落P的计算机实现的方法,确定距离包括以下中的至少一个:标识预定最大距离;或者分析移动数据以标识第二输入对象在基本上平行于参考向量的方向上的另一移动,第二输入对象包括输入对象、用户的手臂、或者用户的身体中的至少一个;以及对另一移动应用缩放因子以确定距离。
R.根据段落L-Q中的任一项的计算机实现的方法,其中3D体积包括通过以下定义的几何形状:前平面表面,其基本上垂直于参考向量并且具有由输入对象的移动定义的边界;后平面表面,其与前平面表面间隔开并且平行于前平面表面,后平面表面具有与前平面表面的边界在几何形状上相似的边界;以及侧壁,其从前平面表面延伸到后平面表面并且围绕前平面表面和后平面表面的边界延伸。
S.根据段落L-R中的任一项的计算机实现的方法,将向量沿着基本上平行于参考向量的方向延伸以定义3D体积包括在与用户相关联的计算设备的显示器上呈现3D体积的视觉表示。
T.根据段落L-S中的任一项的计算机实现的方法,其中一个或多个传感器包括以下中的至少一个:加速度计;面向用户的环境相机;面向外部的环境相机;凝视跟踪数据;接近度传感器;或者磁场传感器。
U.在一些示例中,一种可穿戴计算设备包括:一个或多个传感器,其用来从环境获得数据,环境包括虚拟现实环境或混合现实环境中的至少一个;一个或多个处理器,其被通信地耦合到一个或多个传感器;以及存储器,其具有被存储在其上的计算机可执行指令,计算机可执行指令在由一个或多个处理器执行时使计算设备执行包括以下的操作:从一个或多个传感器获得对应于环境中的输入对象的移动的移动数据;从一个或多个传感器获得对应于用户的眼睛的位置的凝视跟踪数据;分析移动数据以计算由输入对象的移动定义的矩形形状;计算源自用户的眼睛附近或处的位置并且与沿着矩形形状的点相交的向量;在与参考向量基本上平行的方向上延伸向量,参考向量从用户的眼睛附近或处的位置延伸到矩形形状处或附近的位置以创建金字塔形状;标识被包括在或者部分地被包括在金字塔形状中的一个或多个对象;以及选择被包括在或者部分地被包括在金字塔形状中的一个或多个对象,一个或多个对象包括物理对象或虚拟对象中的至少一个。
V.根据段落U的可穿戴计算设备,操作还包括:确定从用户到金字塔形状的距离以通过剪切金字塔形状来创建近边界;通过将金字塔形状界定在近边界处来创建金字塔形状的截头锥体,界定包括利用在近边界处基本上垂直于参考向量的平面来剪切金字塔形状。
W.根据段落U或V的可穿戴计算设备,分析移动数据以计算由输入对象的移动定义的矩形形状包括:分析移动数据以确定输入对象的移动包括对角线;以及计算具有对应于对角线的对角的矩形形状。
X.根据段落U-W中的任一项的可穿戴计算设备,选择被包括在或部分地被包括在金字塔形状中的一个或多个对象包括:通过将指示符与一个或多个对象中的每个对象虚拟地相关联来视觉地指示被包括在或部分地被包括在金字塔形状中的一个或多个对象被选择。
Y.根据段落U-X中的任一项的可穿戴计算设备,操作还包括:从一个或多个传感器获得来自用户的附加输入;以及至少部分地基于附加输入来对一个或多个所选择的对象执行动作。
Z.根据段落U-Y中的任一项的可穿戴计算设备,其中一个或多个传感器包括以下中的至少一个:加速度计;面向用户的环境相机;面向外部的环境相机;凝视跟踪数据;接近度传感器;或者磁场传感器。
AA.一个或多个计算机可读介质,其编码有指令,指令在由一个或多个处理器执行时将计算配置为执行根据段落L-T中的任何段落的计算机实现的方法。
BB.一种设备,包括一个或多个处理器、一个或多个传感器和一个或多个计算机可读介质,一个或多个计算机可读介质编码有指令,指令在由一个或多个处理器运行时将计算机配置为执行根据段落L-T中的任何段落的计算机实现的方法。
CC.一种计算机实现的方法,包括:用于获得对应于环境中的输入对象的移动的移动数据的手段;用于获得包括用户的眼睛的位置的凝视跟踪数据的手段;用于至少部分地基于移动数据和凝视跟踪数据来确定场景中的三维(3D)选择空间的手段;用于标识场景中的位于或者部分地位于3D选择空间中的一个或多个对象的手段,对象包括环境中的物理对象或者至少一个虚拟对象中的至少一个;以及用于对一个或多个对象执行操作的手段。
尽管已经以特定于结构特征和/或方法动作的语言描述了本主题内容,但是应当理解,在所附权利要求中所限定的主题内容不必限于所描述的特定特征或动作。而是,特定特征和动作被描述为实现权利要求的说明性形式。
诸如“能够(can)”、“可以(could)”、“可能(might)”或“可以(can)”的条件性语言在上下文内被理解为呈现某些示例,其包括(而其他示例不一定包括)某些特征、元件和/或步骤,除非另有明确陈述。因此,这样的条件性语言一般不旨在暗示一个或多个示例以任何方式需要某些特征、元件和/或步骤或者一个或多个示例必需包括用于在具有或不具有输入或提示的情况下进行决策的逻辑,无论某些特征、元件和/或步骤是否被包括或者要在任何特定示例中被执行。除非另有明确陈述,诸如短语“X、Y或Z中的至少一个”的连接性语言将被理解为表示项目、术语等可以是X、Y或Z、或其组合。

Claims (17)

1.一种用于选择场景中的对象的系统,包括:
显示器,用来呈现场景,所述场景包括至少一个虚拟对象;
一个或多个传感器,用来从用户的现实世界环境捕获数据;
一个或多个处理器,被通信地耦合到所述一个或多个传感器和所述显示器;以及
存储器,具有被存储在其上的计算机可执行指令,所述计算机可执行指令在由所述一个或多个处理器执行时使计算设备执行包括以下的操作:
由所述一个或多个传感器检测开始动作;
从所述一个或多个传感器获得对应于所述用户的所述现实世界环境中输入对象的移动的移动数据;
由所述一个或多个传感器检测结束动作;
标识与所述开始动作和所述结束动作之间的所述输入对象的所述移动相对应的形状;
从所述一个或多个传感器获得包括在所述现实世界环境中所述用户的眼睛的位置的凝视跟踪数据;
通过以下,至少部分地基于所述形状和所述凝视跟踪数据来确定所述场景中的三维(3D)选择空间:
标识沿着所述形状的第一位置和第二位置;
计算源自所述用户的眼睛处或所述用户的眼睛附近的位置并且沿着所述形状与所述第一位置相交的第一向量;
计算源自所述用户的所述眼睛处或所述用户的所述眼睛附近的所述位置并且沿着所述形状与所述第二位置相交的第二向量;以及
在与第三向量基本上平行的方向上延伸所述第一向量和所述第二向量,所述第三向量从所述用户的眼睛附近或所述用户的眼睛处的所述位置延伸到所述形状处或所述形状附近的位置;
标识所述场景中的位于或者至少部分地位于所述3D选择空间中的一个或多个对象,所述对象包括所述现实世界环境中的物理对象或者所述至少一个虚拟对象中的至少一个;以及
对所述一个或多个对象执行操作。
2.根据权利要求1所述的系统,其中所述场景包括以下中的一项:
混合现实场景,包括所述现实世界环境、以及所述物理对象或所述至少一个虚拟对象中的至少一个;或者
虚拟现实场景,包括所述至少一个虚拟对象,并且排除所述现实世界环境。
3.根据权利要求1所述的系统,确定所述场景中的所述3D选择空间还包括:
确定从所述用户的所述眼睛到所述3D选择空间的距离,以通过剪切所述3D选择空间来创建近边界;以及
通过将所述3D选择空间界定在所述近边界处来创建有限3D选择空间,所述界定包括利用在所述距离处垂直于所述第三向量的平面来剪切所述3D选择空间。
4.根据权利要求1所述的系统,所述确定所述场景中的所述3D选择空间还包括:
确定从所述用户到所述3D选择空间的距离,以通过防止所述3D选择空间比远边界延伸得更远来创建所述远边界;以及
通过将所述3D选择空间界定在所述远边界处来创建有限3D选择空间,所述界定包括利用在所述距离处垂直于所述第三向量的平面来剪切所述3D选择空间。
5.根据权利要求1所述的系统,其中所述现实世界环境中的所述输入对象的所述移动包括线性移动或自由形式移动中的至少一个。
6.根据权利要求1所述的系统,其中所述输入对象包括控制器或所述用户的身体部分中的至少一个。
7.根据权利要求1所述的系统,对所述一个或多个对象执行操作包括:
选择所述一个或多个对象;并且
通过将指示符与所述一个或多个对象虚拟地相关联,来视觉地指示所述一个或多个对象被选择。
8.一种用于选择场景中的对象的计算机实现的方法,包括:
从一个或多个传感器获得对应于现实世界环境中的输入对象的移动的移动数据;
从所述一个或多个传感器获得包括所述环境中的用户的眼睛的位置的凝视跟踪数据;
在与所述用户相关联的计算设备的显示器上呈现包括至少一个虚拟对象的场景;
至少部分地基于所述凝视跟踪数据和所述移动数据来计算多个向量,所述多个向量中的每个向量源自所述用户的眼睛处或所述用户的眼睛附近并且穿过沿着由所述输入对象的所述移动定义的形状的位置;
通过在与参考向量基本上平行的方向上延伸所述多个向量来定义所述场景中的三维(3D)体积,所述参考向量从所述用户的眼睛处或所述用户的眼睛附近的位置延伸到所述形状处或所述形状附近的位置,将所述向量沿着基本上平行于所述参考向量的方向延伸以定义所述3D体积包括:在与所述用户相关联的计算设备的显示器上呈现所述3D体积的虚拟表示;
标识所述场景中被包括在或者至少部分地被包括在所述3D体积中的一个或多个对象,所述一个或多个对象包括所述现实世界环境中的物理对象或者所述至少一个虚拟对象中的至少一个;以及
对被包括在或者至少部分地被包括在所述3D体积中的所述一个或多个对象执行操作。
9.根据权利要求8所述的计算机实现的方法,其中所述场景包括混合现实场景或虚拟现实场景中的一个,所述混合现实场景包括所述现实世界环境、以及所述物理对象或所述至少一个虚拟对象中的至少一个,所述虚拟现实场景包括所述至少一个虚拟对象并且排除所述现实世界环境。
10.根据权利要求8所述的计算机实现的方法,所述获得所述移动数据包括:
由所述一个或多个传感器检测所述输入对象的开始动作;
由所述一个或多个传感器检测所述输入对象的结束动作;以及
捕获在所述开始动作与所述结束动作之间被检测到的所述输入对象的所述移动。
11.根据权利要求8所述的计算机实现的方法,还包括:
确定从所述用户到所述3D体积的距离,以创建界定所述3D体积的近边界;以及
通过利用在所述距离处垂直于所述参考向量的平面来剪切所述3D体积,将所述3D体积界定在所述近边界处。
12.根据权利要求8所述的计算机实现的方法,还包括:
确定从所述用户到所述3D体积的距离,以通过防止所述3D体积比远边界延伸得更远来创建界定所述3D体积的所述远边界;以及
通过利用在所述距离处基本上垂直于所述参考向量的平面来剪切所述3D体积,将所述3D体积界定在所述远边界处。
13.根据权利要求8所述的计算机实现的方法,其中所述3D体积包括通过以下定义的几何形状:
前平面表面,基本上垂直于所述参考向量并且具有由所述输入对象的所述移动定义的边界;
后平面表面,与所述前平面表面间隔开并且平行于所述前平面表面,所述后平面表面具有与所述前平面表面的所述边界在几何形状上相似的边界;以及
侧壁,从所述前平面表面延伸到所述后平面表面并且围绕所述前平面表面和所述后平面表面的边界延伸。
14.一种用于选择场景中的对象的可穿戴计算设备,包括:
一个或多个传感器,用来从环境获得数据,所述环境包括虚拟现实环境或混合现实环境中的至少一个;
一个或多个处理器,被通信地耦合到所述一个或多个传感器;以及
存储器,具有被存储在其上的计算机可执行指令,所述计算机可执行指令在由所述一个或多个处理器执行时使所述可穿戴计算设备执行包括以下的操作:
从所述一个或多个传感器获得对应于所述环境中的输入对象的移动的移动数据;
从所述一个或多个传感器获得对应于用户的眼睛的位置的凝视跟踪数据;
分析所述移动数据以计算由所述输入对象的所述移动定义的形状;
计算源自所述用户的眼睛附近或所述用户的眼睛处的位置并且与沿着所述形状的点相交的向量;
在与参考向量基本上平行的方向上延伸所述向量,所述参考向量从所述用户的眼睛附近或所述用户的眼睛处的位置延伸到所述形状处或所述形状附近的位置以创建三维(3D)体积;
标识被包括在或者部分地被包括在所述3D体积中的一个或多个对象;以及
选择被包括在或者部分地被包括在所述3D体积中的所述一个或多个对象,所述一个或多个对象包括物理对象或虚拟对象中的至少一个。
15.根据权利要求14所述的可穿戴计算设备,所述操作还包括:
确定从所述用户到所述3D体积的距离以通过剪切所述3D体积来创建近边界;
通过将所述3D体积界定在所述近边界处来创建所述3D体积的截头锥体,所述界定包括利用在所述近边界处基本上垂直于所述参考向量的平面来剪切所述3D体积。
16.根据权利要求14所述的可穿戴计算设备,分析所述移动数据以计算由所述输入对象的所述移动定义的所述形状包括:
分析所述移动数据以确定:所述输入对象的所述移动包括对角线;以及
计算具有与所述对角线相对应的对角的所述形状。
17.根据权利要求14所述的可穿戴计算设备,选择被包括在或部分地被包括在所述3D体积中的所述一个或多个对象包括:
通过将指示符与所述一个或多个对象中的每个对象虚拟地相关联,来视觉地指示被包括在或部分地被包括在所述3D体积中的所述一个或多个对象被选择。
CN201780039933.3A 2016-06-29 2017-06-12 用于选择场景中的对象的系统、方法和可穿戴计算设备 Active CN109416580B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US15/197,484 US10268266B2 (en) 2016-06-29 2016-06-29 Selection of objects in three-dimensional space
US15/197,484 2016-06-29
PCT/US2017/036939 WO2018005051A1 (en) 2016-06-29 2017-06-12 Selection of objects in three-dimensional space

Publications (2)

Publication Number Publication Date
CN109416580A CN109416580A (zh) 2019-03-01
CN109416580B true CN109416580B (zh) 2022-03-29

Family

ID=59078268

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201780039933.3A Active CN109416580B (zh) 2016-06-29 2017-06-12 用于选择场景中的对象的系统、方法和可穿戴计算设备

Country Status (4)

Country Link
US (1) US10268266B2 (zh)
EP (1) EP3479199A1 (zh)
CN (1) CN109416580B (zh)
WO (1) WO2018005051A1 (zh)

Families Citing this family (54)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9003333B2 (en) * 2013-03-04 2015-04-07 Zynga Inc. Sequential selection of multiple objects
US10788948B2 (en) 2018-03-07 2020-09-29 Quantum Interface, Llc Systems, apparatuses, interfaces and implementing methods for displaying and manipulating temporal or sequential objects
US11205075B2 (en) 2018-01-10 2021-12-21 Quantum Interface, Llc Interfaces, systems and apparatuses for constructing 3D AR environment overlays, and methods for making and using same
US10547709B2 (en) 2015-06-18 2020-01-28 Qualtrics, Llc Recomposing survey questions for distribution via multiple distribution channels
US10325568B2 (en) 2015-08-03 2019-06-18 Qualtrics, Llc Providing a display based electronic survey
US10591988B2 (en) * 2016-06-28 2020-03-17 Hiscene Information Technology Co., Ltd Method for displaying user interface of head-mounted display device
US10176640B2 (en) 2016-08-02 2019-01-08 Qualtrics, Llc Conducting digital surveys utilizing virtual reality and augmented reality devices
US11301877B2 (en) 2016-09-01 2022-04-12 Qualtrics, Llc Providing analysis of perception data over time for events
US10403285B1 (en) * 2016-12-05 2019-09-03 Google Llc Methods and apparatus to define virtual scenes using natural language commands and natural gestures
CN112578911A (zh) * 2016-12-06 2021-03-30 美国景书公司 跟踪头部和眼睛的运动的装置和方法
US10466777B2 (en) * 2016-12-07 2019-11-05 LogMeln, Inc. Private real-time communication between meeting attendees during a meeting using one or more augmented reality headsets
US10474336B2 (en) * 2016-12-20 2019-11-12 Adobe Inc. Providing a user experience with virtual reality content and user-selected, real world objects
US20180292952A1 (en) * 2017-04-05 2018-10-11 Riot Games, Inc. Methods and systems for object selection
US10620779B2 (en) * 2017-04-24 2020-04-14 Microsoft Technology Licensing, Llc Navigating a holographic image
KR102432283B1 (ko) 2017-05-01 2022-08-11 매직 립, 인코포레이티드 콘텐츠를 공간 3d 환경에 매칭
US10191566B1 (en) * 2017-07-05 2019-01-29 Sony Interactive Entertainment Inc. Interactive input controls in a simulated three-dimensional (3D) environment
US10445947B2 (en) * 2017-08-01 2019-10-15 Google Llc Methods and apparatus for interacting with a distant object within a virtual reality environment
US10091482B1 (en) * 2017-08-04 2018-10-02 International Business Machines Corporation Context aware midair projection display
US20190057180A1 (en) * 2017-08-18 2019-02-21 International Business Machines Corporation System and method for design optimization using augmented reality
CN114995644A (zh) 2017-09-29 2022-09-02 苹果公司 基于注视的用户交互
US10671238B2 (en) * 2017-11-17 2020-06-02 Adobe Inc. Position-dependent modification of descriptive content in a virtual reality environment
US10514545B2 (en) * 2017-12-08 2019-12-24 Facebook Technologies, Llc Selective tracking of a head-mounted display
KR102556889B1 (ko) 2017-12-22 2023-07-17 매직 립, 인코포레이티드 혼합 현실 시스템에서 가상 콘텐츠를 관리하고 디스플레이하기 위한 방법들 및 시스템
US11386572B2 (en) 2018-02-03 2022-07-12 The Johns Hopkins University Calibration system and method to align a 3D virtual scene and a 3D real world for a stereoscopic head-mounted display
WO2019152619A1 (en) 2018-02-03 2019-08-08 The Johns Hopkins University Blink-based calibration of an optical see-through head-mounted display
JP7112502B2 (ja) 2018-02-22 2022-08-03 マジック リープ, インコーポレイテッド 複合現実システムのためのブラウザ
CA3091026A1 (en) 2018-02-22 2019-08-29 Magic Leap, Inc. Object creation with physical manipulation
US11151791B2 (en) * 2018-04-17 2021-10-19 Edx Technologies, Inc. R-snap for production of augmented realities
DK201870350A1 (en) 2018-05-07 2019-12-05 Apple Inc. Devices and Methods for Measuring Using Augmented Reality
CN109974581B (zh) * 2018-05-07 2021-07-13 苹果公司 使用增强现实进行测量的设备和方法
WO2019217081A1 (en) 2018-05-09 2019-11-14 Apple Inc. Selecting a text input field using eye gaze
US10785413B2 (en) 2018-09-29 2020-09-22 Apple Inc. Devices, methods, and graphical user interfaces for depth-based annotation
CN113711174A (zh) 2019-04-03 2021-11-26 奇跃公司 用混合现实系统在虚拟三维空间中管理和显示网页
EP3726344A1 (en) * 2019-04-16 2020-10-21 InterDigital CE Patent Holdings Method and apparatus for user control of an application and corresponding device
US11107184B2 (en) * 2019-09-17 2021-08-31 Adobe Inc. Virtual object translation
US11189099B2 (en) * 2019-09-20 2021-11-30 Facebook Technologies, Llc Global and local mode virtual object interactions
US11176745B2 (en) * 2019-09-20 2021-11-16 Facebook Technologies, Llc Projection casting in virtual environments
EP3842900A1 (en) * 2019-12-23 2021-06-30 Dassault Systèmes Method for modifying the rendering of a region of a 3d scene in an immersive environment
EP3842911B1 (en) * 2019-12-26 2023-04-05 Dassault Systèmes A 3d interface with an improved object selection
US11003308B1 (en) 2020-02-03 2021-05-11 Apple Inc. Systems, methods, and graphical user interfaces for annotating, measuring, and modeling environments
US11727650B2 (en) 2020-03-17 2023-08-15 Apple Inc. Systems, methods, and graphical user interfaces for displaying and manipulating virtual objects in augmented reality environments
CN113467605B (zh) * 2020-03-31 2024-04-02 托比股份公司 用于对可视化数据进行预处理的方法、计算机程序产品和处理电路系统
CN113628316B (zh) * 2020-05-08 2023-12-01 辉达公司 使用射线锥进行各向异性纹理滤波的技术
CN111831178B (zh) * 2020-06-29 2023-01-17 中国科学院软件研究所 一种基于运动趋势信息的三维环境下辅助目标选择方法及系统
US11615595B2 (en) 2020-09-24 2023-03-28 Apple Inc. Systems, methods, and graphical user interfaces for sharing augmented reality environments
US20220137787A1 (en) * 2020-10-29 2022-05-05 XRSpace CO., LTD. Method and system for showing a cursor for user interaction on a display device
US11170540B1 (en) 2021-03-15 2021-11-09 International Business Machines Corporation Directional based commands
CN113157088B (zh) * 2021-03-18 2022-04-08 浙江通鹏智能科技有限公司 一种基于刑事侦查虚拟场景的数据处理方法和装置
US20220308659A1 (en) * 2021-03-23 2022-09-29 Htc Corporation Method for interacting with virtual environment, electronic device, and computer readable storage medium
CN113222337B (zh) * 2021-04-06 2022-07-29 盈机技术服务(北京)有限公司 一种远程脆弱性评估方法、装置以及存储介质
US11941764B2 (en) 2021-04-18 2024-03-26 Apple Inc. Systems, methods, and graphical user interfaces for adding effects in augmented reality environments
US11882107B2 (en) * 2021-05-11 2024-01-23 Microsoft Technology Licensing, Llc Application single sign-on determinations based on intelligent traces
CN115328309A (zh) * 2022-08-10 2022-11-11 北京字跳网络技术有限公司 用于虚拟对象的交互方法、装置、设备和存储介质
US11991222B1 (en) 2023-05-02 2024-05-21 Meta Platforms Technologies, Llc Persistent call control user interface element in an artificial reality environment

Family Cites Families (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7324085B2 (en) 2002-01-25 2008-01-29 Autodesk, Inc. Techniques for pointing to locations within a volumetric display
US20050108620A1 (en) 2003-11-19 2005-05-19 Microsoft Corporation Method and system for selecting and manipulating multiple objects
US7667700B1 (en) 2004-03-05 2010-02-23 Hrl Laboratories, Llc System and method for navigating operating in a virtual environment
US7348997B1 (en) 2004-07-21 2008-03-25 United States Of America As Represented By The Secretary Of The Navy Object selection in a computer-generated 3D environment
EP1804154A3 (en) 2005-12-27 2012-08-08 Poston Timothy Computer input device enabling three degrees of freedom and related input and feedback methods
US8073198B2 (en) 2007-10-26 2011-12-06 Samsung Electronics Co., Ltd. System and method for selection of an object of interest during physical browsing by finger framing
JP5569062B2 (ja) * 2010-03-15 2014-08-13 オムロン株式会社 ジェスチャ認識装置、ジェスチャ認識装置の制御方法、および、制御プログラム
WO2013074997A1 (en) 2011-11-18 2013-05-23 Infinite Z, Inc. Indirect 3d scene positioning control
US9122321B2 (en) * 2012-05-04 2015-09-01 Microsoft Technology Licensing, Llc Collaboration environment using see through displays
US9116666B2 (en) 2012-06-01 2015-08-25 Microsoft Technology Licensing, Llc Gesture based region identification for holograms
US9218685B2 (en) 2012-06-05 2015-12-22 Apple Inc. System and method for highlighting a feature in a 3D map while preserving depth
TWI587175B (zh) 2012-09-11 2017-06-11 元智大學 Dimensional pointing control and interaction system
US10503359B2 (en) 2012-11-15 2019-12-10 Quantum Interface, Llc Selection attractive interfaces, systems and apparatuses including such interfaces, methods for making and using same
US10133342B2 (en) 2013-02-14 2018-11-20 Qualcomm Incorporated Human-body-gesture-based region and volume selection for HMD
US9003333B2 (en) 2013-03-04 2015-04-07 Zynga Inc. Sequential selection of multiple objects
US20140282220A1 (en) * 2013-03-14 2014-09-18 Tim Wantland Presenting object models in augmented reality images
US9329682B2 (en) 2013-06-18 2016-05-03 Microsoft Technology Licensing, Llc Multi-step virtual object selection
US9201578B2 (en) * 2014-01-23 2015-12-01 Microsoft Technology Licensing, Llc Gaze swipe selection
KR101655818B1 (ko) * 2014-12-11 2016-09-08 현대자동차주식회사 웨어러블 글래스, 그 제어 방법 및 차량 제어 시스템
CN105701445A (zh) * 2014-12-15 2016-06-22 爱信精机株式会社 判定装置及判定方法
US9728010B2 (en) * 2014-12-30 2017-08-08 Microsoft Technology Licensing, Llc Virtual representations of real-world objects

Also Published As

Publication number Publication date
US20180004283A1 (en) 2018-01-04
EP3479199A1 (en) 2019-05-08
US10268266B2 (en) 2019-04-23
WO2018005051A1 (en) 2018-01-04
CN109416580A (zh) 2019-03-01

Similar Documents

Publication Publication Date Title
CN109416580B (zh) 用于选择场景中的对象的系统、方法和可穿戴计算设备
CN109074441B (zh) 基于注视的认证
US10484597B2 (en) Emotional/cognative state-triggered recording
EP3469459B1 (en) Altering properties of rendered objects via control points
US10068134B2 (en) Identification of objects in a scene using gaze tracking techniques
EP3479200B1 (en) Interaction with virtual objects based on determined restrictions
US10762429B2 (en) Emotional/cognitive state presentation
US9972134B2 (en) Adaptive smoothing based on user focus on a target object
US20170351330A1 (en) Communicating Information Via A Computer-Implemented Agent

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
GR01 Patent grant
GR01 Patent grant