检测多功能传感器设备的运动的制作方法

文档序号:6424166阅读:203来源:国知局
专利名称:检测多功能传感器设备的运动的制作方法
技术领域
本发明涉及运动捕捉系统,尤其涉及检测运动捕捉系统中的运动。
背景技术
运动捕捉系统获得关于人或其他主体在物理空间中的位置和移动的数据,并可使用该数据作为计算系统中的某一应用的输入。可能有许多应用,如出于军事、娱乐、体育和医疗目的。例如,人的运动可被映射到三维(3-D)人类骨架模型并用于创建动画人物或化身。运动捕捉系统可包括包含使用可见和不可见(例如,红外)光的系统在内的光学系统, 运动捕捉系统使用相机来检测视野中的人的存在。然而,这样的系统受到可影响音频和视觉性能的振动、颠簸、摇晃、以及其他移动和扰动的损害。需要用于检测并对这些移动进行响应的技术。

发明内容
提供了一种用于检测运动捕捉系统中的3-D深度相机的运动的处理器实现的方法、运动捕捉系统和有形计算机可读存储。这样的深度相机例如被用来检测用户在视野中的移动,并将这些移动解释成对运动捕捉系统中的应用程序的控制输入。例如,用户可作出手的姿势来导航菜单、在浏览或购物体验中交互、选择要玩的游戏、或访问诸如向朋友发送消息等通信特征。或者,用户可以使用手、腿、或整个身体来控制3-D虚拟世界中的化身的移动。深度相机在跟踪用户时的性能可被与该深度相机所处的环境相关的各种源扰乱。 扰乱可包括振动,例如由于扬声器/亚低音扬声器、卡车、火车或飞机在附近经过、地震或打雷、对诸如深度相机所处的小船或轮船等交通工具的扰动、以及用户移动,如在深度相机所处的房间内跳跃、跑步、以及玩耍。扰乱还可包括深度相机的非有意移动,如在用户或家养宠物意外地扫过并移动了深度相机的情况下,以及有意移动,如在用户尝试重新定位深度相机的情况下。为了检测并考虑这些扰乱,可以使用用于高效准确地检测深度相机的移动的技术来处理来自深度相机中的加速计的信号。在一个实施例中,提供了一种用于检测3-D深度相机的运动的处理器实现的方法。该方法包括在连续的时间点从3-D深度相机中的三轴加速计获取χ-轴、y-轴、以及 ζ-轴方向上的加速度读数的处理器实现的步骤。该方法还包括,对于每一时间点(a)获取在χ-轴、y_轴、以及ζ-轴中的每一个轴方向上的加速计读数的短期和长期行进平均。短期行进平均是在W个时间点上求取的,而长期行进平均是在N2个时间点上求取的。在一种方法中,N2 = Nlxl. 5。在另一种方法中,1. 3χΝ1 < N2 < 1. 7x Ni。短期和长期平均的特定定义可造成在检测移动时的最优准确度。该方法还包括(b)获取χ-轴、y_轴、以及ζ-轴中的每一个轴的加速度读数的短期和长期行进平均之间的差,(C)获取与X-轴、y_轴、以及Z-轴中的每一个轴有关的差的绝对值,以及(d)基于这些绝对值来获取总和。该方法还包括(e)确定该总和是否超过阈值水平。阈值水平的特定设置可造成在检测移动时的最优准确度。如果该总和超过阈值水平,则该方法包括(f)提供检测到3-D深度相机的移动的指示。类似地,如果该总和没有超过阈值水平,则该方法还包括(g)提供没有检测到3-D深度相机的移动的指示。在一种可能的方法中,运动跟踪过程响应于检测到3-D深度相机的移动的指示而暂停,并且运动跟踪过程随后响应于不再检测到3-D深度相机的移动的指示而恢复。响应于检测到3-D深度相机的移动的指示,经由用户界面提供指示3-D深度相机已 被扰动的消息也是可能的。提供本发明内容以用简化形式介绍在下面的说明书中进一步描述的精选概念。本发明内容并不旨在标识出所要求保护的主题的关键特征或必要特征,也不旨在用于限定所要求保护的主题的范围。


