跟踪系统中的手位置后处理精炼的制作方法

文档序号:6423481阅读:146来源:国知局
专利名称:跟踪系统中的手位置后处理精炼的制作方法
技术领域
本申请涉及运动捕捉系统和方法,尤其涉及跟踪系统中的手位置后处理精炼。
背景技术
运动捕捉系统获得关于人或其他主体在物理空间中的位置和移动的数据,并可使用该数据作为计算系统中的某一应用的输入。可能有许多应用,如出于军事、娱乐、体育和医疗目的。例如,人的运动可被映射到三维(3-D)人类骨架模型并用于创建动画人物或化身。运动捕捉系统可包括包含使用可见和不可见(例如,红外)光的系统在内的光学系统, 运动捕捉系统使用相机来检测视野中的人的存在。然而,在以更高的逼真度来跟踪人时需要进一步的精炼。特别是希望以高度的保真度来跟踪人的手。

发明内容
提供了一种用于在运动捕捉系统中以提高的保真度来跟踪用户的手的处理器实现的方法、运动捕捉系统和有形计算机可读存储。例如,用户可作出手的姿势来导航菜单、 在浏览或购物体验中交互、选择要玩的游戏、或访问诸如向朋友发送消息等通信特征。用户可使用手来控制光标以从屏幕上菜单选择项目,或者控制化身在3-D虚拟世界中的移动。 一般来说,手位置可被跟踪并用作对运动捕捉系统中的应用的控制输入。
为了增强运动捕捉系统准确地标识手位置的能力,提供了若干不同的技术。这些技术一般以手位置的初始估计为起始,并精炼该估计。解决了诸如抖动、有限的相机分辨率、相机噪声以及被遮挡的身体部位等问题。
在一个实施例中,提供了用于在运动捕捉系统中跟踪用户移动的处理器实现的方法。该方法包括随时间在运动捕捉系统的视野中跟踪用户的手,包括在不同的时间点获得手的3-D深度图像。3-D深度图像可用于提供例如用户的身体的骨架模型。该方法还包括基于所述跟踪获得视野中手的位置的初始估计。该初始估计可由任何类型的运动跟踪系统来提供。位置的初始估计可能由于可由运动跟踪系统引入的误差(包括噪声、抖动和所使用的跟踪算法)而稍微不准确。该方法还包括确定初始估计相对于前一时间点的对应估计的差异,并确定该差异是否小于阈值。该阈值可定义将前一时间点的估计作为中心的2-D 面积或3-D体。如果该差异小于阈值,则对初始估计应用平滑处理,以通过按照小于该差异的量改变初始估计来提供位置的当前估计。
另一方面,如果该差异相对较大,使得它不小于阈值,则可实质上按照初始估计来提供位置的当前估计。在此情况下,不应用平滑效果。该技术使手的大的帧到帧移动的等待时间最小化,同时平滑了较小的移动。基于当前估计,在视野中定义一个体作为搜索体, 如矩形体(包括立方体)或球体。在该体中搜索3-D深度图像来确定视野中手的位置的新估计。该搜索可包括在体中标识手的位置,以及确定位置的平均值。该方法还包括至少部分地基于位置的新估计或从位置的新估计得出的值来向代表视野中的手的应用提供控制输入。该控制输入可用于导航菜单、控制化身的移动等等。
提供本概要以用简化形式介绍在下面的说明书中进一步描述的精选概念。本概述并不旨在标识出所要求保护的主题的关键特征或必要特征,也不旨在用于限定所要求保护的主题的范围。


