用于界面引导的持久性把手的制作方法

文档序号:6443365阅读:149来源:国知局
专利名称:用于界面引导的持久性把手的制作方法
技术领域
本发明涉及计算系统,更具体地,涉及深度图像分析系统。
背景技术
计算机技术已进展到使人类能够以各种方式与计算机交互。一种这样的交互可发生在人类与游戏系统之间。例如,某些游戏系统可对玩家的物理移动作出响应。此类游戏系统可具有用户可能希望操纵的控件,诸如按钮、列表上的项目、内容片段等待。概述因此,提供了与一种计算系统有关的各种实施例。在一个示例中,该计算系统将人类目标的手的世界空间位置转换为用户界面的屏幕空间位置,并且如果手的世界空间参数克服用户界面的把手的抓取阈值则将手锁定至该把手。当手被锁定至该把手时,该计算系统将手的世界空间位置转换为被约束沿一个或多个界面引导的屏幕空间把手位置。如果手的世界空间参数克服把手的释放阈值则在把手的释放位置将手从该把手解锁。在手从把手被解锁之后该把手被保持在该释放位置。提供本发明内容以便以简化的形式介绍将在以下具体实施方式
中进一步描述的一些概念。本发明内容并不旨在标识所要求保护主题的关键特征或必要特征,也不旨在用于限制所要求保护主题的范围。此外,所要求保护的主题不限于解决在本发明的任一部分中提及的任何或所有缺点的实现。


