飞行时间深度成像的制作方法

文档序号:2795688阅读:369来源:国知局
专利名称:飞行时间深度成像的制作方法
技术领域
本发明涉及深度成像,尤其涉及飞行时间深度成像。
技术背景
深度相机系统获得关于人或其他对象在物理空间内的位置的数据。该相机具有一个或多个传感器,这些传感器具有收集光强度的像素。深度值可以根据光强度来确定。例如,来自两个传感器的光强度数据可被相关并且可确定每一像素的深度值。深度值可被输入到计算系统内的应用来用于各种各样的应用。可以有许多应用,例如用于军事、娱乐、体育和医学目的。例如,关于人的深度值可被映射到三维(3-D)人类骨架模型并用于创建动画人物或化身。
为了确定深度值,深度相机可以将光投射到该相机的视野中的对象上。光从该对象反射并且反射回该相机中的收集光强度的一个或多个图像传感器。这些传感器可以是例如CCD或CMOS传感器。这些传感器可包括像素阵列,使得每一像素基于有多少光子到达该像素来随时间累计光强度。各像素处的光强度可被处理以确定深度值。一种用于确定到对象的距离的技术基于光的往返飞行时间。
然而,对象的反射率的差异可能导致问题。例如,处于同一距离处但具有不同反射率的两个对象将造成传感器处的不同光强度读数。为了克服这一问题以及其他问题,一些技术执行两种不同的深度测量并对结果进行组合。这两种不同的深度测量可以使用同一传感器,但在不同的时间进行测量。因此,在传感器捕捉测量结果的时间之间可能存在对象 (或相机)运动。或者,使用两个传感器允许同时进行深度测量。然而,这两个传感器需要被置于不同的物理位置,这会导致视差差数。从这两个测量收集的数据需要被相关(或匹配)以创建单个深度值。然而,两个深度测量中的上述差数可能使得难以将深度测量进行相关或导致不准确性。
另外,深度相机可能受到噪声深度测量的损害。例如,可存在可与从对象反射的光一起被收集的一些背景光。噪声可能以多种其他方式而产生。
因此,需要进一步的改进以允许对深度相机的视野内对象的深度进行更准确的确定。该技术应与现有的深度检测相机兼容。发明内容
提供了用于确定到电子设备的视野内的对象的深度或距离的技术。基于在不同的位置或时间收集的两个光强度图像来确定深度图像。基于两个光强度图像生成深度图像可以补偿视野中的对象的反射率的差异。可以使用迭代过程来减轻对光强度图像之间的精确匹配的需求。从而,两个光强度图像之间的像素未对准可得到补偿。同样,该迭代过程可以补偿光强度图像中的噪声。因此,可以使用来自多个传感器或来自同一传感器的不同的时间的光强度信息来生成高质量深度图像(例如,最终深度值)。
一个实施例包括确定深度图像的方法,该方法包括以下步骤。基于第一光强度图像和第二光强度图像来计算深度图像。第一和第二光强度图像包含同一场景的像素值。对深度图像进行平滑,并且基于经平滑的输出深度图像和第二光强度图像来修改第一光强度图像。基于经修改的第一光强度图像和第二光强度图像来计算深度图像的新值。重复平滑深度图像、修改第一光强度图像(在预定义边界内)、以及计算深度图像的新值,直至确定对深度图像的处理完成为止。此时,将这两个光强度图像中的像素对准并且细化的深度图像完成。一个实施例包括一种包括处理器和耦合到该处理器的计算机可读存储介质的装置。计算机可读存储介质其上存储有指令,当该指令在处理器上执行时使得该处理器执行以下步骤。处理器访问包含同一场景的像素值的第一光强度图像和第二光强度图像。处理器基于第一光强度图像中的一个或多个邻居像素来确定第一光强度图像中的像素的边界值。处理器基于第一光强度图像和第二光强度图像来计算深度图像并平滑该深度图像。 处理器基于平滑深度图像的结果来确定是否要修改第一光强度图像。在确定第一光强度图像应当被修改时,处理器基于经平滑的深度图像和第二光强度图像来修改第一光强度图像。修改可包括使第一光强度图像中的像素的值保持在边界值内。而且,如果第一光强度图像被修改,则处理器基于经修改的第一光强度图像和第二光强度图像来计算深度图像的新值。处理器继续修改第一光强度图像并计算深度图像的新值,直至确定不修改第一光强度图像为止。此时,将这两个强度图像对准并且经平滑的深度图像提取完成。一个实施例包括确定深度图像的方法,该方法包括以下步骤。访问具有带同一视野的光强度值的像素的第一光强度图像和第二光强度图像。基于第一光强度图像和第二光强度图像之间的可能的像素未对准来确定第一光强度图像中的像素的边界值。基于第一光强度图像和第二光强度图像来确定深度图像。平滑深度图像并基于平滑该深度图像的结果来作出是否要修改第一光强度图像的判断。可基于经平滑的深度图像和第二光强度图像来修改第一光强度图像,这可包括执行计算深度图像的逆运算。同样,修改第一光强度图像包括使第一光强度图像中的像素值保持在边界值内。基于经修改的第一光强度图像和第二光强度图像来计算深度图像的新值。重复平滑、修改第一光强度图像、以及计算深度图像的新值,直至确定不修改第一光强度图像为止。提供本发明内容以便以简化形式介绍将在以下的具体实施方式
中进一步描述的一些概念。本发明内容并不旨在标识出所要求保护的主题的关键特征或必要特征,也不旨在用于限定所要求保护的主题的范围。