在附图中,附图标记相同的元素彼此对应。图1描绘了运动捕捉系统的示例实施例。图2A描绘了图1的运动捕捉系统的示例框图。图2B描绘图2A的运动捕捉系统的处理器的各处理框的示例。图2C描绘图2A的运动捕捉系统的处理器的各处理框的另一示例。图3描绘了可以在图1的运动捕捉系统中使用的计算环境的示例框图。图4描绘了可以在图1的运动捕捉系统中使用的计算环境的另一示例框图。图5描绘了用于检测运动捕捉系统中的相机移动的方法。图6描绘了用于如图5的步骤500所述地跟踪个人的移动的示例方法。图7A描绘了用于如图5的步骤502所述地处理当前时间段的加速计读数的示例方法。图7B描绘了用于如图5的步骤502所述地处理当前时间段的加速计读数的另一示例方法。图8描绘了如图6的步骤608所述的用户的示例模型。图9描绘用于如图7A和7B中所述的那样来处理加速计读数的示例坐标系统。图IOA描绘了其中玩家正在跳跃的场景中的示例原始加速计读数。图IOB基于图IOA描绘了长期和短期平均俯仰(pitch)值。图IOC描绘了图IOB的长期和短期平均俯仰值之间的差。图IOD基于图IOA中描绘的轴数据的平均值描绘了差的总和以及与阈值的比较, 从而指示何时检测到不满足阈值并且被过滤出的移动。图IlA描绘了其中传感器正在移动的场景中的示例原始加速计读数。图IlB基于图IlA描绘了长期和短期平均俯仰值,以及长期和短期平均俯仰值之间的差。图IlC基于图IlA中描绘的轴数据的平均值来描绘了差的总和以及与阈值的比较,从而指示在检测到移动时满足或超过阈值并且被指示为检测到移动的总和。
具体实施方式
提供了一种用于在配备有加速计的传感器被扰动时准确地进行检测的技术。在一示例中,传感器是运动跟踪系统中的深度相机。在一种方法中,处理来自三轴加速计的读数以提供χ轴、y轴、以及ζ轴中的每一个轴的短期和长期移动平均。对于每一个轴,获得短期和长期平均之间的差。通过对所有三个轴上的每一个差的绝对值求和来获取差的总和。 随后将差的总和与阈值进行比较以确定是否检测到移动。在另一种方法中,加速计读数的短期和长期平均被转换成俯仰和摇晃(roll)值,并且俯仰和摇晃值单独与阈值比较以确定是否检测到移动。此外,尽管具体结合运动跟踪系统中的深度相机解释了对加速计的使用,但所提供的技术一般适用于检测任何音频或视觉传感器外围设备的移动以供计算机主机的需要, 该传感器外围设备可将它的与可影响音频或视觉性能的振动、颠簸或其他物理位移等有关的物理状态通信传递给主机。从该设备到主机的输入可被用来确定何时自动地重新校准传感器,警告用户可影响性能的过度振动或移动,或提供用户已经完成设置传感器所需的特定任务的独立确认。图1描绘了其中个人8与应用交互的运动捕捉系统10的示例实施例。这示出了运动捕捉系统诸如在用户家中的真实世界部署。运动捕捉系统10包括显示器196、深度相机系统20、以及计算环境或装置12。深度相机系统20可包括图像相机组件22,其具有红夕卜(IR)光发射器24、红外相机26和红-绿-蓝(RGB)相机28。也称为个人或玩家的用户 8站在深度相机的视野6中。线2和4表示视野6的边界。在该示例中,深度相机系统20 和计算环境12提供了其中显示器196上的化身197跟踪用户8的移动的应用。例如,当用户举起手臂时,化身可举起手臂。化身197在3-D虚拟世界中站在路198上。可定义笛卡尔世界坐标系,其包括沿着深度相机系统20的焦距(例如水平)延伸的ζ轴、垂直延伸的 y轴、以及横向且水平延伸的χ轴。附图的透视被修改成简化表示,显示器196在y轴方向上垂直延伸,ζ轴垂直于y轴和χ轴且与用户8所站立的地平面平行地从深度相机系统延伸出来。一般而言,运动捕捉系统10用于识别、分析和/或跟踪人类目标。计算环境12可包括计算机、游戏系统或控制台等,以及执行应用的硬件组件和/或软件组件。深度相机系统20可以包括相机,相机用于在视觉上监视诸如用户8等的一个或多个人,从而可以捕捉、分析并跟踪用户所执行的姿势和/或移动,来执行应用中的一个或多个控制或动作,如使化身或屏幕上人物活动起来或选择用户界面(UI)中的一菜单项。运动捕捉系统10可以连接到诸如显示器196等可向用户提供视觉和音频输出的视听设备,如电视机、监视器、高清电视机(HDTV)等,或甚至是墙或其他表面上的投影。音频输出也可经由单独的设备来提供。为驱动显示器,计算环境12可包括提供与应用相关联的视听信号的诸如图形卡等视频适配器,和/或诸如声卡等音频适配器。显示器196可经由例如,S-视频电缆、同轴电缆、HDMI电缆、DVI电缆、VGA电缆等连接到计算环境12。用户8可使用深度相机系统20来跟踪,使得用户的姿势和/或移动被捕捉并用于使化身或屏幕上人物活动起来,和/或被解释为对计算机环境12所执行的应用的输入控制。用户8的某些移动可被解释为可对应于除控制化身之外的动作的控制。例如,在一实施例中,玩家可使用移动来结束、暂停或保存游戏、选择级别、查看高分、与朋友交流等。玩家可使用移动来从主用户界面选择游戏或其他应用,或以其他方式导航选项菜单。由此,用户8的全范围运动可以用任何合适的方式来获得、使用并分析以与应用进行交互。个人可在与应用交互时抓握诸如道具等物体。在此类实施例中,个人和物体的移动可用于控制应用。例如,可以跟踪并利用玩家手持球拍的运动来控制模拟网球游戏的应用中的屏幕上球拍。在另一示例实施例中,可以跟踪并利用玩家手持诸如塑料剑等玩具武器的运动来控制提供海盗船的应用的虚拟世界中对应的武器。运动捕捉系统10还可用于将目标移动解释为游戏和出于娱乐和休闲目的的其他应用范围之外的操作系统和/或应用控制命令。例如,操作系统和/或应用的基本上任何可控方面可由用户8的移动来控制。图2A描绘了图1的运动捕捉系统的示例框图。深度相机系统20可被配置成经由任何合适的技术,包括例如飞行时间、结构化光、立体图像等,捕捉带有包括深度图像的深度信息的视频,该深度图像可包括深度值。深度相机系统20可将深度信息组织为“Z层”, 或可与从深度相机沿其视线延伸的Z轴垂直的层。深度相机系统20可包括图像相机组件22,如捕捉物理空间中的场景的深度图像的深度相机。深度图像可包括所捕捉的场景的二维O-D)像素区域,其中该2-D像素区域中的每一像素具有代表距离图像相机组件22的线性距离的相关联的深度值。图像相机组件22可包括可用于捕捉场景的深度图像的红外(IR)光发射器对、红外相机26、以及红-绿-蓝(RGB)相机28。3-D相机由红外发射器M和红外相机沈的组合来形成。例如,在飞行时间分析中,顶光发射器M将红外光发射到物理表面上,并且红外相机沈检测来自物理空间中的一个或多个目标和物体的表面的反向散射光。在某些实施例中,可以使用脉冲式红外光,从而可以测量出射光脉冲与相应的入射光脉冲之间的时间并将其用于确定从深度相机系统20到物理空间中的目标或对象上的特定位置的物理距离。可将传出光波的相位与传入光波的相位进行比较来确定相移。然后可以使用相移来确定从深度相机系统到对象或目标上的特定位置的物理距离。飞行时间分析也可用于通过经由包括例如快门式光脉冲成像等各种技术来分析反射光束随时间的强度,来间接地确定从深度相机系统20到目标或对象上的特定位置的物理距离。在另一示例实施例中,深度相机系统20可使用结构化光来捕捉深度信息。在这一分析中,图案化光(即,被显示为诸如网格图案或条纹图案等已知图案的光)可经由例如顶光发射器M被投影到场景上。在撞击到场景中的一个或多个目标或物体的表面时,作为响应,图案可变形。图案的这种变形可由例如红外相机沈和/或RGB相机观来捕捉,然后可被分析以确定从深度相机系统到目标或对象上的特定位置的物理距离。深度相机系统20可包括两个或更多物理上分开的相机,这些相机可从不同角度查看场景以获得视觉立体数据,该视觉立体数据可被解析以生成深度信息。深度相机系统20还可包括话筒30,话筒30包括例如接收声波并将其转换成电信号的换能器或传感器。另外,话筒30可用于接收由个人提供的诸如声音等音频信号,来控制由计算环境12运行的应用。音频信号可包括诸如说出的单词、口哨、叫声和其他话语等个人的口声,以及诸如拍手或跺脚等非口声。深度相机系统20可包括与图像相机组件22进行通信的处理器32。处理器32可包括可执行指令的标准化处理器、专用处理器、微处理器等,这些指令包括例如用于接收深度图像的指令;用于基于深度图像来生成三维像素网格的指令;用于移除包括在三维像素网格中的背景以便隔离与人类目标相关联的一个或多个三维像素的指令;用于确定隔离的人类目标的一个或多个骨端的位置或定位的指令;用于基于一个或多个骨端的位置或定位来调整模型的指令;或任何其他合适的指令,这些将在下文中更详细描述。深度相机系统20还可包括存储器组件34,存储器组件34可存储可由处理器32执行的指令、以及存储3-D相机或RGB相机所捕捉的图像或图像帧、或任何其他合适的信息、 图像等等。根据一示例实施例,存储器组件34可包括随机存取存储器(RAM)、只读存储器 (ROM)、高速缓存、闪存、硬盘、或任何其他合适的有形计算机可读存储组件。存储器组件34 可以是经由总线21与图像捕捉组件22和处理器32进行通信的单独组件。根据另一实施例,存储器组件34可被集成到处理器32和/或图像捕捉组件22中。深度相机系统20可包括用于将相机重新定位的定位电动机35以及用于检测深度相机的移动的加速计33。关于电动机35,相机可以使用该电动机来在各种情况下自动地重新定位自己。例如,相机可具有调整上下/俯仰(即相机看得有多高)的倾斜电动机。例如,在不同玩家开始与运动捕捉系统中的应用进行交互时,在游戏应用程序的开始时,或在运动捕捉系统启动并开始搜索以找出房间中的人时,可以发生这一重新定位。相机可以基于其自己的控制逻辑和/或从诸如计算环境12中的外部控制逻辑接收用于激活电动机的命令。相机可包括一个或多个加速计33。例如,加速计可被安装到其上安装有相机的其他电路的印刷电路板。本文提供的技术可用于两轴加速计,其中第三轴被固定以防止移动。 一般而言,加速计可以是检测三个正交轴(例如,χ轴、y轴、ζ轴)上的移动的三轴加速计。 典型的现代加速计使用只对管芯的平面中的方向敏感的微机电系统(MEMS)。通过将两个器件垂直地集成在单个管芯上,可以造出两轴加速计。通过添加附加的平面外器件,可以测量在三个轴方向上的加速度。加速计可以按指定的采样速率来提供数据样本。深度相机系统20可以经由通信链路36与计算环境12进行通信。通信链路36可以是有线和/或无线连接。根据一实施例,计算环境12可经由通信链路36向深度相机系统20提供时钟信号,该信号指示何时从位于深度相机系统20的视野中的物理空间捕捉图像数据。另外,深度相机系统20可经由通信链路36向计算环境12提供深度信息和由例如 3-D相机沈和/或RGB相机观捕捉的图像,和/或可由深度相机系统20生成的骨架模型。 计算环境12然后可使用该模型、深度信息和捕捉的图像来控制应用。例如,计算环境12可包括诸如姿势过滤器集合等姿势库190,每一姿势过滤器具有关于可由骨架模型(在用户移动时)执行的姿势的信息。例如,可为各种手姿势提供姿势过滤器,如手的挥击或投掷。 通过将检测到的运动与每一过滤器进行比较,可标识个人执行的指定姿势或移动。也可确定执行移动的范围。可将由深度相机系统20捕捉的骨架模型形式的数据以及与其相关联的移动与姿势库190中的姿势过滤器进行比较来标识用户(如骨架模型所表示的)何时执行了一个或多个特定移动。那些移动可与应用的各种控制命令相关联。计算环境还可包括用于执行存储在存储器194中的指令以向显示设备196提供音频-视频输出信号并实现如此处所描述的其他功能的处理器192。
图2B描绘图2A的运动捕捉系统的处理器的各处理框的示例。例如,处理器32和 /或192可处理来自加速计33的读数。这些读数可包括分别在χ、y、ζ方向上的加速度读数Ax、Ay、Az。这些读数可以具有加速度单位,例如米/平方秒,或具有对应于加速度单位的其他单位,如电压或电流。这一对应关系可以是线性的。加速度读数Ax、Ay、Az是来自加速计的在读数被如本文所述地处理之前的原始数据。处理器可包括如通过使用当前时间点和前N2-1个时间点来确定N2个时间点上的长期行进平均计算的功能框200。行进平均基本上是移动平均。框200的输出包括x、y、z长期平均,也被称为长平均。类似地,处理器可包括如通过使用当前时间点和前m-i个时间点来确定m个时间点上的短期行进平均计算的功能框202。框202的输出包括x、y、ζ短期平均,也被称为短平均。框204基于长平均和短平均来确定差的总和。具体而言,总和可以基于χ轴、y轴、ζ轴中的每一个轴的短平均和长平均之间的差。在框206将总和与阈值进行比较,以确定是否检测到移动并提供对应的输出信号来作为移动决策。输出信号可由采取指定动作的过程来使用,该指定动作诸如临时暂停运动跟踪算法和/或经由显示器向用户提供指示已经检测到相机的扰动的消息。 样本数m和N2或相关联的时间段可基于在实验期间从相机计算得到的数据值来设置。图2C描绘图2A的运动捕捉系统的处理器的各处理框的另一示例。框210和212 分别类似于图2B中的框200和202。在俯仰计算框214和摇晃计算框222处理长平均和短平均两者。俯仰计算框214向差框216提供俯仰长期平均和俯仰短期平均,框216确定每一时间点的俯仰长期平均和俯仰短期平均之间的差并将这一差提供给比较框218。类似地,摇晃计算框222向差框220提供摇晃长期平均和摇晃短期平均,框220确定每一时间点的摇晃长期平均和摇晃短期平均之间的差并将这一差提供给比较框218。比较框218基于这些差中的一个或两者来确定是否检测到移动,并提供对应的输出信号作为移动决策。图 9描绘俯仰和摇晃的示例定义。 图3描绘了可以在图1的运动捕捉系统中使用的计算环境的示例框图。计算环境可用于解释一个或多个姿势或其他移动并作为响应来更新显示器上的视觉空间。上面描述的诸如计算环境12等计算环境可以是诸如游戏控制台等多媒体控制台100。多媒体控制台 100包括具有一级高速缓存102、二级高速缓存104和闪存ROM(只读存储器)106的中央处理单元(CPU) 101。一级高速缓存102和二级高速缓存104临时存储数据并因此减少存储器访问周期数,由此改进处理速度和吞吐量。CPU 101可以设置成具有一个以上的核,以及由此的附加的一级和二级高速缓存102和104。诸如闪存ROM等存储器106可存储在多媒体控制台100通电时在引导过程的初始阶段期间加载的可执行代码。图形处理单元(GPU) 108和视频编码器/视频编解码器(编码器/解码器)114形成用于高速、高分辨率图形处理的视频处理流水线。数据经由总线从图形处理单元108输送到视频编码器/视频编解码器114。视频处理流水线将数据输出到A/V (音频/视频)端口 140以传输到电视机或其他显示器。存储器控制器110连接到GPU 108以便于处理器访问各种类型的存储器112,诸如RAM(随机存取存储器)。多媒体控制台100包括较佳地在模块118上实现的I/O控制器120、系统管理控制器122、音频处理单元123、网络接口 124、第一 USB主控制器126、第二 USB控制器128和前面板I/O子部件130。USB控制器126和128用作外围控制器142 (1)-142 (2)、无线适配器 148、和外置存储器设备146 (例如闪存、外置⑶/DVD ROM驱动器、可移动介质等)的主机。网络接口(NW IF) IM和/或无线适配器148提供对网络(例如,因特网、家庭网络等)的访问并且可以是包括以太网卡、调制解调器、蓝牙模块、电缆调制解调器等的各种不同的有线或无线适配器组件中任何一种。提供系统存储器143来存储在引导进程期间加载的应用数据。提供媒体驱动器 144且其可包括DVD/⑶驱动器、硬盘驱动器、或其他可移动媒体驱动器。媒体驱动器144对于多媒体控制台100可以内置或外置的。应用数据可经由媒体驱动器144访问,以由多媒体控制台100执行、回放等。媒体驱动器144经由诸如串行ATA总线或其他高速连接等总线连接到I/O控制器120。系统管理控制器122提供涉及确保多媒体控制台100的可用性的各种服务功能。 音频处理单元123和音频编解码器132形成具有高保真度和立体声处理的对应的音频处理流水线。音频数据经由通信链路在音频处理单元123与音频编解码器132之间传输。音频处理流水线将数据输出到A/V端口 140以供外置音频播放器或具有音频能力的设备再现。前板I/O子部件130支持暴露在多媒体控制台100的外表面上的电源按钮150和弹出按钮152以及任何LED(发光二极管)或其他指示器的功能。系统供电模块136向多媒体控制台100的组件供电。风扇138冷却多媒体控制台100内的电路。CPUlOl、GPU108、存储器控制器110、和多媒体控制台100内的各个其他组件经由一条或多条总线互连,包括串行和并行总线、存储器总线、外围总线、和使用各种总线架构中任一种的处理器或局部总线。当多媒体控制台100通电时,应用数据可从系统存储器143加载到存储器112和/ 或高速缓存102、104中并在CPUlOl上执行。应用可呈现在导航到多媒体控制台100上可用的不同媒体类型时提供一致的用户体验的图形用户界面。在操作中,媒体驱动器144中包含的应用和/或其他媒体可从媒体驱动器144启动或播放,以向多媒体控制台100提供附加功能。多媒体控制台100可通过将该系统简单地连接到电视机或其他显示器而作为独立系统来操作。在该独立模式中,多媒体控制台100允许一个或多个用户与该系统交互、看电影、或听音乐。然而,随着通过网络接口 1 或无线适配器148可用的宽带连接的集成, 多媒体控制台100还可作为较大网络社区中的参与者来操作。当多媒体控制台100通电时,保留指定量的硬件资源以供多媒体控制台操作系统作系统使用。这些资源可以包括存储器保留(例如,16MB)、CPU和GPU周期(例如,5%)、 网络带宽(例如,SlAs)等。因为这些资源是在系统引导时保留的,所以所保留的资源对应用而言是不存在的。具体地,存储器保留较佳地足够大,以包含启动内核、并发系统应用和驱动程序。 CPU保留较佳地为恒定,使得若所保留的CPU用量不被系统应用使用,则空闲线程将消耗任何未使用的周期。对于GPU保留,通过使用GPU中断来显示由系统应用生成的轻量消息(例如,弹出窗口),以调度代码来将弹出窗口呈现为覆盖图。覆盖图所需的存储器量取决于覆盖区域大小,并且覆盖图较佳地与屏幕分辨率成比例缩放。在并发系统应用使用完整用户界面的情况下,优选使用独立于应用分辨率的分辨率。定标器可用于设置该分辨率,从而无需改变频率,也就不会引起TV重新同步。
在多媒体控制台100引导且系统资源被保留之后,就执行并发系统应用来提供系统功能。系统功能被封装在一组在上述所保留的系统资源中执行的系统应用中。操作系统内核标识是系统应用线程而非游戏应用线程的线程。系统应用优选地被调度为在预定时间并以预定时间间隔在CPU 101上运行,以便为应用提供一致的系统资源视图。进行调度是为了把由在控制台上运行的游戏应用所引起的高速缓存分裂最小化。当并发系统应用需要音频时,则由于时间敏感性而异步调度音频处理给游戏应用。多媒体控制台应用管理器(如下所述)在系统应用活动时控制游戏应用的音频水平 (例如,静音、衰减)。 输入设备(例如,控制器142(1)和142(2))由游戏应用和系统应用共享。输入设备不是所保留的资源,但却在系统应用和游戏应用之间切换以使其各自具有设备的焦点。 应用管理器较佳地控制输入流的切换,而无需知晓游戏应用的知识,并且驱动程序维持有关焦点切换的状态信息。控制台100可从包括相机26和28的图2A的深度相机系统20接收附加输入。图4描绘了可以在图1的运动捕捉系统中使用的计算环境的另一示例框图。在运动捕捉系统中,该计算环境可用于解释一个或多个姿势或其他移动并作为响应更新显示器上的视觉空间。计算环境420包括计算机441,计算机441通常包括各种有形计算机可读存储介质。这可以是能由计算机441访问的任何可用介质,而且包含易失性和非易失性介质、可移动和不可移动介质。系统存储器422包括易失性和/或非易失性存储器形式的计算机存储介质,如只读存储器(ROM) 423和随机存取存储器(RAM) 460。基本输入 /输出系统424 (BIOS)包括如在启动时帮助在计算机441内的元件之间传输信息的基本例程,它通常储存在ROM 423中。RAM 460通常包含处理单元459可以立即访问和/或目前正在操作的数据和/或程序模块。图形接口 431与GPU 429进行通信。提供了操作系统425、 应用程序426、其他程序模块427和程序数据428。计算机441还可包括其他可移动/不可移动、易失性/非易失性计算机存储介质, 如从不可移动、非易失性磁介质读取或对其写入的硬盘驱动器438,从可移动、非易失性磁盘454读取或对其写入的磁盘驱动器439,以及从诸如CDROM或其他光介质等可移动、非易失性光盘453读取或对其写入的光盘驱动器440。可以在示例性操作环境中使用的其他可移动/不可移动、易失性/非易失性有形计算机可读存储介质包括但不限于,磁带盒、闪存卡、数字多功能盘、数字录像带、固态RAM、固态ROM等等。硬盘驱动器438通常由诸如接口 434等不可移动存储器接口连接至系统总线421,磁盘驱动器439和光盘驱动器440通常由诸如接口 435等可移动存储器接口连接至系统总线421。以上讨论并在图4中描绘的驱动器及其相关联的计算机存储介质为计算机441提供了对计算机可读指令、数据结构、程序模块和其他数据的存储。例如,硬盘驱动器438被描绘为存储操作系统458、应用程序457、其他程序模块456和程序数据455。这些组件可以与操作系统425、应用程序426、其他程序模块427,以及程序数据428相同,也可以不同。 操作系统458、应用程序457、其他程序模块456和程序数据455在这里被标注了不同的标号是为了说明至少它们是不同的副本。用户可以通过输入设备,诸如键盘451和定点设备 452 (通常被称为鼠标、跟踪球或触摸垫),向计算机441输入命令和信息。其他输入设备 (未示出)可以包括话筒、操纵杆、游戏手柄、圆盘式卫星天线、扫描仪等等。这些和其他输入设备通常由耦合至系统总线的用户输入接口 436连接至处理单元459,但也可以由其他接口和总线结构,诸如并行端口、游戏端口或通用串行总线(USB),来连接。包括相机26和 28的图2A的深度相机系统20可为控制台100定义附加输入设备。监视器442或其他类型的显示器也经由接口,诸如视频接口 432连接至系统总线421。除监视器以外,计算机也可以包括其他外围输出设备,诸如扬声器444和打印机443,它们可以通过输出外围接口 433 连接。 计算机441可使用至一个或多个远程计算机,诸如远程计算机446的逻辑连接在网络化环境中操作。远程计算机446可以是个人计算机、服务器、路由器、网络PC、对等设备或其他常见的网络节点,且通常包括许多或所有以上相对于计算机441描述的元件, 但是在图4中仅示出了存储器存储设备447。逻辑连接包括局域网(LAN)445和广域网 (WAN)449,但也可以包括其他网络。这样的联网环境在办公室、企业范围计算机网络、内联网和因特网中是常见的。当在LAN联网环境中使用时,计算机441通过网络接口或适配器437连接至LAN 445。当在WAN联网环境中使用时,计算机441通常包括调制解调器450或用于通过诸如因特网等WAN 449建立通信的其他装置。调制解调器450可以是内置或外置的,它可以经由用户输入接口 436或其他适当的机制连接至系统总线421。在网络化环境中,相对于计算机 441所描述的程序模块或其部分可被存储在远程存储器存储设备中。作为示例而非限制, 图4示出了远程应用程序448驻留在存储器设备447上。可以理解,所示的网络连接是示例性的,且可以使用在计算机之间建立通信链路的其他手段。该计算环境可包括其上具体化了计算机可读软件的有形计算机可读存储,该计算机可读软件用于对至少一个处理器进行编程来执行此处描述的方法。该有形计算机可读存储可包括例如,组件422、434、435、430、453、454中的一个或多个。此外,该计算环境的一个或多个处理器可提供一种处理器实现的方法,包括如本文所述的处理器实现的步骤。处理器可包括例如组件429和459中的一个或多个。图5描绘了用于检测运动捕捉系统中的相机移动的方法。步骤500包括跟踪深度相机系统的视野中的用户。参见例如图6来获得更多细节。步骤502包括处理加速计读数。 参见例如图7A和7B来获得进一步的细节。决策步骤504确定是否检测到相机移动。如果决策步骤504为真,则在步骤506采取适当的动作,如临时暂停对用户的跟踪。这避免在尽管检测到移动而继续跟踪的情况下发生的错误的跟踪结果。有效的跟踪一般需要相机基本上不动。当相机当前正在移动或当相机最近移动了的时侯,如在取平均的时间段期间(如结合图2B和2C描述的),决策步骤504将为真。如果决策步骤504为假,则在步骤508,允许对用户继续进行跟踪。步骤510包括基于该跟踪来向应用提供控制输入。例如,该控制输入可被用来更新化身在显示器上的位置,其中该化身表示该用户。步骤512包括基于该跟踪来更新显示。在跟踪算法临时暂停时,数据不可用于基于正常更新速率来更新显示器。一种方法是在检测到移动之前继续显示最后图像。当在步骤504检测到移动时要采取的另一可能的动作是经由显示器向用户提供指示已检测到相机的扰动的消息。这一消息可被显示成文本,和/或如通过讲出“请重新定位相机”或“相机被扰动了,,等合成说出的声音来可听地显示。还可在检测到移动的时间段期间且可任选地在检测到移动之后的预定时间期间启动诸如嘟嘟声或蜂鸣声等警报声。该消息可以向用户指示将来如何避免进一步扰动。例如可以通过关闭对深度相机的供电、或通过保持对深度相机的供电但在逻辑中提供一控制信号以临时挂起特定跟踪过程,来实现跟踪算法的临时暂停。图6描绘了用于如图5的步骤500所述地跟踪个人的移动的示例方法。该示例方法可以使用例如结合图2A-4讨论的深度相机系统20和/或计算环境12、100或420来实现。可以扫描一个或多个人来生成模型,如骨架模型、网格人类模型、或个人的任何其他合适的表示。在骨架模型中,每个身体部位可被表征为定义骨架模型的关节和骨骼的数学向量。身体部位可以在关节处相对于彼此移动。该模型然后可用于与由计算环境执行的应用交互。进行扫描来生成模型可以在启动或运行应用程序时发生,或如所扫描的个人的应用程序所控制的在其他时间发生。可扫描个人来生成骨架模型,可跟踪该骨架模型使得用户的物理移动或运动可用作调整和/或控制应用的参数的实时用户接口。例如,所跟踪的个人的移动可用于在电子角色扮演游戏中移动化身或其他屏幕上人物;在电子赛车游戏中控制屏幕上车辆;在虚拟环境中控制物体的构成或组织;或执行应用的任何其他合适的控制。根据一个实施例,在步骤600,例如从深度相机系统接收深度信息。深度相机系统可以捕捉或观察可包括一个或多个目标的视野。在一示例实施例中,如所讨论的,深度相机系统可使用诸如飞行时间分析、结构化光分析、立体视觉分析等任何合适的技术来获得与捕捉区域中的一个或多个目标相关联的深度信息。如所讨论的,深度信息可包括具有多个所观察的像素的深度图像或图,其中每一所观察的像素具有所观察的深度值。深度图像可以被降采样到较低处理分辨率,以使其可被更容易地使用且以更少的计算开销来处理。另外,可从深度图像中移除和/或平滑掉一个或多个高变度和/或含噪声的深度值;可填入和/或重构缺少的和/或移除的深度信息的部分;和/或可对所接收的深度信息执行任何其他合适的处理,使得该深度信息可用于生成也结合图8讨论的诸如骨架模型等模型。在判定步骤604,判定深度图像是否包括人类目标。这可包括对深度图像中的每一目标或对象进行泛色填充,将每一目标或对象与模式进行比较来确定该深度图像是否包括人类目标。例如,可以比较深度图像的所选区域或点中的像素的各种深度值来确定可定义如上所述的目标或对象的边。可基于所确定的边来对Z个层的可能的Z个值进行泛色填充。例如,与所确定的边相关联的像素以及边内的区域的像素可互相关联来定义可与图案进行比较的捕捉区域中的目标或对象,这将在下文中更详细描述。如果判定步骤604为真,则执行步骤606。如果判定步骤604为假,则在步骤600 接收附加深度信息。对照其来比较每一目标或对象的模式可包括具有共同定义典型的人类身体的一组变量的一个或多个数据结构。与例如视野中的人类目标和非人类目标的像素相关联的信息可以与各变量进行比较来标识人类目标。在一个实施例中,该组中的每一变量可基于身体部位来加权。例如,模式中诸如头和/或肩等各个身体部位可具有与其相关联的、可大于诸如腿等其他身体部位的权重值。根据一个实施例,可在将目标与变量进行比较来确定目标是否以及哪一目标可以是人类时使用权重值。例如,变量与目标之间的具有较大权重值的匹配可产生比具有较小权重值的匹配更大的该目标是人类的可能性。
步骤606包括扫描人类目标来寻找身体部位。可以扫描人类目标来提供与个人的一个或多个身体部位相关联的诸如长度、宽度等度量,以提供该个人的准确模型。在一示例实施例中,可隔离该人类目标,并且可创建该人类目标的位掩模来扫描一个或多个身体部位。该位掩模可通过例如对人类目标进行泛色填充,使得该人类目标可以与捕捉区域元素中的其他目标或对象分离来创建。随后可分析该位掩模来寻找一个或多个身体部位,以生成人类目标的模型,如骨架模型、网格人类模型等。例如,根据一实施例,可使用由所扫描的位掩模确定的度量值来定义骨架模型中的一个或多个关节。该一个或多个关节可用于定义可对应于人类的身体部位的一根或多根骨。 例如,人类目标的位掩模的顶部可以与头的顶部的位置相关联。在确定了头的顶部之后,可以向下扫描该位掩模来随后确定颈的位置、肩的位置等等。例如,在所扫描的位置处的位掩模的宽度可以与和例如颈、肩等相关联的典型宽度的阈值进行比较。在替换实施例中,可以使用离位掩模中先前扫描的并与身体部位相关联的位置的距离来确定颈、肩等的位置。诸如腿、脚等的某些身体部位可基于例如其他身体部位的位置来计算。在确定了身体部位的值之后,可创建包括身体部位的度量值的数据结构。该数据结构可包括从深度相机系统在不同时间点提供的多个深度图像中平均的扫描结果。步骤608包括生成人类目标的模型。在一实施例中,可使用由所扫描的位掩模确定的度量值来定义骨架模型中的一个或多个关节。该一个或多个关节用于定义可对应于人类的身体部位的一根或多根骨。可调整一个或多个关节,直到这些关节在人类的关节和身体部位之间的典型距离范围之内,以生成更准确的骨架模型。该模型可基于例如与人类目标相关联的高度来进一步调节。在步骤610,通过每秒若干次更新个人的位置来跟踪该模型。当用户在物理空间中移动时,使用来自深度相机系统的信息来调整骨架模型,使得该骨架模型表示一个人。具体地,可向该骨架模型的一个或多个受力方面施加一个或多个力,来将该骨架模型调整成更接近地对应于物理空间中的人类目标的姿态的姿态。一般而言,可使用用于跟踪个人的移动的任何已知技术。图7A描绘了用于如图5的步骤502所述地处理当前时间段的加速计读数的示例方法。步骤700包括分别获取x、y、和ζ轴的当前时间点的加速计读数Ax、Ay、Az。例如, 对于当前时间点或样本索引t = i,样本可由Ax(i)、Ay(i)、Az(i)来表示。可以使用诸如15毫秒等采样时间间隔,其中对每一采样的时间点获取附加样本。所描绘的步骤应用于一个时间点并且对每一后续时间点重复。所描绘的步骤不必一定离散地发生,而是可至少部分地并发地发生。例如,步骤702、704、和706可至少部分地并发地发生。对于χ轴读数,步骤702获取m个时间点上的短期行进平均和N2个时间点上的长期行进平均。例
1 t— *
如,X轴的短期行进平均可以是=ΣΙΖΙ-ΝΙ + Ι^^) X轴的长期行进平均可以是
Wl。
^ Tit=i-N2+1 ^xW
ο对于y轴读数,步骤704获取m个时间点上的短期行进平均和N2个时间点上的长期行进平均。对于Z轴读数,步骤706获取m个时间点上的短期行进平均和N2个时间点上的长期行进平均。在该示例中,对于不同的轴,短期平均和长期平均是类似地定义的。 然而,对于这三个不同的轴中的每一个轴,对短期平均和长期平均使用不同数量的时间点/ 求平均时间段也是可能的。对于特定实现,对于每一轴并且对于长平均和短平均,可以使用实验来确定最优数量个时间点或求平均时间点。此外,对于特定实现,可以使用实验来确定N2/m的最优比率。在一些实现中,已发现N2/m = 1.5的比率是成功的。S卩,N2超过m大约50%。一般而言,可以使用ι. 3χΝ1 < N2 < 1. 7x Ni。此外,在15毫秒采样时间间隔的情况下,成功地使用了 m = 40和N2 = 60,使得求取短平均和长平均的时间间隔(求平均时间段)分别是 600毫秒和900毫秒。m和N2是正整数,并且N2 > m。这是示例实现,并且如上所述,特定实现的最优值可通过实验来确定。一般而言,如果N2超过m太多,则移动的指示被延迟的过长。如果N2和m过于接近,使得N2不充分超过Ni,则将丢失一些移动的指示。进一步的考虑事项是短平均的最小长度应当生成足够稳定的时间线来消除大多数伪振动。步骤708基于|x轴长平均-χ轴短平均I+ |y轴长平均_y轴短平均|X缩放因子+Iz-轴长平均-Z轴短平均I来确定差的总和。Ix轴长平均-X轴短平均I表示当前时间点的X轴长期平均与X轴短期平均之间的差的绝对值。I y轴长平均_y轴短平均I表示当前时间点的y轴长期平均与y轴短期平均之间的差的绝对值。Y轴可表示垂直方向。在决定是否指示相机移动时,缩放因子可被用来缩小或削弱垂直移动的效果。由于诸如靠近相机的扬声器、人在相机附近走路或跳跃等源而引起的振动或可通过相机所处的表面传递的任何其他扰动,大多数都表现在垂直轴上。使用缩放因子,相对于表示χ轴或ζ轴方向上的移动的加速计数据,表示在垂直轴方向上的移动的加速计数据被削弱。这可通过避免由于常见y轴振动而引起的假移动检测而得到更好的结果。另一方面,由于相机被其电动机移动(如向上或向下倾斜)或被外部源移动(如由用户)而引起的移动,往往在χ轴和 Z轴方向上表现得更多或在这两个方向上大致相等。缩放因子可以与在垂直方向上的重力效果的校正分开,或与这一校正相组合。缩放因子可以是例如大约20% (0. 2),或例如大约 10-33% (0.10-0.33)。缩放因子可以通过实验来优化。I ζ轴长平均-ζ轴短平均I表示当前时间点的ζ轴长期平均与ζ轴短期平均之间的差的绝对值。运动一般作为在所有三个轴方向上的振动来出现,使得来自所有三个轴的平均读数有利地减少加速计内在的振动噪声。此外,本文提供的技术不需要相机是水平的来进行移动检测。基于超出在单个轴方向上的阈值的移动来指示运动的技术可能提供不一致的结果。在决策步骤710,如果总和大于阈值,则步骤712提供检测到移动的指示。另一方面,在决策步骤710,如果总和不大于阈值,则步骤714提供未检测到移动的指示。可任选地,可以在步骤712处不提供指示,直至对于一个或多个样本中的指定数量的样本检测到移动为止。类似地,可以在步骤714处不提供指示,直至对于一个或多个样本中的指定数量的样本检测到移动为止。决策步骤710中的最优阈值可以基于实验来确定。该阈值应当足够高,使得在移动水平可接受的情况下检测不到移动并且跟踪算法可以继续在性能可接受的情况下跟踪用户。另一方面,该阈值应当足够低,使得在移动水平不可接受的情况下检测到移动并且跟踪算法不能继续在性能可接受的情况下跟踪用户。被用来确定最优阈值水平的实验可以使用跟踪性能的度量。
15
参见图10A-11C可看到基于图7A生成的示例数据。图7B描绘了用于如图5的步骤502所述地处理当前时间段的加速计读数的另一示例方法。步骤720、722、724、以及726分别对应于图7A的步骤700、702、704、以及706。 步骤7 基于步骤7M和7 的长期平均值来确定俯仰角度。使用图9的约定,相机的俯仰角度等于ζ除以y的反正切,其中ζ和y分别是样本索引i处的Az(i)和Ay(i)。因而,步骤7 确定长俯仰=atan(z轴长平均/y轴长平均)。长俯仰是基于当前样本的Az和Ay 的长期平均的当前样本的俯仰。atan是反正切。类似地,步骤730确定短俯仰=atan (ζ轴短平均/y轴短平均)。短俯仰是基于当前样本的Az和Ay的短期平均的当前样本的俯仰。 俯仰角度的变化△俯仰(Apitch)可基于分别是步骤7 和730的长期俯仰和短期俯仰之间的差来确定,Δ俯仰=I长俯仰-短俯仰|。类似地,使用图9的约定,相机的摇晃角度等于χ除以y的反正切,其中χ和y分别是样本索引i处的Ax(i)和Ay(i)。Ay (i)可被缩放以移除重力效果和/或削弱常见垂直运动。步骤734确定长摇晃=atan (χ轴长平均/y轴长平均)。长摇晃是基于当前样本的Ax和Ay的长期平均的当前样本的摇晃。类似地,步骤736确定短摇晃=atan (χ轴短平均/y轴短平均)。短摇晃是基于当前样本的Ax和Ay的短期平均的当前样本的摇晃。摇晃角度的变化△摇晃(Aroll)可基于分别是步骤734和736的长期摇晃角度和短期摇晃角度之间的差来确定,Δ摇晃=I长摇晃-短摇晃|。在一个实现中,决策步骤740将Δ俯仰和Δ摇晃两者与角度阈值进行比较,以度或弧度为单位(与图7Α的步骤710不同)。如果△俯仰和△摇晃之一或两者超过阈值, 则在步骤742提供检测到移动的指示。如果△俯仰和△摇晃没有一个超过阈值,则在步骤744提供未检测到移动的指示。在另一可能的实现中,只有在△俯仰和△摇晃两者都超过阈值的情况下才指示移动。又一可能的实现将△俯仰与一个阈值进行比较并将△摇晃与另一阈值进行比较。在超过这些阈值之一或更多的情况下指示移动。可以使用实验来设置最优阈值。这一方法将加速度读数转换成角度,以便基于角度而非原始加速度读数(如图7Α中)来进行与阈值的比较。可任选地,可以在步骤742处不提供指示,直至对于一个或多个样本中的指定数量的样本检测到移动为止。类似地,可以在步骤744处不提供指示, 直至对于一个或多个样本中的指定数量的样本检测到移动为止。在又一可能的实现中,决策步骤740将Δ俯仰和Δ摇晃的绝对值的总和与角度阈值进行比较,例如I Δ俯仰I+ I Δ摇晃I。如结合图2提到的,相机具有用于对自身进行重新定位的电动机。又一方法整合了指示相机是否正在使用来自加速计的数据对自身进行重新定位的控制信号。一般而言, 在定位电动机正在操作时,加速计将指示移动。在一些情况下,在定位电动机不在操作时, 加速计也将指示移动。例如,在电动定位完成时,控制信号指示电动机不在操作。控制信号可以基于例如对定位电动机不在操作进行检测的传感器。然而,在控制信号指示电动机不再操作之后,由于定位电动机的某种运转或由于它附连到相机,相机可能继续移动一小段时间,例如几分之一秒。在这种情况下,加速计可检测这一移动并提供适当的动作,如延迟运动跟踪。因而,定位电动机和加速计会提供相反的指示。在一种方法中,在检测到定位电动机不在操作时,提供定位电动机不在操作的指示。即使在指示定位电动机不在操作期间,这一方法也响应于加速计检测到深度相机的移动的指示而暂停运动跟踪过程。因此,加速计指示有优先级。在另一种情况下,在检测到定位电动机正在操作时,提供定位电动机正在操作的指示。即使在指示加速计没有检测到深度相机的移动期间,这一方法也响应于定位电动机正在操作的指示而暂停运动跟踪过程。因此,定位电动机有优先级。一般而言,如果定位电动机和加速计之一或两者指示存在移动,则可以断定存在相机移动。这是寻求避免丢失实际移动的保守方法。
又一可能的方法使用多个加速计。一个实现跨该多个加速计来集体处理来自每一轴的读数。例如,假定使用两个加速计。对于每一时间点,从两个加速计获取Ax、Ay、和Az 样本,例如 Axl (i)、Ax2 (i) ,Ayl (i)、Ay2 (i)、Azl (i)、以及 Az2 (i)。两个 Ax 样本 Axl (i)和 Ax2(i)可被求平均以获取单个Ax(i)样本,该单个Ax(i)样本同在单个加速计的情况下那样同等对待。类似地,两个Ay样本Ayl⑴和Ay2(i)可被求平均,并且两个Az样本Azl⑴ 和Az2(i)可被求平均。因而,通过跨来自多个三轴加速计的读数来求平均,短期行进平均和长期行进平均是从来自该多个三轴加速计的读数获取的。在又一可能的实现中,来自每一加速计的读数被用来确定是否检测到运动,并且采取多数投票来确定是否提供运动的指示。例如,在这种情况下可以使用三个加速计,使得多数投票是决定性的。因而,如果这些加速计中的两个或三个指示移动,则指示移动;否则, 不指示移动。图8描绘了如图6的步骤608所述的用户的示例模型。模型800在ζ方向上面向深度相机,使得所示的截面是χ-y平面。注意,垂直的是y轴和横向的是χ轴。在其他附图中提供了类似的标记法。该模型包括多个参考点,如头802的顶部、头的底部或下巴813、 右肩804、右肘806、右腕808、和由例如指尖区域表示的右手810。右侧和左侧是从面向相机的用户的观点定义的。该模型还包括左肩814、左肘816、左腕818、以及右手820。还描绘了腰部区域822,以及右臀824、右膝826、右脚828、左臀830、左膝832和左脚834。肩线 812是在肩804和814之间的通常为水平的线。例如,还描绘了在点822和813的之间延伸的上躯干中心线825。图9描绘如图7A和7B中所述的那样用于处理加速计读数的示例坐标系。可以使用任何所需坐标系。在该示例中,y轴是垂直轴,ζ轴与相机的轴(例如相机所看的方向) 平行,并且χ轴同相机轴横向地延伸。从原点伸出的向量表示给定读数的加速度向量,其中加速度向量具有分别沿X、y、Z方向的分量Ax、Ay、Az。俯仰角度可以基于Az/Ay的正切来定义。摇晃角度可以基于Ax/Ay的正切来定义。偏航角度可以基于Ax/Az的正切来定义。 在一种方法中,χ轴在相机侧面水平地延伸,y轴是垂直的,而ζ轴从相机的前方到后方水平地延伸。一般而言,可以检测到俯仰、摇晃、以及偏航的变化。图IOA描绘了其中玩家正在跳跃的场景中的示例原始加速计读数。例如,一个或多个玩家可能正在深度相机所处的房间中跳跃、跑步、或进行其他游戏。在玩家跳跃时,相机处于接收来自该房间的地板的振动的表面上。波形1000、1002、以及1004分别描绘x、y、 以及ζ轴上的连续时间点的原始加速计读数。水平轴指示从左到右进展的时间,而垂直轴指示幅度。在该示例中,Ay基本上比Ax和Az更高,因为尚未对重力进行校正。可以看到, 存在三个分开的扰动。在其他时间存在一些噪声。
图IOB基于图IOA分别在波形1008和1006处描绘了长期和短期平均俯仰值。可以看到,波形1008中的各峰值中的一些由于长期平均对短期平均的性质而相对于波形1006 的对应峰值出现得更晚。图IOC描绘了图IOB的长期和短期平均俯仰值之间的差。摇晃和/或偏航的对应数据未被描绘,但在本质上将类似于图IOC的波形。波形1010描绘波形1008和1006之间的差,并且阈值1016是诸如图7B的步骤740中的角度阈值。波形1010不超过角度阈值 1016,从而指示未检测到运动。比较图IOC和图IOD可以看到,这些结果在使用任一技术都未检测到移动方面是一致的。图IOD基于图IOA描绘差的总和以及与阈值的比较,从而指示在何时检测到移动。 波形1012描绘差的总和(图7A,步骤708)。这是|x轴长平均-χ轴短平均| + |y轴长平均-y轴短平均I X缩放因子+ Iz-轴长平均-ζ轴短平均I。在该示例中,波形1012不超过阈值水平1014(图7A,步骤710),所以在所描绘的时间段未检测到移动。因而,在一种方法中,波形1012是三个波形的总和,这三个波形基于由波形1000、1002、以及1004所表示的各单独轴的平均。图10A-D在时间上彼此大致对齐。图IlA描绘了其中玩家正在移动的场景中的示例原始加速计读数。例如,用户可能在深度相机正在运作时手动地更改深度相机的位置。波形1100、1102、以及1104分别描绘x、y、以及ζ轴上的连续时间点的原始加速计读数。水平轴指示进展的时间,而垂直轴指示幅度。如前所述,在该示例中,Ay基本上比Ax和kz更高,因为尚未对重力进行校正。图IlB基于图IlA分别在波形1110和1108处描绘了长期和短期平均俯仰值,以及在波形1106处描绘了长期和短期平均俯仰值之间的差。摇晃和/或偏航的对应数据未被描绘,但类似于图IlB的波形。波形1108和1110被示为在波形开始处在左手侧稍微偏离零,以便可以看到它们的细节。还描绘了角度阈值1107(图7B,步骤740)。波形1106的一部分1117超过阈值1107,从而指示检测到移动。图IlC基于图IlB和摇晃和/或偏航的对应数据来描绘差的总和以及与阈值的比较,从而指示在何时检测到移动。波形1012描绘差的总和(图7A,步骤708)。波形1112 在波形部分1116、1118、1120、以及1122处超过阈值水平1114(图7A,步骤710),所以对于这些波形部分和相应的时间范围而言检测到移动。因而,在一种方法中,波形1112是三个波形的总和,这三个波形基于由波形1100、1102、以及1104所表示的各单独轴的平均。图 IlA-C在时间上彼此大致对齐。比较图IlB和图IlC可以看到,这些结果在检测到不同的时刻处的移动方面不同。 但是,摇晃和/或偏航的效果未被分开描绘。图10A-11C是图7A的实现的示例。可以通过根据图7B的步骤处理图IOA或IlA 的原始数据来提供图7B的实现的对应波形。在此所述技术的上述详细描述是为了说明和描述而提供的。并非旨在穷举本技术或将其限于所公开的精确形式。鉴于上述教导,许多修改和变型都是可能的。选择上述实施例来最好地解释本技术的原理及其实践应用,从而使本领域其他人能够在各种实施例中并用各种适于所构想的特定用途的修改一起最好地利用本技术。本发明的范围旨在由所附权利要求书来限定。
权利要求
1.一种用于检测3-D深度相机中的运动的处理器实现的方法,包括以下处理器实现的步骤在连续时间点上从所述3-D深度相机(20)中的三轴加速计(33)获取χ轴、y轴、以及 ζ轴方向上的加速度读数(Ax、Ay、Az),并且对于每一时间点获取在χ-轴、y_轴、以及ζ-轴中的每一个轴方向上的加速计读数的短期和长期行进平均;获取在χ-轴、y-轴、以及ζ-轴中的每一个轴的加速计读数的短期和长期行进平均之间的差;获取χ-轴、y_轴、以及ζ-轴中的每一个轴的差的绝对值; 基于所述绝对值来获取总和; 确定所述总和是否超过阈值水平;如果所述总和超过所述阈值水平,则提供检测到所述3-D深度相机的移动的指示;以及如果所述总和未超过所述阈值水平,则提供未检测到所述3-D深度相机的移动的指
2.如权利要求1所述的处理器实现的方法,其特征在于,还包括所述总和是从Ix轴长平均-χ轴短平均| + {缩放因子X Iy轴长平均_y轴短平均|} + |z 轴长平均-ζ轴短平均I,其中0 <缩放因子< 1并且y轴是垂直轴,使得在所述垂直轴方向上的移动相对于在χ轴或ζ轴方向上的移动而言被削弱。
3.如权利要求1或2所述的处理器实现的方法,其特征在于,还包括 响应于指示检测到所述3-D深度相机的移动来暂停运动跟踪过程;以及随后响应于指示不再检测到所述3-D深度相机的移动来恢复所述运动跟踪过程。
4.如权利要求1至3中的任一项所述的处理器实现的方法,其特征在于对于每一时间点,并且对于χ-轴、y-轴、以及ζ-轴中的至少一个轴,在m个时间点上求取短期行进平均,并且在N2个时间点上求取长期行进平均,其中1.3xm <N2 < 1.7x Ni。
5.如权利要求1至4中的任一项所述的处理器实现的方法,其特征在于对于每一时间点,并且对于χ-轴、y_轴、以及ζ-轴中的每一个轴,在m个时间点上求取短期行进平均,并且在N2个时间点上求取长期行进平均,其中1.3xm <N2 < 1.7x Ni。
6.如权利要求1至5中的任一项所述的处理器实现的方法,其特征在于,还包括 响应于检测到所述3-D深度相机的移动的指示,经由用户界面提供指示所述3-D深度相机已被扰动的消息。
7.如权利要求1至6中的任一项所述的处理器实现的方法,其特征在于 χ轴、y轴、以及ζ轴中的一个轴是垂直轴;所述绝对值之一是对于所述一个轴的;以及在获取所述总和之前使用缩放因子来缩减所述绝对值中的所述一个。
8.如权利要求1至7中的任一项所述的处理器实现的方法,其特征在于,所述3-D深度相机包括定位电动机(35),所述方法还包括在检测到所述定位电动机不在操作时,提供所述定位电动机不在操作的指示;以及即使在指示所述定位电动机不在操作期间,也响应于检测到所述深度相机的移动的指示而暂停运动跟踪过程。
9.如权利要求8所述的处理器实现的方法,其特征在于,还包括在检测到所述定位电动机正在操作时,提供所述定位电动机正在操作的指示;以及即使在指示未检测到所述3-D深度相机的移动期间,也响应于所述定位电动机正在操作的指示而暂停运动跟踪过程。
10.一种其上包含有计算机可读软件的有形计算机可读存储,所述计算机可读软件用于对至少一个处理器编程来执行用于检测3-D深度相机的运动的一种方法,所述方法包括从所述3-D深度相机00)中的三轴加速计获取χ轴、y轴、以及ζ轴方向上的加速度读数(Ax、Ay、Az)的各时间点,并且对于每一时间点获取在χ-轴、y-轴、以及ζ-轴中的每一个轴方向上的加速计读数的短期和长期行进平均;基于所述加速度读数的短期和长期行进平均获取所述3-D深度相机的俯仰值的短期和长期变化以及所述3-D深度相机的摇晃值的短期和长期变化; 获取俯仰值的短期和长期变化之间的差(△俯仰); 获取俯仰值的短期和长期变化之间的差的绝对值; 获取摇晃值的短期和长期变化之间的差(△摇晃); 获取摇晃值的短期和长期变化之间的差的绝对值;确定(a)俯仰值的短期和长期变化之间的差的绝对值以及(b)摇晃值的短期和长期变化之间的差的绝对值中的至少一个是否超过阈值;以及在超过所述阈值时提供检测到所述3-D深度相机的移动的指示。
全文摘要
为了检测运动捕捉系统中的深度相机的移动,处理来自深度相机中的加速计的读数以提供x轴、y轴、以及z轴中的每一个轴的短期和长期移动平均。对于每一个轴,获得短期和长期平均之间的差。通过对所有三个轴上的每一个差的绝对值求和来获取差的总和。随后将差的总和与阈值进行比较以确定是否检测到移动。在另一种方法中,加速计读数的短期和长期平均被转换成俯仰和摇晃值,并且俯仰和摇晃值与阈值分开比较以确定是否检测到移动。在检测到移动时可以临时暂停跟踪算法。在垂直方向上的读数可通过缩放因子来削弱。
文档编号G06F3/01GK102289815SQ20111012520
公开日2011年12月21日 申请日期2011年5月3日 优先权日2010年5月3日
发明者S·阿德曼 申请人:微软公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1