用于基于手势的交互的系统和方法

文档序号:1785360 发布日期:2019-12-06 浏览:20次 >En<

阅读说明:本技术 用于基于手势的交互的系统和方法 (System and method for gesture-based interaction ) 是由 拉尔夫·布伦纳 安德鲁·埃米特·塞利格曼 简欣怡 约翰·菲利普·斯托达德 陈柏瑞 埃隆·沙 于 2017-04-13 设计创作,主要内容包括:各种公开实施例呈现了基于深度的用户交互系统,其促进了自然和沉浸式用户交互。特别地,各种实施例将沉浸式视觉呈现与自然和流畅的手势动作集成在一起。这种集成促进了更快速的用户采用和更精确的用户交互。一些实施例可以利用本文所公开的特定形状因子来适应用户交互。例如,在界面的显示器顶上的壳体中的双深度传感器布置可以促进深度视场,其适应比其他可能更自然的手势识别。在一些实施例中,可以将这些手势组织到用于用户对界面的通用控制以及用户对界面的应用特定控制的框架中。(Various disclosed embodiments present a depth-based user interaction system that facilitates natural and immersive user interaction. In particular, various embodiments integrate immersive visual presentations with natural and fluent gesture actions. This integration facilitates faster user adoption and more accurate user interaction. Some embodiments may utilize the particular form factors disclosed herein to accommodate user interaction. For example, a dual depth sensor arrangement in the housing atop the display of the interface may facilitate a depth field of view that accommodates gesture recognition that is more natural than otherwise possible. In some embodiments, these gestures may be organized into a framework for user-generic control of the interface as well as user-application-specific control of the interface.)

用于基于手势的交互的系统和方法

相关申请的交叉引用

本申请要求2016年12月5日提交的题为“CALIBRATION SYSTEMS AND METHODS FORDEPTH-BASED INTERFACES WITH DISPARATE FIELDS OF VIEW(具有不同视场的基于深度的界面的校准系统和方法)”的美国非临时专利申请15/369,799的权益和优先权以及2017年4月3日提交的题为“SYSTEMS AND METHODS FOR GESTURE-BASED INTERACTION(用于基于手势的相互作用的系统和方法)”的美国非临时专利申请15/478,201的权益和优先权,其全部内容为了所有目的通过引用整体并入本文。

技术领域

所公开的各种实施例涉及基于深度的人机交互的优化和改进。

背景技术

人机交互(HCI)系统在我们的社会中变得越来越普遍。随着这种日益增加的流行度,这种交互的性质发生了演变。打孔卡已被键盘超越,键盘本身由鼠标进行补充,鼠标本身现在由触摸屏显示器进行补充,等等。甚至现在,各种机器视觉方法可以促进视觉的用户反馈,而不是机械的用户反馈。机器视觉允许计算机解释来自它们的环境中的图像,从而例如识别用户的面部和手势。一些机器视觉系统依赖于其周围环境的灰度或RGB图像来推断用户行为。一些机器视觉系统还可以使用基于深度的传感器,或者仅依赖于基于深度的传感器,来识别用户行为(例如,Microsoft KinectTM、IntelRealSenseTM、ApplePrimeSenseTM、Structure SensorTM、Velodyne HDL-32E LiDARTM、Orbbec AstraTM等)。

对于许多用户来说,与基于深度的用户界面系统的交互看起来好像不自然。当系统未能提供与自然和流畅的手势运动相关联的沉浸式视觉体验时,这种不适可能特别严重。因此,需要改进的基于深度的界面,其既适应用户期望又适应典型的用户运动。此类系统还可能需要用作通用平台,开发人员可以从中实现他们自己的自定义应用。

具体实施方式

示例用例概述

所公开的各种实施例可以与安装的或固定的深度相机系统结合使用以检测例如用户手势。图1是图示出了在其中可以实现各种公开实施例的各种情形100a-100c的一系列用例图。在情形100a中,用户105正站立在自助服务终端(kiosk)125前,自助服务终端125可以包括图形显示器125a。不是要求用户物理地触摸显示器125a上的感兴趣项目,而是系统可以允许用户在项目处“指点”或“做手势”,并且从而与自助服务终端125交互。

可以将深度传感器115a安装在自助服务终端125上或连接到自助服务终端125或在自助服务终端125附近,使得深度传感器115a的深度捕获场120a(在本文中也被称为“视场”)包含(encompass)由用户105做出的手势110。因此,当用户通过在深度数据捕获场120a内做出手势而指向例如显示器125a上的图标时,深度传感器115a可以向处理系统提供深度值,处理系统可以推断所选择的图标或要被执行的操作。处理系统可以被配置为执行本文所公开的各种操作,并且可以被特别配置或设计用于与深度传感器进行接口(实际上,可以将它嵌入在深度传感器中)。因此,处理系统可以包括硬件、固件、软件或这些组件的组合。处理系统可以位于深度传感器115a内、自助服务终端125内、远程位置处等等,或者可以分布在各个位置。在自助服务终端125上运行的应用可以只是接收被选图标的指示,并且可以不被特别设计为考虑是经由物理触摸还是基于深度的选择确定来进行选择。因此,在一些实施例中,深度传感器115a和处理系统可以是与自助服务终端125分开的独立产品或设备。

在情形100b中,用户105正站立在家庭环境中,该家庭环境可以包括一个或多个深度传感器115b、115c和115d,每个深度传感器分别具有它们自己对应的深度捕获场120b、120c和120d。深度传感器115b可以位于电视或其他显示器130上或附近。深度传感器115b可以被用来捕获来自用户105的手势输入并将深度数据转发到在显示器130上或与显示器130一起运行的应用。例如,游戏系统、计算机会议系统等可以使用显示器130运行,并且可以响应于用户105的手势输入。对照而言,深度传感器115c可以被动地观察用户105,作为单独的手势或行为检测应用的一部分。例如,家庭自动化系统可以响应由用户105单独或结合各种语音命令做出的手势。在一些实施例中,深度传感器115b和115c可以与单个应用共享其深度数据,以便于从多个视角观察用户105。障碍物和非用户动态和静态物体,例如沙发135,可以存在于环境中,并且可以被包括或不被包括在深度捕获场120b、120c中。

注意,虽然可以将深度传感器放置在用户105可见的位置(例如,如所描绘的,附着在电视机、自助服务终端等的顶部或安装在电视机、自助服务终端等的侧面,例如具有传感器115a-115c的电视机、自助服务终端等),但是可以将深度传感器集成在另一个物体内。这样的集成传感器可以能够收集深度数据而不易被用户105看见。例如,可以将深度传感器115d集成到单向镜后面的电视130中并且代替传感器115b用来收集数据。单向镜可以允许深度传感器115d收集数据而用户105不会意识到数据正被收集。这可以允许用户在他们的移动中不太刻意并且在交互期间表现得更自然。

虽然可以将深度传感器115a-115d定位成平行于墙壁,或者在与来自地板的法向矢量正交的方向上具有深度场,但情况并非总是如此。实际上,可以将深度传感器115a-115d定位成各种角度,其中一些角度将深度数据捕获场120a-120d放置成倾斜于地板和/或墙壁的角度。例如,可以将深度传感器115c定位在天花板附近并且引导以俯视地板上的用户105。

在某些情形中,深度传感器和地板之间的这种关系可能是极端的和动态的。例如,在情形100c中,深度传感器115e位于货车140的后部。可以将货车停放在倾斜平台150前以便于装载和卸载。深度传感器115e可以被用来推断用户手势以指导货车的操作(例如,向前、向后移动)或执行其他操作(例如,发起电话呼叫)。因为货车140定期进入新环境,所以新的障碍物和物体145a、b可以定期进入深度传感器115e的深度捕获场120e。另外,倾斜平台150和不规则地抬高的地形可以经常将深度传感器115e和对应的深度捕获场120e相对于用户105所站立的“地板”放置成倾斜角度。这种变化会使得关于静态和/或受控环境中的深度数据的假设复杂化(例如,关于地板的位置做出的假设)。

所公开的各种实施例考虑了用户与包括两个或更多个深度传感器的反馈系统的交互。在一些实施例中,深度传感器设备还可以包括视觉图像传感器,例如RGB传感器。例如,图2是图示出了在一些实施例中可以出现的与示例显示结构205的示例用户交互200的透视用例图。可以将显示结构205放置在商场、购物中心、杂货店、前台等等中。在一些实施例中,高度220a至少与用户210一样大或稍大,例如7-10英尺。长度220b可以是用户210的宽度的几倍,例如,以在用户210走过显示结构205的长度时促进交互。

示例显示结构205包括屏幕230。屏幕230可以包括单个大屏幕、彼此相邻放置的多个较小屏幕、投影等。在一个示例交互中,用户可以在屏幕的一部分处做手势215并且系统可以呈现视觉反馈,诸如在屏幕上与手势的投影225相对应的位置处的光标230b。显示结构205可以使用一个或多个深度传感器C1,C2,...,CN中的一个或多个来监视用户210的移动和手势。在图2中描绘的示例中,至少存在三个相机。省略号245指示在一些实施例中可以存在多于三个相机,并且可以相应地调整显示结构205的长度220b。在该示例中,传感器在显示结构205的顶部上均匀地间隔开,但是在一些实施例中,它们可以不均匀地间隔开。