在附图中,标号相同的元素彼此对应。
图1描绘了运动捕捉系统的示例实施例。
图2描绘了图1的运动捕捉系统的示例框图。
图3描绘了可以在图1的运动捕捉系统中使用的计算环境的示例框图。
图4描绘了可以在图1的运动捕捉系统中使用的计算环境的另一示例框图。
图5描绘了用于在运动捕捉系统中以提高的保真度跟踪用户的手的方法。
图6描绘了用于如图5的步骤500所述地跟踪个人的移动的示例方法。
图7A描绘了用于如图5的步骤504所述地更新手位置的示例方法。
图7B描绘了用于如图7A的步骤700所述地执行平滑的示例方法。
图7C描绘了用于如图7A的步骤700所述地执行平滑的另一示例方法。
图7D描绘了用于如图5的步骤504所述地更新手位置的示例方法。
图7E描绘了用于如图7D的步骤732所述地稳定模型的参考点的示例方法。
图7F描绘了用于如图5的步骤504所述地更新手位置的示例方法。
图8描绘了如图6的步骤608所述的用户的示例模型。
图9A描绘了用于在初始估计和前一估计之间的差异小于阈值时如图7A的步骤 700所述地执行平滑的示例技术。
图9B描绘了用于在初始估计和前一估计之间的差异大于或等于阈值时如图7A的步骤700所述地执行平滑的示例技术。
图10描绘了用于如图7A的步骤704和706所述地提供手位置的新估计的示例技术。
图IlA描绘了如图7D的步骤734所述地定义至少一个向量的示例。
图IlB描绘了如图7D的步骤736所述地搜索手臂末端的示例。
图IlC描绘了如图7D的步骤736所述地对候选位置评分的示例。
图12A描绘了如图7E的步骤750所述的,其中身体的参考点被遮挡的用户的模型的示例性正视图。
图12B描绘了图12A的模型的侧视图。
图12C描绘了图12A的模型的投影相机图像视图。
图12D描绘了图12A的3-D模型的俯视图。
具体实施例方式提供了用于在运动跟踪系统中更准确地标识手的位置的技术。这些技术可被扩展到跟踪诸如脚或头之类的其他身体部位或非身体部位对象。一般来说,深度相机系统可以跟踪物理空间中用户身体的移动,并导出该身体的模型,该模型对于每一相机帧每秒若干次地更新。然而,通常需要以高度的保真度来标识用户的手。但是,为全身体跟踪优化的跟踪系统可能缺乏以足够高的准确性来跟踪手的能力。此类系统可提供对手位置的粗略且可能不稳定的猜测。这里提供的技术精炼了可由外部人类跟踪系统生成的手位置的初始估计。这些技术包括后处理步骤,后处理步骤分析深度图像中的局部区域,生成可被用作可靠参考位置的稳定的上身点,在深度图像中搜索手末端,以及以最小化可感知的等待时间的方式来执行时间平滑。
图1描绘了其中个人8与应用交互的运动捕捉系统10的示例实施例。这示出了运动捕捉系统诸如在用户家中的真实世界部署。运动捕捉系统10包括显示器196、深度相机系统20、以及计算环境或装置12。深度相机系统20可包括图像相机组件22,其具有红外 (IR)光发射器对、红外相机沈和红-绿-蓝(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的移动来控制。
图2描绘了图Ia的运动捕捉系统10的示例框图。深度相机系统20可被配置成经由任何合适的技术,包括例如飞行时间、结构化光、立体图像等,捕捉带有包括深度图像的深度信息的视频,该深度信息可包括深度值。深度相机系统20可将深度信息组织为“Z 层”,即可与从深度相机沿其视线延伸的Z轴垂直的层。
深度相机系统20可包括图像相机组件22,如捕捉物理空间中的场景的深度图像的深度相机。深度图像可包括所捕捉的场景的二维(2-D)像素区域,其中该2-D像素区域中的每一像素具有代表距离图像相机组件22的线性距离的相关联的深度值。
图像相机组件22可包括可用于捕捉场景的深度图像的红外(IR)光发射器24、红外相机26、以及红-绿-蓝(RGB)相机28。3-D相机由红外发射器24和红外相机26的组合来形成。例如,在飞行时间分析中,IR光发射器24将红外光发射到物理空间上,并且红外相机26检测来自物理空间中的一个或多个目标和物体的表面的反向散射光。在某些实施例中,可以使用脉冲式红外光,从而可以测量出射光脉冲与相应的入射光脉冲之间的时间并将其用于确定从深度相机系统20到物理空间中的目标或对象上的特定位置的物理距离。可将传出光波的相位与传入光波的相位进行比较来确定相移。然后可以使用相移来确定从深度相机系统到对象或目标上的特定位置的物理距离。
飞行时间分析也可用于通过经由包括例如快门式光脉冲成像等各种技术来分析反射光束随时间的强度,来间接地确定从深度相机系统20到目标或对象上的特定位置的物理距离。
在另一示例实施例中,深度相机系统20可使用结构化光来捕捉深度信息。在这一分析中,图案化光(即,被显示为诸如网格图案或条纹图案等已知图案的光)可经由例如IR 光发射器24被投影到场景上。在撞击到场景中的一个或多个目标或物体的表面时,作为响应,图案可变形。图案的这种变形可由例如红外相机26和/或RGB相机28来捕捉,然后可被分析以确定从深度相机系统到目标或对象上的特定位置的物理距离。
深度相机系统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可以经由通信链路36与计算环境12进行通信。通信链路36可以是有线和/或无线连接。根据一实施例,计算环境12可经由通信链路36向深度相机系统20提供时钟信号,该信号指示何时从位于深度相机系统20的视野中的物理空间捕捉图像数据。
另外,深度相机系统20可经由通信链路36向计算环境12提供由例如3-D相机沈和/或RGB相机28捕捉的深度信息和图像,和/或可由深度相机系统20生成的骨架模型。 计算环境12然后可使用该模型、深度信息和捕捉的图像来控制应用。例如,如图2所示,计算环境12可包括诸如姿势过滤器集合等姿势库190,每一姿势过滤器具有关于可由骨架模型(在用户移动时)执行的姿势的信息。例如,可为各种手姿势提供姿势过滤器,如手的挥击或投掷。通过将检测到的运动与每一过滤器进行比较,可标识个人执行的指定姿势或移动。也可确定执行移动的范围。
可将由深度相机系统20捕捉的骨架模型形式的数据以及与其相关联的移动与姿势库190中的姿势过滤器进行比较来标识用户(如骨架模型所表示的)何时执行了一个或多个特定移动。那些移动可与应用的各种控制命令相关联。
计算环境还可包括用于执行存储在存储器194中的指令以向显示设备196提供音频-视频输出信号并实现如此处所描述的其他功能的处理器192。
图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控制器1 和前面板I/O子部件130。USB控制器126和128用作外围控制器142 (1)-142 (2)、无线适配器 148、和外置存储器设备146 (例如闪存、外置⑶/DVD ROM驱动器、可移动介质等)的主机。 网络接口(NW IF) IM和/或无线适配器148提供对网络(例如,因特网、家庭网络等)的访问并且可以是包括以太网卡、调制解调器、蓝牙模块、电缆调制解调器等的各种不同的有线或无线适配器组件中任何一种。
提供系统存储器143来存储在引导进程期间加载的应用数据。提供媒体驱动器 144且其可包括DVD/CD驱动器、硬盘驱动器、或其它可移动媒体驱动器。媒体驱动器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内的电路。
CPU 101、GPU 108、存储器控制器110、和多媒体控制台100内的各个其它组件经由一条或多条总线互连,包括串行和并行总线、存储器总线、外围总线、和使用各种总线架构中任一种的处理器或局部总线。
当多媒体控制台100通电时,应用数据可从系统存储器143加载到存储器112和/ 或高速缓存102、104中并在CPU 101上执行。应用可呈现在导航到多媒体控制台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( )由游戏应用和系统应用共享。输入设备不是所保留的资源,但却在系统应用和游戏应用之间切换以使其各自具有设备的焦点。 应用管理器较佳地控制输入流的切换,而无需知晓游戏应用的知识,并且驱动程序维持有关焦点切换的状态信息。控制台100可从包括相机沈和观的图2的深度相机系统20接收附加输入。
图4描绘了可以在图1的运动捕捉系统中使用的计算环境的另一示例框图。
在运动捕捉系统中,该计算环境可用于解释一个或多个姿势或其他移动并作为响应更新显示画面上的视觉空间。计算环境220包括计算机Ml,计算机241通常包括各种有形计算机可读存储介质。这可以是能由计算机241访问的任何可用介质,而且包含易失性和非易失性介质、可移动和不可移动介质。系统存储器222包括易失性和/或非易失性存储器形式的计算机存储介质,如只读存储器(ROM) 223和随机存取存储器(RAM06O。基本输入/输出系统224 (BIOS)包括如在启动时帮助在计算机Ml内的元件之间传输信息的基本例程,它通常储存在ROM 223中。RAM 260通常包含处理单元259可以立即访问和/或目前正在操作的数据和/或程序模块。图形接口 231与GPU 2 进行通信。作为示例而非局限,图4描绘了操作系统225、应用程序226、其它程序模块227和程序数据228。
计算机241还可包括其他可移动/不可移动、易失性/非易失性计算机存储介质, 如从不可移动、非易失性磁介质读取或对其写入的硬盘驱动器238,从可移动、非易失性磁盘2M读取或对其写入的磁盘驱动器239,以及从诸如CDROM或其他光介质等可移动、非易失性光盘253读取或对其写入的光盘驱动器M0。可以在示例性操作环境中使用的其他可移动/不可移动、易失性/非易失性有形计算机可读存储介质包括但不限于,磁带盒、闪存卡、数字多功能盘、数字录像带、固态RAM、固态ROM等等。硬盘驱动器238通常由诸如接口 234等不可移动存储器接口连接至系统总线221,磁盘驱动器239和光盘驱动器240通常由诸如接口 235等可移动存储器接口连接至系统总线221。
以上讨论并在图4中描绘的驱动器及其相关联的计算机存储介质为计算机241提供了对计算机可读指令、数据结构、程序模块和其他数据的存储。例如,硬盘驱动器238被描绘为存储操作系统258、应用程序257、其它程序模块256和程序数据255。注意,这些组件可以与操作系统225、应用程序226、其他程序模块227和程序数据2 相同,也可以与它们不同。操作系统258、应用程序257、其他程序模块256和程序数据255在这里被标注了不同的标号是为了说明至少它们是不同的副本。用户可以通过输入设备,诸如键盘251和定点设备252 (通常被称为鼠标、跟踪球或触摸垫),向计算机241输入命令和信息。其他输入设备(未示出)可以包括话筒、操纵杆、游戏手柄、圆盘式卫星天线、扫描仪等等。这些和其他输入设备通常由耦合至系统总线的用户输入接口 236连接至处理单元259,但也可以由其他接口和总线结构,诸如并行端口、游戏端口或通用串行总线(USB),来连接。包括相机沈和观的图2的深度相机系统20可为控制台100定义附加输入设备。监视器242或其他类型的显示器也经由接口,诸如视频接口 232连接至系统总线221。除监视器以外,计算机也可以包括其它外围输出设备,诸如扬声器244和打印机M3,它们可以通过输出外围接口 233连接。
计算机241可使用至一个或多个远程计算机,诸如远程计算机M6的逻辑连接在网络化环境中操作。远程计算机246可以是个人计算机、服务器、路由器、网络PC、对等设备或其他常见的网络节点,且通常包括许多或所有以上相对于计算机241描述的元件, 但是在图4中仅示出了存储器存储设备M7。逻辑连接包括局域网(LAN) 245和广域网 (WAN) M9,但也可以包括其它网络。这样的联网环境在办公室、企业范围计算机网络、内联网和因特网中是常见的。
当在LAN联网环境中使用时,计算机241通过网络接口或适配器237连接至LAN 2450当在WAN联网环境中使用时,计算机241通常包括调制解调器250或用于通过诸如因特网等WAN 249建立通信的其他装置。调制解调器250可以是内置或外置的,它可以经由用户输入接口 236或其他适当的机制连接至系统总线221。在网络化环境中,相对于计算机 241所描述的程序模块或其部分可被存储在远程存储器存储设备中。作为示例而非限制, 图4示出了远程应用程序248驻留在存储器设备247上。可以理解,所示的网络连接是示例性的,且可以使用在计算机之间建立通信链路的其他手段。
该计算环境可包括其上包含有计算机可读软件的有形计算机可读存储,该计算机可读软件用于对至少一个处理器进行编程来执行此处描述的用于生成用于人体跟踪的代表训练数据的方法。该有形计算机可读存储可包括例如,组件222、234、235、230、253、254 中的一个或多个。此外,该计算环境的一个或多个处理器可以提供用于生成用于人体跟踪的代表训练数据的处理器实现的方法,包括此处所描述的处理器实现的步骤。处理器可包括例如组件2 和259中的一个或多个。
图5描绘了用于在运动捕捉系统中以提高的保真度跟踪用户的手的方法。步骤 500包括在深度相机系统的视野中跟踪用户。进一步的细节见例如图6。步骤502包括基于跟踪算法获得手位置的初始估计。注意,所描述的过程涉及单只手,但是该过程可适用于确定给定用户的第二只手的位置,或一般地用于视野中的一个或多个用户的一只或多只手。初始估计可从如关于图6所描述的用户跟踪来获得。步骤504包括更新手位置。进一步的细节见例如图7A和7D。步骤506包括基于手位置向应用提供控制输入。
输入可例如依据视野中的例如由笛卡尔坐标系中的(X,y,ζ)坐标来表达的点位置来表示用户的手的位置。图1提供了笛卡尔坐标系的示例。步骤510包括在应用处处理控制输入。这可涉及例如基于用户的手移动来更新显示画面等、启动游戏应用、或执行任何数量的其他动作。
图6描绘了用于如图5的步骤500所述地跟踪个人的移动的示例方法。该示例方法可以使用例如结合图2-4讨论的深度相机系统20和/或计算环境12、100或220来实现。可以扫描一个或多个人来生成模型,如骨架模型、网格人类模型、或个人的任何其他合适的表示。在骨架模型中,每个身体部位可被表征为定义骨架模型的关节和骨骼的数学向量。身体部位可以在关节处相对于彼此移动。
该模型然后可用于与由计算环境执行的应用交互。用于生成模型的扫描可以在启动或运行应用程序时发生,或如所扫描的个人的应用程序所控制地在其他时间发生。
可扫描个人来生成骨架模型,可跟踪该骨架模型使得用户的物理移动或运动可用作调整和/或控制应用的参数的实时用户接口。例如,所跟踪的个人的移动可用于在电子角色扮演游戏中移动化身或其他屏幕上人物;在电子赛车游戏中控制屏幕上车辆;在虚拟环境中控制物体的构成或组织;或执行应用的任何其他合适的控制。
根据一个实施例,在步骤600,例如从深度相机系统接收深度信息。深度相机系统可以捕捉或观察可包括一个或多个目标的视野。在一示例实施例中,如所讨论的,深度相机系统可使用诸如飞行时间分析、结构化光分析、立体视觉分析等任何合适的技术来获得与捕捉区域中的一个或多个目标相关联的深度信息。如所讨论的,深度信息可包括具有多个所观察的像素的深度图像或图(map),其中每一所观察的像素具有所观察的深度值。
深度图像可以被降采样到较低处理分辨率,以使其可被更容易地使用且以更少的计算开销来处理。另外,可从深度图像中移除和/或平滑掉一个或多个高变度和/或有噪的深度值;可填入和/或重构缺少的和/或移除的深度信息的部分;和/或可对所接收的深度信息执行任何其他合适的处理,使得该深度信息可用于生成也结合图8讨论的诸如骨架模型等模型。
在判定步骤604,判定深度图像是否包括人类目标。这可包括对深度图像中的每一目标或对象进行泛色填充,将每一目标或对象与一图案进行比较来确定该深度图像是否包括人类目标。例如,可以比较深度图像的所选区域或点中的像素的各个深度值来确定可定义如上所述的目标或对象的边缘。可基于所确定的边缘来对Z个层的可能的Z个值进行泛色填充。例如,与所确定的边缘相关联的像素以及边缘内的区域的像素可互相关联来定义捕捉区域中的可与图案进行比较的目标或对象,这将在下文中更详细描述。
如果判定步骤604为真,则执行步骤606。如果判定步骤604为假,则在步骤600 接收附加深度信息。
对照其来比较每一目标或对象的图案可包括具有共同定义典型的人类身体的一组变量的一个或多个数据结构。与例如视野中的人类目标和非人类目标的像素相关联的信息可以与各变量进行比较来标识人类目标。在一个实施例中,该组中的每一变量可基于身体部位来加权。例如,图案中诸如头和/或肩等各个身体部位可具有与其相关联的、可大于诸如腿等其他身体部位的权重值。根据一个实施例,可在将目标与变量进行比较来确定目标是否是人类以及哪一目标可以是人类时使用权重值。例如,变量与目标之间的具有较大权重值的匹配可产生比具有较小权重值的匹配更大的该目标是人类的可能性。
步骤606包括扫描人类目标来寻找身体部位。可以扫描人类目标来提供与个人的一个或多个身体部位相关联的诸如长度、宽度等度量,以提供该个人的准确模型。在一示例实施例中,可隔离该人类目标,并且可创建该人类目标的位掩模来扫描一个或多个身体部位。该位掩模可通过例如对人类目标进行泛色填充,使得该人类目标可以与捕捉区域元素中的其他目标或对象分离来创建。随后可分析该位掩模来寻找一个或多个身体部位,以生成人类目标的模型,如骨架模型、网格人类模型等。例如,根据一实施例,可使用由所扫描的位掩模确定的度量值来定义骨架模型中的一个或多个关节。该一个或多个关节可用于定义可对应于人类的身体部位的一根或多根骨。
例如,人类目标的位掩模的顶部可以与头的顶部的位置相关联。在确定了头的顶部之后,可以向下扫描该位掩模来随后确定颈的位置、肩的位置等等。例如,在所扫描的位置处的位掩模的宽度可以与和例如颈、肩等相关联的典型宽度的阈值进行比较。在替换实施例中,可以使用离位掩模中先前扫描的并与身体部位相关联的位置的距离来确定颈、肩等的位置。诸如腿、脚等的某些身体部位可基于例如其他身体部位的位置来计算。在确定了身体部位的值之后,可创建包括身体部位的度量值的数据结构。该数据结构可包括从深度相机系统在不同时间点提供的多个深度图像中平均的扫描结果。
步骤608包括生成人类目标的模型,包括手位置的初始估计。在一实施例中,可使用由所扫描的位掩模确定的度量值来定义骨架模型中的一个或多个关节。该一个或多个关节用于定义可以和人类的身体部位相对应的一根或多根骨。
可调整一个或多个关节,直到这些关节在人类的关节和身体部位之间的典型距离范围之内,以生成更准确的骨架模型。该模型可基于例如与人类目标相关联的高度来进一步调节。
在步骤610,通过每秒若干次更新个人的位置来跟踪该模型。当用户在物理空间中移动时,使用来自深度相机系统的信息来调整骨架模型,使得该骨架模型表示一个人。具体地,可向该骨架模型的一个或多个受力方面施加一个或多个力,来将该骨架模型调整成更接近地和物理空间中的人类目标的姿态相对应的姿态。
一般而言,可使用用于跟踪个人的移动的任何已知技术。
图7A描绘了用于如图5的步骤504所述地更新手位置的示例方法。步骤700包括对手位置的初始估计执行平滑,以提供位置的经平滑的估计。开始于外部跟踪系统提供的原始输入,该步骤创建手猜测的经平滑的版本,以减弱跟踪系统中的轻微的不稳定或抖动的效应。这可使用将可感知的等待时间最小化的基于内插的栓系(tether)技术来实现。 参见图7A和7B来获得更多细节。步骤702包括基于当前估计标识视野中的体,其中该体以当前估计为中心或基于当前估计另外定位。参见例如图10。该体可以是诸如包括立方体在内的矩形体之类的3-D体,或球体。当前估计充当高分辨率深度图像中的小的平均体的中心。步骤704包括搜索该体以标识手的位置。在手所覆盖的整个体上有深度(ζ)值。它们全部可被一起平均,而不是仅仅边缘值。从深度图取局部平均确保了尽管来自跟踪系统的手猜测可能是抖动的,但只要深度图像保持适度地稳定,则产生的手点将是稳定的。步骤 706包括取位置的平均来提供手位置的新估计。平均位置可以是作为位于平均体内的深度值的平均值的代表性点。步骤708包括对手位置的新估计执行平滑,类似于步骤700的过程。步骤708的经平滑的值是从步骤706中的位置的新估计得出的值的示例。
由于相机传感器造成深度图像中内在固有某些噪声量,或者操作条件可显著地增加深度图像中的噪声量,因此可能希望进一步的平滑处理来进一步稳定手位置。这可使用与上述类似的基于内插的栓系技术,该技术平滑掉从局部平均产生的任何小噪声。
注意,在该流程图以及其他流程图中提供的步骤并非都是需要的,且所指定的顺序也可在许多情况下改变。
图7B描绘了用于如图7A的步骤700所述地执行平滑的示例方法。步骤710包括确定当前时间处手位置的初始估计与前一时间点处的手位置的位置估计之间的差异Δ, 所述当前时间例如来自运动跟踪系统的深度数据的当前帧,所述前一时间点诸如前一帧处。例如,初始估计可由坐标(x(ti),y(ti),z(ti))来表示,前一估计可由坐标(x(ti-l), y(ti-l),z(ti-l))来表示,其中i是帧索引。该差异可被表示为大小或指示出大小和方向的向量。判定步骤712判断△是否小于阈值Τ。T可以基于诸如手的预期移动范围、帧到帧、人类感知能力、显示器的大小和/或分辨率、以及由应用基于作为控制输入的手移动而提供的显示器上的移动性质等因素来设置。一般来说,小于T的移动被认为是相对小的移动,使得可应用施加了对于用户来说将是可接受的某一等待时间的平滑处理。不小于T的移动被认为是相对大的移动,使得不应该施加平滑处理以避免施加显著的等待时间,或者可应用施加对于用户来说将只是略微明显的某一等待时间的平滑处理。
有可能使T适合于运动捕捉系统的环境。例如,当使用相对较大的显示器时,使用较小的T值可能是合适的,因为给定量的等待时间对于用户来说将是明显的。在给定情形对T的一个值的使用基于Δ < T还是Δ >T给出了两个操作规程。还可能使用两个或更多的T值,使得定义三个或更多的操作规程,并且可根据每个规程来调整等待时间。例如, 对于Τ2 > Tl,可给出Δ < Τ1、Τ1 < Δ < Τ2以及Τ2 < Δ的规程。
如果在判定步骤712 Δ < Τ,则步骤714包括提供位于前一时间点处的位置和初始估计之间的手位置的当前估计,使得当前估计落后初始估计。关于进一步细节请参看图 9Α。如果在判定步骤712Δ >Τ,则步骤716包括将当前估计设为与初始估计基本相同。或者,手位置的当前估计可在前一时间点的位置和初始估计之间,如步骤714中,但当前估计比步骤714中更少地落后初始估计。基本相同可指代相等的值、在四舍五入或舍位误差的范围内。关于进一步细节请参看图9Β。
等待时间是平滑的负面副作用。平滑是目标,这是隐藏明显的等待时间的策略。新估计对当前或前一估计的接近程度基于比率Δ/Τ。实际上,当Δ显著小于阈值时,这增加了平滑量。这种动态平滑允许等待时间的负面副作用也基于手移动的速度而动态变化。当做出快速移动时,应用小的平滑或不应用平滑,从而等待时间低。当手相当稳定时,以更高的等待时间应用更多的平滑,但是由于几乎没有手的移动,因此等待时间并非是非常可察觉的。
图7C描绘了用于如图7Α的步骤700所述地执行平滑的另一示例方法。步骤720 和722分别与图7Β的步骤710和712相同。如果在判定步骤722 Δ < Τ,则步骤724包括提供内插值Interp. = Δ/Τ。因为Δ的范围在0和T之间,因此Interp.的范围将介于0 和1之间。步骤726包括从关系初始估计+( Δ χ Interp.)来提供当前估计,该关系可被表达为初始估计+Δ2/Τ。本质上,当前估计可以是Δ的非线性函数。在该示例中,Δ被平方,即升到2次幂。一般来说,Δ可被升到大于1的幂,如Δ15。分母应当被修改,使得内插的计算范围从0至1。许多变型是可能的。如果在判定步骤722Δ >Τ,则步骤728包括将手位置的当前估计提供为与初始估计基本相同。从而,当△小于阈值时,当前估计离初始估计的距离非线性地变化,使得Δ越小它越大,而Δ越大它越小。也就是说,Δ越小, 当前估计落后初始估计越多,而△越大则落后越少。并且,当前估计离初始估计的距离在 Δ接近阈值时接近零。也就是说,当△接近阈值时,当前估计接近初始估计。
在该基于内插的栓系技术中,落后点被创建成跟随原始输入点。落后点的位置以类似于依附于诸如初始估计之类的原始输入的弹性栓系的方式被更新。落后点与其与原始输入的距离成比例地朝原始输入移动。如果原始输入远离落后点,则落后点快速向原始输入移动,以适应快速移动。如果原始输入接近落后点,则落后点慢速地向原始输入移动, 平滑掉小的抖动移动。该栓系技术的一个实施例是使用原始输入点和落后点之间的线性内插。内插值等于原始输入和落后点之间的距离除以固定的最大距离Τ。在高速手移动期间, 原始输入远离落后点移动,使得内插值接近1,导致计算出的内插点接近原始输入。在慢速移动期间,内插接近零,导致相当固定的计算出的结果。该方法使快速移动期间的观察到的等待时间最小化,同时保持了慢速移动时的强平滑效果。
图7D描绘了用于如图5的步骤504所述地更新手位置的示例方法。这是能够使用试图通过分析深度图来定位手的搜索方法来检测和校正跟踪系统中的大的时间误差的更复杂的实施例。外部跟踪系统所提供的手猜测仅被用于在该更复杂的实施例满足特定准则的情形中重置搜索算法,其中在诸如估计的手位置被直接放在身体两侧、靠近胸前或靠近另一只手时已知该实施例表现差。
步骤730包括标识3-D骨架模型中的一组参考点。参考点可包括例如肩、头或上部躯干上的其他点,如肩之间的线和上部躯干的中心线。这些是可助于确定手的位置的参考点。步骤732包括稳定参考点。例如,这可包括确定某一参考点是否被另一身体部位遮挡, 如关于图7Ε所讨论的。该步骤创建了可被用作参考点来开始搜索的一组稳定的上身点。它可涉及寻找稳定的头部位置、肩部位置和基本身体朝向。对这些关节中的每一个的猜测可由外部跟踪系统提供。可使用试探法来或者平滑或者忽略来自跟踪系统的猜测。在手臂遮挡头部和/或肩部的情况下,跟踪猜测可能是非常不稳定或不可靠的。在这些情况下,可例如通过测量投影相机图像中手臂关节到上身关节的接近程度来检测遮挡。如果按照基于实验或测试的阈值距离所定义的那样,手臂关节接近上身关节,则遮挡状况可能发生。此外, 平滑的强度沿每个轴可不一致。例如,沿垂直轴的不稳定性可比横轴或正轴高得多。这些技术的组合可被用于生成稳定的上身点。
而且,在已知用户可能面向相机且肩胛之间的线在很大程度上垂直于相机轴(ζ 轴)的情形中,为了增加的稳定性,迫使该定向约束可能是有用的。肩胛向量被定义为垂直于从肩部中心到相机中心延伸的向量。
步骤734包括定义从参考点开始并延伸到从例如时间ti-Ι的前一时间点确定的手位置的至少一个向量。关于进一步细节请参看图11A。步骤736包括遍历该至少一个向量,搜索手臂末端。这包括基于相对于所述至少一个向量的距离来对候选位置评分,如进一步关于图1IC所讨论的。一旦在步骤732找到了诸如肩之类的稳定参考点,则可从每个肩到每个前一手位置定义手臂搜索向量。如果先前的手位置不可用,则可使用跟踪所提供的原始手猜测。手臂搜索向量定义了手相对于肩的大致方向。从帧到帧,手可能相对接近于它们的前一位置,因此可通过递增地更新搜索向量并沿搜索向量寻找最佳手末端候选来跟踪手。沿搜索向量的末端候选可根据它们沿向量的距离减去它们到向量的垂直距离来评分。 这偏向于搜索向量的方向中更远的点,却不利于远远地偏离一端的候选。最大手臂长度也用于限制搜索的距离。当搜索向量生成太接近身体或另外被认为是差的末端结果时,末端可被设为外部跟踪系统所提供的原始手猜测。例如,接近身体可意味着在某一固定距离内, 例如5cm,或基于躯干直径或肩宽的度量的距离(例如肩宽的25%)内,或相对于身体的垂直定向的最小角度以下(例如身体的垂直轴的20度以下)。“差”可被定义为太跳跃、超出距离或方向的特定阈值限制之外,或离初始估计太远。
在选择了最终末端猜测之后,可取高分辨率深度图的局部平均来平滑上述的手位置。类似的,可能希望执行最终的基于内插的栓系平滑,以进一步降低手位置中的噪声(步骤744)。步骤744的经平滑的值是从步骤742中的位置的新估计得出的值的示例。
步骤738,740,742和744可分别与图7A中的步骤702,704,706和708相同。
图7E描绘了用于如图7D的步骤732所述地稳定模型的参考点的示例方法。步骤 750包括确定身体中的参考点是否被遮挡。参见例如图12A。例如,在步骤752,这可包括测量至少一个手臂关节(如肘或腕)到至少一个上身位置(例如肩、头或上部躯干上的其他点,包括肩胛之间的线和上部躯干的中心线)的接近程度。在步骤754,如果确定参考点被遮挡,则其位置基于3-D骨架模型中未被遮挡的至少一个其他参考点来确定。例如,如果一个肩位置相对于上部躯干的中心线是已知的,则可确定另一个肩位置。
图7F描绘了用于如图5的步骤504所述地更新手位置的另一示例方法。步骤760 包括基于第一技术获得新的手位置。判定步骤762确定结果是否令人满意。如果判定步骤 762为真,则过程在步骤766结束。如果判定步骤762为假,则步骤764包括基于第二技术获得新的手位置。该方法可被扩展成也使用其他技术。例如,第一技术可以是图7A结合图 7B或7C的方法,而第二方法可以是图7D结合图7E的方法。
例如,当搜索方法失败时仅使用外部跟踪猜测作为重置点的策略使得技术对于外部跟踪系统中的时间误差更健壮,反之亦然。该技术仅不能在两种跟踪手位置的方法同时失败时提供合理的手点。给定一可正确地选择或组合多种跟踪处理的输出的管理系统,该方法可被扩展成包括手跟踪的第三或第四方法,进一步减少了失败状况。一般来说,用于在步骤762确定结果何时是令人满意的准则可基于一组已知的准则来定义,该组已知的准则定义了其中算法可在给定先前的测试的情况下表现差的运动或位置范围,例如当手放在身体两侧、接近胸部或接近另一只手时。
图8描绘了如图6的步骤608所述的用户的示例模型。模型800在ζ方向上面向深度相机,使得所示的截面是χ-y平面。注意垂直的是y轴和横向的是χ轴。在其他附图中提供了类似的标记法。该模型包括多个参考点,如头802的顶部、头的底部或下巴813、右肩804、右肘806、右腕808、和由例如指尖区域表示的右手810。右侧和左侧是从面向相机的用户观察的角度定义的。这可是手位置的初始估计。手位置810基于手的确定的边缘区域801。然而,如所述,由于噪声或其他因素,在该初始位置确定中可能存在某种误差。区域 801和803之间的区域标识手位置的不确定性区域。另一方法是通过手的中心点来表示手位置。该模型包括左肩814、左肘816、左腕818和左手820。还描绘了腰部区域822,以及右髋824、右膝826、右脚828、左髋830、左膝832和左脚834。肩线812是在肩804和814 之间的通常为水平的线。也描绘了例如在点822和813之间延伸的上部躯干中心线825。
图9A描绘了用于在初始估计和前一估计之间的差异小于阈值时如图7A的步骤 700所述地执行平滑的示例技术。在此,点902表示例如时间ti-Ι处手位置的前一估计。 在本例中,点902是半径为T的球形体的中心,其中T是如先前所讨论的阈值。点810 (与图 8 —致)表示当前时间,即时间ti处的手位置的初始估计。Δ是点810和902之间的差。 Δ可以是例如从点902到点810方向上的向量。点904表示手位置的当前估计,它基于内插值落后点810 Δ χ Interp.的距离。落后的量是初始估计和当前估计之间的距离。点904 离点902的距离小于点810离点902的距离,且沿着从点902到810的向量。在体900内, 随着Δ接近Τ,内插值接近1。对于Δ彡Τ,内插值=1。
图9Β描绘了用于在初始估计和前一估计之间的差异大于或等于阈值时如图7Α的步骤700所述地执行平滑的示例技术。点902和体900与图9A中的相同。点906表示当前时间,即时间ti处的手位置的替代初始估计。注意,点906在体之外。Δ是点810和906 之间的差。Δ可以是例如从点902到点906方向上的向量。点906表示手位置的当前和初始估计两者。这里,Δ彡Τ,因此内插值=1。
图10描绘了用于如图7Α的步骤704和706所述地提供手位置的新估计的示例技术。体900和点904与图9Α—致。一旦获得了点904的当前估计,可定义诸如球体、矩形体或立方体之类的附加体1000,其中点904位于中心。该体被搜索以检测手的存在或不存在。也就是说,对于体中的每个点,作出关于该点是表示自由空间还是身体的模型的某一部位的确定。从而可通过检测模型的一部分和自由空间之间的过渡来在3-D空间中检测边缘。检测到的边缘1002上的示例点由圆圈来表示。点可在3-D中绕被假设为手的身体部分1006延伸。可基于手所覆盖的整个体上的深度值(Z)来取身体部分1006的深度平均值, 以获得作为手位置的新估计的点1004。点1004可以是所有边缘区域点的平均。
图IlA描绘了如图7D的步骤734所述地定义至少一个向量的示例。3-D模型1100 描绘了包括右肩关节1104、右肘关节1106和作为手位置的初始估计的点1110的人的一部分。手的轮廓被描绘成延伸到点1110之外,并且示出了手比实际上大,以说明点1110在表示手的端点时具有某种不准确性。这种不准确性可由噪声、所使用的手检测算法的类型、以及所讨论的其他因素造成。用于提高手位置的准确性的一种技术涉及定义诸如从肩延伸到点1110的向量1112和1114之类的一个或多个向量,点1110是手位置的初始估计。在该示例中,手臂是弯曲的,使得向量1114所表示的前臂以与向量1112所表示的上臂相当不同的方向延伸。对前臂向量1114的使用在该示例中将是足够的。在其他情况中,手臂可相对较直,其中可使用单个向量,例如从肩关节到手位置的初始估计。此外,在对肘的估计是不可用或不可靠的情况下,直接从肩到手的向量在许多情况下可能是足够的。在另一示例中, 使用沿着腿,例如从髋到脚或从膝到脚的向量来确定脚位置。
该概念在精炼对手位置的估计时利用了身体的一个或多个参考点,例如肩或肘关节。
图IlB描绘了如图7D的步骤736所述地搜索手臂末端的示例。图IlA中定义的一个或多个向量被遍历以标识手位置的候选位置以及定义每个候选位置的评分。作为一个简化的示例,每个圆圈代表一经评估的手位置。
每个圆圈代表一经评估的手位置。经评估的手位置可被约束到位于垂直偏离一个或多个向量的某一距离内(如基于手臂厚度的预期范围),以及在至少一个向量的方向中延伸到手位置的初始估计之外的某一距离内(例如基于手臂长度的预期范围)。每个经评估的手位置被评估以确定它是否是3-D模型的一部分,例如是否存在该点的深度图数据。
开口或白色圆圈代表是3-D模型部分的经评估的手位置,且因此是候选手位置。 黑色圆代表不是3-D模型的一部分的经评估的手位置。在该示例中,点1116被确定为具有最高评分的候选手位置,因此成为手位置的新估计。
图1IC描绘了如图7D的步骤736所述地对候选位置评分的示例。每个候选手位置可基于其沿至少一个向量的距离以及其垂直离开该至少一个向量的距离来被评分。在一个方法中,评分等于沿该至少一个向量的距离减去离开该至少一个向量的垂直距离。例如, 在遍历向量1114时,点1116的评分为d2-dl,其中d2是沿向量1114的距离,即离肘关节1106的距离,dl是垂直于向量1114的距离。该方法偏向沿向量最远且离向量最近的候选点。也可使用其他评分技术,例如相比于垂直于向量的距离,对沿向量的距离提供不同的权重的技术。具有最高评分的位置可被认为是最有可能的手位置。
图12A描绘了如图7E的步骤750所述的,其中身体的参考点被遮挡的用户的模型的示例性正视图。在某些情形中,可被用于精炼手位置的身体模型中的参考点可能被遮挡。 例如,作为参考点的肩可被用户抬起的手臂遮挡,这是该示例中的情况。
模型1200在ζ方向上面向深度相机,使得所示的截面是x-y平面。该模型包括多个参考点,如头1202的顶部、头的底部或下巴1213、右肩1204、右肘1206、右腕1208、和右手1210。点1210可以是手位置的初始估计。该模型包括左肩1214、左肘1216、左腕1218 和左手1220。还描绘了腰部区域1222,以及右髋1224、右膝1226、右脚1228、左髋1230、左膝1232和左脚1234。肩线1212是在肩1204和1214之间的通常为水平的线。也描绘了例如在点1222和1213之间延伸的上部躯干中心线1225。如可见,肩1204被用户举起的手臂遮挡。
如关于图11A-11C所讨论的那样,当肩1204被用作参考点来定义用于精炼手位置的一个或多个向量时,肩点1204被遮挡的事实可导致在准确定义其位置时的困难性。在该情况下,用于肩点的稳定化过程涉及使用身体中的其他未被遮挡的参考点来确认和/或定义肩点位置,如关于图12C和12D进一步讨论的那样。
图12B描绘了图12A的模型的侧视图。这里,可看到用户的手举起在身体前部,使得身体的一部分从面向ζ方向的深度相机看来被遮挡住。注意,在用户前面举起右臂或左臂是向应用提供控制输入的姿势动作中所使用的常见姿态。然而,其他姿态也可导致遮挡。
图12C描绘了图12A的模型的投影相机图像视图。投影相机图像视图是3-D身体模型的2-D视图,示出了身体的参考位置的在平面中的相对位置。图12C的参考位置对应于图12A中相同标号的位置,但是为了清楚起见,身体模型的轮廓被移除。此外,作为示例描绘了离上部躯干中心线1225的若干距离,即d3(右手1210)、d4(右腕1208、d5(右肩 1204-与 d5 相同)、d5(左肩 1214)、d6(右肘 1206)、d7(左肘 1216)以及 d8(左腕 1218)。
3-D模型中的一个或多个未遮挡点的位置可用于确定肩点1204的位置。例如,肩点1204可被假设为与肩点1214离中心线1225相同的距离。在某些情况中,可定义从肩点 1214到中心线1225延伸的线1212,使得肩点1204被进一步精炼为位于线1212上。
此外,肩点1204被遮挡的可能性可以多种不同的方法来确定,例如通过基于腕 1208和肘1206的位置确定右臂的位置。在某些情况中,从中心线到腕1208或肘1206的绝对距离可指示出遮挡。此外,从中心线到另一侧的腕1218或肘1216的距离可与从中心线到腕1208或肘1206的距离进行比较。同样,从中心线到腕1208或肘1206的距离可与从肩1214到中心线1225的近似距离,即d5相比较。各种其他试探法和度量也可用于确定遮挡状况是否存在,以及确定被遮挡的点的位置。也可在确定遮挡状况是否存在以及确定被遮挡的点的位置时使用模型的定向。
图12D描绘了图12A的3-D模型的俯视图。从用户的左肩1214到可穿过头顶点 1202的身体中心线的距离d5,以及从用户的左肩1214开始并穿过中心线的线1212可被用于确定右肩1204的位置,这是通过假设它也是离沿线1225的中心线的距离d5(d5 = d5)。 在该示例中,用户在-ζ方向中直接面向相机。然而,如果用户的身体在另一定向中,例如相对于-ζ轴旋转,则所描述的技术也可被使用。
在此所述技术的上述详细描述是为了说明和描述而提供的。并非旨在穷举本技术或将其限于所公开的精确形式。鉴于上述教导,许多修改和变型都是可能的。选择上述实施例来最好地解释本技术的原理及其实践应用,从而使本领域其他人能够在各种实施例中并用各种适于所构想的特定用途的修改一起最好地利用本技术。本技术的范围旨在由所附权利要求书来定义。
权利要求
1.一种用于在运动捕捉系统中跟踪用户移动的处理器实现的方法,包括以下处理器实现的步骤随时间在运动捕捉系统(10)的视野(6)中跟踪用户的手(810),包括在不同的时间点获得手的3-D深度图像(800);以及对于一个时间点基于所述跟踪获得视野中手的位置的初始估计(810); 确定初始估计相对于前一时间点的相应估计(902)的差异(△); 判断该差异是否小于阈值(T);如果该差异小于阈值,则通过将初始估计改变小于所述差异的量(AxInterp.)来提供位置的当前估计(904);以及如果该差异不小于阈值,则实质上按照所述初始估计来提供位置的当前估计; 基于所述当前估计,定义视野中的体(1000); 在该体中搜索3-D深度图像来确定视野中手的位置的新估计(1004); 至少部分地基于位置的新估计或从位置的新估计得出的值来向代表视野中的手的应用提供控制输入。
2.如权利要求1所述的处理器实现的方法,其特征在于当所述差异小于阈值时,所述量被设置成使得所述当前估计在所述差异越小时落后所述初始估计越多,而在所述差异越大时落后所述当前估计越少。
3.如权利要求1或2所述的处理器实现的方法,其特征在于当所述差异小于阈值时,所述量被设置成使得所述当前估计随着所述差异接近所述阈值而接近所述初始估计。
4.如权利要求1至3中任一项所述的处理器实现的方法,其特征在于,还包括以下,对于所述一个时间点确定新估计相对于前一时间点的相应估计的差异; 判断新估计的该差异是否小于所述阈值;如果新估计的该差异小于所述阈值,则通过将新估计改变小于所述新估计的该差异的量来提供位置的新的当前估计;以及如果新估计的该差异不小于所述阈值,则实质上按照所述新估计来提供位置的新的当前估计,至少部分地基于该新的当前估计或从该新的当前估计得出的值来向所述应用提供控制输入。
5.如权利要求1至4中的任一项所述的处理器实现的方法,其特征在于 所述搜索包括在体中标识手的边缘的位置,以及确定边缘的位置的平均值。
6.如权利要求1至5中的任一项所述的处理器实现的方法,其特征在于,还包括在运动捕捉系统(10)的视野(6)中跟踪用户的身体(8),包括获得3-D深度图像以及确定身体的3-D骨架模型(800);以及通过标识3-D骨架模型中手的位置(1110)来获得视野中手的位置的初始估计(810); 其中对于下一时间点,所述获得视野中手的位置的初始估计(810)包括 标识3-D骨架模型的参考点(1104);定义从该下一时间点的该参考点到所述一个时间点的手的位置(1110)的至少一个向量(1112,1114);遍历所述至少一个向量以寻找所述下一时间点的最可能的手位置,包括对作为3-D骨架模型部分的候选位置进行评分,评分基于候选位置沿所述至少一个向量的距离(d2)和候选位置垂直离开所述至少一个向量的距离(dl)。
7.如权利要求6所述的处理器实现的方法,其特征在于对候选位置评分包括提供一评分,该评分指示出与沿所述至少一个向量的距离越来越大成比例的、且与垂直离开所述至少一个向量的距离越来越小成比例的更可能的位置。
8.如权利要求6或7所述的处理器实现的方法,其特征在于所述3-D骨架模型的参考点是基于从所述3-D骨架模型标识的一组点(804,814)标识的,该组点至少标识所述3-D骨架模型的双肩。
9.如权利要求6至8中的任一项所述的处理器实现的方法,其特征在于所述3-D骨架模型的参考点是基于从所述3-D骨架模型标识的一组点标识的;以及所述方法还包括确定所述一组点中的至少一个点(1204)何时可能被遮挡,并且响应于确定所述一组点中的所述至少一个点可能被遮挡,基于所述3-D骨架模型的至少一个其他点(1214)来确定所述至少一个点的位置。
10.一种其上包含有计算机可读软件的有形计算机可读存储,所述计算机可读软件用于对至少一个处理器编程来执行运动捕捉系统中的一种方法,所述方法包括随时间在运动捕捉系统(10)的视野(6)中跟踪用户的手(810),包括在不同的时间点获得手的3-D深度图像(800);以及对于一个时间点基于所述跟踪获得视野中手的位置的初始估计(810);确定初始估计相对于前一时间点的相应估计(902)的差异(△);判断该差异是否小于阈值(T);如果该差异小于阈值,则通过在初始估计上强加一等待时间(Axlnterp.)来提供位置的当前估计(904);如果该差异不小于阈值,则通过以下之一来提供位置的当前估计(906) :(a)实质上按照初始估计来设置当前估计,以及(b)在所述初始估计上强加比所述差异小于所述阈值时强加在所述初始估计上的所述等待时间小的一等待时间;以及至少部分地基于位置的当前估计或从位置的当前估计得出的值来向代表视野中的手的应用提供控制输入。
全文摘要
提供了跟踪系统中的手位置后处理精炼。具有深度相机的跟踪系统在物理空间中跟踪用户的身体并得出身体的模型,包括手位置的初始估计。当初始估计按照小于阈值水平的量从帧到帧移动时,执行时间平滑,而在移动超过阈值时执行极小平滑或不执行平滑。平滑的估计被用于定义局部体,用于搜索手末端以定义新的手位置。另一过程例如通过检测和考虑遮挡来生成可用作可靠参考位置的稳定化的上身点。上身点和前一估计的手位置被用于定义手臂向量。沿该向量进行搜索以检测手末端以定义新的手位置。
文档编号G06F3/01GK102184009SQ20111011286
公开日2011年9月14日 申请日期2011年4月25日 优先权日2010年4月26日
发明者J·C·李 申请人:微软公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1