自主nui设备的自发现的制作方法_3

文档序号:8947411阅读:来源:国知局
机36可包括例如具有光敏像素的一个或多个CMOS传感器或CCD。每个像素都生成电荷,并且所聚集或集成的电荷的量可以被读取作为对像素已经达到的光强的指示。
[0056]处理器42可包括从传感器接收读数并将这些读数翻译成用于传感器的每个像素的深度数据的深度数据处理。例如,来自像素的读数可以指示所聚集的电荷的量,并且这可以基于传感器的特性与光强相关联。深度图可被存储在例如存储器44中。
[0057]如上所解释的,捕捉设备20向计算环境12提供RGB图像(也被称为彩色图像)以及深度图像。深度图像可以是多个观测到的像素,其中每个观测到的像素具有观测到的深度值。例如,深度图像可包括所捕捉的场景的二维(2D)像素区域,其中2D像素区域中的每一像素可表示深度值,诸如例如以厘米、毫米等计的、所捕捉的场景中的对象距捕捉设备的长度或距离。
[0058]图4是描述在一个实施例中可由跟踪系统10执行的对用户界面的姿势控制的过程的一个实施例的流程图。在步骤502,捕捉设备20的处理器42从图像捕捉组件32处接收视觉图像和深度图像。在其他示例中,在步骤502仅接收深度图像。深度图像和视觉图像可由图像捕捉组件32中的任何传感器或本领域中已知的其他适合的传感器来捕捉。在一个实施例中,深度图像是与视觉图像分开地捕捉的。在一些实现中,深度图像和视觉图像被同时捕捉,而在其他实现中,它们被顺序地或在不同的时间捕捉。在其他实施例中,深度图像是与视觉图像一起被捕捉的,或者与视觉图像组合成一个图像文件,使得每个像素具有R值、G值、B值和Z值(表示距离)。
[0059]在步骤504,确定对应于视觉图像和深度图像的深度信息。可分析在步骤502接收到的视觉图像和深度图像,以确定图像内的一个或多个目标的深度值。捕捉设备20可捕捉或观察可包括一个或多个目标的捕捉区域。在步骤506,捕捉设备确定深度图像是否包括人类目标。在一个示例中,可对深度图像中的每一目标进行泛色填充并将其与一图案进行比较来确定该深度图像是否包括人类目标。在一个示例中,可确定深度图像的被捕捉场景中的每个目标的边缘。深度图像可包括被捕捉的场景的二维像素区域,其中2D像素区域中的每个像素可表示例如可通过相机测量的长度或距离之类的深度值。可以通过将与例如深度图像的毗邻或相邻的像素相关联的各深度值进行比较来确定边缘。如果被比较的各深度值大于预定边缘容差,则这些像素可定义边缘。捕捉设备可将包括深度图像的所计算的深度信息组织成“Z层”或可垂直于沿着其视线从相机延伸到观察者的Z轴的各层。可基于所确定的边缘来对Z层的可能Z值进行泛色填充。例如,可将与所确定的边缘相关联的像素和所确定的边缘内的区域的像素彼此关联,以限定捕捉区域中的目标或对象。
[0060]在步骤508,捕捉设备扫描人类目标以寻找一个或多个身体部位。可以扫描人类目标,以提供诸如长度、宽度等与用户的一个或多个身体部位相关联的测量,以使得用户的准确模型可基于这些测量来生成。在一个示例中,隔离人类目标,并创建位掩模来扫描一个或多个身体部位。可例如通过对人类目标进行泛色填充来创建位掩模,使得该人类目标与捕捉区域元素中的其他目标或对象相分离。在步骤510,基于在步骤508执行的扫描来生成人类目标的模型。可分析该位掩模来寻找一个或多个身体部位,以生成诸如人类目标的骨架模型、网格人类模型等模型。例如,可使用由所扫描的位掩模确定的度量值来限定骨架模型中的一个或多个关节。位掩模可包括人类目标沿X、Y和Z轴的值。该一个或多个关节可用于定义可对应于人类的身体部位的一根或多根骨骼。
[0061]根据一个实施例,为了确定人类目标的颈部、肩膀等的位置,可以将例如在被扫描的位置处的位掩模的宽度与关联于例如颈部、肩膀等的典型宽度的阈值进行比较。在替换实施例中,可以使用离位掩码中先前扫描的并与身体部位相关联的位置的距离来确定颈部、肩膀等的位置。
[0062]在一个实施例中,为了确定肩膀的位置,可将肩膀位置处的位掩模的宽度与阈值肩膀值进行比较。例如,可以将肩部位置处的位掩模的X值处的两个最靠外的Y值之间的距离与例如人类肩部之间的典型距离的阈值肩部值进行比较。由此,根据一示例实施例,该阈值肩部值可以是与人类的身体模型的肩部相关联的典型宽度或宽度范围。
[0063]在另一实施例中,为了确定肩膀的位置,可从头部向下解析一特定距离的位掩码。例如,可与头部的顶部相关联的位掩码的顶部可具有与其相关联的X值。然后可以将所存储的与从头部的顶部到人类身体的肩膀的顶部的典型距离相关联的值加到头部的顶部的X值来确定肩膀的X值。由此,在一个实施例中,可将所存储的值加到与头的顶部相关联的X值以确定与肩膀相关联的X值。
[0064]在一个实施例中,诸如腿、脚等的某些身体部位可基于例如其他身体部位的位置来计算。例如,如上所述,可以扫描与人类目标相关联的诸如位、像素等信息,以确定人类目标的各个身体部位的位置。基于这些位置,然后可以为人类目标计算诸如腿、脚等的后续身体部位。
[0065]根据一个实施例,在确定了例如某身体部位的值后,可以创建一数据结构,该数据结构可包括诸如身体部位的长度、宽度等与人类目标的位掩模的扫描相关联的测量值。在一实施例中,该数据结构可包括从多个深度图像平均的扫描结果。例如,捕捉设备可捕捉各帧内的捕捉区域,每一帧都包括深度图像。可按如上所述来分析每个帧的深度图像,以确定是否包括人类目标。如果帧的深度图像包括人类目标,则可扫描与该帧相关联的深度图像的人类目标的位掩模来寻找一个或多个身体部位。随后可对为每一帧所确定的身体部位的值求平均,以使数据结构可包括与每一帧的扫描相关联的身体部位的诸如长度、宽度等平均测量值。在一个实施例中,所确定的身体部位的测量值可被调整(诸如被放大、缩小等),使得数据结构中的测量值更紧密地对应于人类身体的典型模型。在步骤510中,可使用由所扫描的位掩模确定的度量值来定义骨架模型中的一个或多个关节。
[0066]在步骤512,从接收自捕捉设备的深度图像和视觉图像中捕捉运动。在一个实施例中,如将在下文更详细地描述的,在步骤514捕捉运动包括基于骨架映射生成运动捕捉文件。在步骤514,使用骨架映射来跟踪在步骤510创建的模型,并在步骤516跟踪用户运动。例如,可在用户在视野内在相机前的物理空间中移动时调整和更新用户18的骨架模型。来自捕捉设备的信息可用于调整模型,以使得骨架模型准确地表示用户。在一个示例中,这通过以下来实现:将一个或多个力施加到骨架模型的一个或多个受力方面,以将骨架模型调整成更加紧密地对应于人类目标和物理空间的姿态的姿态。
[0067]在步骤516,跟踪用户运动。
[0068]在步骤815,向诸如本文中所描述的导航系统之类的应用提供运动数据。还可评估这样的运动数据以确定用户是否正在执行预先定义的姿势。可基于在步骤516确定的一个或多个UI上下文来执行步骤518。例如,当在菜单上下文中操作时第一姿势集合可以是活跃的,而当在玩游戏上下文中操作时不同的姿势集合可以是活跃的。步骤518还可包括确定活跃姿势集合。在步骤520,执行姿势识别和控制。跟踪模型和捕捉到的运动被传递经过针对活跃姿势集合的滤波器以确定是否满足任何活跃姿势滤波器。在计算环境内应用任何检测出的姿势,以控制计算环境12所提供的用户界面。步骤520还可包括确定是否存在任何姿势,如果存在,则修改响应于姿势检测而执行的用户界面动作。
[0069]在一个实施例中,步骤516-520由计算设备12执行。此外,尽管步骤502-514被描述为由捕捉设备20执行,但这些步骤中的各个步骤可由诸如计算环境12之类的其他组件来执行。例如,捕捉设备20可向计算环境12提供视觉和/或深度图像,计算环境12接着将确定深度信息,检测人类目标,扫描目标,生成并跟踪模型,以及捕捉人类目标的运动。
[0070]图5是本技术的应用的图示。在图5中,在同一物理空间1000上存在第一用户18a和第二用户18b。在该实例中,还存在两个捕捉设备20A和20B以及系统1A和1B。存在先前描述的供每一用户18a和18b与系统10联用的其他元件。在图5所示的示例中,每一系统1A和108B必须按其中照明和检测不冲突的方式来操作。用于实现这个的一种方法是确保系统1a和1b就其操作窗口彼此通信。然而,要求这些系统之间的连接通常是不切实际的,并降低了这些系统的灵活性。
[0071]图6是示出当多个捕捉设备在环境1000中操作时由一捕捉设备的自发现的方法的流程图。图6的技术允许该系统独立地确定另一系统是否存在于将需要系统之间的协调一影响操作的物理邻近度中。
[0072]图6的方法可由每一捕捉设备作为初始化过程的一部分或在重新校准被处理器42中指令校准的代码请求时作为重新校准的一部分来执行。在一个实施例中,所有捕捉设备都被设计成用相同定时的循环和操作窗口操作。图6的方法允许设备在可能包含其他设备的环境中为其自己确定要在其中进行脉冲和感测的操作窗口。
[0073]在602,作出关于在捕捉设备的循环时间W内的操作时间窗口 X的确定。操作窗口可以是图7A中示出的脉冲和检测窗口,该窗口是依据该设备的脉宽定义的操作窗口的一部分。应当认识到,该操作窗口和循环窗口可取决于该捕捉设备被使用于的应用和范围而改变。步骤602的确定可为每一初始化或校准作出,或者为执行图6的方法的任何设备作出一次。
[0074]在604,发起对捕捉设备的初始化或校准。在606,禁用该设备的所有照明源。这允许捕捉设备的传感器元件检测是否发生与预定义模式匹配的或在循环窗口内的其他照明源。
[0075]在608,扫描环境以查找在该环境中发生的脉冲光源。该扫描在多个数目(N)个循环窗口上的某时间帧内查找不时重复的任何照明源。如果在610在N个循环窗口的扫描时间帧内检测到照明,则在612作出关于这些脉冲的长度的计算。在612的定时计算将允许在615确定照明(或非照明)。
当前第3页1 2 3 4 5 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1