图1描绘了运动捕捉系统的示例实施例。图2A描绘了图1的运动捕捉系统的示例框图。图2B描绘了图2A中描绘的图像相机组件的一个可能的配置。图2C描绘了图2A中描绘的图像相机组件的另一个可能的配置。图3是确定深度图像的过程的一个实施例的流程图。图4A和图4B描绘了生成第一和第二光强度图像的过程的实施例的流程图。图5A和图5B描绘了基于门控传感器和非门控传感器来生成第一和第二光强度图像的过程的实施例的流程图。
图5C描绘了生成第一和第二光强度图像的过程的一个实施例的流程图,其中图像之间具有相差。
图6A、6B和6C描绘了光脉冲的定时以及门控传感器和非门控传感器的激活的一个示例。
图7A和7B是描绘基于门控传感器和非门控传感器来处理深度图像的实施例的流程图。
图8A和8B是描绘基于具有相差的输入图像来处理深度图像的实施例的流程图。
图9是在确定深度图像时确定边界值的过程的一个实施例的流程图。
图10是在确定深度图像时使用边界值的过程的一个实施例的流程图。
图11描绘了可以在图1的运动捕捉系统中使用的计算环境的示例框图。
图12描绘了可以在图1的运动捕捉系统中使用的计算环境的另一示例框图。
图13A、13B和13C描绘了用于图5C的实施例的已调制光束和传感器激活的一个示例。
具体实施方式
提供了用于确定到对象的深度的技术。基于在不同的位置或时间收集的两个光强度图像来确定深度图像。例如,光束被发射到一视野中,在该视野中在稍微不同的位置处的两个图像传感器被用来收集两个输入光强度图像。作为替换,可以从同一传感器但在不同的时间收集光强度图像。可基于这两个光强度图像来生成深度图像。这一技术可以补偿视野中的对象的反射率的差异。然而,这两个光强度图像中的像素之间可能存在某种未对准。 可以使用迭代过程来减轻对光强度图像之间的精确匹配的需求。该迭代过程可涉及基于从这两个光强度图像生成的深度图像的经平滑的版本来修改光强度图像之一。随后,基于经修改的光强度图像和另一光强度图像来确定深度图像的新值。在一些实施例中,基于这两个光强度图像之间的可能的像素未对准来确定要被修改的光强度图像中的像素的边界值。 在处理期间,被修改的光强度图像中的像素可被保持在它们相应的边界值内。该迭代过程可以补偿这两个光强度图像之间的像素未对准。换言之,该迭代过程可以减轻对这两个输入光强度图像之间的严格像素对准的需求。此外,该迭代过程可以补偿光强度图像中的噪声。因此,可以使用来自多个传感器或来自同一传感器的不同的时间的深度信息来生成高质量的深度图像。
在某些实施例中,对深度图像进行确定被用于运动捕捉系统中。因此,将描述示例运动捕捉系统。然而,可以理解,本文所描述的技术不限于运动捕捉系统。图1描绘了其中个人与应用交互的运动捕捉系统10的示例。运动捕捉系统10包括显示器196、深度相机系统20、以及计算环境或装置12。深度相机系统20可包括图像相机组件22,其具有光发射器对、光接收器25和红-绿-蓝(RGB)相机28。在一个实施例中,光发射器M发射准直光束。准直光束的示例可包括但不限于,红外(IR)和激光。在一个实施例中,光发射器M 是LED。从视野内的对象8反射离开的光由光接收器25检测。
也称为个人或玩家的用户站在深度相机系统20的视野6中。线2和4表示视野 6的边界。在该示例中,深度相机系统20和计算环境12提供了其中显示器196上的化身 197追随对象8(例如,用户)的移动的应用。例如,当用户举起手臂时,化身197可举起手臂。化身197站在3-D虚拟世界的公路198上。可以定义笛卡儿世界坐标系,其包括沿着深度相机系统20的焦距延伸(例如,水平地)的ζ轴、垂直地延伸的y轴、以及横向地并且水平地延伸的χ轴。注意,附图的透视被修改成简化表示,显示器196在y轴方向上垂直延伸,ζ轴垂直于y轴和χ轴且与用户所站立的地平面平行地从深度相机系统20延伸出来。
一般而言,运动捕捉系统10用于识别、分析和/或跟踪对象。计算环境12可包括计算机、游戏系统或控制台等等,以及执行应用的硬件组件和/或软件组件。
深度相机系统20可以包括相机,相机用于在视觉上监视诸如用户等的一个或多个对象8,从而可以捕捉、分析并跟踪用户所作出的姿势和/或移动,来执行应用中的一个或多个控制或动作,如使化身或屏幕上人物活动起来或选择用户界面(UI)中的一菜单项。
运动捕捉系统10可以连接到诸如显示器196等向用户提供视觉和音频输出的视听设备,如电视机、监视器、高清电视机(HDTV)等,或甚至是墙或其他表面上的投影。还可以经由单独的设备来提供音频输出。为驱动显示器,计算环境12可包括提供与应用相关联的视听信号的诸如图形卡之类的视频适配器和/或诸如声卡之类的音频适配器。显示器 196可以通过例如S-视频电缆、同轴电缆、HDMI电缆、DVI电缆、VGA电缆等等连接到计算环境12ο
可使用深度相机系统20来跟踪对象8,使得用户的姿势和/或移动被捕捉并用于使化身或屏幕上人物活动起来,和/或被解释为对计算机环境12所执行的应用的输入控制。
对象8的某些移动可被解释为可以和除控制化身之外的动作相对应的控制。例如,在一个实施方式中,玩家可以使用运动来结束、暂停或保存游戏,选择级别,查看高分, 与朋友进行交流等等。玩家可以使用移动来从主用户界面中选择游戏或其他应用,或以别的方式导航选项菜单。由此,对象8的全范围运动可以用任何合适的方式来获得、使用并分析以与应用进行交互。
个人可在与应用交互时抓握诸如道具等物体。在此类实施例中,个人和物体的移动可用于控制应用。例如,可以跟踪并利用手持球拍的玩家的运动来控制模拟网球游戏的应用中的屏幕上的球拍。在另一示例实施例中,可以跟踪并利用玩家手持诸如塑料剑等玩具武器的运动来控制提供海盗船的应用的虚拟世界中对应的武器。
运动捕捉系统10还可以用于将目标移动解释成处于游戏或旨在娱乐和休闲的其他应用的领域之外的操作系统和/或应用控制。例如,操作系统和/或应用的基本上任何可控方面可由对象8的移动来控制。
图2Α描绘了图1的运动捕捉系统10的示例框图。深度相机系统20可被配置成捕捉具有深度信息的视频,深度信息包括可包括深度值的深度图像。此处描述了用于确定深度图像的技术。深度相机系统20可将深度信息组织为“Ζ层”,即可与从深度相机系统20 沿其视线延伸的Z轴垂直的层。
深度相机系统20可包括图像相机组件22,如捕捉物理空间中的场景的深度图像的深度相机。深度图像可包括所捕捉的场景的二维O-D)像素区域,其中该2-D像素区域中的每一像素具有代表距离图像相机组件22的线性距离(径向距离)的或由像素观察的 3D位置的Z分量(垂直距离)的相关联的深度值。
图像相机组件22可包括光发射器M和一个或多个光传感器25来捕捉深度信息。例如,深度相机系统20可使用光发射器M将光发射到物理空间上并使用光传感器25来检测从物理空间内一个或多个对象的表面所反射的光。在一些实施例中,光发射器M发射脉冲红外光。光脉冲从视野中的对象反射离开,并且在传感器处被收集,传感器可随时间累计光子。例如,每一像素包含基于在收集时间段内到达该像素的光子的数量的光强度值。深度值可以基于光强度来确定。这样的技术有时被称为“飞行时间”测量,因为像素处的光强度与光的往返飞行时间之间有关系。在一些实施例中,所发射的光被调制成所需频率。经调制的光从视野中的对象反射离开,并且在一个或多个传感器处被收集,传感器可随时间累计光子。在一个实施例中, 在所发射的光(在源处)具有第一相位(或相位范围)时,一个传感器收集光,并且在所发射的光具有第二相位(或第二相位范围)时,第二传感器收集光。这一技术也被称为“飞行时间”测量,因为像素处的光强度与光的往返飞行时间之间有关系。深度相机系统20可以捕捉同一场景的两个或更多个光强度图像并且处理它们以生成单个深度图像。在一个实施例中,两个光强度图像在同时,但用两个不同的传感器来捕捉。图2B描绘了图像相机组件22的一个可能的配置,其中光发射器M处于两个光传感器 2fe、2 之间的中点。在该示例中,一个光传感器2 处于光源M上方,并且另一个光传感器2 处于光源M下方。可以使用其他配置。例如,一个光传感器25c可以处于光源24 左侧,并且另一光传感器25d可以处于光源M右侧,如图2C所示。在图2B中,传感器25a、 2 沿y轴排列。在图2C中,传感器25c、25d沿χ轴对准。在一些实施例中,可以通过使用马达等来使图像相机组件22倾斜。因此,可以明白,传感器25的定向不需要沿χ轴或y 轴。在处理两个捕捉到的光强度图像以生成最终的单个深度图像时,可以使用与光传感器 25相对于光发射器对的物理配置有关的信息。在一些实施例中,两个光强度图像用同一光传感器25,但在不同的时间来捕捉。红-绿-蓝(RGB)相机28可用于捕捉可见光图像。深度相机系统20还可以包括话筒30,其包括例如接收声波并将其转换成电信号的换能器或传感器。另外,话筒30可用于接收由人提供的诸如声音之类的音频信号,以控制由计算环境12运行的应用。音频信号可包括人声,如说的话、口哨声、喊声及其他发声,以及非人声,如掌声或跺脚。在一些实施例中,话筒30是话筒阵列,它可具有一起运行的任何数量的话筒。深度相机系统20可包括与图像相机组件22进行通信的处理器32。处理器32可包括可执行包括例如用于接收深度图像和对深度图像去混叠的指令等指令的标准化处理器、专用处理器、微处理器等等。深度相机系统20还可包括存储器组件34,存储器组件34可存储由处理器32执行的指令、以及存储RGB相机所捕捉的图像或图像帧、或任何其他合适的信息、图像等等。根据一个示例实施方式,存储器组件34可包括随机存取存储器(RAM)、只读存储器(ROM)、高速缓存、闪存、硬盘或任何其他合适的有形计算机可读存储组件。存储器组件34可以是经由总线21与图像捕捉组件22和处理器32通信的单独的组件。根据另一实施例,存储器组件34可被集成到处理器32和/或图像捕捉组件22中。深度相机系统20可以通过通信链路36与计算环境12进行通信。通信链路36可以是有线和/或无线连接。根据一个实施方式,计算环境12可以经由通信链路36向深度相机系统20提供时钟信号,该时钟信号指出何时从位于深度相机系统20的视野中的物理空间捕捉图像数据。此外,深度相机系统20可通过通信链路36向计算环境12提供深度信息和由RGB 相机观捕捉的图像。计算环境12然后可使用深度值和所捕捉的图像来控制应用。例如, 如图2A所示,计算环境12可包括诸如姿势过滤器集合等姿势库190,每一姿势过滤器具有关于(在用户移动时)可作出的姿势的信息。例如,可为各种手势(如手的猛击或投掷) 提供姿势过滤器。通过将检测到的运动与每一个过滤器进行比较,可以标识由人执行的指定的姿势或移动。还可以确定执行移动的程度。计算环境还可包括用于执行存储在存储器194中的指令以向显示设备196提供音频-视频输出信号并实现其他功能的处理器192。图3是确定深度图像的过程300的一个实施例的流程图。过程300可在诸如图1 的示例系统10等运动捕捉系统10中使用。例如,过程300可由深度相机系统20或计算环境12来执行。在步骤302,生成同一场景或视野的第一和第二光强度图像。在一个实施例中,第一和第二光强度图像在同时,但用不同的传感器25来生成。两个传感器25之间的物理分隔可保持很小,以便可减少视差伪像。在一个实施例中,第一和第二光强度图像用同一传感器,但在不同的时间生成。通常,生成这两个图像之间的时间间隔保持很小,以便可减少运动伪像。因而,这两个光强度图像之间一开始可能存在像素的某种未对准。过程300 可减少或消除这一像素未对准。 在一个实施例中,这两个光强度图像之一是门控深度图像而另一个是非门控深度图像。生成门控和非门控光强度图像的进一步细节在下文讨论。简言之,门控光强度图像可以是其中传感器25在某时间段期间不活动的图像,而非门控深度图像可以是其中传感器 25比门控图像传感器活动了更长时间段的图像第一和第二光强度图像不限于是门控图像和非门控图像。在一个实施例中,这两个光强度图像在已调制发射光束的相位方面是不同的。例如,可以在与已调制发射光束中的90度相差相对应的时刻收集这两个光强度图像。在步骤304,生成第一光强度图像中的像素的边界值。边界值可以是在第一光强度图像的处理期间所准许的每一像素的上限值和下限值。边界值可以基于第一和第二光强度图像之间的可能的像素未对准。注意,第一图像可以是任一光强度图像。例如,第一光强度图像可以是门控光强度图像或非门控光强度图像。作为一个示例,确定门控光强度图像的边界值。然而,相反,可以确定非门控光强度图像的边界值。另一示例,可以确定相位不同的两个光强度图像中的任一个的边界值。如下所述,在过程300期间,可以更改第一光强度图像的值。在一个实施例中,边界值基于一个或多个邻居像素的值。下文中结合图9和10 讨论确定并使用边界值的进一步细节。在步骤306,基于第一和第二光强度图像来计算深度图像。使用两个收集的光强度图像来形成深度图像的一个原因是这可补偿这两个收集的光强度图像中的对象的反射率的差异。作为一个示例,基于等式1中的以下近似来确定深度图像等式1 深度图像 门控光强度图像/非门控光强度图像在以上计算中,可以执行逐像素相除。例如,门控光强度图像中的像素的光强度值可以除以非门控光强度图像中的对应像素的光强度值,这可产生深度值。可基于诸如发射光的特性和传感器的操作等各种参数从深度值中确定距离。注意,以上等式是近似;所使用的实际等式可能更加复杂。在步骤308,对来自步骤306的深度图像进行平滑。平滑可包括但不限于对深度图像应用高斯滤波器或中值滤波器。因此,平滑可造成对在步骤306确定的深度值的改变。在步骤310,作出深度图像的处理是否完成的判断。如果是,则过程300以经平滑的深度图像是最终深度图像而结束。在一个实施例中,步骤310包括将经平滑的深度图像与这一平滑步骤之前的版本进行比较以确定平滑具有多少效果。如果平滑没有影响深度图像超过某预定量,则过程300完成。在一个实施例中,步骤310还包括确定过程300迭代了多少次。如果过程300迭代了超过预定次数,则步骤310可确定深度图像的处理完成。如果步骤310确定处理应当继续,则执行步骤312。在步骤312,基于经平滑的深度图像和第二光强度图像来修改第一光强度图像。步骤312可涉及执行其中计算深度图像的步骤306的计算的逆运算。作为一个示例,步骤312的修改可基于等式1中的以下近似等式2 经修改的门控光强度图像 经平滑的深度图像*非门控光强度图像在一个实施例中,经修改的门控光强度图像的值不允许超出在步骤304确定的边界值之外。在一个实施例中,如果第一光强度图像中的对应像素将要超出边界值之外,则可以调整第二光强度图像中的像素的值。下文结合图10讨论进一步细节。在步骤314,基于经修改的第一光强度图像(来自步骤31 和第二光强度图像来确定深度图像的新值。可以使用在步骤306中使用的相同等式。例如,可以使用等式3中的以下近似等式3 深度图像 经修改的门控光强度图像/非门控光强度图像过程300随后从步骤314返回到步骤308以对深度图像进行平滑。可以再次使用先前使用的相同平滑算法。然而,可以使用不同的平滑算法。随后,步骤310再次判断深度图像的处理是否完成。过程300重复步骤308-314,直至步骤310确定处理完成。此时,可以确立深度图像的最后的深度值为最终深度值。此时,这两个光强度图像中的像素的对准可以完成。注意,不需要这两个光强度图像中的像素的完美对准。即,一些未对准是可容忍的。如上所述,输入到过程300的第一和第二光强度图像可以用两个传感器来同时生成或用一个传感器在不同的时间生成。图4A和4B提供生成第一和第二光强度图像的两个示例实施例。图4A和4B描绘过程300的步骤302的不同实施例。在图4A的过程400的步骤402和404,使用不同的图像传感器来同时收集第一和第二光强度图像。在该示例中, 设备具有两个传感器,如在图2B或2C中描绘的实施例中一样。这两个传感器的物理位置的差异会导致视差误差。换言之,第一和第二光强度图像中的像素之间会存在失配。像素之间的失配可被如下解释。每一传感器可以是nXm个像素的阵列。理想地,第一光强度图像的像素(i,j)与第二光强度图像的像素(i,j)应当表示视野中的同一个点。然而,因为这两个传感器处于不同的位置,所以情况并非如此。注意,原始像素未对准可能非常小。例如,原始像素未对准可能小于一个像素(i+Di,j+Dj),其中Di和Dj小于1。然而,甚至很小的像素未对准也会对深度计算产生负面影响。图3的迭代过程300能够减少或消除像素未对准。因而,即使在输入的光强度图像的像素未对准的情况下,过程300也可以产生高质量的深度图像。图4B描绘生成第一和第二光强度图像的过程450的一个实施例,在该实施例中使用单个传感器。在步骤452,使用光传感器25来收集第一光强度图像。在步骤454,使用同一传感器25在不同的时间收集基本上同一场景(或视野)的第二光强度图像。在该示例中,设备具有至少一个传感器25,如在图2A的实施例中一样。实际上,传感器25在这两个读数之间可被保持在同一物理位置。然而,在收集第一和第二光强度图像的时间之间,可能存在场景中的对象的某种运动。因此,这些运动伪像可导致第一和第二光强度图像之间的像素失配。即使在存在这些运动伪像的情况下,图3的迭代过程300也能够产生高质量的输出深度图像。作为像素对准过程的一部分,过程300能够减少或消除这些运动伪像。在一些实施例中,第一和第二光强度图像是基于脉冲光束的反射生成的。图5A和 5B描绘两个这样的实施例的过程,它们使用门控传感器和非门控传感器来收集光。图5A和 5B是过程300的步骤302的实施例。图5A也是图4A的一个实施例。图6A-6C描绘光脉冲的定时、以及门控传感器和非门控传感器的激活的一个示例,它可用于图5A的过程。在步骤502,发射脉冲光束。在一个实施例中,该光束是红外线(IR)。注意,该光束可以是可见光或另一波长。图6A示出其中光束被脉冲式地打开和关闭的示例。注意,在传感器处收集光期间可有许多脉冲。例如,在单个收集时间段期间可有数百、数千、或更多个光脉冲。因而,可以理解,通过仅示出两个光脉冲来简化了图6A。在步骤504,在对光束进行脉冲式发射时,操作门控传感器和非门控传感器两者。 图6C示出其中在光脉冲从活动变得不活动之后,非门控传感器在时间段“T”期间活动的示例。注意,非门控传感器可在光脉冲变得不活动之前活动。门控传感器(图6B)在比非门控传感器短的时间段期间操作。在该示例中,门控传感器在时间段“T”的大约后一半期间活动。因而,在该示例中,门控传感器在非门控传感器的活动时间段的子集期间活动。光脉冲的特性(例如,脉冲持续时间、频率)以及传感器的操作可以基于图像传感器的所需范围来选择。在步骤506,当门控传感器和非门控传感器在操作时,在它们两者处捕捉光。如上所述,在收集时间段期间可能有许多发射光脉冲。门控传感器和非门控传感器的像素可以对每一光脉冲收集少量光,而所收集的光的量随时间累积。在一些实施例中,在给定传感器像素处收集的光的强度可被用来确定该像素到对象的距离。如上所述,一种用于确定深度值的技术涉及使门控传感器的光强度除以非门控传感器的光强度。过程500继续,直至光收集阶段结束,如步骤508所确定的。在一个实施例中,光收集阶段是预定数量的光脉冲。随后,在步骤510,基于传感器所收集的光来存储第一和第二光强度图像。作为一个示例,来自CCD或CMOS的最终像素值可以存储在存储器中,以便存储光强度图像。图5B描绘基于脉冲光束生成第一和第二光强度图像的过程550的一个实施例的流程图,该脉冲光束在对象上的反射被作为门控传感器并且稍后作为非门控传感器的单个传感器来检测。过程550是过程300的步骤302的一个实施例。过程550也是图4B的一个实施例。在步骤552,发射脉冲光束。在一个实施例中,该光束是顶。该脉冲可以类似于在图5A的过程中使用的脉冲。在步骤554,在光束被脉冲式地发射时,操作门控传感器。在步骤556,在传感器25处捕捉光,该传感器当前作为门控传感器来操作。过程550继续,直至光收集阶段结束,如步骤558所确定的。在一个实施例中,光收集阶段是预定数量的光脉冲。随后,在步骤559,基于传感器所检测到的光来存储第一光强度图像。
接着,在步骤560再次脉冲式地发射光束,使得可以用作为非门控传感器来操作的该传感器来收集数据。在步骤562,在光束被脉冲式地发射时,传感器作为非门控传感器来操作。在步骤564,当传感器作为非门控传感器来操作时,在该传感器处收集光。过程550 继续,直至光收集阶段结束,如步骤566所确定的。随后,在步骤568,基于传感器在步骤564 所检测到的光来存储第二光强度。如上所述,基于脉冲光的门控传感和非门控传感来生成这两个光强度图像不是必需的。在一个实施例中,通过对已调制光束在视野中的对象上的反射进行传感来生成第一和第二光强度图像。可基于在不同的时间点的采样来生成第一和第二光强度图像,使得这两个光强度图像之间有90度(或某一其它量)的相移。相移可以是根据所发射的光束的。图5C描绘了生成第一和第二光强度图像的过程580的一个实施例的流程图,其中图像之间具有相差。过程580是过程300的步骤302的一个实施例。过程580也是图4A 的一个实施例。在步骤582,发射已调制光束。例如JR光束是使用幅度调制来调制的。图 13A-13C描绘了经幅度调制的光束的示例波形以及过程580期间传感器的操作。注意,只描绘了已调制光束的很小一部分。在步骤584,第一和第二传感器在彼此有90度相差的情况下操作。图1 和13C 描绘了第一和第二传感器的定时的一个示例。在该示例中,在已调制光束(在它发射处) 处于或接近0度时,一个传感器是活动的。活动时间段的宽度可以比所示出的时间段更长或更短。在已调制光束(在它发射处)处于或接近90度时,第二传感器是活动的。同样, 活动时间段的宽度可以比所示出的时间段更长或更短。对于所发射的已调制光束的每一周期,这一收集模式可以重复。在步骤586,在第一和第二传感器处检测光。过程580在收集时间段期间继续,该收集时间段可以是任何所需长度的时间。在收集时间段结束之后(如步骤588所确定的), 在步骤590基于检测到的光来存储第一和第二光强度图像。结果是已经基于来自这两个传感器的数据生成了两个光强度图像。一个光强度图像可被称为ImageWiaseO (相位0图像),而另一个可被称为ImageWmsegO (相位90图像)。注意,可以使用其他相差。图7A是描绘处理深度图像的过程700的一个实施例的流程图。在这一实施例中, 所输入的光强度图像的门控和非门控的深度光强度图像。因此,过程700可以与图5A或5B 的过程一起使用,但不限于此。过程700覆盖了在图3的过程300期间在使用门控和非门控光强度图像时如何执行处理的附加细节。具体而言,过程700提供图3的步骤306、312、 以及314的附加细节。在步骤702,深度图像被计算成门控光强度图像除以非门控光强度图像。每一光强度图像可具有相同数量的像素。例如,每一光强度图像中可以有360x240个像素(或某一其他数量的像素)。在一个实施例中,步骤702包括将门控光强度图像中的每一像素的值除以非门控光强度图像中的对应像素的值。然而,可以使用其他技术来将门控图像除以非门控深度图像。以下是可在步骤702中使用的若干示例等式。步骤702是图3的步骤306的一个实施例。所输出的深度图像随后被平滑,如在图3的步骤306中讨论的。等式4 深度=门控/非门控等式5 深度=A+B*(门控/非门控)
等式6 深度=A*X3+B*X2+C*X+D,其中 X = log(G/U)或 X = G/U。在以上等式中,深度是深度图像中的深度值,门控是门控传感器所收集的强度图像的强度值,并且非门控是非门控传感器所收集的强度图像的强度值。参数“A”和“B”可以是取决于相机设置的常数,如所发射的光脉冲的数量以及传感器的定时(例如,传感器活动/不活动的时间)。常数“X”指的是“门控/非门控”。注意,对于等式5和6,深度值可以是距离单位,如距相机的厘米数。对于等式4,深度值可以是某一范围中的值(例如,0 和1之间的值)。在步骤704,经修改的门控光强度图像被计算成经平滑的深度图像乘以非门控光强度图像。步骤704是图3的步骤312的一个实施例。步骤704可涉及使用用于步骤702 中的函数的反函数来执行计算。例如,如果在步骤702中使用了等式5,则可在步骤704中使用等式7。等式7 门控=非门控*(深度-A)/B例如,可从深度图像中的深度值中减去常数A来执行(深度-A)。乘以“非门控” 指的是将所输入的非门控光强度图像中的像素的强度值乘以对应的深度值。在此,可基于各自是nxm个值的阵列的深度图像和强度图像来确定对应的深度值。注意,步骤704的另外的变型是可能的。图10描绘其中经修改的门控光强度图像的值可被保持在边界值内的一个实施例。在步骤706,深度图像被重新计算成经修改的门控光强度图像除以(原始)非门控光强度图像。步骤706是图3的步骤314的一个实施例。过程700的步骤704和706可被重复(参见图3被重复的步骤312、314)。当门控和非门控光强度图像被处理时,这两个光强度图像的相对角色可以反转。 图7B是描绘类似于图7A的过程但角色转换了的用于处理深度图像的过程750的一个实施例的流程图。过程750提供图3的步骤306、312、以及314的附加细节。在步骤702,深度图像被计算成门控光强度图像除以非门控光强度图像。这是步骤306的一个实施例。原始深度图像随后可被平滑,如在图3的步骤306中讨论的。注意,这一步骤可类似于图7A的过程700。在步骤754,经修改的非门控光强度图像被计算成门控光强度图像除以经平滑的深度图像。注意,步骤754与图7A的对应步骤(步骤704)不同。步骤7M是图3的步骤 312的一个实施例。注意,步骤754的另外的变型是可能的。图10描绘其中经修改的非门控光强度图像的值可被保持在非门控光强度图像中的像素的边界值内的一个实施例。在步骤756,深度图像被重新计算成(原始)门控光强度图像除以来自步骤7M的经修改的非门控光强度图像。步骤756是图3的步骤314的一个实施例。过程700的步骤 704和706可被重复(参见图3被重复的步骤312、314)。如上所述,第一和第二光强度图像可以不同于门控和非门控图像。图8A和8B描绘过程800、850的实施例,其中第一和第二光强度图像是基于相差的。生成这样的深度图像的一个示例结合图5C和6B来讨论。例如,第一和第二光强度图像是通过在其间存在90 度相差处收集的数据来生成的。出于讨论的目的,这些光强度图像将被称为ImageWiaseO 和ImageWmsegO。然而,将注意到,可以使用其他相差。图8A和8B的过程之间的差异是哪一所收集的光强度图像在该过程期间被修改。注意,在提供图3的步骤306、312、以及314的附加细节方面,图8A和图8B类似于图7A和7B。在图8A的步骤802中,深度图像被计算成ImagePhaseO和ImagePhase90的函数。 一般形式可如以下等式7所示等式 8 深度图像 A*atan2 (ImagePhaseO, ImagePhase90) +B换言之,深度图像可以是这两个光强度图像的反正切的函数。步骤802是步骤306 的一个实施例。原始深度图像随后被平滑,如在图3的步骤306中讨论的。在步骤804,基于经平滑的深度图像和ImagePhase90来计算经修改的 ImageWmseO。在一些实施例中,在步骤804中使用的函数是在步骤802上使用的函数的反函数。步骤804是图3的步骤312的一个实施例。注意,步骤804的另外的变型是可能的。 图10描绘其中经修改的ImageWiaseO图像的值可被保持在ImageWiaseO深度图像中的像素的边界值内的一个实施例。在步骤806,深度图像被重新计算成经修改的ImageWiaseO和(原始) ImagePhase90o步骤806可涉及使用与步骤802相同或相似的等式。步骤806是图3的步骤314的一个实施例。过程800的步骤804和806可被重复(参见图3被重复的步骤312、 314)。在图8A的实施例中,在步骤804中修改ImageWiaseO光强度图像。在另一实施例中,以类似的方式修改ImageI^hasegO深度图像。图8B是描绘处理深度图像的过程850的一个实施例的流程图。过程850提供图3的步骤306、312、以及314的附加细节。在步骤 852中,原始深度图像被计算成ImagePhaseO和ImagePhase90的函数。这是步骤306的一个实施例。原始深度图像随后被平滑,如在图3的步骤306中讨论的。注意,这一步骤可类似于图8A的步骤802。在步骤854,基于经平滑的深度图像和ImagePhaseO来计算经修改的 ImagePhase90。在一些实施例中,在步骤邪4中使用的函数是在步骤802上使用的函数的反函数。例如,如果在步骤802使用反正切函数,则可在步骤854中使用正切函数。步骤804 是图3的步骤312的一个实施例。在步骤856,深度图像被重新计算成经修改的ImageWmsegO和(原始) ImageWmseO。步骤856可涉及使用与步骤802相同或相似的等式。步骤856是图3的步骤314的一个实施例。过程850的步骤邪4和856可被重复(参见图3被重复的步骤312、 314)。这结束了图8B的讨论。在一些实施例中,确定第一光强度图像(其在过程300中被修改)中的像素的边界值。在修改第一光强度图像时,将像素值保持在边界值内。图9是在处理第一光强度图像时确定边界值的过程900的一个实施例的流程图。过程900提供图3的步骤304的进一步细节。可以影响对光强度图像的处理的一个因素是第一和第二光强度图像之间的预期的像素误差量。像素误差指的是由于光强度图像是从不同物理位置处的传感器收集的或从同一传感器但却在不同的时间收集而存在某种像素未对准的事实。在步骤902,估计像素误差。对于使用两个不同的传感器同时收集的光强度图像,可至少部分地基于这两个传感器的物理位置来确定预期的误差量。预期误差也可基于其他因素,如深度相机系统10的视野的范围和角度以及传感器25的特性(例如,像素数目)。例如,参考图2C,深度传感器25a和2 处于光发射器M的左侧和右侧的已知位置处。作为示例,传感器25c可被用来收集第一光强度图像且传感器25d可被用来收集第二光强度图像。在这种情况下,在特定方向上(例如,向左侧或向右侧)可存在小于1个像素的预期平移误差。由于几何学,将预期误差限制在一个方向上是可能的。对于诸如图2B中所示的传感器配置,预期误差可以在与图 2C的示例不同的方向上。注意,在一些情况下,预期误差可能超过1个像素。在步骤904,作出预期像素误差(或失配)是否小于1个像素的判断。如果是,则在步骤906-912执行对第一光强度图像中的像素的处理。注意,第一光强度图像可以是这两个所收集的光强度图像中的任一个。例如,它可以是门控或非门控光强度图像。或者,它可以是ImageWiaseO或ImageWiase90光强度图像。在步骤906,访问第一光强度图像中的第一像素的值。在步骤908,访问第一像素的邻居的值。可以基于预期的像素未对准的方向来选择邻居。作为示例,对于图2C的配置,可以选择右侧或左侧的邻居。在步骤910,基于第一像素的值和邻居的值来确定第一像素的边界值。在一个实施例中,这涉及将下边界值设置成这两个像素值中的较低值,以及将上边界值设置成这两个像素值中的较高值。实际上,这在第一像素的值与所选邻居的值之间确立了第一像素的边界。这可涉及假定第一像素与它的所选邻居之间的线性内插,但这不是必需的。换言之,边界值可以扩展至这两个像素值中的较低值以下或较高值以上。在步骤912,作出第一光强度图像中是否还存在要处理的像素的判断。如果是,则处理对下一像素重复步骤906-910。一旦确立了第一光强度图像中的所有像素的边界值,则处理完成。如上所述,在一些情况下,预期的像素误差(或未对准)可能大于1个像素。在这种情况下,可执行步骤914 (在步骤904之后)。步骤914是对第一光强度图像进行降采样。 注意,第二图像也可被降采样以用于稍后处理。对图像进行降采样(也被称为重新采样) 可涉及减少光强度图像中的像素的数量。例如,360x 120像素图像可被降采样成180x 60 像素图像。对图像进行降采样在本领域中很好理解并且不再赘述。对光强度图像进行降采样可减少第一和第二光强度图像中的误差(未对准)像素。因此,在降采样之后,在步骤904,作出第一和第二光强度图像之间是否存在小于1个像素误差的重新判断。可以使用先前使用并且在上文中描述的类似技术。如果降采样达到了小于1个像素的未对准,则处理可如先前在步骤906-912中描述的那样继续。否则,在步骤 904,第一光强度图像(以及可能第二光强度图像)可被进一步降采样。图10是在处理第一光强度图像时使用边界值的过程1000的一个实施例的流程图。过程1000提供图3的步骤312的进一步细节。过程1000还讨论了在第一图像的像素否则会超出其边界值时对第二光强度图像的可能修改。在步骤1002,基于经平滑的深度图像和第二光强度图像来确定第一光强度图像的新值。作为一个示例,将经平滑的深度图像中的像素乘以非门控光强度图像中的对应像素。 注意,这可被认为是将深度图像计算成门控光强度图像除以非门控光强度图像的逆运算。步骤1002的结果可以是第一光强度图像(例如,门控图像)中的像素中的一些超出了边界值。在步骤1004,作出(经修改的)第一光强度图像中是否还存在要针对边界值违反进行检查的像素的判断。如果否,则过程1000结束。否则,在步骤1004,访问下一像素的值及其边界值。这些边界值可以通过图9的过程900来确定。在步骤1008,作出(经修改的)第一光强度图像中的第一像素是否超出其边界值的判断。如果否,则该过程返回步骤1004以确定第一光强度图像中是否还存在要被检查来确定与边界值的遵从性的像素。如果第一像素超出其边界值,则在步骤1010调整像素值以使它保持在边界内。此夕卜,作为可任选步骤,在步骤1012,可调整第二光强度图像中的对应像素的值。例如,如果像素是8位值,则该值可被递增(或递减)1。当然,像素可以是除8位值以外的值。此外,该值可被修改超过1。该值被递增还是递减可取决于第一光强度图像中的像素的值是高于还是低于边界。在步骤1012之后,过程1000返回步骤1004以判断是否还有要确定其与边界值的遵从性的像素。图11描绘了可以在图1的运动捕捉系统中使用的计算环境的示例框图。深度相机系统20可向控制台100提供输入。在一个实施例中,深度相机系统20确定深度值并将它们提供给控制台100。在一个实施例中,深度相机系统20收集图像数据(例如,光强度图像),它将该图像数据提供给控制台以确定深度图像。上文所描述的诸如计算环境12等的计算环境可包括诸如游戏控制台等的多媒体控制台100。多媒体控制台100包括具有一级高速缓存102、二级高速缓存104和闪存 R0M(只读存储器)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(例如闪存、外置CD/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内的电路。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接收附加输入。图12描绘可被用来确定深度图像的计算环境的另一示例框图。在一个实施例中, 深度相机系统20向计算环境提供图像数据(例如,两个光强度图像)以确定深度图像。在一个实施例中,深度相机系统20提供深度值以供计算环境220使用。计算环境220包括通常包括各种有形计算机可读存储介质的计算机Ml。这可以是能由计算机241访问的任何可用介质,而且包含易失性和非易失性介质、可移动和不可移动介质。系统存储器222包括易失性和/或非易失性存储器形式的计算机存储介质,如只读存储器(ROM) 223和随机存取存储器(RAM06O。基本输入/输出系统包含诸如在启动期间帮助在计算机Ml内的元件之间传输信息的基本例程,它通常储存储在ROM 223中。RAM 260通常包含处理单元259可立即访问和/或目前正在操作的数据和/或程序模块。图形接口 231与GPU 2 进行通信。作为示例而非局限,图12描绘了操作系统225、 应用226、其他程序模块227和程序数据228。计算机241也可以包括其他可移动/不可移动、易失性/非易失性计算机存储介质,例如,读写不可移动、非易失性磁性介质的硬盘驱动器238,读写可移动、非易失性磁盘 254的磁盘驱动器239,以及读写诸如⑶ROM或其他光学介质之类的可移动、非易失性光盘 253的光盘驱动器M0。可以在该示例性操作环境中使用的其他可移动/不可移动、易失性 /非易失性有形计算机可读存储介质包括但不限于,磁带盒、闪存卡、数字多功能盘、数字录像带、固态RAM、固态ROM等等。硬盘驱动器238通常由例如接口 234等不可移动存储器接口连接至系统总线221,而磁盘驱动器239和光盘驱动器240通常由例如接口 235等可移动存储器接口连接至系统总线221。以上讨论并在图12中描绘的驱动器及其相关联的计算机存储介质为计算机Ml 提供了对计算机可读指令、数据结构、程序模块和其他数据的存储。例如,硬盘驱动器238 被描绘为存储了操作系统258、应用257、其他程序模块256、以及程序数据255。注意,这些组件可与操作系统225、应用226、其他程序模块227和程序数据2 相同,也可与它们不同。在此给操作系统258、应用257、其他程序模块256、以及程序数据255提供了不同的编号,以说明至少它们是不同的副本。用户可以通过输入设备,例如键盘251和定点设备 252——通常是指鼠标、跟踪球或触摸垫——向计算机Ml输入命令和信息。其他输入设备 (未示出)可包括话筒、操纵杆、游戏手柄、圆盘式卫星天线、扫描仪等。这些和其他输入设备通常通过耦合至系统总线的用户输入接口 236连接至处理单元259,但也可以由其他接口和总线结构,例如并行端口、游戏端口或通用串行总线(USB)来连接。包括相机观的图2 的深度相机系统20可为控制台100定义附加输入设备。监视器242或其他类型的显示器也通过接口,诸如视频接口 232,连接至系统总线221。除监视器之外,计算机还可以包括可以通过输出外围接口 233连接的诸如扬声器244和打印机243之类的其他外围输出设备。计算机241可以使用到一个或多个远程计算机(如远程计算机M6)的逻辑连接, 以在联网环境中操作。远程计算机246可以是个人计算机、服务器、路由器、网络PC、对等设备或其他常见的网络节点,且通常包括许多或所有以上相对于计算机241描述的元件, 但是在图12中仅示出了存储器存储设备M7。逻辑连接包括局域网(LAN)245和广域网(WAN) M9,但也可以包括其他网络。这些联网环境在办公室、企业范围计算机网络、内联网和因特网中是常见的。当用于LAN网络环境中时,计算机241通过网络接口或适配器237连接到LAN 2450当在WAN联网环境中使用时,计算机241通常包括调制解调器250或用于通过例如因特网等WAN 249建立通信的其他手段。调制解调器250,可以是内置的或外置的,可以经由用户输入接口 236或其他适当的机制,连接到系统总线221。在联网环境中,参考计算机 241所描述的程序模块,或其某些部分,可以存储在远程存储器存储设备中。作为示例而非限制,图12描绘了远程应用248驻留在存储器设备247上。应当理解,所示的网络连接是示例性的,并且可使用在计算机之间建立通信链路的其他手段。前面的对本技术的详细描述只是为了说明和描述。它不是为了详尽的解释或将本技术限制在所公开的准确的形式。鉴于上述教导,许多修改和变型都是可能的。所描述的实施例只是为了最好地说明本技术的原理以及其实际应用,从而使精通本技术的其他人在各种实施例中最佳地利用本技术,适合于特定用途的各种修改也是可以的。本技术的范围由所附的权利要求进行定义。
权利要求
1.一种用于确定深度的方法,包括基于第一光强度图像和第二光强度图像来计算深度图像,所述第一和第二光强度图像包含同一场景的像素值(306);对所述深度图像进行平滑(308);基于经平滑的深度图像和所述第二光强度图像来修改所述第一光强度图像(312);基于经修改的第一光强度图像和所述第二光强度图像来计算所述深度图像的新值 (314);重复平滑所述深度图像、修改所述第一光强度图像、以及计算所述深度图像的新值,直至确定对所述深度图像的处理完成为止。
2.如权利要求1所述的方法,其特征在于,基于经平滑的深度图像和所述第二光强度图像修改所述第一光强度图像包括执行基于所述第一光强度图像和所述第二光强度图像来计算所述深度图像的逆运算。
3.如权利要求2所述的方法,其特征在于,基于所述第一光强度图像和所述第二光强度图像来计算深度图像包括在逐像素的基础上将所述第一光强度图像除以所述第二光强度图像,其中基于经平滑的深度图像和所述第二光强度图像来修改所述第一光强度图像包括在逐像素的基础上将经平滑的深度图像乘以所述第二光强度图像。
4.如权利要求2所述的方法,其特征在于,还包括基于所述第一光强度图像中的一个或多个邻居像素以及所述第一和第二光强度图像之间的可能的像素未对准来确定所述第一光强度图像中的像素的边界值,其中基于经平滑的深度图像和所述第二光强度图像来修改所述第一光强度图像包括使所述第一光强度图像中的像素值保持在所述边界值内。
5.如权利要求4所述的方法,其特征在于,修改所述第一光强度图像包括在作为执行计算所述深度图像的逆运算的结果所述第一光强度图像中的像素的值否则会超出其边界值的情况下修改所述第二光强度图像中的对应像素的值。
6.如权利要求1至5中任一项所述的方法,其特征在于,还包括使用第一传感器来确定所述第一光强度图像以及同时使用第二传感器来确定所述第二光强度图像。
7.如权利要求1至5中任一项所述的方法,其特征在于,还包括使用同一传感器但在不同的时间确定所述第一光强度图像和所述第二光强度图像。
8.如权利要求1至6中任一项所述的方法,其特征在于,还包括通过对第一传感器进行门控来确定所述第一光强度图像;以及在不对第二传感器进行门控的情况下确定所述第二光强度图像。
9.如权利要求1至6中任一项所述的方法,其特征在于,还包括发射已调制光束;当所述已调制光束处于第一相位范围内时在第一传感器处收集数据以生成所述第一光强度图像;以及当所述已调制光束处于第二相位范围内时在第二传感器处收集数据以生成所述第二光强度图像,所述第一和第二相位范围不重叠。
10.一种装置,包括处理器;以及耦合到所述处理器的计算机可读存储介质,所述计算机可读存储介质上存储有指令, 所述指令在被所述处理器执行时使得所述处理器访问第一光强度图像和第二光强度图像,所述第一光强度图像和第二光强度图像包含同一场景的像素值;基于所述第一光强度图像中的一个或多个邻居像素来确定所述第一光强度图像中的像素的边界值;基于所述第一光强度图像和所述第二光强度图像来计算深度图像;对所述深度图像进行平滑;基于对所述深度图像进行平滑的结果来确定是否要修改所述第一光强度图像;如果确定要修改所述第一光强度图像,则基于经平滑的深度图像和所述第二光强度图像来修改所述第一光强度图像,所述修改包括使所述第一光强度图像中的像素的值保持在所述边界值内;如果所述第一光强度图像被修改,则基于经修改的第一光强度图像和所述第二光强度图像来计算所述深度图像的新值;以及继续修改所述第一光强度图像并计算所述深度图像的新值,直至确定不再修改所述第一光强度图像为止。
11.如权利要求10所述的装置,其特征在于,使得所述处理器基于经平滑的深度图像和所述第二光强度图像修改所述第一光强度图像的指令包括使得所述处理器执行基于所述第一光强度图像和所述第二光强度图像来计算所述深度图像的逆运算的指令。
12.如权利要求10或11所述的装置,其特征在于,使得所述处理器基于所述第一光强度图像和所述第二光强度图像来计算深度图像的指令包括使得所述处理器将所述第一光强度图像除以所述第二光强度图像的指令,其中使得所述处理器基于经平滑的深度图像和所述第二光强度图像来修改所述第一光强度图像的指令包括使得所述处理器将经平滑的深度图像乘以所述第二光强度图像的指令。
13.如权利要求10至12中任一项所述的装置,其特征在于,所述第一和第二光强度图像中的一个是门控光强度图像且另一个是非门控光强度图像。
14.如权利要求10至12中任一项所述的装置,其特征在于,所述第一和第二光强度图像是基于在发射光束的相位方面不同的数据的。
15.如权利要求10至14中任一项所述的装置,其特征在于,使得所述处理器基于所述第一光强度图像中的一个或多个邻居像素来确定所述第一光强度图像中的每一像素的边界值的指令包括使得所述处理器基于所述第一光强度图像中的第一像素的值和所述第一像素的邻居的值来确定上边界和下边界的指令,其中所述邻居是基于用于收集所述第一光强度图像的第一传感器的几何学和用于收集所述第二光强度图像的第二传感器的几何学来确定的。
全文摘要
本发明涉及飞行时间深度成像。提供了用于确定到对象的深度的技术。可基于两个光强度图像来确定深度图像。这一技术可以补偿视野中的对象的反射率的差异。然而,这两个光强度图像中的像素之间可能存在某种未对准。可以使用迭代过程来减轻对光强度图像之间的精确匹配的需求。该迭代过程可涉及基于从这两个光强度图像生成的深度图像的经平滑的版本来修改光强度图像之一。随后,基于经修改的图像和另一光强度图像来确定深度图像的新值。从而,两个光强度图像之间的像素未对准可得到补偿。
文档编号G03B35/08GK102520574SQ201110315789
公开日2012年6月27日 申请日期2011年10月8日 优先权日2010年10月4日
发明者A·阿德莱尔, S·卡茨 申请人:微软公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1