尽管在本申请中术语“相机”和“传感器”可以互换使用,但是人们将认识到深度传感器不需要或促进光学图像的“相机捕获”,例如RGB或灰度图像,虽然深度传感器可以另外包括该功能性。在一些实施例中,计算机系统250可以采取各种形式,例如,预编程芯片、电路、现场可编程门阵列(FPGA)、小型计算机等。人们将认识到“计算机系统”、“处理系统”等等可以在本文中互换使用。类似地,人们将容易理解,被采用来创建用于识别手势的系统的训练系统可以但不必是与执行现场识别的测试系统相同的系统。因此,在一些实施例中,“系统”可以是与图1和图2的界面不同的计算机,存在于例如发生原位分类的场外。

示例深度数据

类似于普通光学图像相机,深度传感器Error!Reference source notfound.15a-Error!Reference source not found.15e,C1,C2,...,CN可以随时间捕获深度数据的各个“帧”(frame)。每个“帧”可以包括在视场中测量的深度的三维值的集合(尽管人们将容易识别多种表示方式,例如用于深度确定的飞行时间分析)。这些三维值可以被表示为例如三维空间中的点、从深度传感器中以各种角度发射的光线的距离等。图3是可以在一些实施例中使用的示例深度数据305的一系列透视图300a和侧视图300b。在该示例中,用户在站立在墙壁前时用其右手指向深度传感器。他左边的桌子也被捕获在视场中。因此,与用户310相关联的深度值包括与用户的头部310a相关联的部分和与用户的延伸右臂310b相关联的部分。类似地,用户背后的背景反映在深度值320中,包括与该桌子相关联的那些值315。

为了便于理解,侧视图300b还包括在帧捕获的时刻对深度传感器的视场335的描绘。深度传感器在原点处的角度330使得用户的上躯干而不是用户的腿已经被捕获在帧中。同样,仅提供该示例以适应读者的理解,并且读者将理解,一些实施例可以捕获整个视场而不忽略用户的任何部位。例如,图1A-图1C中描绘的实施例可以捕获少于所有交互用户的信息,而图2的实施例可以捕获整个交互用户(在一些实施例中,离地面超过8cm的所有内容都出现在深度视场中)。当然,取决于系统的定向、深度相机、地形等,反之亦然。因此,人们将理解,明确考虑了在所公开的示例上的变型(例如,下面讨论了参考躯干部位的分类,但是一些实施例将还考虑腿、脚、衣服、用户配对、用户姿势等的分类)。

类似地,尽管图3将深度数据描绘为“点云”(point cloud),但是人们将容易地认识到从深度传感器接收的数据可以以许多不同的形式出现。例如,深度传感器,诸如深度传感器115a或115d,可以包括网格状的检测器阵列。这些检测器可以分别从深度捕获场120a和120d的视角获取场景的图像。例如,一些深度检测器包括产生电磁辐射的“发射器”。从发射器到场景中的物体,到网格单元检测器之一的行进时间可以对应于与该网格单元相关联的深度值。可以将这些检测器中的每一个处的深度确定输出为深度值的二维网格。本文使用的“深度帧”可以指代这样的二维网格,但是也可以指代从深度传感器获取的三维深度数据的其他表示(例如,点云、超声图像等)。

示例深度数据剪裁方法

许多应用想要从深度数据305推断用户的手势。从原始深度数据实现这一点可能非常具有挑战性,因此一些实施例应用预处理过程来隔离感兴趣的深度值。例如,图4是图示出在一些实施例中可以应用于图3的深度数据305的经由平面剪裁的数据隔离的一系列视图。特别地,透视图405a和侧视图410a图示出了深度数据305(包括与用户310相关联的部分和与背景320相关联的部分)。透视图405b和侧视图410b示出了相对于地板平面415的深度数据305。地板平面415不是深度帧数据305的一部分。相反,地板平面415可以由处理系统估计或者基于上下文假设。

透视图405c和侧视图410c引入墙壁平面420,其也可由处理系统假设或估计。地板和墙壁平面可以被用作“剪裁平面”以从后续处理中排除深度数据。例如,基于使用深度传感器的假设上下文,处理系统可以将墙壁平面420放置在深度传感器的视场的最大范围的中间。可以从后续处理中排除该平面后面的深度数据值。例如,可以排除背景深度数据的部分320a,但是可以保留部分320b,如透视图405c和侧视图410c中所示。

理想地,从后续处理中也将排除背景的部分320b,因为它不包含与用户相关的数据。如透视图405d和侧视图410d中所示,一些实施例通过基于上下文将地板平面415“抬高”到位置415a来进一步排除深度数据。这可能导致部分320b被排除在将来的处理之外。这些剪裁操作还可以移除将不包含手势的用户数据310d的部分(例如,下躯干)。如前面所提及,读者将理解,提供该示例仅仅是为了便于理解,并且在一些实施例中(例如,如图2中所出现的那些系统),可以完全省略剪裁,或者可以仅在非常靠近地板的地方发生剪裁,以便仍然捕获腿甚至脚数据。因此,仅剩下部分310c以用于将来的处理。人们将认识到图4简单地描绘了针对给定上下文的一种可能的剪裁过程。可以以类似的方式解决不同的上下文,例如手势包括用户的下躯干的那些情形。许多这样的操作可能仍然需要对地板415和墙壁420平面进行准确评估以执行精确剪裁。

示例深度数据分类方法

在隔离可能包含感兴趣的手势数据的深度值(在一些实施例中可能不会发生)之后,处理系统可以将深度值分类为各种用户部分。这些部分或“类别”可以反映用户身体的特定部位并且可以被用来推断手势。图5是在一些实施例中可以应用于图4的隔离数据的示例组件分类。最初为500a,被提取的数据310c可以是未分类的。在分类500b之后,每个深度值可以与给定的分类相关联。分类的粒度可以反映感兴趣的手势的特征。例如,一些应用可能对用户正在查看的方向感兴趣,并且因此可以将头部分为“头部”类别515和“鼻子”类别520。基于“头部”类别515和“鼻子”类别520的相对方向,系统可以推断出用户的头部转动的方向。由于在该示例中胸部和躯干通常与感兴趣的手势不相关,因此仅使用广泛的分类“上躯干”525和“下躯干”535。类似地,上臂的细节不像其他部分那样相关,因此可以使用单个类别“右臂”530c和单个类别“左臂”530b。

相反,下臂和手可能与手势确定非常相关,并且可以使用更细粒度的分类。例如,可以使用“右下臂”类别540、“右手腕”类别545、“右手”类别555、“右拇指”类别550和“右手指”类别560。尽管未被示出,但也可以针对使用针对左下臂的互补类别。利用这些粒度分类,系统可以通过比较被分类的深度点的相对定向来推断例如用户指向的方向。

示例深度数据处理管道

图6是图示出可以在一些实施例中执行的一些示例深度数据处理操作600的流程图。在框605处,处理系统可以接收深度传感器数据帧(例如,诸如帧305之类别的帧)。一般而言,数据然后可以通过“预处理”610、“分类”615和“应用”620阶段。在“预处理”610期间,处理系统可以使用帧数据或者基于假设或深度相机配置细节在框625处执行“平面检测”(再次,尽管在许多实施例中可以不应用预处理和平面检测)。这可以包括例如关于图4讨论的剪裁平面,诸如地板415平面和墙壁平面420。这些平面例如可以被用来在框630处隔离感兴趣的深度值,例如,如上面关于图4所描述。

在分类615期间,系统可以在框635处将深度值群组与一个类别(或在一些实施例中,多个类别)相关联。例如,系统可以使用如关于图5所讨论的类别来确定分类。在框640处,系统可以确定每类别统计数据(例如,与每个类别相关联的深度值的数量、对正在进行的系统训练和校准的影响等)。示例类别可以包括:鼻子、左手食指、左手其他手指、左掌心、左手腕、右手食指、右手其他手指、右掌心、右手腕和其他。

在应用620操作期间,系统可以使用类别确定来推断与特定应用目标相关的用户行为。例如,HCI界面可以寻求确定用户将他们的手当前指向的位置。在该示例中,在框645处,系统将选择/隔离被分类为与“手”和/或“手指”相关联的深度值。根据这些深度值(以及可能与用户的手臂相关联的深度值),系统可以在框650处估计在该特定帧中用户所指向的方向(人们将认识到也可以执行除了该指示示例之外的其他手势)。然后可以将该数据发布到应用程序,例如,自助服务终端操作系统、游戏控制台操作系统等。在框655处,可以针对接收的附加帧再次执行操作。人们将认识到,该过程可以被用来通过比较例如类别在各帧之间的位移(例如,当用户从左向右移动他们的手时)来推断跨越各帧的手势。

图7是图示出在一些实施例中可以被用来执行深度数据处理操作的示例硬件实现705的硬件框图。帧接收系统710可以从深度传感器接收深度帧。帧接收系统710可以是固件、软件或硬件(例如,FPGA实现、片上系统等)。帧可以被直接传递、或者高速缓存并随后传递到预处理模块715。预处理模块715也可以是固件、软件或硬件(例如,FPGA实现、片上系统等)。预处理模块可以执行图6中讨论的预处理操作610。然后,可以将预处理结果(例如,隔离的深度值310c)提供给分类模块720。分类模块720可以是固件、软件或硬件(例如,FPGA实现、片上系统等)。分类模块720可以执行图6中讨论的分类操作615。然后可以将分类的深度值提供给发布模块725。发布模块725可以被配置为将分类结果打包成适合于各种不同应用的形式(例如,如620处所指定的)。例如,可以为自助服务终端操作系统、游戏操作系统等提供接口规范,以接收分类的深度值并从中推断各种手势。

