1.一种用于翻译手语的计算机实现的方法,包括:
使用拍摄设备拍摄场景,所述场景包括人物目标;
跟踪场景中人物目标的动作;
检测场景中人物目标的一个或更多姿势;
将一个或更多姿势与手语手势库比较;
确定一个或更多姿势与一个或更多手势之间的匹配,所述确定步骤通过以下步骤进行:基于获取的用户动作的单独简档和语法信息以调节每个检测到的手势的概率权重,以及将每个概率权重与可能被分配给所检测的姿势的其它手势比较,其中所述单独简档用于将已知倾向应用于用户的动作和姿势检测;以及
生成指示一个或更多手势的视觉翻译的输出。
2.如权利要求1所述的计算机实现方法,其特征在于,所述检测步骤包括使用RGB照相机和深度照相机以检测姿势。
3.如权利要求1所述的计算机实现方法,其特征在于,所述检测步骤至少包括检测第一和第二邻近的姿势,并且所述确定包括确定第一和第二邻近的姿势分别与第一手势和第二手势的匹配。
4.如权利要求3所述的计算机实现方法,其特征在于,还包括相对于彼此比较第一和第二手势以确定在第一手势与第一姿势之间匹配的准确性。
5.如权利要求4所述的计算机实现方法,其特征在于,所述检测步骤进一步包括检测第二手势之后的第三手势,并且还包括将第一手势和第三手势与第二手势比较以确定第二姿势的第二手势的准确性。
6.如权利要求5所述的计算机实现方法,其特征在于,每个比较步骤包括确定每个手势是否在语义学上下文中有意义。
7.如权利要求5所述的计算机实现方法,其特征在于,还包括获取用户人口统计信息的步骤,并且还包括将每个匹配与用户人口统计信息比较以验证该匹配的准确性。
8.如权利要求1所述的计算机实现方法,其特征在于,所述确定匹配的步骤包括分配指示姿势和手势之间匹配的强度的概率权重。
9.如权利要求1所述的计算机实现方法,其特征在于,所述确定匹配的步骤包括:
分配第一手势给所检测的姿势;
分配第二手势给邻近的所检测的姿势;以及
比较第一和第二手势以验证第二手势的准确性。
用于翻译手语的计算机实现的方法\n技术领域\n[0001] 本发明涉及计算机系统,尤其涉及计算机实现的语言翻译系统。\n背景技术\n[0002] 已经在众多不同的上下文中开发了语言翻译系统。存在这样的技术,其基于选择被显示的特定意思或单词,用于将书面语言从一种语言翻译到另一种,以及向用户显示手语动作。\n[0003] 公开了为了控制例如游戏的计算机界面,使用例如照相机的多个传感器以检测动作和姿势的系统。\n发明内容\n[0004] 提供了将手语(姿势的通信)译成书面或听觉形式的通信的技术。检测用户的姿势(通常使用手),并且检测到的姿势被与手势匹配。连续的手势被检测并且与语法库比较以确定分配给姿势的手势相对于彼此以及语法上下文是否是有意义的。在一个实施例中,提供了用于翻译手语的计算机实现的方法。拍摄设备拍摄包括人物目标的场景,并且跟踪了在场景内用户身体部分的动作(尤其是手)。姿势被检测并且与和词汇库中手语手势相匹配的姿势比较。可以将每个手势与以前的和连续的手势比较以确定手势相对于彼此是否是有意义的。还可以进一步将手势与用户人口统计信息和上下文数据库比较以验证翻译的准确性。提供了动作和手势之间的匹配的输出。\n[0005] 提供本发明内容以便用一种简单的形式介绍将在以下详细描述中进一步描述的一些概念。本发明内容不旨在确定所要求保护的主题的关键或必要特征,也不旨在用于帮助确定所要求保护的主题的范围。\n附图说明\n[0006] 图1A和1B示出用户玩游戏的跟踪系统的示例实施例。\n[0007] 图2示出可以用作跟踪系统的部分的拍摄设备的示例实施例。\n[0008] 图3描述可以用于跟踪姿势以及基于跟踪到的姿势执行应用程序的处理设备的示例。\n[0009] 图4示出可以用于跟踪动作以及基于跟踪到的动作更新应用程序的计算系统的第二个示例实施例。\n[0010] 图5A-5D是美国手语(ASL)的各种视觉手势的表示。\n[0011] 图6A和6B是在不同上下文中采用的美国手势的各种视觉手势的表示。\n[0012] 图7是示出依照本技术的方法的流程图。\n[0013] 图8是示出将姿势与已知手势库比较的方法的流程图。\n[0014] 图9是示出将手势与相邻手势比较的方法的流程图。\n[0015] 图10A-10E是用于用户的姿势识别器和骨骼跟踪模型的表示。\n[0016] 图11-12示出在本技术的系统中使用的示例性显示输出和用户界面。\n具体实施方式\n[0017] 提供了用于基于用户的姿势以执行手语翻译的技术。拍摄设备用于检测用户的动作,并且检测到的姿势被与手势匹配。连续的手势被检测并且与语法库比较以确定分配给姿势的手势相对于彼此以及词汇上下文是否是有意义的。可以将每个手势与以前的和连续的手势比较以确定手势相对于彼此是否是有意义的。还可以进一步将手势与用户人口统计信息和上下文数据库比较以验证翻译的准确性。提供了动作和手势之间的匹配的输出。\n[0018] 图1A示出可以与本技术一起使用的系统10的示例实施例。示例性跟踪和翻译系统10的一个用途是用户18在玩游戏。替代地,如此处所述,系统可以用于在用户姿势被识别为一个或更多手语的手势时来翻译和解释手语。\n[0019] 图1A中的示例是用户玩拳击游戏。在示例实施例中,系统10可以用于识别、分析和/或跟踪诸如用户18的人物目标或在跟踪系统10范围内的其它对象。\n[0020] 跟踪系统10可以包括计算系统12。计算系统12可以是计算机、游戏系统、或游戏控制台、等等。根据示例实施例,计算系统12可以包括硬件组件和/或软件组件,以使得计算系统12可以用于执行诸如游戏应用程序、非游戏应用程序等的应用程序。在一个实施例中,计算系统12可以包括诸如标准处理器、专用处理器、微处理器等的处理器,该处理器可以执行存储在处理器可读存储设备上用于执行此处所述过程的指令。\n[0021] 如图1A所示,跟踪和翻译系统10可以进一步包括拍摄设备20。例如,如以下将更详细描述的,拍摄设备20可以是能够用于视觉地监控例如用户18的一个或更多用户的照相机,以使得可以拍摄、分析和跟踪由一个或更多用户执行的姿势和/或动作,以执行应用程序中的一个或更多控制或动作和/或动画化化身或屏幕上的角色。\n[0022] 根据一个实施例,跟踪和翻译系统10可以被连接至诸如电视、监视器、高清晰度电视(HDTV)等的音频/视觉设备16,该设备可以向例如用户18的用户提供游戏或应用程序视觉和/或音频。例如,计算设备12可以包括提供与游戏应用程序、非游戏应用程序等相关的音频/视觉信号的例如显卡的视频适配器和/或例如声卡的音频适配器。音频/视觉设备16可以接收来自计算设备12的音频/视觉信号,并且然后可以将与音频/视觉信号相关的游戏或应用程序视觉和/或音频输出给用户18。根据一个实施例,音频/视频设备16可以通过例如S-视频电缆、同轴电缆、HDMI电缆、DVI电缆、VGA电缆、组件视频电缆等连接至计算系统12。\n[0023] 如图1A所示,系统10可以用于识别、分析和/或跟踪例如用户18的人物目标。例如,可以使用拍摄设备20跟踪用户18,以使得用户18的姿势和/或动作可以被拍摄以动画化化身或屏幕上的角色和/或可以被翻译为用于影响由计算环境12正在执行的应用程序的控制。因此,根据一个实施例,用户18可以移动其身体以控制应用程序和/或动画化化身或屏幕上的角色。类似地,跟踪系统10可以用于识别、分析、和/或跟踪观看用户18玩游戏的人,以使得观看用户18玩游戏的那些人的动作会控制在音频/视觉设备16上显示的拳击游戏里观众中的化身动作。\n[0024] 在图1A所描述的示例中,在系统10上执行的应用程序可以是用户18正在玩的拳击游戏。例如,计算系统12可以使用音频/视觉设备16以向用18户提供拳击对手22的视觉表示。计算系统12还可以使用音频/视觉设备16以提供由用户18用其动作控制的用户化身24的视觉表示。例如,如图1B所示,用户18可以在物理空间出拳以使用户化身\n24在游戏空间中出拳。因此,根据示例实施例,计算系统12和拍摄设备20识别和分析用户18在物理空间的出拳,以使得该出拳被翻译为用户化身24在游戏空间中的游戏控制和/或该出拳的动作用于动画化游戏空间中的游戏化身24。\n[0025] 根据其它示例实施例,系统10可以进一步用于将目标动作翻译为在游戏范围外的操作系统和/或应用程序控制。例如,可以由例如用户18的目标的动作来虚拟地控制操作系统和/或应用程序的任何可控制方面。\n[0026] 在其它实施例中,如图1B所示,用户18可以在处理设备12A和拍摄设备20A前比图1A所示更小的视野里以及更接近拍摄设备的距离处执行动作。在图1B的图示中,处理设备12A是笔记本计算机,并且用户18和拍摄设备20A之间的距离比图1A中所描述的实施例要小得多。此外,由于用户更接近拍摄设备,因此拍摄设备的视野也更小。当所有其它元素相等时,具有与图1A中拍摄设备20相等分辨率的如图1B所示位于离用户18更近的拍摄设备,将具有更高的拍摄用户手指和脸部动作的能力。\n[0027] 系统10及其组件的合适示例可以在下列同时待批的专利申请中找到,特此专门并入其全部以作为参考:名为“Environment And/Or Target Segmentation(环境和/或目标分割)”的第12/475094号美国专利申请,2009年5月29日提出申请,并且此处特此完全并入以供参考;名为“Auto Generating a Visual Representation(自动生成视觉表示)”的第12/511850号美国专利申请,2009年7月29日提出申请,此处完全并入以供参考;第\n12/474655号美国专利申请,“Gesture Tool(姿势工具)”,2009年5月29日提出申请,并且此处特此完全并入以供参考;第12/603437号美国专利申请,“Pose Tracking Pipeline(姿势跟踪流水线)”,2009年10月21日提出申请,(在下文中用‘437申请指代),并且此处特此完全并入以供参考;第12/475308号美国专利申请,“Device for Identifying and Tracking Multiple Humans Over Time(用于跨时间标识和跟踪多个人的设备)”,2009年\n5月29日提出申请,并且此处特此完全并入以供参考;“Motion Detection Using Depth Images(使用深度图像的动作检测)”,2009年12月18日提出申请,并且此处特此完全并入以供参考;以及第12/575388号美国专利申请,“Human Tracking System(人体跟踪系统)”,2009年10月7日提出申请,并且此处特此完全并入以供参考;第12/422661号美国专利申请,“Gesture Recognizer System Architecture(姿势识别器系统体系结构)”,2009年4月13日提出申请,并且此处特此完全并入以供参考;第12/391150号美国专利申请,“Standarad Gestures(标准姿势)”,2009年2月23日提出申请,并且此处特此完全并入以供参考。\n[0028] 图2示出可以用于场景中目标识别、分析和跟踪的拍摄设备20的示例实施例,其中目标可以是用户或对象。根据示例实施例,拍摄设备20可以被配置为拍摄具有包含深度图像的深度信息的视频,该深度图像可以包含通过包括例如飞行时间、结构化光、立体图像等的任何合适技术的深度值。根据一个实施例,拍摄设备20可以将所计算的深度信息组织到“Z个层”,或者与从深度照相机沿着其视线延伸的Z轴垂直的层。\n[0029] 如图2所示,拍摄设备20可以包括图像照相机组件32。根据示例实施例,图像照相机组件32可以是能够拍摄场景的深度图像的深度照相机。深度图像可以包括所拍摄场景的二维(2-D)像素区域,其中2-D像素区域中的每个像素可以表示深度值,该深度值诸如来自照相机所拍摄场景中的对象的以例如厘米、毫米等为单位的长度或距离。\n[0030] 如图2所示,根据示例实施例,图像照相机组件32可以包括可用于拍摄场景的深度图像的红外光组件34、例如三维(3-D)照相机36的第一传感器、以及例如RGB照相机38的第二传感器。这些组件中的每一个都集中在场景。例如,使用飞行时间分析,拍摄设备20的红外光组件34可以发射红外光到场景上,并且然后使用例如3-D照相机36和/或RGB照相机38的传感器(没有示出)以检测来自场景中一个或更多目标和对象表面的反向散射光。在一些实施例中,可以使用脉冲红外光从而使得传出的光脉冲和对应的传入光脉冲之间的时间可以被测量并且用于确定从拍摄设备20到场景中目标或对象上特定位置的物理距离。此外,在其它示例实施例中,可以将传出光波的相位和传入光波的相位相比较以确定相位偏移。相位偏移然后可用于确定从拍摄设备20到目标或对象上特定位置的物理距离。\n[0031] 根据另一个示例实施例,通过包括例如快门光脉冲成像的各种技术跨时间分析反射光束的强度,飞行时间分析可以用于间接地确定从拍摄设备20到目标或对象上特定位置的物理距离。\n[0032] 在另一个示例实施例中,拍摄设备20可以使用结构化光以拍摄深度信息。使用这一分析,带图案的光(即显示为诸如网格图案或条纹图案等的已知图案的光)可以通过例如红外光组件34投影到场景上。在击中场景中一个或更多目标或对象的表面后,作为响应图案会发生变形。这一图案的变形可以由例如3-D照相机36和/或RGB照相机38拍摄,并且然后被分析以确定从拍摄设备20到目标或对象上特定位置的物理距离。\n[0033] 根据另一个实施例,拍摄设备20可以包括两个或更多物理上分开的照相机或传感器,所述照相机或传感器可以从不同角度观察场景以获取可被解析以生成深度信息的视觉立体数据。\n[0034] 在另一个示例实施例中,拍摄设备20可以使用点云数据和目标数字化技术以检测用户的特征。\n[0035] 拍摄设备20可以进一步包括话筒40、或一系列话筒。话筒40可以包括接收声音并将其转换为电信号的转换器或传感器。根据一个实施例,话筒40可以用于减少目标识别、分析和跟踪系统10中拍摄设备20和计算环境12之间的反馈。此外,话筒40可以用于接收音频信号,该音频信号同样由用户提供以控制诸如游戏应用程序、非游戏应用程序等的可以由计算环境12执行的应用程序。\n[0036] 在示例实施例中,拍摄设备20可以进一步包括与图像照相机组件32可操作的通信的处理器或微控制器42。处理器42可以包括可执行指令的标准处理器、专用处理器、或微处理器等,该指令可以包括用于接收深度图像、确定合适目标是否包含在深度图像中、将合适目标转换为目标的骨骼表示或模型的指令,或者其它任何合适指令。\n[0037] 拍摄设备20可以进一步包括存储器组件44,其可以存储由微控制器42执行的指令、由3-D照相机36或RGB照相机38拍摄的图像或图像帧、或任何其它合适信息、图像等。\n根据示例实施例,存储器组件44可以包括随机存取存储器(RAM)、只读存储器(ROM)、高速缓存、快闪式存储器、硬盘、或其它合适存储组件。微控制器42和存储器一起可以被共同地称为微控制器。\n[0038] 如图2所示,在一个实施例中,存储器组件44可以是与图像拍摄组件32和处理器\n42通信的单独的组件。根据另一个实施例,存储器组件44可以被集成到处理器42和/或图像拍摄组件32中。\n[0039] 如图2所示,拍摄设备20可以通过通信链路46与计算环境12通信。通信链路46可以是包括例如USB连接、Firewire连接、以太网电缆连接等的有线连接,和/或诸如无线\n802.11b、g、a或n连接等的无线连接。根据一个实施例,计算环境12可以向拍摄设备20提供时钟,时钟可以用于确定例如何时通过通信链路46拍摄场景。\n[0040] 此外,拍摄设备20可以通过通信链路46向计算环境12提供由例如3-D照相机\n36和/或RGB照相机38拍摄的深度信息和图像,以及由拍摄设备20生成的骨骼模型。例如,计算环境12然后可以使用骨骼模型、深度信息和拍摄到的图像以控制诸如游戏或文字处理器等的应用程序。\n[0041] 计算环境12可以包括例如图3和4中所示的那些使得诸如拳击应用程序或手语翻译器180等的应用程序操作在其上执行的组件。\n[0042] 在图2中,计算系统12中示出姿势识别器190和手语翻译器180。在一个实施例中,姿势识别器190可以包括例如骨骼提取组件192、动作跟踪器196、注册组件194、脸部分类器198、以及手部分类器199。骨骼提取组件192依照第12/475094号美国专利申请运行以提取和定义跟踪用户动作的骨骼系统。骨骼系统的示例在图10A和10C中示出。动作跟踪组件196与‘437申请的公开共同运行以跟踪场景中检测到的骨骼的动作。动作和姿势组件被翻译成与等同于姿势的已知手势的库193相匹配的姿势。姿势组件包括但不限于:相对于用户身体和其它手的手掌形状和配置,相对于用户手、其它手指和身体的手指形状和配置、手和手指的方向(例如上、下、横向),相对于其它手、手指、手臂和身体位置(例如跨胸、向一侧偏移等)包含了动作开始和结束位置的手、手指、手臂和头的动作。这在以下图\n10A中示出。注册组件194对拍摄设备20的组件34、36、38、40提供的信息进行同步。如上所述,来自拍摄设备的信息可以包括深度和图像信息。注册组件194同步这一信息以跟踪姿势动作。\n[0043] 脸部分类器198和手部分类器199检测用户手和脸、手和手指形状以及配置、方向、位置和动作的精细粒度的变化,如以下所述所有变化可以影响对姿势的翻译。对脸部表情的检测以及手的个别数字动作可以与将姿势翻译为如图5和6所示的手势有关。脸部分类器198和手部分类器199与骨骼提取组件192、动作跟踪器196共同工作。骨骼提取组件\n192、动作跟踪器196通知脸部分类器198和手部分类器199手和脸位于场景中的何处从而使得为其确定这些信息不成为手部和脸部分类器的负担。骨骼提取组件192还唯一地标识每个用户从而使得可以独立地跟踪每个用户的手语会话。\n[0044] 当拍摄设备20的分辨率足够提供对手或脸的模型的跟踪时,脸部分类器198和手部分类器199基于脸和手的动作确定用户脸和手的位置,这些位置添加信息到词汇/语法匹配器195的匹配算法,脸部分类器198和手部分类器199都基于由拍摄设备20提供的信息检测场景中的用户18以提供手语输出188。词汇/语法匹配器195可以包括词汇字典\n193、用户数据186和语法库185。当检测到姿势时,信息被放入查询字典193并且将检测到的动作与存储在字典中的动作比较的词汇/语法匹配器195,以确定由用户提供的特定手势的意思。这在以下参考图7描述,并且可以由一个或更多硬件组件和被专门编程以执行实现此处所述技术的指令的处理器所启用。此外,将分配给姿势的手势与语法库185和用户数据186比较,以验证对姿势的手势分配的准确性。语法库185包含关于任何手势根据先前和随后的手势是否有意义的信息。用户数据186包含用于确定手势根据特定的已知用户信息是否有意义的用户特定人口统计和其它用户特定的信息。\n[0045] 目标识别、分析和跟踪系统10可以确定深度图像是否包括人物目标。在一个实施例中,可以确定深度图像的拍摄到的场景中诸如人物目标和非人物目标等的每个目标的边缘。如上所述,每个深度值可以表示诸如来自拍摄设备20所拍摄场景中对象的以例如厘米、毫米等为单位的长度或距离等的深度值。根据示例实施例,可以通过比较与例如深度图像相邻或附近的像素相关的各深度值来确定边缘。如果经比较的各深度值比预定的边缘容限大,则该像素定义了边缘。\n[0046] 根据另一个实施例,可以填充深度图像上预定的点或区域以确定深度图像是否包括人物目标。例如,可以比较深度图像的选定区域或点中像素的各深度值以确定如上所述定义目标或对象的边缘。在示例实施例中,可以跨深度图像均匀地分布预定的点或区域。例如,预定的点或区域可以包括在深度图像中心的点或区域,在深度图像的左边缘和中心之间的两个点或区域,在深度图像的右边缘和中心之间的两个点或区域,等等。\n[0047] 可以基于所确定的边缘填充Z个层的Z个值。例如,与所确定边缘相关的像素和在所确定边缘中的区域的像素可以彼此相关以定义所拍摄区域中的可以与图案比较的目标或对象。\n[0048] 根据示例实施例,每个填充的人物和非人物目标可以与图案匹配以确定所拍摄区域中的目标是否包括人和/或所拍摄区域中的哪些目标包括人。图案可以包括,例如与人的各种位置或姿势相关的预定身体模型的机器表示,该位置或姿势诸如手臂放在两侧的典型站立姿势。\n[0049] 在一个示例实施例中,可以隔离人物目标,并且建立人物目标的位掩码以扫描一个或更多身体部分。例如,在深度图像中发现有效的人物目标之后,可以删除背景或与人物目标不匹配的深度图像的区域。然后可以为人物目标生成包括例如沿着X、Y和Z轴的人物目标值的位掩码。根据示例实施例,可以从例如头部开始,为各身体部分扫描人物目标的位掩码,以生成人物目标的模型。位掩码的顶部可以与头顶的位置相关。在确定头顶之后,可以向下扫描位掩码以接着确定颈部的位置、肩膀的位置等。可以更新深度图或深度图像数据以包含像素与模型中特定虚拟身体部分相关的概率。\n[0050] 根据示例实施例,在确定身体部分的值后,可以建立包含诸如与人物目标的位掩码相关的身体部分的长度、宽度等的测量值的数据结构。在一个实施例中,身体部分的数据结构可以包括由拍摄系统以一定帧率拍摄的帧中多个深度图像的平均结果。可以以特定数目的帧迭代地调整模型。根据另一个实施例,可以诸如按比例放大、按比例缩小等来调整所确定身体部分的测量值,从而使得数据结构中的测量值更紧密地与典型的人的身体模型对应。身体模型可以包含任何数目的身体部分,其中每一部分可以是模型化目标的对应部分的任何机器可理解表示。\n[0051] 在包括两个或更多身体部分的模型示例中,模型的每个身体部分可以包括关节位于相邻骨头的相交处的一个或更多结构成员(即“骨头”)。例如,由位掩码确定的测量值可以用于定义骨骼模型中一个或更多关节(例如以下参考图10A所示)。该一个或更多关节可以用于定义与人的身体部分对应的一个或更多骨头。每个关节可以允许一个或更多身体部分相对于一个或更多其它身体部分而移动。例如,表示人物目标的模型可以包括多个严格的和/或可变形的身体部分,其中若干身体部分可以表示人物目标对应的解剖学的身体部分。可以将每个身体部分特征化为定义骨骼模型的关节和骨头的数学矢量。应当理解一些骨头可以对应于人物目标中的解剖学骨头和/或一些骨头没有人物目标中对应的解剖学骨头。\n[0052] 骨头和关节可以共同组成骨骼模型(图10A、10D、10E),该骨骼模型可以是另一个模型的组成元素。骨骼模型可以包括每个身体部分的一个或更多骨骼成员以及相邻骨骼成员之间的关节。\n[0053] 当用户在物理空间移动时,由拍摄设备20所拍摄到的结果图像数据可以用于调节骨骼模型,从而使得骨骼模型可以准确表示用户。根据示例实施例,模型可以被栅格化为合成的深度图像。栅格化允许由数学矢量、多边形网格、或其它对象描述的模型被转换成以像素形式描述的合成的深度图像。由拍摄系统检索的目标的观测到图像和模型栅格化的(即合成的)图像之间的差别可以用于确定应用于模型以将身体调节为不同姿势的力矢量。\n[0054] 在一个实施例中,一个或更多力矢量可以应用于模型的一个或更多力接收方面以调节模型为更紧密地与拍摄区域的物理空间中目标的姿势对应的姿势。模型可以被迭代地调节为拍摄的帧。取决于正在使用的模型的类型,力矢量可以应用于关节、身体部分的重心、三角形的顶点、或者模型的任何其它合适的力接收方面。此外,在一些实施例中,当确定力的方向和/或大小时,可以使用两个或更多不同的计算。\n[0055] 在用于拍摄用户自然动作的一个或更多实施例中,拍摄设备20重复地将用于动作跟踪的数据发送给计算系统12。动作跟踪数据可以包括关于例如与不同关节、重心或节点有关的矢量的某些形式的骨骼模型的参考数据,以示出动作变化。数据可以参考由栅格化矢量数据创建的合成的像素数据表示。数据还可以包括用户的位掩码,用于在每次更新时比较以检测哪个身体部分正在移动。索引每个身体部分,从而可以标识每个身体部分,例如起居室的家具的拍摄区域的其它部分被标识为背景,并且索引用户,从而可以将其相应身体部分的机器可表示的数据链接到用户。\n[0056] 动作跟踪器196可以使用索引以标识哪些身体部分在更新之间改变了位置。对于不同的身体部分,在姿势库455中有相关的姿势过滤器。姿势过滤器包括用于确定在更新或一系列更新中所指示的动作是否表示姿势的指令,该姿势可以是动作本身或造成的姿势。如以下所述,姿势可以具有与基于姿势的手语有关的意思。\n[0057] 在一个实施例中,姿势过滤器450(图10B)执行用于比较涉及带参数的姿势的一个或更多身体部分的动作跟踪数据的指令,该参数包括与定义姿势的动作特征有关的准则。动作特征的一些示例包括用户手和脸、脸和手指形状以及配置、方向、位置和动作中的位置、角度、速度和加速度变化。例如,投掷可以实现为包括表示用户的一只手从身体后方越过身体前方的动作的信息的姿势,如同该动作由深度照相机所拍摄的一样。“投掷”的参数的一些示例可以是手必须达到的阈值速度,手必须移动的距离(既可以是绝对的,也可以是整体上相对于用户的大小),以及手从身体后越过身体前的动作的方向。参数可以被存储为其对应姿势的元数据。参数可以包括姿势的各种动作特征中的任何一种。在包含参数的过滤器中,参数值可以采用不同形式,例如,它可以是阈值、绝对值、容错或范围。\n[0058] 可以由参数表示的动作特征的若干更多示例如下:包含在姿势中的身体部分,相对于由用户骨骼模型表示的身体部分、关节、其它身体部分或用户身体重心的动作角度,身体部分或整个身体位置的改变,以及由身体部分或整个身体移动的距离。此外,特征的其它示例是在用户身体周围的空间体(身体部分在其中移动的)的位置,移动的方向,身体部分移动的速度,移动发生的地点,身体部分和场景中另一对象之间的角度,加速度阈值,姿势的时间段,姿势的特定时间,以及释放点。\n[0059] 在实施例中,用户还使用其声音以产生、增强、区分或阐明姿势。\n[0060] 在一个实施例中,姿势过滤器的准则参考了如同图10A、10D、10E所示那些的一个或更多的骨骼模型。过滤器可以包括在确定参数准则是否满足时可以处理深度值的代码和相关数据,或关于骨骼数据的矢量,或颜色图像数据,或者两个或更多这些的组合。例如,过滤器的输入可以包括诸如与用户关节位置有关的关节数据,由在关节处相交的骨头形成的角度,对碰撞测试有帮助的用户的RGB颜色数据,以及用户面的变化速率等的事物。使用用于包含在姿势内的一个或更多身体部分的先前位置数据集,输入数据可以被呈现为位置、速度、移动方向、关节角度等发生的变化。\n[0061] 可以由一个或更多输出的置信度表示是否有匹配。在一个实施例中,置信度可以被实现在范围为包括在0和1之间的浮点数的线性标度上。在实施例中,确定置信度可以包括基于与过滤器相关的参数的布尔逻辑确定。例如,每个参数可以具有自己的相关置信度,确定与该置信度相关的动作特征,并且动作跟踪器196检索该置信度以用于其姿势确定。\n可以给每个参数和其置信度加权,该加权可以被加权技术使用以确定姿势作为整体时做出的置信度。此外,对给定姿势可以有动作特征的输出。动作特征的示例包括时间、速度、加速度速率或做出姿势的角度。\n[0062] 有关识别器引擎190的更多信息可以从第12/422661号,“Gesture Recognizer System Arthitecture姿势识别器体系结构”,2009年4月13日提出申请,中找到,此处参考其全部以并入。有关识别姿势的更多信息可以在第12/391150号美国专利申请,“Standard Gestures(标准姿势)”2009年2月23日提出申请,和第12/474655号美国专利申请“Gesture Tool(姿势工具)”,2009年5月29日提出申请,中找到。此处参考其全部并入这两个专利申请。\n[0063] 如此处所使用的,计算环境12可以指单个计算设备或计算系统。计算环境可以包括非计算组件。计算环境可以包括或被连接至显示输出的显示设备。显示设备可以是单独的但是与计算环境耦合的实体,或者显示设备可以是例如笔记本电脑的处理和显示的计算设备。因此,计算系统、计算设备、计算环境、计算机、处理器、或其它计算组件可以交换着使用。\n[0064] 图3示出可以是用于跟踪动作和/或动画化(或以其他方式更新)由应用程序显示的化身或其它屏幕上对象的如图1A-2所示的计算系统12的计算系统的示例实施例。例如与图1A-2有关的上述计算系统12的计算系统可以是例如游戏控制台的多媒体控制台100。\n如图3所示,多媒体控制台100有具有1级高速缓存102、2级高速缓存104和快闪ROM(只读存储器)106的中央处理单元(CPU)101。1级高速缓存102和2级高速缓存104暂时地存储数据并且因此减少存储器访问周期的数目,从而提高处理速度和吞吐量。可以提供具有多个核以及相应的额外的1级和2级高速缓存102和104的CPU101。快闪ROM106可以存储当多媒体控制台100开机时在引导过程的初始阶段中加载的可执行代码。图形处理单元(GPU)108和视频编码器/视频编译码器(编码器/译码器)114形成用于高速和高分辨率图形处理的视频处理流水线。数据通过总线被从图形处理单元108运送到视频编码器/视频编译码器114。视频处理流水线输出数据到A/V(音频/视频)端口140以传输给电视或其它显示器。存储器控制器110被连接至GPU108以使处理器访问各种类型的存储器\n112,例如但不限于RAM(随机存取存储器)。\n[0065] 多媒体控制台100包括在模块118上实现的I/O控制器120、系统管理控制器122、音频处理单元123、网络接口控制器124、第一USB主控制器126、第二USB控制器128和前面板I/O子部件130。USB控制器126和128充当外围设备控制器142(1)-142(2)、无线适配器148和外部存储器设备146(例如快闪式存储器、外部CD/DVD ROM驱动器、可移动介质等)的主机。网络接口124和/或无线适配器148提供对网络(例如因特网、家庭网等)的访问,并且可以是包括以太网卡、调制解调器、蓝牙模块、电缆调制解调器等的各种有线或无线适配器组件中的任何一种。\n[0066] 提供系统存储器143以存储在引导过程中加载的应用程序数据。提供介质驱动器\n144,并且介质驱动器144可以包括DVD/CD驱动器、蓝光驱动器、硬盘驱动器、或其它可移动介质驱动器等。介质驱动器144可以是多媒体控制台100内部或外部的。可以通过介质驱动器144访问用于由多媒体控制台100执行、回放等的应用程序数据。介质驱动器144通过诸如串行ATA总线或其它高速连接(例如IEEE1394)等的总线被连接至I/O控制器120。\n[0067] 系统管理控制器122提供与确保多媒体控制台100的可用性有关的各种服务功能。音频处理单元123和音频编译码器132形成具有高保真度和立体处理的对应的音频处理流水线。音频数据通过通信链路被在音频处理单元123和音频编译码器132之间传送。\n音频处理流水线输出数据至A/V端口140以用于由外部音频用户或具有音频能力的设备进行复制。\n[0068] 前面板I/O子部件130支持电源按钮150和弹出按钮152、以及在多媒体控制台\n100的外表面上暴露的任何LEDs(发光二极管)或其它指示器的功能。系统电源模块136向多媒体控制台100的组件供电。风扇138冷却多媒体控制台100中的电路。\n[0069] CPU101、GPU108和多媒体控制台100中的各种其它组件通过一个或更多总线被互相连接,总线包括使用各种总线体系结构中的任何一种的串行和并行总线、存储器总线、外围设备总线、以及处理器或本地总线。作为示例,这些体系结构可以包括外围组件互联(PCI)总线、PCI-Express总线等。\n[0070] 当多媒体控制台100开机时,应用程序数据可以从系统存储器143加载到存储器\n112和/或高速缓存102、104中,并且在CPU101上执行。应用程序可以呈现图形用户界面,该图形用户界面在导航到多媒体控制台100上可用的不同媒体类型时提供一致的用户体验。在操作中,介质驱动器144中所包含的应用程序和/或其它介质可以由介质驱动器144启动或播放以向多媒体控制台100提供额外的功能。\n[0071] 通过简单地将系统连接至电视或其它显示器,可以将多媒体控制台100当作独立的系统来操作。在这一独立模式中,多媒体控制台100允许一个或更多用户与系统交互,看电影,或听音乐。然而,随着通过网络接口124或无线适配器148成为可用的对宽带连接性的集成,可以进一步将多媒体控制台100当作更大的网络社区内的参与者来操作。\n[0072] 当多媒体控制台100开机时,预留了一组硬件资源以用于多媒体操作台操作系统的系统使用。这些资源可以包括对存储器(例如16MB)、CPU和GPU周期(例如5%)、联网带宽(例如8kbs)等的预留。由于在系统引导时间预留了这些资源,从应用程序的角度看预留的资源并不存在。\n[0073] 特别地,存储器预留要足够大以包含启动内核、并发系统应用程序和驱动器。CPU预留是恒定的,从而使得如果系统应用程序没有使用预留的CPU使用,则空闲线程将消耗任何未使用的周期。\n[0074] 至于GPU预留,通过使用GPU中断来显示由系统应用程序生成的轻量消息(例如弹出式窗口)以调度代码将弹出式窗口呈现为覆盖图。覆盖图所需要的存储器数量取决于覆盖区域大小,覆盖图随着屏幕分辨率而改变大小。在由并发系统应用程序使用完全用户界面时,倾向于使用与应用程序分辨率独立的分辨率。\n[0075] 在引导多媒体控制台100以及预留系统资源之后,并发系统应用程序执行以提供系统功能。系统功能被封装到在上述的预留系统资源中执行的一组系统应用程序中。操作系统内核标识系统应用程序线程对游戏应用程序线程的线程。调度系统应用程序在预定的时间和间隔在CPU101上运行,以向应用程序提供一致的系统资源视图。调度是为了最小化用于在控制台上运行的游戏应用程序的高速缓存中断。\n[0076] 当并发系统应用程序需要音频时,由于时间敏感性而将音频处理异步地调度给游戏应用程序。当系统应用程序活跃时,多媒体控制台应用程序管理器(以下描述)控制游戏应用程序的音频等级(例如静音、减弱)。\n[0077] 输入设备(例如控制器142(1)和142(2))由游戏应用程序和系统应用程序共享。\n输入设备不是预留的资源,但是将在系统应用程序和游戏应用程序之间切换以使得两者中每个都将具有设备的焦点。应用程序管理器控制输入流的切换,而不需要游戏应用程序的知识以及驱动器维护有关焦点切换的状态信息。照相机36、38和拍摄设备20可以通过USB控制器126或其它接口为控制台100定义额外的输入设备。\n[0078] 图4示出可以用于实现跟踪动作和/或动画化(或以其他方式更新)由应用程序显示的化身或其它屏幕上对象的如图1-2所示的计算系统12的计算系统220的另一个示例实施例。计算系统环境220仅是合适计算系统的一个示例,并且不旨在暗示对本公开主题的使用或功能的范围的任何限制。计算系统220也不应该被翻译为具有与示例性操作系统\n220中所示的组件的任何一个或组合有关的任何依赖或要求。在一些实施例中,各种所述计算元素可以包括被配置为实例化本公开的特定方面的电路。例如,在本公开中所使用的术语电路可以包括由固件或开关配置以执行功能的专用硬件组件。在其它示例中,术语电路可以包括由包含可操作以执行功能的逻辑的软件指令配置的通用处理单元、存储器等。在其中的电路包括硬件和软件的组合的示例实施例中,实施者可以编写包含逻辑的源代码,并且源代码可以被编译成由通用处理单元处理的机器可读代码。由于本领域的技术人员可以理解目前的技术已经发展到硬件、软件、或硬件/软件的组合之间的差异很小的地步,因此选择硬件还是软件来实现特定同能是留给实施者的设计选择。更特别地,本领域的技术人员可以理解软件过程可以被转换为等同的硬件结构,并且硬件结构其自身可以被转换为等同的软件过程。因此,选择硬件实现还是软件实现是留给实施者的一个设计选择。\n[0079] 计算系统220包括典型地包含各种计算机可读介质的计算机241。计算机可读介质可以是能够由计算机241访问的任何可用介质,并且包括易失性和非易失性的介质、可移动和不可移动的介质。系统存储器222包括诸如只读存储器(ROM)223和随机存取存储器(RAM)260等的易失性和/或非易失性存储器形式的计算机存储介质。包含例如在启动期间帮助在计算机241的元素之间传递信息的基本例程的基本输入/输出系统224(BIOS)一般被存储在ROM223。RAM260一般包含可以立即访问的和/或现在可以由处理单元259在其上操作的数据和/或程序模块。为了示例而不是限制,图4示出操作系统225、应用程序226、其它程序模块227、以及程序数据228。\n[0080] 计算机241还可以包括其它可移动/不可移动、易失性/非易失性的计算机存储介质。仅为了示例,图4示出向不可移动、非易失性磁性介质读或写的硬盘驱动器238,向可移动、非易失性磁盘254读或写的磁盘驱动器239,以及向例如CD ROM或其它光学介质的可移动、非易失性光盘253读或写的光盘驱动器240。可用于示例性操作环境的其它可移动/不可移动、易失性/非易失性的计算机存储介质包括但不限于,盒式磁带、闪存卡、数字通用光盘、数字视频带、固态RAM、固态ROM等。硬盘驱动器238一般通过例如接口234的不可移动存储器接口连接至系统总线221,并且磁盘驱动器239和光盘驱动器240一般由例如接口235的可移动存储器接口连接至系统总线221。\n[0081] 上述和图4所示的驱动器以及其相关的计算机存储介质,为计算机241提供计算机可读指令、数据结构、程序模块和其它数据的存储。例如,在图4中,示出存储操作系统\n258、应用程序257、其它程序模块256和程序数据255的硬盘驱动器238。注意到这些组件既可以和操作系统225、应用程序226、其它程序模块227以及程序数据228相同也可以不同。此处给定操作系统258、应用程序257、其它程序模块256和程序数据255不同的标号以示出它们至少是不同的副本。用户可以通过例如键盘251以及通常为鼠标、跟踪球或触摸板的定点设备252的输入设备将命令和信息输入到计算机241。其它输入设备(没有示出)可以包括话筒、游戏操纵杆、游戏控制器、碟形卫星天线、扫描仪等。这些和其它输入设备通常通过被耦合至系统总线的用户输入接口236连接至处理单元259,但是也可以由诸如并行端口、游戏端口或通用串行总线(USB)等的其它接口和总线结构连接。照相机36、38和拍摄设备20可以为通过用户输入接口236连接的控制台100定义额外的输入设备。监视器242或其它类型的显示设备也通过诸如视频接口232的接口连接至系统总线221。除了监视器以外,计算机还可以包括诸如扬声器244和打印机243等的其它外围输出设备,该外围输出设备可以通过输出外围设备接口233连接。拍摄设备20可以通过输出外围设备接口233、网络接口237或其它接口连接至计算系统220。\n[0082] 计算机241可以在使用到例如远程计算机246的一个或更多远程计算机的逻辑连接的网络化环境中操作。远程计算机246可以是个人计算机、服务器、路由器、网络PC、对等设备或其它常用网络节点,并且一般包括许多或全部以上相对于计算机241描述的元素,尽管在图4中仅示出了存储器存储设备247。所述逻辑连接包括局域网(LAN)245和广域网(WAN)249,但是也包括其它网络。这些联网环境常见于办公室、企业范围计算机网络、内部网和英特网。\n[0083] 当使用在LAN联网环境中时,计算机241通过网络接口或适配器237连接至LAN245。当使用在WAN联网环境中时,计算机241一般包括调制解调器250或用于通过例如英特网的WAN249建立通信的其它手段。内部或外部的调制解调器250可以通过用户输入接口236或其它适当的机制连接至系统总线221。在网络化环境中,相对于计算机241所描述的程序模块或其部分可以被存储在远程存储器存储设备中。为了示例而不是限制,图\n5示出驻在存储器设备247上的应用程序248。应当理解所示网络连接是示例性的,并且可以使用在计算机之间建立通信链路的其它手段。\n[0084] 图3或4中的任何一个系统、或不同的计算设备,可以用于实现图2的计算系统\n12。如上所述,计算系统12确定用户的动作,并且使用那些检测到的动作以控制视频游戏或其它应用程序。例如,用户的动作可以用于控制视频游戏中的化身和/或对象。在一些实施例中,系统可以同时跟踪多个用户,并且允许多个用户的动作以控制或影响应用程序。\n[0085] 系统将使用RGB图像和深度图像以跟踪用户的动作。例如,系统将使用深度图像跟踪人的骨骼。有很多可以用于使用深度图像跟踪人的骨骼的方法。使用深度图像跟踪人的骨骼的一个合适示例被提供在第12/603437号美国专利申请,“Pose Tracking Pipeline(姿势跟踪流水线)”,2009年10月21日提出申请,(在下文中用‘437申请指代),此处参考其全部以并入。‘437申请的过程包括获取深度图像,下采样数据,删除和/或平滑高方差噪声数据,标识和删除背景,以及将每个前景像素分配给身体的不同部分。基于那些步骤,系统将用数据拟合模型并且创建骨骼。骨骼将包括一组关节以及关节之间的连接。\n[0086] 在一个实施例中,为了使用户的动作用于控制应用程序,用户必须首先向应用程序登记或和应用程序绑定。在一个实施例中,将要求每个用户通过站立在系统前来标识自己,从而使得能够通过多个角度获得该用户的深度图像和/或视觉图像。例如,在获取深度图像和视觉图像时,可以要求用户站立在照相机前,转身,以及做各种姿势。在系统获得足够多的深度和/或视觉图像之后,系统将创建来自唯一标识用户的图像的一组标识数据。\n系统将创建唯一标识,并且将该唯一标识与游戏/应用程序中屏幕上的表示(例如化身)或其它对象相关。在用户登记到(或绑定到)应用程序之后,系统将在用户主动地使用应用程序(例如玩游戏或使用应用程序)时跟踪该用户的动作。但是,在过去,房间中没有主动使用应用程序的其它人(例如没有绑定到应用程序,绑定到应用程序但是现在没有玩游戏,或绑定到应用程序但是现在没有轮到玩)没有与应用程序交互的方法。\n[0087] 图5A到5D描绘需要由系统检测的使用美国手语的不同类型的手语。如此处所述,手语可以包括静态手势或包含动作的手势。手语是使用视觉传递的姿势或手势以表达意思的语言。这可以包括,用于表达说话者思想的手型的同时组合,手、手臂或身体的方向和动作,以及脸部表情中的一个或更多。手语可以包括与口语语法不同的空间语法。上百种手语在全世界使用。美国手语(即ASL)是美国的主要手语。在ASL中,手指拼写主要用于专有名词,用于强调(例如手指拼写STOP比手势‘stop’更加强调),用于阐明,用于说明。\n[0088] ASL既包括借鉴于英语的手指拼写,也包括将英语单词中的字母结合到ASL手语中,以区分否则将由ASL中的单个手势涵盖的相关的意思。例如,两手画一个圆表示‘一群人’。可以通过手型来指定若干种类的人群:当用C手型完成时,手势表示‘班级(class)’,当用F手型完成时,手势表示‘家庭(family)’。这些手势通常被称为“初始化”手势,因为它们将对应英语单词的第一个字母(首字母)替换为手型以便提供更具体的意思。\n[0089] 当采用这些方式使用字母时,若干非音位的手型变成独特的。例如,在手指拼写之外还有单手的手型-大拇指的位置是无关的。但是,在手指拼写中,大拇指在手上的位置区分了字母A、S和T。依靠例如大拇指位置的细微区别的结合字母的手势从长远来看是不趋于稳定的,但是它们可以最终创建语言中新的区别。对人的相对手指大小和灵活性太过依赖的手势是不理想的。这可以与使用由大多数说话者轻易复制的声音的口语类比。\n[0090] 在图5A中,示出依照美国手语的手势字母表的示例。字母“A”502、“B”504和“C”506均由静态手势完成,术语静态用在这里以表明在实际表示手势意思时不包含动作。\n对比于图5B中508处示出的字母“J”。为了完成字母“J”,手采取508处所示的形式,并且还采用沿着线509的动作以表明该字母。其它手势更复杂,包含手和手指两者的动作。图\n5C示出“付款”的手势,其中用户的右手沿着箭头519从位置516移动到位置518。右手相对于图5C中所示的静止的左手520移动。图5D示出还要更复杂的手势意思“卡片”。如图\n5D所示,用户的右手和左手511、513以远离彼此的动作沿着相反的方向510和512移动,在此之后用户的手指如514处所示捏紧。\n[0091] 为了提供依照本技术的手语翻译系统,所有这些类型的动作被定义为姿势。姿势识别器190翻译这些姿势、以及脸部和手指动作和位置,并且将检测到的姿势与库193中的姿势比较以提供每个姿势的意思。\n[0092] 类似的手势可以以相对于用户表情或头部倾斜的不同意思出现。例如,图6A示出一个人在做短语“爸爸在家”的手势。图6A和6B的每一幅都示出两个手势“爸爸”和“家”。\n图6A的左边表明用靠在用户前额610上的右手602做出术语“爸爸”。用户将其右手从位置604跨过其脸颊移动到606以表明“家”的动作。在图6A的左边和右边,用户的脸都是一般无表情的并且面朝观看者。图6B示出相同的手势,但是以疑问的方式摆姿势。图6B的短语不是陈述句“爸爸在家”,而是疑问句“爸爸在家否”或更字面地“爸爸在家吗?”以疑问做出的短语表示来自于用户的表情和用户的头部倾斜。如图6B所示,手势602、604、606是相同的,但是用户在614和616处头略微向左倾斜和扬起眉毛的表情表明表达的是疑问句,而不是陈述句。\n[0093] 图7示出依照本技术用于基于动作跟踪和姿势翻译以提供手语翻译系统的方法。\n在一个实施例中,在700处标识用户。尽管不是必须的,但是系统10可以为特定用户存储用户动作的单独简档。如以下所述,系统为用户生成特定的骨骼跟踪模型,并且可以用用户简档存储与用户的特定倾向和动作方式有关的模型和简档信息。将已知倾向应用于用户的动作和姿势检测可以增加姿势检测和手语翻译的准确性。\n[0094] 在一个实施例中,执行一系列校准步骤701。在替代的实施例中,701处的校准不是必须的。在步骤702处,姿势校准动作被显示给用户。姿势校准动作可以要求用户执行特定姿势,以便系统理解由给定用户以特定方式用于执行姿势的特定动作。应当意识到可以由系统存储每个单独用户的校准,并且依照由处理设备12检测到的骨骼匹配图案识别不同的用户。一旦校准动作被显示,用户执行校准动作,并且在步骤704处,拍摄用户的动作以用于校准事件。可以重复步骤702和704任意次数以为系统提供所需的准确度。在步骤706处,可以获取用户特征信息。用户特征信息可以包括诸如用户的年龄、性别、兴趣、爱好、收藏或其它信息等的用户人口统计,这些信息可以帮助系统确定用户做出特定手势的概率。在一个实施例中,可以在校准步骤期间通过例如允许用户完成显示器上的调查表来收集特征信息。可以在步骤702、704和706的每一个步骤将校准信息存储到用户简档中。\n可以为任何数量的姿势和手势重复校准步骤702和704。一旦为给定用户执行校准步骤\n701,则其不需要被重复。\n[0095] 在708处,监视拍摄设备20视野中的场景是否有用户动作。当用户在场景中做出姿势,跟踪用户的骨骼模型,检测手和脸的动作,以在710处确定姿势是否已经发生。依照以下图10和11中的描述以跟踪用户动作和确定姿势。\n[0096] 在712处,将所识别的姿势与已知手势数据比较,并且如果在714处发现可能的匹配,则在716处将初始手势以及姿势是特定手势的初始概率权重分配给该姿势。姿势动作可以具有用户旨作为给定手势以及姿势旨在做出的大量替代的可能手势的概率。当初始手势被分配给检测到的姿势(N)时,也具有姿势的可能意思的任何数量的可能的替代手势可以被存储在库中。每个手势可以有相对于检测到的姿势的概率权重或分数。例如,姿势的第一替代可以是字母“A”,而第二替代姿势为字母“B”。在用户正确拼写名字并且用户名字已知时,给定的由用户使用的其它手势和/或关于用户的已知数据,通过检测“A”相比于“B”有更多还是更少可能使用来对初始翻译中的错误进行调节。由于手语翻译取决于上下文,即在特定手势之前和之后做出的用户动作和手势,因此在714处方法进一步评价初始确定以基于用户简档信息和相对于动作流中其它手势的手势上下文来确认或修改初始确定。在步骤718处,如果上下文信息可用于特定用户,则在720处接收上下文信息。\n[0097] 如果特征信息是可用的,则在722处,在用户个人特征和被分配给所识别的姿势的初始手势之间进行比较。如果特征信息表明手势不正确,则在724处可以更正手势。以下在图8描述了特征信息和初始手势的比较。附加地和可任选地,在722处如果特征信息确认手势评价的初始分配,则在728处将手势和其它姿势比较。\n[0098] 在726处接收前一姿势,并且在728处进行比较,以确定前一姿势(N-1)是否确认姿势是由系统在716处识别的初始手势的概率。如果是,则在736处将增加分配给初始手势的概率权重,并且在734处使用初始手势生成输出。包括以下关于图11和12所示的输出的任何数量不同类型的输出可以由系统生成。应当进一步意识到尽管在所示方法中输出在734处生成并且存储手势(N),但是可以在手势被识别并且被分配给检测到的姿势之后的任意点处生成输出。\n[0099] 应当意识到用户可以以动作流连续地提供场景中的手势。基于分配给姿势的姿势过滤器和在动作流中做出的手势的上下文,可以通过识别手势之间的转变将动作和姿势与流中的其它动作分开。\n[0100] 在728处,如果由系统识别的前一姿势和手势不确认分配给姿势的初始手势,则在730处确定前一手势结合可归因于姿势的若干替代可能手势中的一个是否证明向姿势(N)分配新的、修改的手势。如果分配新的手势,则方法返回至716,并且基于来自前一姿势的修改的信息向新手势(N)分配新的概率。如果不是,则在732处降低分配给新手势的概率权重,并且在724处生成输出。\n[0101] 由于系统连续地接收姿势和手势,在738处将翻译基于由用户紧接着初始姿势所做出的另一个姿势的下一个手势(N+1),并且检索下一个姿势。下一个姿势将具有分配给其的概率,并且可以用于确定先前分配的姿势(在这一情况下为手势(N))是否可能是已经在\n716处被分配到姿势的手势。在740处,将关于手势N的初始分配手势的比较与下一个手势(N=!)比较以确定下一个手势的上下文是否确认初始手势。在742处可以确定初始手势的新手势,并且如果为初始手势确定了新手势,则在步骤742处可以改变输出。\n[0102] 图8示出可以在726处执行以评价上下文信息是否确认分配给姿势的手势的过程。在802处,对用户个人人口统计信息中的每个特征,在步骤804处确定人口统计是增加还是降低分配给姿势的手势正确的概率。如果考虑到人口统计手势是可能的,则在806处增加分配给手势的权重。如果不是,则在808处减少该权重。这一确定为每个人的每个人口统计信息而持续进行。应当注意并不是所有人口统计信息与所有手势相关。人口统计信息可以包括用户的性别、母语、位置、历史、收藏等。在812处,一旦相对分配的手势检查了所有相关的人口统计信息,就基于库中替代的手势相对于所分配手势(N)的修改分数的已调节权重具有较高概率权重的概率,确定这些替代的手势是否是较佳匹配。\n[0103] 图9示出在步骤728或740处发生以确定分配给前一/下一个姿势的前一手势或下一个手势是否确认所分配的手势的过程。在902处,检索前一/下一个姿势以及分配给前一或下一个姿势的手势。在步骤904处,系统查询字典以确定额外的手势是否可能与前一姿势相邻。库可以包含上下文数据库,该上下文数据库包括标识特定单词(在这一情况下的手势)邻近其它单词或手势出现的可能性的手势交际信息。可以相对于彼此比较手势部分以确定分配给每个邻近姿势的手势在语言学上下文中有意义。这可以用于用高概率的准确性定义语句结构。在906处,确定匹配的手势是否可能被放置为邻近前一或下一个手势。\n如果是,则在908处可以确认分配的手势。如果不是,则在910处确定分配给姿势的手势是否将永远不邻近前一手势。如果是,则在912处丢弃手势。如果在910处分配的手势可以邻近前一或下一个手势,则在912处确定另一个手势是否比分配的手势更可能邻近前一或下一个手势。如果是,则在914处做出指示以改变手势(图7中可以在730或742处发生)。\n如果不是,在916处确认手势。\n[0104] 图10A描绘可以采用上述方式由拍摄设备20生成的用户的示例骨骼映射。在这一示例中,标识了各种关节和骨头:每只手402、每只前臂404、每个手肘406、每个二头肌408、每个肩膀410、每个臀部412、每条大腿414、每个膝关节416、每条小腿418、每只脚420、头\n422、躯干424、脊椎的顶部426和底部428、腰部430。如果跟踪了更多的点,则可以标识额外的特征,例如手指或脚趾的骨头和关节、或者诸如鼻子和眼睛等的脸的单独特征。\n[0105] 通过移动身体,用户可以创建姿势。姿势包括可以被拍摄为图像数据并且解析为意思的用户的动作或姿势。姿势可以是动态的,包括例如模仿抛球的动作。姿势可以是静态的姿势,例如在躯干424前保持交叉的前臂404。姿势还可以结合道具,例如通过挥舞假的剑。姿势可以包括多于一个的身体部分,例如一起拍手402,或者包含细微的动作,例如撅嘴。\n[0106] 姿势可以用于在一般计算上下文中输入。例如,手402或其它身体部分的各种动作可以对应于诸如在层次菜单结构中向上级或向下级导航、在菜单列表中滚动项目、打开文件、关闭文件和保存文件等的通常的系统范围任务。取决于游戏,姿势还可以用在视频游戏特定的上下文中。例如,对于驾驶游戏,手402和脚420的各种动作可以对应于向一个方向驾驶车辆、换挡、加速和刹车。\n[0107] 姿势参数可以包括阈值角度(例如臀部-大腿角度、前臂-二头肌角度等)、动作发生或不发生的时间段的次数,阈值时间段、阈值位置(例如起点、终点)、方向动作、速度、加速度、动作的协调等。\n[0108] 姿势可以与一组默认参数相关,该默认参数可以由应用程序或操作系统用自己的参数取代。在这一场景中,不强迫应用程序提供参数,但是可以替代地使用使得能够在没有应用程序定义的参数的情况下识别姿势的一组默认参数。\n[0109] 有各种与姿势相关的输出。可以是关于姿势是否发生的底线“是或否”。还可以是对应于用户跟踪到的动作与姿势对应的可能性的置信度。这可以是范围跨包括在0和1之间的浮点数的线性标度。在接收这一姿势信息的应用程序不能够接受误报作为输入的地方,它将仅使用具有例如至少0.95的高置信度的那些识别的姿势。在应用程序必须识别姿势的每个实例时,即便以误报为代价,它也要使用至少具有低得多的置信度的姿势,例如那些仅大于0.2的置信度。姿势可以具有两个最近步骤之间时间的输出,并且在仅注册了第一步骤的地方,这一输出被设为例如-1的预留值(因为任何两个步骤之间的时间必须是正的)。姿势还可以具有在最近步骤中达到的最高大腿角度的输出。\n[0110] 姿势的另一个参数可以是移动的距离。在用户的姿势控制虚拟环境中化身动作的地方,该化身可以距球一个手臂的长度。如果用户想要与球交互并且抓住它,这则要求用户在做抓球的姿势时伸展其手臂402-410至全长。在这一情况下,用户仅部分伸展其手臂\n402-410的类似的抓的姿势不会达到与球交互的结果。\n[0111] 姿势或其部分可以有它在其中一定发生的空间体积作为参数。可以一般地关于身体以表达这一空间体积,其中姿势包括身体动作。例如,可以仅在不低于右肩410a的空间体积中识别右手用户投掷橄榄球的姿势,并且在头422同侧上被识别为投掷手臂\n402a-410a。定义体积的边界并不一定是必要的,例如使用这一投掷姿势,远离身体的外部边界被留下而没有定义,并且体积无限地伸出,或者到达被监控的拍摄区域的边缘。\n[0112] 图10B提供图2中姿势识别器引擎190的一个示例性实施例的进一步的细节。如图所示,姿势识别器引擎190可以包括库450a中的至少一个过滤器450以确定一个或多个姿势。过滤器450包括定义姿势452(在下文中指代为“姿势”)以及该姿势的元数据454的参数。过滤器可以包括可识别姿势或者以其他方式处理深度、RGB或骨骼数据的代码和相关数据。例如,包括用户的一只手从身体后部穿过身体前部的动作的投掷,可以实现为包括表示用户的一只手从身体后部穿过身体前部的动作的信息的姿势452,而该动作可以由深度照相机拍摄。然后可以为该姿势452设置参数454。在姿势452为投掷的地方,参数454可以是手必须达到的阈值速度,手必须移动的距离(既可以是绝对的,也可以是整体上相对于用户的大小),以及由识别器引擎评价的姿势发生的置信度。姿势452的这些参数454可以在应用程序之间,在单个应用程序的上下文之间,或在一个应用程序的一个上下文中跨时间改变。\n[0113] 过滤器可以包括可识别姿势或者以其他方式处理深度、RGB或骨骼数据的代码和相关数据。过滤器可以是模块化的或可交换的。在实施例中,过滤器有每个输入都具有类型的大量输入,以及每个输出都具有类型的大量输出。在这种情况下,可以用具有和第一过滤器相同数量和类型的输入和输出的第二过滤器来替换第一过滤器,而不改变识别器引擎体系结构的任何其它方面。例如,有用于驾驶的第一过滤器,该第一过滤器将骨骼数据作为输入,并且输出与过滤器相关的姿势正在发生的置信度和转向的角度。当想要用第二驾驶过滤器替换这个第一驾驶过滤器时,也许是因为第二驾驶过滤器更有效并且需要较少的处理资源,只要第二过滤器具有相同的输入和输出,即骨骼数据类型的一个输入以及置信度类型和角度类型的两个输出,则可以通过简单地用第二过滤器替换第一过滤器来实现。\n[0114] 过滤器不需要有参数。例如,返回用户身高的“用户身高”过滤器不考虑可以被调整的参数。替代的“用户身高”过滤器可以有可调参数,例如用于在确定用户身高时是否说明用户的鞋子、发型、头饰和姿势。\n[0115] 过滤器的输入可以包括诸如与用户的关节位置有关的关节数据,在关节处相交的骨头形成的可能角度,来自拍摄区域的RGB颜色数据,以及用户方面的变化速率等。过滤器的输出可以包括诸如做出给定姿势的置信度,做出姿势动作的速度,以及做出姿势动作的时间等。\n[0116] 姿势识别器引擎190可以具有向姿势过滤器450提供功能的基识别器引擎。在实施例中,基识别器引擎456实现的功能包括跟踪所识别的姿势和其它输入的跨时间输入存档,隐马尔可夫模型实现过程(其中模型系统被假设为具有未知参数的马尔可夫过程,在马尔可夫过程中当前状态封装确定未来状态所需的任何过去状态信息,从而为了这一目的不需要维护其它过去状态信息,并且隐藏的参数由可观测的数据确定),以及解决姿势识别的特定实例所需的其它功能。\n[0117] 过滤器450在基识别器引擎456的顶部被加载和实现,并且可以使用由引擎456向所有过滤器450提供的服务。在实施例中,基识别器引擎456处理接收到的数据以确定其是否满足任何过滤器450的要求。由于例如解析输出的这些提供的服务由基识别器引擎\n456提供一次,而不是由每个过滤器450提供,因此这一服务在一时间段中仅需处理一次,而不是在该时间段为每个过滤器450处理一次,从而减少了确定姿势所需的处理。\n[0118] 应用程序可以使用由识别器引擎190提供的过滤器450,或者它可以提供插入基识别器引擎456的自己的过滤器450。在实施例中,所有过滤器450有共同的接口以启用这一插件特征。此外,所有过滤器450可以使用参数454,从而以下所述的单个姿势工具可以用于调试和调整整个过滤器系统。可以由姿势工具为应用程序或应用程序的上下文调整这些参数454。\n[0119] 图10C示出连同手和手臂所做出的手势分类使用的更精细的跟踪模型。在该图的左手边示出做出“PAY(付款)”的姿势的用户。邻近所示用户示出对应的跟踪模型470。\n图10C中的模型具有比图10A所示的模型更高的分辨率模型。图10C中的模型包括用户的手480、手腕481、和用户右臂的手肘483的元素,以及左臂的对应元素484-486。如此处所示,当用户沿着动作线519移动手518时,至少为点481(从481a到481b)、482(从482a到\n482b)和483(从483a到483b)跟踪对应的动作。\n[0120] 图10D和10E示出和手势一起使用的跟踪模型。在图10D中,模型可以至少包括用于用户的手的点804a-804m,以及手腕点808、手肘806、前臂802、上臂809和肩膀810。\n图10E示出图10D的手模型800,该手模型示出使用ASL惯例的字母“a”、“b”和“c”的姿势(为了清晰在图10E省略标号)。\n[0121] 图11和12示出由输出生成器188在显示器16上生成的输出的两个示例。在图\n14中,用户在做付款的姿势,并且单词“PAY(付款)”将出现在显示器16上的19处。在这一情况下,紧靠着在窗口27中提供的在21处用户的表示定位了单词“PAY(付款)”。表示21可以是用户的真实表示,或者依照名为“Auto Generating a Visual Representation(自动生成视觉表示)”的第12/511850号美国专利申请的教导所生成的化身。如图12所示,在\n19处可以示出一系列姿势的完整上下文。在图12中,用户正在完成晚(late)的手势,并且已经在先前完成了定义多个单词“我们到达”的一组手势。可以依照本技术提供任何数量的不同类型的用户接口。\n[0122] 虽然用结构特征和/或方法动作专用的语言描述了本主题,但应当理解,所附权利要求书中定义的主题不必限于上述的具体特征或动作。相反,上述具体特征与动作是作为实现所述权利要求书的示例性形式公开的。旨在由所附权利要求书定义本技术的范围。
法律信息
- 2015-05-20
专利权的转移
登记生效日: 2015.04.29
专利权人由微软公司变更为微软技术许可有限责任公司
地址由美国华盛顿州变更为美国华盛顿州
- 2014-03-05
- 2011-11-30
实质审查的生效
IPC(主分类): G09B 21/00
专利申请号: 201110159925.7
申请日: 2011.06.03
- 2011-10-19
引用专利(该专利引用了哪些专利)
序号 | 公开(公告)号 | 公开(公告)日 | 申请日 | 专利名称 | 申请人 |
1
| |
2009-09-23
|
2009-04-16
| | |
2
| |
2009-12-16
|
2008-06-13
| | |
3
| | 暂无 |
2008-08-20
| | |
被引用专利(该专利被哪些专利引用)
序号 | 公开(公告)号 | 公开(公告)日 | 申请日 | 专利名称 | 申请人 | 该专利没有被任何外部专利所引用! |