图I根据本发明的一实施例示出查看所观察的场景的深度图像分析系统。图2在某种程度上示意性地示出在所观察的场景中用示例骨架数据来建模的人类目标。图3A-B示出无约束和有约束的光标移动的示例。图4示出包括界面引导的用户界面中的光标移动的示例。图5A-D示出与包括界面引导的用户界面的示例用户交互序列。图6示出包括界面引导的用户界面的示例。图7示意性示出根据本发明的一实施例的计算系统。
具体实施例方式诸如3D视觉计算系统等深度图像分析系统可包括能够观察一个或多个游戏玩家或其他计算机用户的深度相机。在深度相机捕捉所观察的场景内的游戏玩家或其他计算机用户的图像时,那些图像可被解释并用一个或多个虚拟骨架来建模。这样,计算系统可以能够确定例如玩家的手是松开还是握紧、或者用户正在将他的一只手左移、右移、上移还是下移。以此方式,用户可以能够抓取和/或操纵计算系统所显示的对象,如下文将描述的。图I示出了深度图像分析系统10的非限制性示例。具体而言,图I示出了包括计算系统18的游戏系统12,该计算系统18可以用于玩各种各样不同的游戏、播放一个或多个不同的媒体类型、和/或控制或操纵非游戏应用和/或操作系统。如图I中所示,游戏系统12还包括诸如电视机或计算机监视器之类的可用于向游戏玩家呈现游戏画面的显示设备16。作为一个示例,显示设备16可用于在视觉上呈现人类目标32用其移动来控制的虚拟化身50。深度图像分析系统10可包括捕捉设备,诸如在视觉上监视或跟踪所观察的场景 14内的人类目标32的深度相机22。参考图2和6更详细地讨论深度相机22。人类目标32这里被示为所观察的场景14内的游戏玩家。人类目标32由深度相机22来跟踪,使得人类目标32的移动可由游戏系统12解释成可用于影响游戏系统12正在执行的游戏的控制。换言之,人类目标32可使用他或她的移动来控制游戏。人类目标32 的移动可以被解释成几乎任何类型的游戏控制。人类目标32的某些移动可被解释成服务于除控制虚拟化身50以外的目的的控制。作为非限制性示例,人类目标32的移动可被解释为驾驶虚拟赛车、开火虚拟武器、以第一人视角导航虚拟世界、或者操纵模拟世界的各个方面的控制。移动还可被解释为辅助游戏管理控制。例如,人类目标32可以使用移动来结束、暂停、保存、选择级别、查看得分榜、控制音量、与其他玩家交流等。深度相机22还可以用于将目标移动解释成游戏领域之外的操作系统和/或应用控制。操作系统和/或应用的实际上任何可控方面皆可由诸如人类目标32之类的游戏玩家的移动来控制。例如,如下文参照图4-6描述的,游戏玩家的移动可以控制用户界面。图 I中所示出的场景是作为示例来提供的,但并不意味着以任何方式进行限制。相反,所示出的场景旨在展示可以在不背离本公开的范围的情况下应用于各种各样不同的应用的一般概念。尽管提供了游戏作为说明性示例,但相同的构思同样可以很好地适用于几乎所有其他计算机用户交互。在此所述的方法和过程可以绑定到各种不同类型的计算系统。图I以游戏系统12 的形式示出了非限制性示例。一般而言,深度图像分析系统可包括图7中以简化形式示出的计算系统60,计算系统60将在下文更详细地讨论。图2示出了简化的处理流水线,其中所观察的场景14中的人类目标32被建模为虚拟骨架46,该虚拟骨架46可被用于牵引显示设备16上的虚拟化身50和/或用作控制游戏、应用、和/或操作系统的其他方面的控制输入。可以理解,处理流水线可包括比图2中所描述的更多的步骤和/或图2中所描述的替换步骤,而不背离本发明的范围。如图2所示,人类目标32和所观察的场景14中的其余部分可由诸如深度相机22 之类的捕捉设备来成像。深度相机可为每一像素确定在所观察的场景中一表面相对于深度相机的深度。在不偏离本公开的范围的情况下,可以使用实际上任何深度寻找技术。示例深度寻找技术参考图7的深度相机168更详细地讨论。为每一像素所确定的深度信息可用于生成深度图42。这样的深度图可采用实际上任何合适的数据结构的形式,包括但不限于包括所观察的场景的每个像素的深度值的矩阵。在图2中,深度图42被示意性地示为人类目标32的轮廓的像素化网格。这一例示是出于理解简明的目的,而不是技术准确性。可以理解,深度图一般包括所有像素(不仅是对人类目标32进行成像的像素)的深度信息,并且深度相机22的透视不会得到图2中所描绘的轮廓。虚拟骨架46可从深度图42导出,以提供对人类目标32的机器可读表示。换言之,从深度图42导出虚拟骨架46以便对人类目标32建模。虚拟骨架46可以按任何合适的方式从深度图中导出。在某些实施例中,可将一个或多个骨架拟合算法应用于深度图。本发明与实际上任何骨架建模技术兼容。虚拟骨架46可包括多个关节,每一关节对应于人类目标的一部分。在图2中,虚拟骨架46被示为十五个关节的线条画。具体而言,虚拟骨架46包括左肘关节88、右肘关节 86、左手关节84和右手关节82等。这一例示是出于理解简明的目的,而不是技术准确性。 根据本公开的虚拟骨架可包括实际上任何数量的关节,每一关节都可与实际上任何数量的参数(例如,三维关节位置、关节旋转等)相关联。例如,虚拟骨架的手可以通过单个关节来表示,或者手可以通过六个或更多个关节(例如,一个或更多个关节用于手掌以及一个或更多个关节用于该手的五个手指中的每一个)来表示。以此方式,确定手姿态(例如,手松开或握紧)的变化是有可能的。在一些实施例中,即使手被建模为单个关节也可以检测到松开或握紧的手姿态(例如,经由对深度图的辅助分析)。可以理解,虚拟骨节可采用包括多个骨架关节中的每个关节的一个或多个参数的数据结构的形式(例如,包括每个关节的X位置、y位置、z位置、旋转和姿态的关节矩阵)。 在某些实施例中,可使用其他类型的虚拟骨架(例如,线框、一组形状图元等)。如图2所示,可将虚拟化身50呈现在显示设备16上作为虚拟骨架46的视觉表示。 由于虚拟骨架46对人类目标32进行建模,并且对虚拟化身50的呈现基于虚拟骨架46,因此虚拟化身50用作人类目标32的可视的数字表示。由此,虚拟化身50在显示设备16上的移动反映人类目标32的移动。尽管将虚拟化身50用作可经由深度图的骨架建模由人类目标的移动来控制的游戏的一示例方面,但这并不旨在限制。人类目标可以用虚拟骨架来建模,而虚拟骨架可用于控制除虚拟化身以外的游戏或其他应用的各方面。例如,即使虚拟化身没有被呈现到显示设备,人类目标的移动也可控制游戏或其他应用。如下文更详细地描述的,人类目标的手的移动可被用于以与鼠标控制台式机用户界面的光标几乎一样的方式控制用户界面的光标。 以此方式,经由自然的身体移动而不需要鼠标、专用跟踪标签、无线加速计、和/或其他输入设备的辅助就可控制诸如音量、移动遍历菜单中的项目集、和/或任何数目的其他用户界面方面之类的设置。图3A和3B示出了用户界面上有约束和无约束光标移动的示例。在图3A和3B所示的示例中,通过虚拟骨架202对人类目标的手的移动进行建模。如所示的,虚拟骨架202 的手关节204以及由此人类目标的手沿着路径206移动。手的世界空间位置经由游戏系统被转换成光标208的屏幕空间位置,并且响应于手的移动,光标208的移动被显不在显不器 212的用户界面210上。在图3A的示例中,光标是无约束的,并且光标208沿着作为手关节 204的3D路径206的2D表示的路径214移动。相反,在图3B的示例中,光标被约束成沿界面引导216移动。例如,光标208(以及因此人类目标的手)可被锁定至界面引导216的把手218。下文更详细地描述了光标可被锁定至把手的方式。由于光标208被锁定至把手218,光标208的移动被限于把手218沿界面引导216的路径。这样,如果光标208被锁定至把手218,即使在手关节204沿曲线路径206从右往左移动(例如,与图3A中相同的路径)时,光标208也沿着用户界面210上的界面引导216从右往左遵循线性路径220。
图4示出了诸如电视或计算机监视器之类的显示器304上的用户界面302的非限制性示例。用户界面302包括菜单,该菜单包括用户可以选择的四个项目新游戏306、 背景308、退出游戏310、和指南312。在图4的示例实施例中,该菜单中的项目沿垂直线排列。在其他实施例中,菜单项目可以沿水平线、以椭圆形、以螺旋形、或者以任何其他合适的布置进行排列。此外,菜单并不限于四个项目而是可以包含任何合适数目的项目。如图4中示出的实施例所示,界面引导314位于菜单左侧并且沿菜单项目垂直延伸。在其他实施例中,该界面引导可以位于菜单的右侧。在另外其他的实施例中,界面引导可以是菜单的一部分。一般而言,界面引导可具有与菜单相似的形状。例如,如图4中所示, 界面引导314是与菜单相邻的垂直杆(例如,线性形状)。在其他示例中,诸如在菜单为圆形时,界面引导可为圆形并且位于菜单所形成的圆的内侧或外侧。在另外其他的示例中,界面引导可具有与菜单不同的形状。例如,界面引导可以是水平线而菜单可以为椭圆。此外,界面引导可包括以分支配置连接的一个或多个界面引导,从而由主界面引导(例如,主干)和在与该主界面引导分叉的方向上从该主界面引导引出的一个或多个次界面引导(例如,分支)组成。例如,次界面引导可以垂直于主界面引导,或者次界面引导可各自关于主界面引导呈不同的角度(例如,50°、130°等等)。在一些实施例中,次界面引导可具有一个或多个三级界面引导,依此类推。在图4的示例实施例中,界面引导314在显示器304上是用户可见的。在其他实施例中,如下文将更详细地解释的,界面引导可能是用户不可见的。界面引导在显示器上可具有任何合适的形状或可视性。把手316被示为耦合到图4的示例中的界面引导314。如将在下文更详细地描述的,用户可将他的手锁定至把手316以使得他能沿界面引导314滑动该把手。例如,把手 316沿界面引导314的移动允许用户在菜单上滚动并且从一个菜单项(例如,新游戏306) 移到另一菜单项(例如,背景308)。在图4的示例实施例中,界面引导314包括对应于每一相应菜单项306、308、310和312的停止档318、320、322和324。尽管在图4的示例中停止档318、320、322和324对于用户是可见的,但在其他实施例中这些停止档可以是用户不可见的。在另外其他实施例中,停止档可以在把手在停止档的预定距离内移动时变得为用户可见。此外,每个停止档可以有可为用户可见或不可见的相应次界面引导。例如,在一些实施例中,这些次界面引导可以是用户不可见的,并且可以在相应停止档被激活时变得可见。停止档的可视性和数目可以取决于沿主界面引导的停止档的总数。例如,如果界面引导是沿两小时的电影的、具有对应该电影的每一秒的停止档的拖刷器,则每个停止档可保持不可见。作为另一示例,主界面引导可对应于具有七个级别的音量,并且停止档对于这七个级别中的每个级别是可见的。如图4的示例中所示的,把手316位于界面引导314顶端对应菜单项306的停止档318处,该位置可以是用户界面302最初出现在显示器304上时把手316的默认位置。作为另一示例,把手316在停止档318的位置可以是用户的手在其处从把手316解锁的位置。 下文将参照图5C和更详细地描述从把手解锁。继续图4,示出光标326在用户界面302的右下角。光标326被示为具有八边形。 在其他实施例中,光标可以是屏幕上的光点或者光标可具有诸如星形、箭头等其他形状。另外,光标的形状可以基于游戏或应用的状态而改变。如图4的示例中所示,光标326被用户从用户界面302的左上角的初始位置沿路
7径328移动。例如,用户可保持其右臂在身前往外伸出,以使他的手在他的身体前方的一定距离(例如,2英尺)(例如,他的手的位置比他的身体的位置更靠近深度相机)。用户的手的世界空间位置随后可经由游戏系统被转换为光标的屏幕空间位置。当用户在世界空间中移动他的手时,光标可响应地在用户界面上移动。例如,如果用户往右移动他的手,则光标往右移动。此外,用户在世界空间中移动他的手的距离可以任何合适的方式被映射为光标在用户界面上移动的距离。可以考虑诸如手速之类的因素以使得快速的手移动导致较大的光标移动而慢速的手移动导致更精确的光标移动。以此方式,光标在用户界面上跟踪用户的移动,并且为用户提供对用户的虚拟的手在屏幕空间中的虚拟“位置”的视觉指示。图5A-D示出了经由光标326与用户界面302中的界面引导314(例如,主界面引导)的用户交互序列。如图5A所示,光标326从屏幕左上角的初始位置移到把手316的位置以便锁定至把手316。光标326 (以及因此用户的手)可以在手的世界空间参数克服把手 316的抓取阈值时被锁定至把手316。作为示例,如果在光标充分靠近把手316时用户握紧手,则手的世界空间参数可克服把手的抓取阈值。例如,用户可在光标占据与把手相同的屏幕空间坐标时握紧他的手以便将光标锁定至把手。作为另一示例,如果如由光标所视觉化的手的屏幕空间位置在把手的阈值距离 (例如,30个像素)内达到持续时间阈值(例如,0.5到2秒),则手的世界空间参数可克服把手的抓取阈值。例如,用户可在世界空间中移动他的手以使光标的屏幕空间位置在把手的屏幕空间位置的阈值距离内。一旦光标已在该阈值距离内达到比持续时间阈值更长的时间,则光标以及因此用户的手就被锁定至把手。作为又一示例,如果手的屏幕空间位置在把手的阈值距离内并且手的速度小于速度阈值达到持续时间阈值,则手的世界空间参数可克服把手的抓取阈值。例如,用户可在世界空间里移动他的手以使得当光标处在把手的阈值距离内时放慢他移动手的速度。一旦手的速度低于速度阈值达到比持续时间阈值更长的时间(例如,光标悬浮于把手上方),光标以及因此用户的手就被锁定至把手。作为另一示例,如果手的屏幕空间位置处在把手的阈值距离内并且用户向前或向后(例如,朝向显示设备或远离显示设备)移动他的手达到阈值距离,则手的世界空间参数可克服把手的抓取阈值。例如,一旦手处在把手的阈值距离内并且用户向前移动他的手达阈值距离(例如,12英寸),光标以及因此用户的手就被锁定至把手。在一些实施例中,一旦光标被锁定至把手,光标就可变为对用户不可见和/或可修改把手的外观以提供对手已被锁定至把手的视觉指示。在一些实施例中,例如光标可变为不可见并且把手可在尺寸或亮度上有所提升。在一些实施例中,光标可作为把手的一部分保持对用户可见,如图5A-D的示例所示。此外,一旦光标被锁定至把手,光标就变为被约束成沿与该把手相关联的一个或多个界面引导移动。这样,手的世界空间位置被转换为被约束成沿与该把手相关联的一个或多个界面引导移动的屏幕空间把手位置。在图5B所示的示例中,一个界面引导314是可见的(例如,主界面引导)并且把手从对应菜单项306的停止档318移到对应菜单项308的停止档320。如上所述,沿界面引导的每个停止档可对应于可从与该界面引导相关联的菜单中被选择的项目。当该停止档被激活时可显示对应该停止档的次界面引导。例如,当屏幕空间把手位置处在该停止档的阈值距离之内时该停止档可被激活。因此,当把手靠近该停止档时,次界面引导330可在与界面引导314分叉的方向上从界面引导314延伸出来并且变得对用户可见,如图5C的示例中所示的。在其他示例中,无论何时只要主界面引导可见,则与每个停止档相关联的次界面引导就可变得可见。在另外其他示例中,次界面引导可以是用户不可见的。在一些实施例中,次界面引导330可以在用户在与该停止档相关联的菜单项的方向上移动他的手时变得对用户可见。例如,用户往右向与停止档320相关联的菜单项308移动把手,并且次界面引导330如图5C所描绘那样变得可见。作为补充或替换,与停止档相关联的菜单项可以当用户在该菜单项的方向上移动他的手时移动以显示把手沿次界面引导的进度。主界面引导和次界面引导的长度在世界空间与屏幕空间之间的转换可以是不同的。例如,用户可在世界空间中移动他的手相对小的距离以在屏幕空间中沿主界面引导移动相对大的距离。相反,用户可在世界空间中移动他的手相对大的距离以在屏幕空间中沿可能短于主界面引导的次界面引导移动相对小的距离。以此方式,选择对应于次界面引导的对象可能要求用户更为特意的运动以使得例如用户不会无意中选择他不希望选择的对象。当把手到达次界面引导的末端时,对应该次界面引导的项目可以被选择。在诸如图5C中所示的一些实施例中,停止档332可位于次界面引导330的末端。因此,当把手316 到达停止档332时,背景菜单项308被选择。在一些实施例中,当该项目被选择时,光标以及因此用户的手从把手被解锁。换言之,在一些实施例中,通过项目被选择来克服把手的自动释放阈值。当手的世界空间参数克服把手的释放阈值时,光标可在除次界面引导的末端之外的释放位置从把手被释放。例如,当用户松开他的手时,手的世界空间参数可克服把手的释放阈值。作为另一示例,如果手的屏幕空间位置在把手的阈值距离之外达到持续时间阈值, 则手的世界空间参数可克服把手的释放阈值。例如,用户可在世界空间中在远离主界面引导或次界面引导的方向上将他的手移动落在阈值距离之外的距离。如果手在阈值距离之外保持比持续时间阈值更长的时间,则光标从把手被解锁。作为另一示例,如果用户向前或向后(例如,远离显示设备或朝向显示设备)将他的手移动阈值距离则手的世界空间参数可克服把手的释放阈值。一旦光标从把手被解锁,则光标可再次变得可见一如果其在被锁定至把手时是不可见的。例如,光标可被显示在用户界面上对应手的世界空间位置的屏幕空间位置处。 此外,一旦光标从把手解锁,把手可保持其在界面引导上的位置(例如,把手的释放位置)。 这样,如果在解锁后光标再次被锁定至把手,把手的起始位置就在把手的先前释放位置。以此方式,如果用户无意中将他的手从把手解锁,把手沿界面引导的进度不会丢失。此外,把手可被留在界面引导上对应所期望的选择和/或设置的期望位置。在图5C的示例中,如果用户将他的手从把手316解锁,把手316保持在沿次界面引导330的位置。在其他实施例中,当用户克服把手的释放阈值并且将他的手从把手解锁时,把手可快速移到最近停止档的屏幕空间位置。例如,图示出其中光标326从把手316被解锁的示例。由于在手从把手316解锁时用户最靠近停止档320,所以把手316快速移到停止档 320。在一些实施例中,例如,把手可快速移到沿主界面引导的最近的停止档而不论次界面引导上最近停止档的距离如何,因为快速移到次界面引导上的停止档可能导致对相应菜单项的非所愿的选择。因此,人类目标(例如,用户)的手的移动可被转换为用户界面上光标的运动。用户可将光标锁定至与用户界面中的菜单相关联的界面引导的把手。用户的手在世界空间中的移动随后转换为该把手沿界面引导的移动。当用户从界面引导解锁时,不论是有意还是无意地,把手沿界面引导的位置保持在释放位置。以此方式,光标下一次被锁定至把手时把手的起始位置始于把手的先前释放位置。继续到图6,示出经由光标与用户界面中的界面引导进行用户交互的另一非限制性示例。在图6所示的示例实施例中,用户界面502被显示在可以是电视屏幕、计算机监视器之类的显示器504上。用户界面502包括沿水平线的具有一系列色彩项目的线性菜单, 包括红506、黄508、和蓝510。例如,这些色彩项目可以是用户可选择的可供用于用户界面 502的背景色。如图6中所示,该菜单在左右方向上延伸以指示存在当前在显示器504上不可见的其他色彩选项。用户界面502还包括被示为菜单项下方的水平条的主界面引导512、以及从主界面引导512垂直地延伸出(例如,垂直于主界面引导512)的次界面引导514。此外,主界面引导512包括停止档516、518、和520。在图6所示的实施例中,当末端停止档516或518 中的任何一个被激活时,发起菜单的滚动。例如,如图所示,光标522(以及因此用户的手) 被锁定至位于停止档518处的把手524。这样,菜单向右滚动以显露菜单中的其他项目。如果光标522代之以被锁定至把手524并且把手524被置于停止档516处,则菜单将向左滚动。以此方式,用户可以例如查看太大而适应不了显示器的菜单中的所有项目,或者用户可滚动遍历书籍或文档的页面。当不再需要滚动时,用户可以例如将把手524从停止档518移开。在一些实施例中,界面引导可以在其末端不包括停止档,并且可在把手到达没有停止档的末端时发起滚动。此外,在用户的手的世界空间位置试图将把手移动远越过界面引导的末端时可以增加滚动的速度。在其他实施例中,界面引导例如可在其末端处包括对应于在用户界面(例如, 菜单)中视觉地表示的可变滚动速度的多个停止档。继续图6,当所希望的色彩显示在次界面引导514上方时,例如用户可将把手524 移到停止档520以终止滚动。把手524随后可以沿次界面引导514向上移动以选择次界面引导514上方的项目。如上所述,一旦项目被选择,光标522就可从把手524被释放。此外, 当用户在沿主界面引导512的任意点处从把手524解锁时,如上所述,把手524可保持在之前被释放的位置。这样,用户没有丢失其在列表中的位置。因此,把手沿界面引导的移动可被用于沿与界面引导相关联的菜单滚动。当不再需要滚动时,或者如果用户无意中将他的手从把手解锁,光标可以从把手被解锁并且保持把手的释放位置。在此所述的方法和过程可以绑定到各种不同类型的计算系统。图I示出了以计算系统18、HDTV 16和深度相机22为形式的非限制性示例。作为另一更一般的示例,图7示意性地示出可以执行这里所述的一个或多个目标识别、跟踪和分析方法和过程的计算系统 160。计算系统160可采取各种不同的形式,包括但不限于游戏控制台和个人计算系统等
坐寸ο计算系统160可包括逻辑子系统162、数据保持子系统164、显示子系统166和/或捕捉设备168。计算系统可任选地包括图7中未示出的组件,和/或图7中所示的某些组件可以是未集成在计算系统中的外围组件。逻辑子系统162可包括被配置为执行一个或多个指令的一个或多个物理设备。例如,逻辑子系统可被配置成执行一个或多个指令,该一个或多个指令是一个或多个程序、例程、对象、组件、数据结构、或其它逻辑构造的一部分。可实现此类指令以执行任务、实现数据类型、变换一个或多个设备的状态、或以其他方式得到所需结果。逻辑子系统可包括被配置成执行软件指令的一个或多个处理器。另外地或替换地,逻辑子系统可包括被配置成执行硬件或固件指令的一个或多个硬件或固件逻辑机器。逻辑子系统可任选地包括分布在两个或更多个设备上的独立组件,在某些实施例中这些独立组件可位于远程。数据保持子系统164可包括一个或多个物理设备,该一个或多个物理设备被配置为保持可由逻辑子系统执行以实现此处所述的方法和过程的数据和/或指令。在实现这样的方法和过程时,可以变换数据保持子系统164的状态(例如,以保持不同的数据)。数据保持子系统164可包括可移动介质和/或内置设备。数据保持子系统164可以包括光学存储器设备、半导体存储器设备(如RAM、EEPR0M、闪存等)、和/或磁存储器设备等。数据保持子系统164可包括具有以下特性中的一个或多个特性的设备易失性、非易失性、动态、 静态、读/写、只读、随机存取、顺序存取、位置可寻址、文件可寻址、以及内容可寻址。在某些实施例中,可以将逻辑子系统162和数据保持子系统164集成到一个或更多个常见设备中,如专用集成电路或片上系统。图7还示出使用计算机可读可移动介质170形式的数据保持子系统的一方面,该方面可用于存储和/或传送可执行来实现此处所述的方法和过程的数据和/或指令。术语“模块”可用于描述被实现来执行一个或多个特定功能的计算系统160的一个方面。在某些情况下,可通过逻辑子系统162执行由数据保持子系统164所保持的指令来实例化这一模块。应该理解,可从相同的应用、代码块、对象、例程、和/或功能实例化不同模块和/或引擎。同样,在某些情况下,可通过不同的应用、代码块、对象、例程、和/或功能来实例化相同的模块和/或引擎。如此处所述,计算系统160包括深度图像分析模块172,该深度图像分析模块172 被配置成跟踪人类在固定的、世界空间坐标系中的世界空间姿态。术语“姿态”指人类的位置、定向、身体安排等。如此处所述,计算系统160包括交互模块174,该交互模块174被配置成用可移动的、界面空间坐标系来建立虚拟交互区,该可移动的、界面空间坐标系跟踪人类并相对于固定的、世界空间坐标系移动。如此处所述,计算系统160包括变换模块176,该变换模块176被配置成将在固定的、世界空间坐标系中定义的位置变换成在可移动的、界面空间坐标系中定义的位置。计算系统160还包括显示模块178,该显示模块178被配置成输出显示信号,该显示信号用于在与可移动的、界面空间坐标系中定义的位置相对应的桌面空间坐标处显示界面元素。显示子系统166可用于呈现由数据保持子系统164所保持的数据的可视表示。由于此处所描述的方法和过程改变由数据保持子系统保持的数据,并由此变换数据保持子系统的状态,因此同样可以变换显示子系统166的状态以在视觉上表示底层数据的改变。作为一个非限制性示例,可通过显示子系统166以响应于用户在物理空间中的移动而在虚拟桌面中改变位置的界面元素(例如,光标)的形式来反映这里所述的目标识别、跟踪和分析。显示子系统166可以包括使用实际上任何类型的技术的一个或多个显示设备。可将这些显示设备与逻辑子系统162和/或数据保持子系统164 —起组合在共享封装中,或如图 I和9所示这些显示设备可以是外围显示设备。计算系统160还包括被配置成获得一个或多个目标的深度图像的捕捉设备168。 捕捉设备168可以被配置成通过任何合适的技术(例如,飞行时间、结构化光、立体图像等等)捕捉具有深度信息的视频。如此,捕捉设备168可包括深度相机、摄像机、立体相机、和 /或其他合适的捕捉设备。例如,在飞行时间分析中,捕捉设备168可以向目标发射红外光,然后使用传感器来检测从目标的表面反向散射的光。在一些情况下,可以使用脉冲式红外光,其中可以测量出射光脉冲和相应的入射光脉冲之间的时间并将该时间用于确定从该捕捉设备到目标上的特定位置的物理距离。在一些情况下,出射光波的相位可以与入射光波的相位相比较以确定相移,并且该相移可以用于确定从该捕捉设备到目标上的特定位置的物理距离。在另一示例中,飞行时间分析可用于通过经由诸如快门式光脉冲成像之类的技术分析反射光束随时间的强度,来间接地确定从该捕捉设备到目标上的特定位置的物理距离。在另一示例中,结构化光分析可以被捕捉设备168利用来捕捉深度信息。在这样的分析中,图案化光(即被显示为诸如网格图案或条纹图案之类的已知图案的光)可以被投影到目标上。在目标的表面上,该图案可能变成变形的,并且可以研究该图案的这种变形以确定从该捕捉设备到目标上的特定位置的物理距离。在另一示例中,捕捉设备可以包括两个或更多个物理上分开的相机,这些相机从不同角度查看目标以获得视觉立体数据。在这种情况下,该视觉立体数据可以被解析以生成深度图像。在其他实施例中,捕捉设备168可以使用其他技术来测量和/或计算深度值。此外,捕捉设备168可以将计算出的深度信息组织为“Z层”,即与从深度相机沿其视线延伸到观察者的Z轴垂直的层。在一些实施例中,两个或更多个不同的相机可以被合并到一集成的捕捉设备中。 例如,深度相机和视频相机(例如RGB视频相机)可以被合并到共同的捕捉设备中。在一些实施例中,可以协作式地使用两个或更多个分开的捕捉设备。例如,可以使用深度相机和分开的视频相机。当使用视频相机时,该视频相机可用于提供目标跟踪数据、对目标跟踪进行纠错的确认数据、图像捕捉、面部识别、对手指(或其他小特征)的高精度跟踪、光感测和/或其他功能。要理解,至少一些目标分析和跟踪操作可以由一个或多个捕捉设备的逻辑机来执行。捕捉设备可以包括被配置成执行一个或多个目标分析和/或跟踪功能的一个或多个板载处理单元。捕捉设备可以包括便于更新这样的板载处理逻辑的固件。计算系统160可任选地包括诸如控制器180和控制器182之类的一个或多个输入设备。输入设备可被用于控制计算系统的操作。在游戏的上下文中,诸如控制器180和/或控制器182之类的输入设备可被用于控制游戏的那些不是通过这里所述的目标识别、跟踪和分析方法和过程来控制的方面。在某些实施例中,诸如控制器180和/或控制器182之类的输入设备可包括可用于测量控制器在物理空间中的移动的加速计、陀螺仪、红外目标/传感器系统等中的一个或多个。在某些实施例中,计算系统可任选地包括和/或利用输入手套、键盘、鼠标、跟踪垫、轨迹球、触屏、按钮、开关、拨盘、和/或其他输入设备。如将理解的,目标识别、跟踪和分析可被用于控制或扩充游戏或其他应用的常规上由诸如游戏控制器之类的输入设备控制的方面。在某些实施例中,这里所述的目标跟踪可被用作对其他形式的用户输入的完全替代,而在其他实施例中,这种目标跟踪可被用于补充一个或多个其他形式的用户输入。应该理解,此处所述的配置和/或方法在本质上是示例性的,并且这些特定实施例或示例不是限制意义,因为多个变体是可能的。此处所述的特定例程或方法可表示任意数量的处理策略中的一个或多个。由此,所示出的各个动作可按所示顺序执行、按其他顺序执行、并行地执行、或者在一些情况下省略。同样,可改变上述过程的次序。本公开的主题包括各种过程、系统和配置的所有新颖和非显而易见的组合和子组合,和此处所公开的其他特征、功能、动作、和/或特性、以及其任何和全部等效物。
1权利要求
1.一种计算系统(160),包括逻辑子系统(162);保持指令的数据保持子系统(164),所述指令可由所述逻辑子系统(162)执行以便 将人类目标(32)的手的世界空间位置转换为用户界面(210)的屏幕空间位置;如果所述手的世界空间参数克服所述用户界面(210)的把手(218)的抓取阈值则将所述手锁定至所述把手(218);当所述手被锁定至所述把手(218)时,将所述手的世界空间位置转换为被约束沿一个或多个界面引导(216)的屏幕空间把手位置;如果所述手的世界空间参数克服所述把手(218)的释放阈值则在所述把手(218)的释放位置将所述手从所述把手(218)解锁;以及在所述手从所述把手(218)被解锁之后将所述把手(218)保持在所述释放位置。
2.如权利要求I所述的计算系统,其特征在于,如果所述人类目标握紧所述手则所述手的世界空间参数克服所述把手的所述抓取阈值。
3.如权利要求I所述的计算系统,其特征在于,如果所述手的屏幕空间位置在所述把手的阈值距离之内达到持续时间阈值则所述手的世界空间参数克服所述把手的所述抓取阈值。
4.如权利要求I所述的计算系统,其特征在于,如果所述手的屏幕空间位置在所述把手的阈值距离内并且所述手的速度小于速度阈值达到持续时间阈值,则所述手的世界空间参数克服所述把手的所述抓取阈值。
5.如权利要求I所述的计算系统,其特征在于,如果所述人类目标松开所述手则所述手的世界空间参数克服所述释放阈值。
6.如权利要求I所述的计算系统,其特征在于,如果所述手的屏幕空间位置在所述把手的阈值距离之外达到持续时间阈值则所述手的世界空间参数克服所述释放阈值。
7.如权利要求I所述的计算系统,其特征在于,将所述手的世界空间位置转换为所述用户界面的屏幕空间位置包括将所述手的世界空间位置转换为所述用户界面的光标位置以使得所述手在世界空间中的移动导致光标在屏幕空间中的相应移动。
8.一种计算系统(160),包括配置成从深度相机(22)接收深度图像的外围输入;配置成向显示设备(16)输出用户界面(210)的显示输出;经由所述外围输入可操作性地连接至所述深度相机(22)和经由所述显示输出可操作性地连接至所述显示设备(16)的逻辑子系统(162);保持指令的数据保持子系统(164),所述指令可由所述逻辑子系统(162)执行以便从所述深度相机(22)接收包括人类目标(32)的世界空间场景的一个或多个深度图将所述人类目标(32)的手的世界空间位置转换为所述用户界面(210)的屏幕空间光标位置以使得所述手在世界空间中的移动导致光标(208)在屏幕空间中的相应移动;如果所述手的世界空间参数克服所述用户界面(210)的把手(218)的抓取阈值则将所述光标(208)锁定至所述把手(218);当所述光标(208)被锁定至所述把手(218)时,将所述手的世界空间位置转换为被约束沿主界面引导(216)的屏幕空间把手位置;如果所述手的世界空间参数克服所述把手(218)的释放阈值则在所述把手(218)的释放位置将所述光标(208)从所述把手(218)解锁;以及在所述光标(208)从所述把手(218)被解锁之后将所述把手(218)保持在所述释放位置。
9.如权利要求8所述的计算系统,其特征在于,一个或多个次界面引导以分叉配置从所述主界面引导延伸出。
10.如权利要求9所述的计算系统,其特征在于,所述主界面引导包括对应于所述一个或多个次界面引导中的每一个的停止档,并且所述一个或多个次界面引导之一在对应的停止档被激活时被显示。
11.如权利要求10所述的计算系统,其特征在于,在所述屏幕空间把手位置处在所述停止档的屏幕空间位置的阈值距离内时所述停止档被激活。
12.如权利要求9所述的计算系统,其特征在于,所述主界面引导包括对应所述一个或多个次界面引导中的每一个的停止档,并且如果所述手的世界空间参数在两个停止档之间克服所述把手的所述释放阈值则所述把手快速移到所述两个停止档中较近的停止档。
13.如权利要求9所述的计算系统,其特征在于,所述主界面引导包括对应于所述一个或多个次界面引导中的每一个的停止档,并且无论何时只要显示所述主界面引导就显示所述一个或多个次界面引导。
14.如权利要求9所述的计算系统,其特征在于,所述主界面引导与菜单相关联并且所述一个或多个次界面引导中的每一个对应于所述菜单中的项目。
15.如权利要求8所述的计算系统,其特征在于,还包括可由所述逻辑子系统执行以在所述屏幕空间把手位置到达所述主界面引导的末端时发起与所述主界面引导相关联的列表的滚动的指令。
全文摘要
本发明涉及用于界面引导的持久性把手。一种计算系统将人类目标的手的世界空间位置转换为用户界面的屏幕空间位置,并且如果手的世界空间参数克服用户界面的把手的抓取阈值则将手锁定至该把手。当手被锁定至该把手时,该计算系统将手的世界空间位置转换为被约束沿一个或多个界面引导的屏幕空间把手位置。如果手的世界空间参数克服把手的释放阈值则在把手的释放位置将手从该把手解锁。在手从把手被解锁之后该把手被保持在该释放位置。
文档编号G06F9/44GK102591648SQ201110443210
公开日2012年7月18日 申请日期2011年12月14日 优先权日2010年12月15日
发明者A·达亚尔, A·马丁利, B·雷维尔, C·克莱恩, J·安德森, J·布里奇斯 申请人:微软公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1