示例交互式系统形状因子(form factor)

各种实施例可以包括用于一个或多个深度传感器的壳体框架。壳体框架可以被专门设计来预测用户的输入和行为。在一些实施例中,显示系统可以与壳体框架集成以形成模块化单元。图8是在一些实施例中可以实现的具有多角度深度传感器壳体的示例宽屏显示器的示意图。例如,系统可以包括大的单个显示器835,用户840可以使用例如他们的手845、手臂或整个身体经由各种空间、时间和时空手势830来与显示器835交互。例如,通过用他们的手845的手指指向,用户可以引导光标825的运动。显示器835可以经由例如直接线路连接810a、无线连接815c和815a、或用于传送所期望的显示输出的任何其他合适的装置来与计算机系统805通信。类似地,计算机系统805可以经由直接线路连接810b、无线连接815b和815a、或用于传送所期望的显示输出的任何其他合适的装置来与包含在壳体框架820a-820c中的一个或多个深度传感器通信。尽管在该示例中单独示出,但是在一些实施例中,计算机系统805可以与壳体框架820a-820c或显示器835集成在一起,或者在场外被包含。

壳体框架820a-820c中的每一个可以包含一个或多个深度传感器,如本文其他地方所述。计算机系统805可以具有可用于将在每个传感器处获取的深度数据与相对于显示器835的全局坐标系相关联的变换。这些变换可以使用校准过程来实现,或者可以例如预设为出厂默认值。虽然这里示出为单独的框架,但是在一些实施例中,框架820a-820c可以是单个框架。框架820a-820c可以被固定到显示器835、附近的墙壁、单独的安装平台等。

虽然一些实施例具体考虑提供与壳体框架连接的显示系统,但是人们将容易理解,可以以替代的方式构造系统以实现基本相同的功能。例如,图9是在一些实施例中可以实现的具有多角度深度传感器壳体框架920a-920c的示例投影显示器的示意图。这里,框架920a-920c已经被固定到墙壁935,例如用户940办公室、家庭或购物环境中的墙壁。投影仪950(人们将理解,如果墙壁935的材料是合适的,在一些实施例中也可以使用从墙壁935后面的后投影)。如省略号955a-955c所指示,墙壁935可以在许多方向上延伸超出交互区域。可以将投影仪950定位成使得将所期望的图像投影在墙壁935上。以这种方式,用户可以再次使用他们的手945来做手势930,并从而引导光标925的运动。类似地,投影仪950可以经由直接线路连接910a、910b、无线连接915a-915c或任何其他合适的通信机制来与计算机系统905和框架920a-920c中的深度传感器通信。

虽然图8和图9描述了具有“单片”(monolithic)显示器的示例实施例,但是在一些实施例中,可以将显示器和框架壳体设计成使得形成可以集成为整体的“模块化”单元。例如,图10是在一些实施例中可以实现的具有多角度深度传感器壳体框架集合的示例复合显示器1035的示意图。同样,用户1040可以使用手1045手势1030来与所显示的项目例如光标1025交互。计算机系统1050(这里在现场示出并且与其他组件分开)可以经由直接线路连接1010a、1010b、无线通信1015a、1015b、1015c或任何其他合适的通信方法来与深度传感器和显示器通信。

然而,在该示例实施例中,复合系统1035的每个垂直段可以包括单独的模块。例如,一个模块1060可以包括深度传感器壳体框架1020a和三个显示器1035a-1035c。计算机系统1050可以采用每个垂直模块的各个显示器来生成跨越它们中的一个或多个的集合合成图像。剩余的深度传感器壳体框架1020b、1020c可以类似地与它们自己的显示器相关联。人们将理解,在一些实施例中,每个模块将具有其自己的计算机系统,而如此处所示,在一些实施例中,可以存在与若干或所有模块相关联的单个计算机系统。(一个或多个)计算机系统可以处理深度数据并将图像提供给(一个或多个)它们相应模块上的显示器。

示例模块化交互式系统维度

图11是在一些实施例中可以实现的具有图10的多角度深度传感器壳体的复合显示器的示意图,包括模块化组件1110c在系统中的周转。特别地,从透视图1115a、正视图1115b和侧视图1115c示出模块化组件1110c。计算机系统1105或独立的计算机系统可以被用来控制一个或多个显示器并接收和处理深度传感器数据。计算机系统1105可以被用来控制用于所有组件1110a-1110c的显示和处理数据,或仅控制单个组件,例如组件1110c。

图12A-图12C提供了关于特定示例复合显示器的具体维度的更多细节。特别地,图12A是在一些实施例中可以实现的具有图10的多角度深度传感器壳体的复合显示器的仰视示意图。在该示例中,模块被布置成一起产生显示器网格1240,显示器网格1240在一些实施例中具有约365厘米的复合宽度1215d并且在一些实施例中具有约205厘米的高度1215b。在一些实施例中,深度传感器壳体高度1215a可以是约127mm。各个显示器可以在一些实施例中具有约122厘米的宽度1215c并且在一些实施例中具有约69厘米的高度1215f。在一些实施例中,显示器可以是具有1920×1080像素的分辨率的HDMI显示器。在一些实施例中,显示器1240可以经由支撑结构1245从地面1225升高约10厘米的距离1215e。在显示器1240的顶部可以是一个或多个深度传感器壳体框架1205,这里被透明地示出,以露出深度传感器1210a-1210c中的一个或多个。

图12B是在一些实施例中可以实现的具有图10的多角度深度传感器壳体的复合显示器的俯视示意图。请注意,不再示出深度传感器和壳体以便于理解。在区域1225d内,深度传感器可以能够收集深度数据。因此,当与系统交互时,用户1235将站立在该区域内。在一些实施例中,该区域可以在显示器1240前面具有约300厘米的距离1230f,并且约是显示器的宽度1215d。在该实施例中,可以从交互中排除侧面区域1225a和1225c。例如,可以通知用户避免尝试在这些区域内进行交互,因为它们包括与分布在系统上的深度传感器的较不理想的相对角度(在一些实施例中,这些区域可能仅仅产生过多的噪声而是不可靠的)。安装技术人员可以相应地标注或封锁这些区域。这些区域1225a和1225c可以包括在一些实施例中距离墙壁1250约为350厘米的长度1230b、1230g以及在一些实施例中距离有效区域1225d约为100厘米的距离1230a、1230h。可以将区域1225b提供在支撑结构1245和墙壁支撑结构1250或其他屏障之间,以促进用于一个或多个计算系统的空间。这里,在一些实施例中针对该计算系统空间可以预留长度1215d,并且使用约40厘米的距离1230d。在一些实施例中,支撑结构1245可以延伸遍及区域1225b,并且计算机系统可以停留在其上或内部。

图12C是在一些实施例中可以实现的具有图10的多角度深度传感器壳体的复合显示器的侧视示意图。

人们将理解,上面提供的示例维度仅结合该具体示例用以帮助用户理解特定实施例。因此,可以容易地改变维度以实现基本相同的目的。

模块化系统的示例深度传感器框架-托架安装

在不同实施例中,用来保护深度传感器的壳体框架可以采取多种形式。图13A是在一些实施例中可以实现的多角度深度传感器壳体框架的框架中的组件的分解示意图。图13B是在一些实施例中可以实现的多角度深度传感器壳体的框架中的组件的组装示意图。

框架可以包括上盖1310、后盖1315、底板1340以及两个传感器观看面板1355a和1355b(为了视觉经济(visual economy),在图13B中图示出,但未在图13A中图示出)。可以将观看面板1355a和1355b拧入到位(例如,拧入到一个或多个托架间隔件1305a-1305f中,例如利用将螺钉固定在相对侧上的垫圈)、夹紧或以其他方式机械地耦合到壳体,并且也可以通过成角度的部分1335和1340a将其保持就位。上盖1310在一些实施例中可以具有约1214mm的长度1360b并且在一些实施例中可以具有约为178mm的宽度1360a。在一些实施例中,高度1360c可以约为127mm。

端板1305a和1305f可以被构造成预期上盖1310、后盖1315和两个传感器观看面板1355a和1355b的所期望角度。特别地,在一些实施例中,角度1370a可以是约25°,在一些实施例中,角度1370b可以是约35°,并且在一些实施例中,角度1370c可以是约30°。为了清楚起见,在所描绘的实施例中,上盖1310和底板1340基本上平行。因此,在该示例中,顶板1310和背板1315之间的角度可以是约90°。类似地,底板1340和背板1315之间的角度可以是约90°。这些角度不仅可以呈现更美观的设计,而且通过符合间隔件维度,它们还可以促进壳体作为整体的结构完整性。

在一些实施例中,长度1375a可以是约97mm,在一些实施例中,长度1375b可以是约89mm,在一些实施例中,盖脊1335的长度1375c可以是约6mm,在一些实施例中,传感器观看面板1355a的长度1375d可以是约56mm,在一些实施例中,传感器观看面板1355b的长度1375e可以是约54mm,并且在一些实施例中,长度1375f可以是约10mm。

上盖1310可以包括与底板部分1340基本平行的部分1325、成角度部分1330、以及用于保持上部传感器观看面板1355a的成角度保持部分成角度部分1335。

背板1315可以包括四个切口凹槽或***部1320a、1320b、1320c和1320d。如本文所讨论的,在一些实施例中可以存在这些凹槽以接收间隔件1305b-1305e,从而确保将它们固定在壳体内的期望位置中。人们将理解,凹槽的数量可以与间隔件的数量相同或不同,因为可能希望仅固定一些间隔件。

底板1345可以包括成角度的前部1340a(凸片或折叠部)和成角度的后部1340b,用于至少部分地保持相邻的面板。底板1345可以在其成角度的后部1340b上包括两个切口***部1350a和1350b。这可导致成角度的后部1340b的“凸起”部分1345a、1345b和1345c。

框架内可以是间隔件托架1305a-1305f(也简称为“间隔件”或“托架”)中的一个或多个。虽然间隔件1305a和1305f可以用作端板,但是间隔件1305b-1305e可以完全或基本上在壳体框架内。间隔件托架1305a-1305f不需要具有相同的维度。例如,支架托架1305d可以具有比间隔件托架1305b、1305c、1305e更短的长度。如下所讨论的,间隔件托架1305a-1305c、1305e和1305f可以被用来确保壳体的结构完整性——即使当例如将负载放置在部分1325的顶部时。较短的支架托架1305d提供空间以用于安装传感器对,但也可有助于壳体的结构完整性。在一些实施例中,支架托架1305d可以通过螺钉固定到底板1340和上盖1310。

图14A是从两个视角1405a和1405b看的在一些实施例中可以实现的图13A的间隔件组件例如组件1305a或1305e的视图。视角1405a相对于视角1405b旋转基本上90°,从而呈现由延伸部1425a-1425f形成的凹形部分。延伸部1425a-1425f本身可以由空间1410a-1410f分开。图14B是从两个角度1420a和1420b看的在一些实施例中可以实现的图13A的镜像间隔件组件例如组件1305b或1305f的视图。视角1420b相对于视角1420a旋转基本上90°,从而呈现由延伸部1430a-1430f形成的凹形部分。延伸部1430a-1430f本身可以由空间1415a-1415f分开。

图15是从两个角度1505a和1505b看的在一些实施例中可以实现的图13A的支架托架组件例如组件1305d的视图。视角1505a相对于视角1505b旋转基本上90°,从而呈现由延伸部1520a-1520e形成的凹形部分。延伸部1520a-1520e本身可以由空间1515a-1515d分开。

图16是在一些实施例中可以实现的多角度深度传感器壳体的框架中的组件的分解示意图,其包括传感器对接收的支架托架间隔件。再次,尽管在图像中示出了特定数量的间隔件以便于理解,但是人们将理解,在不同的实施例中可以存在比这里所描绘的更多或更少的间隔件。如上所讨论的,壳体可以包括上板1610、背板1615和底板1640(为了视觉经济,未示出传感器观看面板)。虽然间隔件1605a、1605b、1605c、1605e和1605f为壳体提供结构支撑,但是相对于其他间隔件1605a、1605b、1605c、1605e和1605f,支架间隔件托架1605d可以更短并且凹入,以便适应与一对深度传感器1660的耦合。在该示例中,在隔离视图1600a中示出的支架间隔件托架1605d具有两个孔1670a、1670b,用于接收螺钉、钉子、螺栓或用于将深度传感器1660固定到支架间隔件托架1605d的其他装置。例如,深度传感器1660本身可以包括安装孔,螺钉可以穿过该安装孔以将传感器固定就位(例如,正是某些版本的RealSenseTM深度传感器系统的情况)。

在一些实施例中,当将间隔件1605a和1605f固定到壳体的每个端部时,间隔件1605b-1605e可以在壳体内自由移动。以这种方式,安装技术人员可以将系统配置为系统环境和计划使用的特定环境。然而,在一些实施例中,凹槽1620a-1620d可以接收间隔件托架1605b-1605e中的每一个,从而确保它们放置在壳体内的特定位置中。该预定定位可能是有用的,例如当壳体作为壳体集合中的一个壳体而被运输以作为复合装置的一部分要被安装时。在一些实施例中,凹槽可以仅容纳特定间隔件,从而迫使技术人员安装特定配置。然而,在一些实施例中,例如,如这里所示,每个凹槽可以能够接收四个间隔件中的任何一个。在这些实施例中,技术人员因此可以自由地选择将深度传感器最佳定位在四个位置中的哪一个处,从而实现它们的任务。因此,在这里示出的示意性俯视图1600b中,间隔件1605d和固定的传感器对1660可以位于偏离壳体中心的位置处。

为了进一步阐明参考图16讨论的间隔件放置的可能动机,图17是在一些实施例中可以实现的示例用户界面的多角度深度传感器壳体中的可能的传感器放置配置的示意图。特别地,用户界面1700包括串联的三个单元1705a-1705c。每个单元可以包括三个垂直相邻的显示器和对应的传感器壳体1710a-1710c。在每个传感器壳体1710a-1710c内,间隔件位置可以被配置为预期壳体的深度传感器在整个用户界面中的作用。例如,传感器对的位置可以在每个模块之间略微变化,因为深度传感器的光学间隔不同于每个显示屏的间隔。

因此,如针对中间的传感器壳体1710b的示意俯视剖视图1715b中所示,可以将缩短的支架托架1720b和对应的深度传感器对定位在壳体1710b的中心。对照而言,如针对右侧传感器壳体1710c的示意俯视剖视图1715c中所示,可以将缩短的支架托架1720c和对应的深度传感器对定位在相对于壳体1710c的中心的偏移1725b处。类似地,如针对左侧传感器壳体1710a的示意俯视剖视图1715a中所示,可以将缩短的支架托架1720a和对应的深度传感器对定位在相对于壳体1710a的中心的偏移1725a处。

模块化系统的示例深度传感器框架-替代托架安装

图18是可以在一些实施例中使用的替代托架安装组件的多个示意图。一些传感器系统,例如RealSenseTM 300,可以具有通过某些形状因子更好地适应的安装点。图18的托架安装组件可以更好促进安装这种系统。

特别地,如侧视图1800a中所示,间隔件托架1805可以包括多个延伸部。这些延伸部可以包括延伸部1805a和延伸部1805b,其中延伸部1805a具有用于至少部分地保持上部观察面板1825a的唇部,延伸部1805b包括用于至少部分地保持下部观察面板1825b的唇部。如上所讨论,这些延伸部可以形成封装体。在该封装体内可以放置支架支撑件1820。支架支撑件可以包括与间隔件托架1805的表面相邻或形成其一部分的平坦的平面侧1820d。从平面侧1820d延伸的顶部平面部分1820b和下部平面部分1820c可以被用来将支架支撑件1820固定在托架间隔件1805内。正视图1800b(即,人站立在深度传感器1815a和1815b前面的透视图)移除了在侧视图1800a中示出的间隔件托架1805和观察面板1825a、1825b并且从“正视图”示出了支架支撑件1820。因此,在视图1800b中读者可以更容易地辨别从支架支撑件1820的平面侧1820d延伸的顶部平面部分1820b和下部平面部分1820c。

顶部平面部分1820b和下部平面部分1820c可以被用来以各种方式固定支架支撑件1820。例如,螺钉可以穿过延伸部1805a和顶部平面部分1820b,但是在一些实施例中仅摩擦就可足够了。

支架支撑件1820还可以包括延伸的平坦表面1820a。延伸的平坦表面1820a可以被用来将支架支撑件1820与传感器安装件1810耦合。支架支撑件1820的视图1800f移除其他组件(间隔件托架1805、传感器安装件1810、观察面板1825a、1825b)。因此,在该视图中可以更容易地辨别表面1820a(1800b中的虚线指示,从前面看,传感器安装件1810和表面1820a的各部分可能被传感器1815a、1815b遮挡)。

传感器安装件1810可以提供用于接收深度传感器系统1815a和1815b的稳定固定装置。视图1800c提供了从传感器安装件1810的右侧看的视图(当看向接收深度传感器系统1815a和1815b的传感器安装件1810的部分时的“右”)。视图1800d提供了从传感器安装件1810的左侧看的视图。视图1800e提供了从传感器安装件1810的正面看的视图。传感器安装件1810可以包括多个孔,用于接收螺钉或其他固定装置,以将观察面板1825a、1825b、深度传感器系统1815a和1815b、传感器安装件1810和支架支撑件1820接合成为复合结构。

特别地,所描绘的示例具有用于固定复合结构的八个孔。托架孔1830c和1830d可以被用来经由表面1820a将传感器安装件1810固定到支架支撑件1820。观察面板孔1830a可以被用来将上部观察面板1825a固定到传感器安装件1810,并且观察面板孔1830b可以被用来将下部观察面板1825b固定到传感器安装件1810。传感器孔1830f和1830e可以被用来将上部深度传感器系统1815a固定到传感器安装件1810。类似地,传感器孔1830h和1830g可以被用来将下部深度传感器系统1815b固定到传感器安装件1810。

图19A是在一些实施例中可以实现的处于分解的未组装状态中的图18的替代托架安装组件的各部分的透视示意图。在未组装状态中,传感器安装件1810、支架支撑件1820和深度传感器系统1815a和1815b可以是未连接的。图19B图示出了如何通过经由孔1830c和1830d***螺钉、销或其他耦合机构来耦合传感器安装件1810和支架支撑件1820。图19C是传感器安装件1810、支架支撑件1820和深度传感器系统1815a和1815b全部耦合在一起的透视示意图。如图所指示的,可以通过孔1830f和1830e将螺钉、销或其他耦合机构***,以分别进入深度传感器系统1815a的固定机构1905a和1905b(尽管在图中不可见,但是人们将理解,虽然在图19C中未标识,但是可以类似地通过图18中可见的孔1830h和1830g将螺钉、销或其他耦合机构***)到传感器系统1815b的固定机构中。然后可以通过使螺钉、销或其他耦合机构穿过上部观察面板1825a并进入孔1830a来固定上部观察面板1825a。类似地,然后可以通过使螺钉、销或其他耦合机构穿过观察面板1825b并进入孔1830b来固定下部观察面板1825b。可以使用摩擦或凹槽例如来确保用于相应螺钉、销或其他耦合机构的每个孔1830a-1830h中的牢固配合。

模块化系统的示例深度传感器框架-“独立”安装

如上所述,不是将一个或多个深度传感器对固定到一个或多个支架托架上,而是各种实施例可以将深度传感器对直接固定到壳体上,或者固定到壳体内的固定安装结构上。例如,图20A是在一些实施例中可以实现的多角度深度传感器壳体的壳体框架2005的“透视”视图,其包括不是经由托架而是经由“独立安装件”附接的深度传感器。特别地,在框架2005内可以放置一个或多个成对的传感器布置2010a和2010b。在该示例中,深度传感器再次类似于RealSenseTM深度传感器系统的形状因子,但是人们将容易理解采用其他深度传感器的变型。如省略号2015所指示,可以存在多于两个的所图示的传感器安装件,并且可以以基本上线性的布置来布置安装件。

安装件本身通常可以包括两个不同角度的传感器和一个安装托架。例如,图20B是在一些实施例中可以实现的水平传感器安装件的示意图。可以将顶部深度传感器系统2020安装在深度传感器系统2030上方并且相对于深度传感器系统2030成一定角度。每个传感器可以(如在RealSenseTM深度传感器系统的示例中)包括例如红外发射器2020c、红外接收器2020b(例如,一些实施例可以在约850nm范围内操作),以及到作为整体管理模块化单元或显示系统的计算机系统的连接2020a(例如,USB连接、FireWireTM连接、无线BlueToothTM连接等)。一些深度传感器另外包括RGB传感器,如下面更详细讨论的,但是,如这里所图示的,在所有实施例中不一定是这种情况。对于水平安装件,延伸部2025b可以将安装件2025a附接到框架壳体或附接到支撑显示系统的架子。图20C是在一些实施例中可以实现的垂直传感器安装件的示意图。对于水平安装件,延伸部2030b可以将安装件2030a附接到框架壳体或附接到支撑显示系统的架子。在一些实施例中,可以将用于接收延伸部2025b或延伸部2030b的螺钉孔提供在同一安装件中,以允许安装技术人员在其构造上具有灵活性。

图20D是在一些实施例中可以实现的使用图20B或图20C的传感器安装件实现的变化深度区域视场的示意图。虽然这里被示出为不重叠以便于理解,但是人们将理解,在一些实施例中,例如,如图25A和图25B中所示,针对传感器对中的每个传感器的视场可以基本上重叠(对于所公开的包括例如托架安装件、独立安装件等等在内的任何安装类型,这可能是真实的)。特别地,给定深度传感器2050a和2050b,使用图20B或图20C的安装件通过安装所导致的角度可以产生相对于地板2040的对应视场2055a和2055b。

图21A是在一些实施例中可以实现的在其相对位置中具有透明深度传感器表示的示例多角度独立深度传感器安装件2105的示意图。图21B是在一些实施例中可以实现的无深度传感器的图21A的多角度深度传感器安装件2105的示意图。如所图示,安装件2105可以包括保持延伸部2115,保持延伸部2115包括成角度部分2115a和2115b,其被配置成接收和保持深度传感器2110a,2110b。然而,如本文所讨论的,代替保持延伸部2115或者作为保持延伸部2115的补充,各种实施例可以使用螺钉、夹具或其他固定装置来将传感器与安装件耦合。

例如,图22是在一些实施例中可以实现的示例多角度独立深度传感器安装件的各种维度的示意性侧视图。安装件2210的补充侧视图2205a是在安装件下方的平面上的投影视图2205b。如所指示的,可以经由进入接收器2240的垂直螺钉(例如,穿过壳体的底部)将该安装件2210安装到壳体上。区域2220a和2220b指示第一和第二深度传感器系统中的每一个可以驻留在安装件上的位置(但是,如本文所讨论的,在每个实施例中不需要填塞两个位置)。每个传感器系统可以具有接收器以接受安装螺钉、小齿轮或其他固定机构。进入通道2215a和2215b允许这种固定机构进入接收器,从而将深度传感器系统耦合到安装件2210。这些可以进入距安装件对应于距离2230a和2230b的位置(在该实施例中约是深度传感器系统宽度的一半)。在一些实施例中,距离2230a和2230b可以基本上为5mm。在一些实施例中,角度2245可以基本上为25°。在一些实施例中,长度2225a和2225d可以基本上为12mm。在一些实施例中,长度2225b和2225c可以基本上为38mm。

因此,在一些实施例中,可以将深度传感器系统配对安装到独立安装件或与支架托架耦合。在一些实施例中,该对可以直接用螺栓固定到壳体面板上(例如没有保持件)。人们将理解,各种实施例可以仅使用特定的传感器放置机构,或者可以使用壳体内的机构的组合。

例如,图23是在一些实施例中可以实现的仅包括独立安装的传感器对的多角度深度传感器壳体的框架中的组件的分解示意图,以及组装结构的示意性俯视剖视图。在由上盖2310、背板2315、底板2340和观察面板(未示出)形成的壳体内,可以是一个或多个独立安装的深度传感器对2360a-2360e(在一些实施例中,当使用独立托架时,可以从背板2315中省略凹槽1620a-1620d)。这些对可以由零个或多个间隔件2305a-2305e分开。例如可以基于用于壳体的材料和用于预期部署环境的壳体的期望结构完整性来确定中间间隔件2305b-2305d的数量。

与图23的专用独立安装件相反,图24是在一些实施例中可以实现的包括独立安装和托架安装的传感器对的多角度深度传感器壳体的框架中的组件的分解示意图,以及组装结构的示意性俯视剖视图。同样,壳体可以包括背板2415、顶板2410和底板2440。在间隔件2405a-2405c、2405e、2405f之间可以放置独立安装的深度传感器对2460a、2460b、2460d和托架安装的深度传感器对2460c(安装到例如支架托架2405d)。在该示例中,安装件使其全部可能的附接点填塞有传感器,然而,在一些实施例中可以使用少于全部的点。此外,间隔件之间的每个间隔有一个安装件。人们将理解,在一些实施例中,可以在一个间隔中放置一个以上的安装件,并且一些间隔可以没有安装件。另外,虽然这里未示出,但是人们将理解,一些或所有深度传感器对可以直接安装到传感器观看面板1355a和1355b或者安装到壳体的其余部分。

图25A是在一些实施例中可以实现的针对具有多角度深度传感器壳体2520的示例交互系统的各种维度的侧视图。图25B是针对图25A的系统的组合视角的示意性侧视图。注意,可以使用安装到壳体、独立安装件、支架托架等的深度传感器配对来实现如图25A和图25B中所描绘的深度场结果。角度2505a反映传感器观看面板1355a相对于地板平面的角度,并且在一些实施例中可以是约65°。角度2505b反映传感器观看面板1355b相对于地板平面的角度,并且在一些实施例中可以是约30°。在一些实施例中,壳体2520内的上部传感器可以具有约60°的视场2510a。在一些实施例中,壳体2520内的下部传感器也可以具有约60°的视场2510b。上部深度传感器可以是距离地板2530的高度2515a(在一些实施例中,约2.065米),并且下部深度传感器可以是距离地板2530的高度2515b(在一些实施例中,约2.019米)。在该示例中,用于与界面系统交互的活动区域可以从显示器延伸距离2525a(在一些实施例中,约3米)。

视场2510a和2510b可以一起导致复合视场2510,在一些实施例中可以是约95°。

模块化系统的示例深度传感器框架-RGB相机变型

图26是在一些实施例中可以实现的用于多角度深度传感器壳体2605的壳体框架的“透视”视图,其中安装了深度传感器和视觉图像传感器二者。例如,深度传感器系统2620a可以具有深度传感器发射器2625b和深度传感器接收器2625a(深度传感器系统2620b同样可以具有对应的发射器和接收器)。虽然深度传感器观看面板2640b和2640a可以允许例如红外频率通过,但是当从深度传感器发射器2625b发射时以及当在深度传感器接收器2625a处接收时,观看面板2640b和2640a对视觉频率可以是不透明的(例如,作为防止用户看到深度传感器的美学或功能性愿望)。因此,一些实施例考虑将孔或替代材料结合到位置2635a-2635d处的深度传感器观看面板2640b和2640a中,以促进视觉波长范围内的图像的捕获。例如,如在RealSenseTM深度传感器的情况下,RGB相机2630a、2630b可能已被集成到深度传感器系统中。在一些实施例中,可以使用专门用于视觉图像捕获的独立RGB相机2630c和2630d。可以针对这些RGB专用传感器对安装件进行调整和重复使用,以帮助确保它们实现与各种深度传感器相同或相似的视场。在一些实施例中,专门用于深度捕获信息的传感器,诸如传感器2645,也可以存在于壳体框架内。因此,如省略号2610a和2610b所指示的,壳体内可以存在比这里所示更多的安装件和传感器。

示例手势-“触发点”

本文所描述的各种实施例可以被用来识别手势和子手势的资料库(corpus)。“手势”本身可以被表示为用户的不同部分之间的一个或多个连续关系的序列。“子手势”可以是该序列的子序列。例如,图27A是在一些实施例中可以出现的用户“触发点”手势的示意图。在初始正视图2705a中,用户可以用他们的手2715a形成“枪”形状。这里,仅示出了用户的左手2715a,但是可以用任一只手或用两只手来执行手势。类似地,在该示例中,不需要延伸用户的拇指以模***上的触发机构(例如,如手变型2750中所图示)。拇指的延伸是否可以被用来辨识手势可以基于上下文(例如,当运行预期触发手势的游戏应用时,与例如一般菜单选择相比,可能不需要这样的特定动作,其可以区分触发动作和一般指向)。在一些实施例中,如侧视图2710a中所示,可以旋转用户的前臂,使得拇指位于手的顶部。

在一些实施例中,即使没有连续的时间变化,系统也可以将侧视图2710a的定向中的用户的手识别为建立“触发点”手势。然而,通过向前延伸他们的手臂,或者向前和向上延伸2720,如在正视图2705b和侧视图2710b中,系统可以采取连续状态来构成手势(例如,作为游戏环境中的“发射”动作)。特别地,图27B是在一些实施例中可以被用来识别用户“触发点”手势的对应关系的示意图。在每个深度帧处,系统可以确定针对被分类为用户的头部2730a的所有深度值的第一时刻或平均深度值,这里是质心点2725。类似地,系统可以确定被分类为用户的手2730b的一部分的深度值的第一时刻2735。然后,系统可以确定从这些位置之一到另一个位置的三维矢量2740a。该矢量结合用户的手2715a的定向和几何形状可以单独足以确定“触发点”手势是否有效。然而,在一些实施例中,系统可以将该矢量与后续矢量2740b进行比较。如果比较产生预期关系(例如,某个阈值内的平移矢量),那么系统可以结合手几何形状断定:触发动作有效。因此,手势可以被识别为一系列条件,例如,用户的解剖结构的各部分履行某些几何条件(例如,“掌心向上”,“伸展拇指”等),同时还创建各种矢量关系(例如,用户部件之间的各种矢量关系在某些范围内变换)。

示例手势-“轻推”

图28A是在一些实施例中可以出现的用户“轻推”手势的示意图。特别地,如正视图2805a、侧视图2810a和俯视图2855a中所示,用户最初可以使双手2815a和2815b的掌心在他们前面面朝外。在随后的时间,如正视图2805b、侧视图28l0b和俯视图2855b中所示,用户可以向前2820移动双手2815a和2815b。

再次,系统可以通过比较各种矢量关系来检测手势。特别地,图28B是在一些实施例中可以被用来识别用户“轻推”手势的对应关系的示意图。在起始位置,可以获取从头部分类深度值2825a的质心2830a到用户的左手2830b和右手2830c中的每一个的质心的矢量2850a和2850b。同样,质心2830b和2830c可以分别被确定为用户的左手2825b和右手2825c的像素的第一时刻。矢量的变化(例如,分别从矢量2850a和2840a到矢量2850b和2840b的变换)结合用户的手部定向可以用作用于确定存在手势的系统的基础。可以理解,“第一时刻”、“装置”(means)、“质心”等可以在本文中互换使用。在一些实施例中也可以使用来自深度值分组的固定偏移。

示例手势-“揭开”

图29A是在一些实施例中可以出现的“揭开”手势中的步骤的一系列示意性正视图和侧视图。最初,如正视图2905a、侧视图2910a和俯视图2915a中所示,用户最初可以使双手的掌心2920a和2920b在他们前面面朝外并且靠近在一起。在随后的时间,如正视图2905b、侧视图2910b和俯视图2915b中所示,用户可以向前2920移动双手2915a和2915b。如正视图2905b、侧视图2910b和俯视图2915b中所示,用户可以移动他们的手2920a和2920b逐渐地进一步分开,就好像分开一对帷幔或在衣帽架中移动外套等。

图29B是在一些实施例中可以被用来检测图29A的“揭开”手势的各种对应关系的正视和俯视示意图。具体地,可以通过将用户的头部分类深度值2930a的质心2925a与用户右手分类深度值2930b和左手分类深度值2930c的质心2925b和2925c进行比较来形成矢量2940a和2945a。然后,与用户界面相关联的一个或多个计算机系统可以将矢量2940a和2945a与矢量2940b和2945b进行比较,在随后的时间结合用户的手部定向导致确定“揭开”手势的执行。

示例手势-“轻扫”

与在一些手持设备上使用的手指轻扫非常类似,一些实施例可以将前臂手势识别为对应于类似的“轻扫”功能性。图30A是在一些实施例中可以出现的“轻扫”手势中的步骤的一系列示意性正视图、侧视图和俯视图。最初,如正视图3005a、侧视图3010a和俯视图3015a中所示,用户最初可以基本上从其侧面伸出一只手臂,使得手3020a与用户的躯干的平面平行或几乎平行。在随后的时间,如由正视图3005b、侧视图3010b和俯视图3015b以及正视图3005c、侧视图3010c和俯视图3015c所示,用户可以将手3020a移动穿过他们的躯干,如运动箭头3025a和3025b所指示。在一些实施例中,手在用户的手腕处的较小的横向移动,而不是在此示出的更大的臂部扫动,也可以被识别为“轻扫”。

图30B是在一些实施例中可以被用来检测图30A的“轻扫”手势的各种对应关系的正视和俯视示意图。特别地,系统可以确定从头部分类深度值3030a的中心3035a到用户手部分类值3030b的中心3035b的矢量3040a。然后,系统可以结合用户的手部定向将矢量3040a与随后确定的矢量3040b进行比较,以确定已经执行了“轻扫”手势。

自然地,轻扫手势可以由任一只手来执行。例如可以使用该手势来循环浏览菜单中的选项或者关闭菜单对话框。因此,人们将理解,用另一只手、在另一方向上(例如,垂直向上和向下)、用手背而不是掌心进行轻扫等等可以在相反的方向上执行手势。

示例手势-“圆圈”

图31A是在一些实施例中可以出现的“圆圈”手势中的步骤的一系列示意性正视图和侧视图。特别地,如正视图3105a-3105e和侧视图3110a-3110e中所示,用户可以将他们的左手3115b和右手3115a旋转(从用户的角度看)逆时针和顺时针旋转组(但是人们将理解,在其自身的手势中也可以识别在相反的方向上的旋转)。如运动箭头3120a-3120d和3125a-3125d所证明的,可以将旋转反映为手部位置之间的一系列较小关系。图31B是在一些实施例中与可以被用于检测图31A的“圆圈”手势的对应关系相关联的手部定向的复合正面视图3130。例如,系统可以将圆圈分解成一系列帧位置,这里由数字1-4表示。最终,用户可以将他们的手返回到与他们开始该手势时基本相同的位置(例如,如在视图3105a和3110a中那样)。

图31C是在一些实施例中可以被用于检测图31A的“圆圈”手势的对应关系的复合正视图3135。特别地,整个圆周运动可以被分成一系列手部位置,其本身可以由从头部分类深度值像素3145的中心3140到用户的右手分类深度值的中心的多个矢量3150a-d和从头部分类深度值像素3145的中心3140到用户的左手分类深度值像素的中心的对应的多个矢量3155a-d来表示。

人们将理解,可以以类似的方式创建附加的子手势。例如,每只手的个体圆周运动本身可以用作“单手圆圈”手势。另外,旋转方向可以颠倒。同样可以经由一系列矢量关系来检测省略号和其他任意手部运动。

示例手势-“蹲伏”

并非所有手势都需要用用户的手来执行。另外,用于辨识手势的矢量可以在连续捕获的帧之间,而不是在单个帧内的组件之间。

例如,图32A是在一些实施例中可以出现的“蹲伏”手势中的步骤的一系列示意性正视图和侧视图。图32B是在一些实施例中可以被用来检测图32A的“蹲伏”手势的各种对应关系的正视和俯视示意图。通常,如正视图3205a、3205b和侧视图3210a、3210b中所指示的,通过弯曲他们的膝盖和躯干,用户可以导致一个或多个对应关系,这些对应关系可以用于向系统辨识“蹲伏”手势。

在一些实施例中,系统可以使用从较早帧中的用户的躯干分类深度值3215b的中心3220b到用户的头部分类深度值3215a的中心3220a获取的单个矢量3240以识别“蹲伏”手势的执行。例如,矢量通常可以指向上方。然而,当用户降低他们的头部时,矢量可以减小尺寸甚至改变方向。这样的方向改变可以被用来识别“蹲伏”手势(但是人们将容易理解,诸如头部本身在不同时间之间的其他对应关系也可以满足)。

示例手势检测方法-示例过程

图33是图示出在一些实施例中可以实现的手势检测过程3300的各方面的流程图。在框3305处,计算机系统可以从界面上的一个或多个深度传感器接收一个或多个新的深度帧。

然后,系统可以在框3315处结合模板来考虑新获取的帧和任何先前的帧,直到在框3310处已经考虑了所有手势模板或者直到在框3320处找到与所获取的帧匹配的模板为止。在考虑了所有模板之后没有找到匹配帧的情况下,系统可以继续获取新的深度帧。模板可以简单地是存储的顺序条件集合,对其的履行可以由计算机系统识别为对应于手势的成功完成。

然而,如果在框3320处发生匹配,则系统可以在框3330处重置所有模板之前,在框3325处将对应于模板的手势例如输出到等待所识别的手势形式的用户输入的应用。在一些实施例中,“重置”模板可以简单地是指标注或清除标记,使得模板在其后续评估中不考虑来自当前识别的手势的帧。例如,其在系统识别一个手势“新开始”而不是将先前手势的结束误解为后续手势的开始之后可能是期望的。如下所讨论的,一些实施例可以改为识别手势及其子手势。

图34是图示出在一些实施例中可以实现的手势模板履行确定过程3400的各方面的流程图。例如,过程3400可以作为框3315和3320的一部分而发生。模板可以包括具有一系列条件元素的数据结构,必须履行这些条件元素以便手势向系统注册。

在框3405处,模板过程可以接收新帧(例如,可以在框3320处使在框3305处新获取的帧可用于模板)。在框3410处,系统可以取决于手势来确定该帧与零或更多先前帧之间的对应关系。例如,如上所讨论的,针对“蹲伏”手势的模板可以将前一帧处的用户躯干的中心与新帧中的用户头部的中心之间的矢量进行比较,以检测手势。相反,系统可以确定用户的头部和用户的手部之间的矢量,以查看这样的矢量的序列是否履行针对“圆圈”手势的条件。

如果在框3415处模板元素(例如,对应关系的序列、手势取向的序列等)与输入帧不一致,那么模板可以在框3425处重置它自身。相反,如果在框3415处帧继续以与模板相一致(例如,如果下一个未履行的元素集合一致),那么系统可以在框3420处继续记录履行。例如,手势可能需要一系列矢量对应关系,其被反映在模板元素中。当该序列被中断时,模板可以“放弃”当前匹配并重新开始。

作为一个示例,考虑“圆圈”手势模板。模板的元素可能要求第一帧具有位置和定向基本上如视图3105a和3110a中所示的用户的左手和右手。然后,后续帧应遵循使用矢量3150a-d和3155a-d建立的路径约束,以履行模板的剩余元素。如果用户的手离开这些约束,则元素将不会被履行并且可以在框3425处重置模板。相反,如果继续履行所有元素,直到用户然后在框3430处已经基本返回到视图3105a和3110a中所指示的位置,则系统可以确定已经履行模板并且在框3435处在输出中记录这一点(例如,使系统从框3320转换到框3325)。

示例手势检测方法-示例手势结构

一些实施例将手势识别为离散单元。例如,图35A是图示出在一些实施例中可以出现的在多个手势之间的对应关系的示例树图。特别地,每个边缘3510a-3510i表示顺序元素约束的履行(或针对给定帧的约束的集合)。一些手势可以共享初始约束(节点3505a-3505e仅被提供以供读者参考来识别互斥元素)。例如,所有三个手势D、E和F(3515d-3515f)开始于相同的条件3510c。根据以上示例,“轻推”和“圆圈”手势都可以从识别出用户已经将双手掌心向外放置在深度帧中的相应模板开始。树3500a的结构使得手势3515a-3515f不涉及“子手势”。也就是说,如果手势需要顺序元素A、B、C和D,那么在资料库中不考虑仅包括顺序元素A、B和C的手势。

对照而言,图35B是图示出在一些实施例中可以出现的在多个手势(包括子手势)之间的对应关系的示例树图。与树结构3500a不同,结构3500b确实允许子手势识别。具体地,每个手势3515g-3515j包括各种条件3510j-3510n,其是除了各种子手势3515a和3515b所需的那些条件之外的条件。允许子手势的实施例可能需要规定或修改图33和图34的过程,使得在帧已经满足一个模板并且不能满足任何其他模板之前,不发生手势的“履行”。例如,在已经满足条件3510c和3510g之后,在输出手势D 3515d已被识别之前,系统可以等待直到后续帧指示条件3510k和35101已不被履行。对照而言,如果条件3510k被立即满足,那么系统可以输出手势I3515i被满足,而不是手势D 3515d。在一些实施例中,如果在达到失败条件之前存在一个或多个被满足的后续条件,则不是在链中输出最近完成的子手势,而是系统可以简单地重置所有模板,并且假设没有手势被满足。例如,如果条件3510i被满足,但条件3510m或3510n均未被履行,那么系统可能在某些情况下指示没有识别出手势而不是输出手势D 3515d(对照而言,如果条件3510i从未被履行,则系统可以输出手势D 3515d)。在下游条件可能基于上下文或应用设计者的规范时决定是否识别子手势。

示例手势检测方法-手势预订

在一些实施例中,用户界面可以用作“通用”系统,应用开发者在其上实现不同的应用。例如,系统可以具有通用的“操作系统”环境,用户在该环境中进行交互以选择要运行的开发者应用。在这些实施例中,系统可能需要在所有应用上指定具有共同行为的某些“基础手势”,以避免用户混淆。例如,图36是图示出在一些实施例中可以出现的各种手势集合关系的维恩图。

在所有可能的用户手势3605的范围内,一些手势可以被保留为“基础”3610。例如,可以保留穿过一个人的手臂作为针对“停止应用”的通用手势。因此,该基础子集可以是来自各种应用特定手势3615a-3615d的不同子集(省略号3625指示可能存在比这里描绘的更多的应用特定手势集合)。因此,作为保留的“基础”手势,可以建议应用开发人员禁止在他们的应用中使用所述手势(并且如果系统识别可能导致基础功能性,诸如暂停应用,而不是开发人员的任何操作意图)。

相反,特定于应用的上下文,如果例如它们将不同时运行,则应用没有理由不能共享共同手势。这种潜在的重叠在这里部分地由区域3620a和3620b表示。例如,“轻推”手势可以落在区域3620b中,并且可以被用来在应用B中移动虚拟对象、在应用C中选择要购买的项目、以及在应用D中发射虚拟武器。

示例上下文手势实施例

图37A是在一些实施例中可以实现的用户在包括不同交互区间的界面系统3705前的第一位置3710a处的示意图。特别地,手势识别和系统行为可以在上下文中取决于用户与显示器的距离。因此,如图37B中所示,当用户移动3720到更靠近屏幕的区间中的位置3710b时,可能导致新的行为并且手势可能具有不同的效果。为此,系统可以将其面前的区域划分为“区间”3715a-3715d。因此,除了向应用报告检测到的手势之外,系统还可以报告用户与屏幕的距离或者用户所出现的区间3715a-3715d。

界面的行为也可以随着用户在显示器前的横向位置而变化。例如,图38A是在一些实施例中可以实现的用户处于运行动态消失点选择菜单的界面系统3805前的中心位置3810a处的示意图以及对应的用户视图。图38B是用户在相对于中心位置3810a为3815a的左侧位置3810b处的示意图。图38C是用户在相对于中心位置3810c为3815b的右侧位置3810c处的示意图。地板上的虚线可以反映用户界面前的区间,但也仅供读者参考,因为在一些实施例中,系统可以简单地记录用户的横向位置而无需明确地确定对应于该位置的区间。

当用户相对于显示器横向移动时(如相对箭头3815a和3815b所指示),可以调整所显示的渲染的消失点以与用户的新位置对准。例如,显示器的传感器壳体和九个显示器在视图3820a-3820c中以虚线示出。这里显示视图3820a-3820c,这就是观看显示器的人所看到的景象。在该示例中,用户正在看三个不同的房间(巧合地,每个房间的宽度与每个子显示器的宽度基本相同)。当用户位于中心位置3810a时,针对显示图像的消失点位于显示器的中心,如视图3820a中所示。然而,当用户移动到左侧位置3810b时,系统可以将消失点调整到左侧,如视图3820b中所示,以便再次在用户前显现。另外,系统可以如图所示遮挡其他房间的视图以模仿当用户在真实世界的房间之间移动位置时将发生的真实世界行为。以这种方式,用户不太注意他们正盯着二维显示器并且更可能接受沉浸式体验作为他们现实的延伸。

与以上示例类似,当用户移动到右侧位置3810c时,如视图3820c中所示,系统可以调整消失点和视场以对应于用户的新右侧位置。如下面更详细讨论的,因为系统可以识别用户的头部位置,不仅横向移动而且垂直移动也都可以导致对显示给用户的消失点和遮挡的调整。总之,这给了用户通过“真实世界”看到场景的印象,而不仅仅是盯着平面显示器。

在一些实施例中,用户朝向显示器的移动可导致选择性地放大观看区域以邀请更细粒度的用户交互。例如,图39A是在一些实施例中可以实现的用户处于将上下文焦点特征接合在用户界面3905的中心处之前的第一位置处的示意图和所得到的显示。图39B是在一些实施例中可以实现的用户处于将用户界面的中心处接合上下文焦点特征之后的第二位置处的示意图以及所得到的显示变化。最初,在图39A中,用户可以站立在显示器前的位置3910a处。因此,用户可以感知诸如3920a之类的视图。如用户站立在真实世界的一系列房间前,如示意图3925a中所示,则该显示将对应于站立在所有三个房间3930外的位置3935a处的用户。

对照而言,在图39B中,当用户向前移动3915到足够靠近显示器的位置3910b时,系统可以将该移动推断为所显示的对象、房间等的“选择”。因此,如果已经“选择”了中间的房间,则系统现在可以延伸所显示的图像,如视图3920b中所示。虽然这种延伸可以模仿真实世界的行为,但是在一些实施例中,这种延伸可能遮挡比基于用户所移动的物理距离3915所出现的更多的其他房间并且放大更多的所选房间。实际上,如描绘真实世界系列房间3930的示意图3925b中所示,所显示的视图更接近于在用户移动距离3940达到房间3935b的阈值时在现实世界中出现的视图。因此,在现实世界单元中,渲染场景3920b的虚拟相机的虚拟距离3940平移可以大于用户所移动的实际距离3915。以这种方式,系统可以摆脱消失点失真的沉浸特性,以允许用户在对虚拟环境进行导航时具有更大的自由度。实际上,在一些实施例中,相对于中心位置的所有移动都可以对应于虚拟世界中该时刻的某个更大或更小的因子。例如,当用户希望在现实世界中对于相同的~4英尺线性运动在微观和行星范围参照系之间快速导航时,可以使用对数或指数关系。

为了进一步阐明图39A和图39B的示例,图40A和图40B提供了在一些实施例中可以实现的图39的用户界面的上下文焦点特征的示意图以及所得到的显示变化——在接合之前和之后,但是不是在用户界面的中心而是在用户界面的侧面。这里,当用户从位置4010a向前移动真实世界距离4015到位置4010b时,系统可以将视图从具有最左侧房间内的消失点的初始视图4020a调整到放大视图4020b。视图4020a对应于站立在相对于房间4030的虚拟位置4035a处的用户,如视图4025a中所示。视图4020b对应于当用户相对于其在虚拟世界中的原始位置4035a向前移动位置4040时在最左侧房间的阈值处从位置4035b的用户视图,如视图4025b中所示。如上所讨论的,虚拟移动4040可以大于真实世界平移4015。

可以理解,该房间结构可以用作“主页”屏幕,用户可以从中选择要运行的各种应用。如果存在多于三个应用,则用户可以执行“轻扫”手势(水平地并且在一些实施例中垂直地和在其他方向上)或其他合适的手势以呈现另外的房间/应用配对。在一些实施例中,房间可以表示包含若干应用作为房间中的对象的“文件夹”。通过接近房间,房间可以被放大,然后用户能够通过指向对应的对象来运行其中一个应用。

示例应用

图41是在一些实施例中可以实现的运行示例基于“触发点”的射击应用的用户界面系统4105的示意图。例如,图40的房间可对应于三种不同的应用。通过向前移动到最左侧房间并执行“轻推”手势,用户4125可以初始化视频游戏,其中他们必须使用“触发点”手势来利用来自用户的左手4120a和右手4120b的对应的冷4110a和热4110b***分别***冷热立方体4130。系统可以通过从用户食指指向的方向4115a、4115b外推来推断***的方向。执行退出手势可以使游戏结束并将用户返回到房间选择菜单。

作为另一个示例,图42是在一些实施例中可以实现的运行示例书法训练应用的用户界面系统4205的示意图。这里,用户4225移动他们的手4220(作为“触发点”或简称为“指向”手势的一部分)以在书法应用中引导画笔笔划。例如,当用户移动与他们指向的方向4215相对应的虚拟画笔时,可以填充4210b字符的未填充部分4210a(例如,当用户以正确的笔画顺序完成字符笔划图案时)。与上述立方体游戏一样,用户可以通过接近对应的房间并从前面的房间菜单执行轻推手势来选择书法应用。

作为另一示例应用,图43是在一些实施例中可以实现的运行示例障碍物课程应用的用户界面系统4305的一系列示意图。当用户站立在中心位置4310a时,他们可以在视图4320a中感知具有中心消失点的路线。虚拟足迹4330a和4330b或任何其他合适的化身可以被用来反映用户在障碍物环境中的碰撞风险。一旦应用开始,虚拟世界可以开始移动经过用户(例如,当他们的化身开始通过虚拟环境向前前进时,用户可以开始“就地运行”)。

在视图4320b中,用户已从侧面位置4315跳跃4310b以避免与即将发生的障碍物4325a碰撞。请注意,消失点已被调整,以反映用户在显示器的右上方的新头部位置。相反,在视图4320c中,用户蹲伏在左侧4310c的位置处以避免视图4320c中的逼近的障碍物4325b。同样,系统已经基于用户的新头部位置调整了视图4320c中的消失点和透视图。如该示例所指示的,系统可以继续与手势检测并行地监视某些用户特性。例如,即使系统继续识别各种用户手势,计算机系统也可以不断地记录用户的头部位置和定向,以便调整所呈现的视图。

另外,人们将理解,虽然已经关于图10的实施例描述了许多示例应用,但是这些应用也可以与其他公开实施例——例如图8和图9的那些实施例一起使用。

计算机系统

图44是可以结合一些实施例使用的示例计算机系统的框图。计算系统4400可以包括互连4405,其连接若干组件,诸如例如一个或多个处理器4410、一个或多个存储器组件4415、一个或多个输入/输出系统4420、一个或多个储存系统4425、一个或多个网络适配器4430。互连4405可以是例如一个或多个桥(bridge)、迹线(trace)、总线(例如ISA、SCSI、PCI、I2C、火线总线等)、电线、适配器或控制器。

一个或多个处理器4410可以包括例如Inte1TM处理器芯片、数学协处理器、图形处理器等。一个或多个存储器组件4415可以包括例如易失性存储器(RAM、SRAM、DRAM等)、非易失性存储器(EPROM、ROM、闪存等)或类似设备。一个或多个输入/输出设备4420可以包括例如显示设备、键盘、指示设备、触摸屏设备等。一个或多个储存设备4425可以包括例如基于云的储存器、可移动USB储存器、磁盘驱动器等等。在一些系统中、存储器组件4415和储存设备4425可以是相同的组件。网络适配器4430可以包括例如有线网络接口、无线接口、BluetoothTM适配器、视距接口等。

人们将认识到,在一些实施例中可以存在图44中所描绘的那些组件中的仅仅一些组件、图44中所描绘的那些组件的替代组件或除了图44中所描绘的那些组件之外的附加组件。类似地,组件可以在一些系统中被组合或用于双重目的。可以使用专用硬连线电路来实现组件,诸如例如一个或多个ASIC、PLD、FPGA等。因此,一些实施例可以在例如用软件和/或固件编程的可编程电路(例如,一个或多个微处理器)中、或在完全用专用硬连线(不可编程)电路中、或在这些形式的组合中实现。

在一些实施例中可以经由数据传输介质(例如,通信链路上的信号)经由网络适配器4430存储或传输,数据结构和消息结构。传输可以在各种介质上发生,例如互联网、局域网、广域网或点对点拨号连接等。因此,“计算机可读介质”可以包括计算机可读储存介质(例如,“非暂时性”计算机可读介质)和计算机可读传输介质。

一个或多个存储器组件4415和一个或多个储存设备4425可以是计算机可读储存介质。在一些实施例中,一个或多个存储器组件4415或一个或多个储存设备4425可以存储指令,该指令可以执行或促使执行本文所讨论的各种操作。在一些实施例中,可以将存储在存储器4415中的指令实现为软件和/或固件。这些指令可要被用来在一个或多个处理器4410上执行操作以执行本文描述的过程。在一些实施例中,可以通过例如经由网络适配器4430从另一系统下载指令来向一个或多个处理器4410提供这样的指令。

备注

以上描述和附图是说明性的。因此,描述和附图都不应被解释为限制本公开。例如,标题或副标题仅为了方便读者而提供,以便于理解。因此,标题或副标题不应被解释来限制本公开的范围,例如通过将以特定顺序或一起呈现的特征进行分组只是便于理解。除非本文另有定义,否则本文使用的所有技术和科学术语具有与本公开所属领域的普通技术人员通常理解的含义相同的含义。在冲突的情况下,本文件(包括本文中所提供的任何定义)均予以控制。本文中的一个或多个同义词的叙述不排除其他同义词的使用。本说明书中任何地方的示例的使用(包括本文中讨论的任何术语的示例)仅是说明性的,并且不旨在进一步限制本公开或任何示例性术语的范围和含义。

类似地,尽管在本文的附图中进行了特定呈现,但是本领域技术人员将理解,用于存储信息的实际数据结构可以与所示出的不同。例如,数据结构可以以不同的方式组织,可以包含比所示更多或更少的信息,可以被压缩和/或加密等。附图和公开可以省略一般的或众所周知的细节以避免混淆。类似地,附图可以描绘促进理解的特定操作系列,这些操作仅仅是更广泛的这类操作集合的示例。因此,人们将容易认识到,可以经常使用附加的、替代的或更少的操作来实现在一些流程图中所描绘的相同的目的或效果。例如,数据可以被加密,尽管在流程图中没有如此呈现,但是可以以不同的循环模式(“for”循环,“while”循环等)来考虑项目,或者以不同的方式对项目进行排序,以实现相同或相似的效果等。

本说明书中对“一个实施例”或“实施例”的引用意味着结合该实施例描述的特定特征、结构或特性被包括在本公开的至少一个实施例中。因此,说明书中各处的短语“在一个实施例中”不一定是指那些不同地方中的每一个中的相同实施例。单独的或替代的实施例可以不与其他实施例互斥。人们将认识到,在不脱离实施例的范围的情况下,可以进行各种修改。

64页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:增强/虚拟现实空间音频/视频的流式传输

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!

技术分类