飞行时间成像中的快速通用多径校正的制作方法

文档序号:10540758阅读:162来源:国知局
飞行时间成像中的快速通用多径校正的制作方法【专利摘要】描述了在飞行时间成像中的通用多径校正,例如用以从飞行时间相机中获得在帧速率处的精确深度图。在各种实施例中,通过查找存储在查找表中的校正的深度值来计算精确深度图。在各种实施例中,因为校正的深度值考虑了相机和被成像的场景中的表面之间的三个或更多可能的光线路径,所以校正的深度值是高度精确的。在一个示例中,精确深度图以飞行时间相机的帧速率被计算。在一个示例中,使用标准的CPU,对于具有超过20万像素的图像在少于30毫秒的时间内计算出精确深度图。【专利说明】飞行时间成像中的快速通用多径校正【
背景技术
】[0001]飞行时间(timeofflight)成像是在许多计算机视觉应用中使用的一种类型的深度感测技术,该计算机视觉应用例如目标跟踪和识别、人类活动分析、手势分析和室内3D测图等等。[0002]飞行时间系统包括将光线发射到场景中的一个或多个光源,以及诸如相机之类的光传感器。飞行时间系统通过计算作为相移而被测量的、所发射出的光线从表面反射并返回到系统处的相机所花费的时间来工作。这给出了表面距离相机的深度的测量。飞行时间系统一般能够实现适当的精确度,并且其中,它们使用红外光谱中的光,以便在低照明设置中进行操作。[0003]然而,飞行时间系统面临多径干扰(以下简称为"多径")。其中,发射出的光线针对每个像素而被发送出去,并且因为光能够以各种方式反射离开表面,所以一个特定像素也可能会接收到原来针对其他像素而发送出的光子。这导致损坏的传感器测量。这些损坏并不像普通的噪声,并且会相当大,造成极不精确的深度估计。例如,在光泽的或镜面般的地板的场景中存在显著的多径。[0004]移除多径的影响因此是实现精确的飞行时间系统的一个重要组成部分。移除多径的影响的尝试涉及到了使用附加传感器。其他方法已经使用辐射模型;或者辐射和光度模型。对于通过提高多径移除来提高飞行时间系统的精确度存在持续的需要。然而,对于诸如目标跟踪、手势识别等等之类的许多实际应用来说,飞行时间系统需要既精确又快速,从而使得精确的深度测量被实时地(例如,以捕获场景的图像流的相机的帧速率)被输出。[0005]下面描述的实施例不限于解决已知的飞行时间深度测量校正系统的任何缺点或所有缺点的实现。【
发明内容】[0006]下面呈现了本公开内容的简要概述,以便向读者提供基本的理解。本概述不是本公开内容的穷尽概览,并且它没有标识关键/重要元素或描述本说明书的范围。其唯一的目的是以简化的形式呈现本文所公开的概念的作为,作为稍后呈现的更详细的描述的序言。[0007]描述了在飞行时间成像中的通用多径校正,例如以便从飞行时间相机中获得以帧速率的精确深度图。在各种实施例中,通过查找存储在查找表中的校正的深度值来计算精确深度图。在各种实施例中,因为校正的深度值考虑了相机和被成像的场景中的表面之间的三个或更多可能的光线路径,所以校正的深度值是高度精确的。在一个示例中,精确深度图以飞行时间相机的帧速率被计算。在一个示例中,使用标准的CPU对于具有超过20万像素的图像在少于30毫秒的时间内计算出精确深度图。[0008]通过参照结合附图而考虑的下面的具体实施例,许多附带特征将更容易被领会以及变得较好理解。【附图说明】[0009]参见附图来阅读以下的详细描述,可以更好地理解本说明书:[0010]图1是使用相位调制飞行时间深度相机来生成室内场景的精确深度图的示意图;[0011]图2是通过具有和不具有多径反射的飞行时间系统所发射和接收的光线的示意图;[0012]图3是从飞行时间相机的幅度和相位测量中生成精确深度值的示意图;[0013]图4是使用通用多径计算来填充用于在诸如图3的处理之类的处理中所使用的查找表的值的流程图;[0014]图5是用于在诸如图4的方法之类的方法中所使用的通用多径计算组件的示意图;[0015]图6是后向散射的、以及从后向散射中计算深度值的处理的示意图;[0016]图7是示例相位调制飞行时间深度相机的示意图;[0017]图8示出了示例性的基于计算的设备,在其中考虑了每个像素三个或更多飞行时间相机射线路径的精确深度计算的实施例被实施。[0018]在附图中,使用相同的附图标记来指代相同的部分。【具体实施方式】[0019]下文中结合附图提供的详细描述旨在作为本示例的描述,并不旨在表示可以构造或使用本示例的唯一形式。本描述阐述了示例的功能,以及用于构造和操作示例的步骤的序列。然而,可以通过不同的示例来实现相同或等效功能和序列。[0020]本文档中的各种示例描述了在诸如具有光泽、镜面地板的客厅之类的环境中的室内使用的飞行时间系统。然而,这不是必要的。本文中所描述的飞行时间系统可以在包括室外环境的其他环境中使用。[0021]相位调制飞行时间深度相机可以近似实时地生成深度图,并且因此适用于跟踪人类的移动,例如跟踪用于与电子设备(例如游戏机,电视机以及其他电子设备)进行交互的手势。在其它实施例中,相位调制飞行时间深度相机可以被用于范围测量、汽车应用例如泊车传感器和防撞系统、以及测量到对象的精确距离的其他应用。术语"相机"和"深度相机"与"相位调制飞行时间相机"在这里可以互换地使用。深度图是这样的图像,其中每个像素包括指示从相机到该图像中描绘的场景中的表面的距离的深度值。如在【
背景技术
】部分中所提到的,多径干扰在来自飞行时间系统中的深度图中导致显著的误差。在此认识到以前的多径校正方法全都假设多径干扰是由正好两个路径所造成。本文描述的示例校正由三个或更多路径所造成的多径干扰,这意味着本文描述的示例实现了比以前可能的深度值输出的更高精确度。此外,描述了其中以相机帧速率实现了考虑三个或更多路径的多径校正的各种示例。[0022]图1是使用相位调制飞行时间深度相机生成室内场景的精确深度图的示意图。飞行时间系统106包括一个或多个光源和被安装在具有光泽地板110的客厅108的墙壁上的相机。由飞行时间传感器发射出的光可以沿光线112行进并沿光线114反射离开地板进入相机。在这种情况下,没有多径干扰发生。但是沿射线116发送出的光可以反射离开墙壁,并沿着射线115继续;这个光然后反射离开光泽地板110并继续沿射线114回到传感器。这是多径干扰的示例,因为在相机处的信号包括来自直接路径(光线112和114)的数据并混合有来自辅助路径(光线116,115和114)的数据。来自直接路径(112,114)的数据给出了从相机到地板的深度的精确测量。然而,由于辅助路径(116,115和114)的光线行进的距离不是相机和地面之间的距离的指示,所以来自辅助路径(116,115和114)的数据未给出如上的精确测量。更多可能光线路径会在相机处产生信号的分量。这在下面参考图2更详细地描述。[0023]在这个示例中,飞行时间系统106包括深度图组件100,或者与深度图组件100通信。深度图组件100是使用软件和/或硬件而用计算机实现的。它可以与飞行时间系统106集成在一起。在其它示例中,深度图组件100在与飞行时间系统106通信(通过任何适当的通信网络)的实体处被实现。例如,游戏系统128,自然用户接口124装置,手势识别130装置或者采用深度图作为输入的其他装置。[0024]深度图组件100在一些示例中可以被实现于云中的计算设备处。在这种情况下,飞行时间系统106可以通过通信网络(比如因特网或任何其它有线和/或无线通信网络)发送测量数据到飞行时间系统。[0025]在图1的示例中,因为飞行时间传感器被固定到客厅的墙壁,所以飞行时间传感器是静态的。但是,飞行时间传感器还可以被安装在移动物体上,比如人,车辆,机械手或其它运动实体。[0026]深度图组件100包括多径校正查找表102,其被存储在深度图组件100处的存储器中。查找表包括多个索引,每一个索引具有相关联的(校正的)深度值,并且可选地还包括相应的置信度值。索引可以是数值,比如整数。深度值可以是以距离为单位比如厘米或其他距离单位的标量值。在不能由飞行时间系统测量可靠的深度值的一些表条目中,可以用错误码来代替深度值。查找表可以被存储为列表,阵列或者使用任何适当的格式。[0027]在查找表中的深度值是被预先计算出的校正的深度值。校正的深度值是通过考虑了相机和场景中的表面之间的至少三个可能的光线路径而被计算的表面离照相机的深度。例如使用考虑通用多径的测量函数,来计算校正的深度值。测量函数描述来自传感器(在这种情况下为飞行时间相机)的测量如何与被测量的数量(在这种情况下为表面离照相机的距离)相关。与仅虑及两路径多径的以前方法相比,这给出了提高的精确度。通用多径考虑了在相机与场景中的表面之间的潜在无限多的可能光线路径,涉及包括其中来自朗伯(Lambertian)表面的反射。在下面参照图4和图5给出关于如何计算校正的深度值的更多细[0028]深度图组件108包括深度图计算逻辑104。这个逻辑104使用软件和/或硬件用计算机实现。它从查找表102中读取数据,并使用该数据填充深度图。结果,从深度图组件108中输出精确的深度图122。通过使用查找表来从中读取数据,可以实时地(例如可以在飞行时间系统106处以相机的帧速率)计算精确的深度图。这是因为校正的深度值可离线被计算,并且因此计算校正的深度值所花费的时间不会影响计算深度图所花费的时间。然而,查找表的尺寸是非常大的,这也影响了深度图组件108处的计算资源和存储器要求。这意味着即使当使用查找表时也难以实现实时操作。例如,来自飞行时间系统106的测量数据可以是六维或更高维。在这种情况下,查找表的维数也极高。[0029]为了促进其中使用查找表的实时操作,可以使用规范表示(canonical代口^8611丨31:;[011)来减少查找表的维度数量,如在2013年6月14日提交的、名称为"06口1:11mapcorrectionusinglookuptables(使用查找表的深度图校正)"的美国专利申请13/917,974中所详细描述的那样。这个规范表示以及在本文所描述的示例中它可以如何被使用也在本文档中稍后概述。下述示例使用这种类型的规范表示过程。然而,使用规范表示不是必需的。在其中不要求实时操作和/或其中使用并行处理单元的情况下,下面的示例可以被修改为省略使用规范表不。[0030]图1示出了与飞行时间系统106相对的客厅墙壁的基部(在此处所述墙壁连接地板)的两个示意深度重建。当深度图组件108被使用时,校正的深度重建118示出连贯的(coherent)墙壁和地板。当深度图组件108不被使用时,深度重建120示出墙壁的一部分连贯但地板被破坏,特别是邻近墙壁和地板之间的结合处以及在地板的边缘处。这些是多径干扰尤其成为问题的区域。示意深度重建118,120是基于从执行本文所描述的方法的工作飞行时间系统中的经验导出的深度重建。[0031]图2是由具有和不具有多径反射的飞行时间系统发射出和接收到的光线的示意图。在图2的上半部分中,飞行时间系统106发射出光线112,该光线与地板110平行地行进,反射离开表面200并沿路径114返回到飞行时间传感器106。路径112,114具有两倍于表面到飞行时间系统106的距离的长度。但是,光线116在点C处反射离开地板110、在光线201上继续在点B处到达表面,然后沿光线114再返回到表面,作为结果,在接收光线114的飞行时间传感器处的像素也可以接收来自射线116的光。在产生该像素的传感器处的信号然后由来自第一路径的分量(112,114)和来自第二路径(116,201,114)的分量组成。以前的校正系统已试图校正在这两个路径情况下的干扰。然而,还存在潜在无限数量的可能路径116,204,206,208,其会产生干扰,如在图2的下半部分中示出的那样。注意,为了清楚起见,图2中只示出了四个这样的地板点。这是朗伯多径的一个示例。理想的朗伯表面接收来自给定方向的有限数量的光,并在所有方向上反射无限量的光。如果无限多的附近点(例如在客厅的地板上)都将无限量的光反射到飞行时间相机中,那么结果可以是有限的。[0032]图3是在深度图组件100处的示例过程的流程图。在本示例中的规范表示被用来对上面提到的处理加速。针对指定像素(或其它图像元素)从飞行时间传感器中接收300幅度和相位测量。这些可以包括连续幅度值和连续相位值,其中连续幅度值包含实际标量值,连续相位值被表示为针对多个调制频率的每一个的复数。即,飞行时间传感器可以被布置来在多个不同调制频率的每一个上发射光。包含幅度和相位值的测量数据具有维数。例如,当使用三个调制频率时,维数可以为六,因为对于每个调制频率而言存在幅度和相位值。[0033]测量值可以由规范表示映射逻辑302进行处理,以计算测量值的较低维表示(以连续的形式)。例如,测量值可以从6D形式转换为4D形式。这仅仅是一个示例。其它数目的维度也可以被使用,例如,其中使用不同数目的调制频率和/或其中维度数目被减少不同量。[0034]较低维的连续测量值304被输入到离散逻辑306,其例如使用合仓(binning)处理将测量值转换成离散值,并从离散值中计算出到查找表316中的单个索引308。[0035]读取处理310使用该单个索引来从查找表316读取深度值。查找表316包括一列索引和一列已经被计算出以考虑到通用化多径干扰的相关联的深度值。例如,其中考虑飞行时间相机和表面之间的三个或更多个可能的光线路径。从查找表316中读取的深度值312在与图像中的像素的位置对应的位置处被存储在深度图314中。针对图像的多个像素重复图3的处理,使得深度图进行填充。使用并行计算单元可以并行地实施图3的处理,以便加快深度图314的计算。然而,这不是必须的。例如,使用标准的CPU,对于包括超过200,000个像素的图像而言,已经发现图3的处理每帧耗时少于30毫秒。[0036]得到的深度图314的深度值包括比以前以一种非常有效的方式得到更为精确的可能深度值。不同于以前的方法那样在无需任何其他校正步骤的情况下从查找表读出精确的深度值。[0037]通过省略规范表示映射逻辑302,可以修改图3的处理。在这种情况下,因为查找表的尺寸相对于测量值的维数是成指数关系的,所以查找表的尺寸增加。因而增加了存储查找表的存储器需求。[0038]图4是计算并填充图3的查找表中的数据的方法的流程图。这个过程是使用软件和/或硬件用计算机来实现。它可以在查找表构造逻辑716(其可以在飞行时间系统处或者在另一计算设备处被提供)处被执行。[0039]针对查找表来选择索引的范围。例如,通过指定与测量值相对应的一个范围,所述测量值继而又对应于飞行时间相机要操作在其中的距离。在该范围内的多个索引被选择。可以根据诸如应用域、可用存储器资源、可用计算资源以及其他因素之类的因素来选择所选索引的数目以及在相应的距离值之间的间隔。针对每个所选索引执行图4的处理,来计算深度值并且可选地计算深度值的确定性,以便写入查找表。图4的示例使用规范表示。然而,如上面提及的,这不是必需的。[0040]对于单个索引400(来自该范围的所选索引),使用映射过程402将索引映射到4D离散测量值404(对应于单个像素或其它图像元素)。使用到模拟测量的分量的映射406,将4D离散测量值(包含幅度和相位值)映射到4D连续测量408。使用到6D的分量的映射410,将4D连续测量408映射到6D标准化测量412。6D标准化测量412被输入到通用多径计算414,通用多径计算414计算后向散射值416。[00411通用多径计算414包括测量函数,其描述了6D测量如何与飞行时间相机与被观察的场景中的表面之间的潜在无限数量的光线路径相关。后向散射值是指示每个潜在光线路径对在像素处观察到的幅度和相位值做出多大贡献的权重。后向散射值可以通过搜索可能的后向散射值的不同组合以找到最佳地描述该测量值的组合而被计算出。这个搜索可以使用诸如参照图5更详细地描述的贪婪方法(greedymethod)之类的优化过程或者启发式过程来完成。[0042]一旦最佳地描述了测量值的后向散射值的组合已被找到,则该过程计算单个深度值以写入到查找表。这是通过使用可以访问噪声模型424的深度计算组件418来完成。深度计算组件418可以计算深度值并且可选地计算深度值的确定性。在没有合理的深度值被计算出的情况下,可以返回一个差错。该过程将深度值或差错写入到对应于单个索引400的查找表字段422。该过程也可以将深度值的确定性写入到查找表。[0043]图5是更详细的图4的通用多径计算组件414的示意图。假定后向散射矢量与经由针对飞行时间系统的特定测量函数的测量相关,则该通用多径计算组件计算在后向散射矢量中最佳地描述给定测量值的值组合。这并不简单一一因为如上面参照图2所描述的那样,存在着产生多径干扰的潜在无限数量的光线路径,并且这些光线路径可能具有不同的权重。为了限制将被考虑的可能的组合数量,本文首次认为后向散射矢量是可压缩的,即,它具有冗余度。例如,后向散射矢量是稀疏的,因为在后向散射矢量中的许多值为零。这是因为许多可能的光线路径对飞行时间相机的给定像素处的多径干扰没有贡献。[0044]以前的方法都没有使用考虑通用多径的测量函数;即飞行时间系统和表面之间的潜在无限数量的光线路径。适当的测量函数的示例在本文档中稍后给出。[0045]在一些示例中,与通用多径计算单元414集成在一起的优化引擎500计算受到施加到测量函数,并且可选地考虑了噪声的飞行时间测量数据412的后向散射矢量的最小1^范数。这给出了后向散射矢量416。!^范数是矢量的绝对值的总和。任何合适的优化引擎都可以被使用。[0046]在一些示例中,贪婪方法被用来找到在后向散射矢量中的值的最佳组合。贪婪方法是这样的方法:其轮流针对单个后向散射矢量条目搜索最佳值,并且在不考虑可能影响当前分配的矢量的未来条目的情况下分配该值。例如,可以使用匹配追踪,其涉及找到多维数据到函数的过完备词典上的"最佳匹配"投射。Hilbert空间信号被表示为来自词典的函数的加权和(称为原子)。给定一个固定的词典,匹配追踪过程首先从词典中找到与所述信号具有最大内积的原子。该过程然后从信号中减去由于该原子引起的贡献,并重复该过程直到信号被令人满意地分解。在各种示例中,信号是针对给定像素的、来自飞行时间传感器的测量值;在词典中的原子是后向散射矢量的可能条目。匹配追踪过程找到最佳投射到测量矢量上的后向散射矢量条目的集合。[0047]现在给出考虑了通用多径的离散测量函数的示例。[0048]%〉印?'知[0049]其用文字可以被表达为:针对给定像素并且在调制频率k处、来自飞行时间相机的测量值V,等于针对仓(bin)的后向散射矢量条目&的n个距离仓(通过将来自飞行时间相机的距离的范围划分成仓所形成的离散距离范围)之和乘以一个函数。这个函数是仓到飞行时间相机的距离山与由飞行时间系统在调制频率k处发射出的光的半波长Ak的比率的复指数。[0050]离散测量函数可以以矢量矩阵的形式被写为¥=(|)尤,其中O是具有m列和n行的矩阵,并且x是具有n个条目的矢量。矢量x被称为后向散射。它针对每个距离仓都具有一个元素。在后向散射矢量中的条目与对应于矢量中的条目位置的桶装(bucketed)距离范围处的反射强度相关。矩阵?包含复数,其作为包括表示相位的复数的飞行时间相机输出测量数据。通过将v的实数部分堆叠在复数部分的顶部上并且将2m维结果表示为V,从而将复数转换为实数。对于〇同样这样做,生成一个2mXn的实矩阵,给出为:(cos(^il^JL)純k=_i](sin()如果灸=m十:U…V/Ak~m[0052]以这种方式,离散测量函数可被写为1;=<&%,其中,数量是实数。[0053]在本文中,通过认为后向散射矢量是非负和可压缩的(具有冗余度),可以通过计算下面的最小值来找到最佳地解释来自飞行时间传感器的给定测量值的后向散射矢量X:[0054]mino。||x|11使得满足17=少尤[0055]其可以用文字被表达为:找到具有最小U范数(其为非负的)的后向散射矢量,其中,后向散射矢量根据测量函数解释来自飞行时间系统的测量值。"范数是后向散射矢量的绝对值的总和。这个过程试图找到产生测量矢量V的最稀疏后向散射矢量X。[0056]上面的最小化运算可以被变换成下面的线性程序:[0057]minxs;()lTx使得满足17=屯尤(以下被称为等式1)[0058]其可以用文字被表达为:找到1的矢量与后向散射矢量的内积的最小值,其中该后向散射矢量是非负的,并且后向散射矢量根据测量函数产生测量矢量V。[0059]在一些示例中,通过将噪声项包含在测量函数中来考虑测量过程中的噪声。在考虑了噪声的测量函数情况下,优化或贪婪方法随后被用于找到产生测量值的最稀疏后向散射矢量。例如,噪声可以被取为具有零均值和已知协方差矩阵C的高斯噪声。这只是一个示例,也可以使用其它分布来表不噪声。[0060]在一个示例中,如下通过将Li优化修改成为具有L2约束的Li优化来考虑噪声:[0061]minxs;o||x|11使得满足(<}>x_v)TCHx_v)《e21|v|12(在本文中被称为等式2),其中符号是控制噪声量的参数。这可以利用通用凸编程求解器来求解。[0062]在另一示例中,如下通过将U优化修改成为具有U约束的1^优化来考虑噪声:[0063]minxs;o||x|11使得满足||C-1/2(巾x-v)|11<e||v||工[0064]上面的表达式可以被写成下面的线性程序:[0065]minxs;()lTx使得满足Ax《b[0066]其中,A=Q2mC-V2〇,以及b=Q2mC-V2v+e||v||d,Q是特定的常数矩阵。[0067]以上所描述的用于计算后向散射的方法并不仅仅限于基于相位调制的飞行时间深度相机。相反,它可以适用于基于其他原理的飞行时间深度相机。一个示例是这样的飞行时间深度相机:该相机的测量基于发射光的脉冲,其在它们的返回上被各种快门捕获。每个快门将具有特性简档,其指示在它打开(并且因此接收光)期间的持续时间;并且在整个持续时间期间,它打开的程度,这随时间而变化。相机通通常将配备有多个这样的快门,每一个具有不同的简档。[0068]在这种场合下,仍然有可能制定计算以前面段落中所描述的方式的后向散射的问题。应该理解的是,矩阵?和矢量v将具有与它们基于相位调制而针对飞行时间相机所做的相当不同的形式。然而,用于从测量v中提取后向散射x的技术将是相同的。[0069]在图5中后向散射矢量以具有沿x轴的深度和在y轴上的后向散射矢量条目的幅度的图形形式504被示出。在这个示例中,只有三个后向散射矢量条目(也被称为后向散射值)是非零的并且这些由垂直箭头示出。[0070]如上面参照图4所解释的那样,深度计算组件418计算来自后向散射值416的深度值420。现在参照图6来解释这一内容。[0071]在一个示例中,后向散射值416可以被表示为曲线图504。在一些示例中,深度计算组件418选择600后向散射矢量的第一非零条目,并使用这一条目来计算深度值。即,对应于后向散射矢量的这个条目的距离仓被假设是在其中表面提高所测量的光的距离范围。它被用来计算从飞行时间相机到表面的距离。这给出了深度值602。后向散射矢量的第一非零条目对应于对在相关像素处的信号做出贡献的最短光线路径。这是因为在后向散射矢量中的条目按照距离仓的顺序来排序。[0072]在一些示例中,深度计算组件418考虑噪声模型424。参考图6,深度计算组件可以使用噪声模型来计算604后向散射矢量的条目是噪声结果的概率。阈值可以被应用606以滤除其中很可能是由于噪声引起的后向散射矢量的条目。在后向散射矢量的剩余的非零条目是由于噪声引起的概率的基础上,深度计算组件可以选择608后向散射矢量的剩余的非零条目之一。例如,最不可能是由于噪声引起的条目可以被选择。在一些示例中,如果所有的非零条目很可能都是由于噪声引起,则可以返回差错。例如,该像素被宣布无效。[0073]可以使用图6的处理的组合。例如,在如下两者的基础上找到后向散射矢量条目:它的相应距离;和在概率的基础上,矢量条目不是由于噪声引起。该距离为从飞行时间系统到场景中的表面。[0074]现在给出关于可以被使用在上面参考图3和图4描述的示例中的示例规范表示的更多细节。[0075]由如下定义一个mXm的复合矩阵Fs,a「n-2mA/[0076]n!la沒(鉸[0077]其中,A€E;S>0是任何正实数标量;diag()表示在对角线上具有指定元素的对角线矩阵。适用于测量矢量v的示例规范变换具有如下形式:[0078]C(v;s,A)=Fs,av[0079]这被扩展到矩阵rECmxl因为c(r;s,a)=Fs,Ar。下面的语句可以被证明,并且被用来导出在上面参照图3和图4所描述的方法中使用的降维过程。[0080]语句1:令?是无噪声(上述等式1)的M尤化的解,并且令<4是用C(v;s,A)取代V和用C(〇;s,A)取代O的(上述等式1)的解。那么=[0081]语句2:令f是具有协方差C=〇2^L2约束(上述等式2)的"噪声"1^尤化的解,并且令是用C(v;s,A)取代v和用C(〇;s,A)取代0)的(上述等式2)的解。那么:<A=f〇[0082]语句1和语句2的含义是:可以根据对于s和A的任意值的规范变换C(?;s,A)来自由地变换v和〇,并且仍然得到同样的后向散射解。这些语句的幂来自于如下事实:矩阵〇在规范变换下并没有改变多少。看到这一点,假设〇〇〇是具有无限列数的矩阵,其中第j列之如句/ZnMi/通常被给出为|e进一步,我们令山=j(即1厘米间距),并令j为从-〇〇到〇〇。在这种情况下,很容易看出对于任何AeN,C(0〇〇;s,A)〇C0^。[0083]这意味着,如果使用无限尺寸的矩阵②^解决本文所描述的优化,则根据C(v;s,来变换并单独留下⑦^是可能的。这是非常强大的,因为它允许将变换成为特定的规范表示,其使得无需更改〇就能够降维。当然,在实践中,〇不具有无限列数。这通过简单的手段得到解决,并且很快将被描述的那样。[0084]在继续之前,请注意如果噪声协方差矩阵与特征(identity)不成正比,则不以这种方式来使用规范变换,对于具有Li约束的U的优化也不使用规范变换。然而,由于这些约束的"中心"由规范变换来保存(其中,中心为{x:(i)X=V})的这一事实,所以变换后的约束仍然是合理的,即使它们稍有不同。[0085]规范表示从规范变换中通过s和A的特定选择来导出。令ke{1,...,m]是特定频率索引;那么的规范表示P(k)(v)由下式给出,[0086]P(k)(v)=C(v;s=||v||_1,A=Ak(Zvk/23i))[0087]其中Zvk表示Vk的相位,取值位于[0,2jt)。很容易看出P(k)具有以下属性:[0088]规范表示的属性:p(k)(v)的第k个元素是实数,即,具有0相位。而且,P(k)(v)的第k个元素可以通过产.如)(〇|Y々来从P(k)(v)的其他元素中找到。[0089]换句话说,在该规范表示中,元素之一是冗余的,因为它完全是由其他元素来确定。因此,可以在不丢失信息的情况下移除这个元素。当然,分量是复数,意味着我们已删除了两个真实的维度,从而实现了从2m到2m-2的降维。[0090]可以通过在剩余的2m-2维度上进行离散来在剩余的2m-2维上构建查找表。假设可能的距离范围是Dmin到Dmax,例如这些分别取20cm和450cm的值。然而,也可以使用其它值。注意:A可以取的最小值为〇,而最大值是Ak,在调制频率k处发射出的光的波长的。因此,在规范变换后,可能的距离现在可以落在Dmin-AdPDmax之间。因此,矩阵〇现在扩大到具有对应于EWn-Ak和EWX之间的距离的列。[0091]为了选择k在上述规范表示中的值,一个选择是将上述范围保持尽可能地小,并且因此选择对应于最小半波长Ak的k。然而,也可以使用其它值的k。[0092]在各种实施例中,在深度图计算逻辑104处的方法包括:在处理器处接收描绘场景中的表面的飞行时间深度相机幅度和相位测量,该测量以飞行时间相机的帧速率被接收;从该测量中计算查找表的索引;使用索引来从该查找表中读取校正的深度值,所述校正的值是已被计算出的用以减少通用多径干扰影响的从相机到表面的深度;以及使用该校正的深度值来以等于或低于飞行时间相机的帧速率在一个时间形成深度图。[0093]图7是相位调制飞行时间深度相机的示意图。相位调制飞行时间深度相机700可以包括发射的光源702。在一个不例中,发射的光源是一个非相干光源。在另一不例中,发射的光源是相干光源。合适的光源的示例是近红外激光器或发光二极管(LED),但是也可以使用其他合适的光源。所发射的光可以在一个或多个调制频率上进行调制。在一个示例中,调制频率可以是在kHz-GHz范围中的RF频率,例如,调制频率可以是在MHz范围内。[0094]相位调制飞行时间深度相机可以进一步包括接收从场景内的对象反射的光线的图像传感器704。图像传感器704可以包括CCD传感器,CMOS传感器,例如光子混合器设备(PMD)传感器或者其它可以被布置来检测从相机范围内的对象、人或其他实体的表面反射的光的适当传感器。[0095]相机还可以包括光学系统706,其被布置来收集和聚焦从环境到图像传感器704上的光(环境光和由源702发射以及反射的光)。在一个示例中,光学系统可以包括光学带通滤波器,其可以使得仅仅波长与光源相同的光被传感器接收。光学带通滤波器的使用可以有助于抑制背景光。相机还可以包括驱动电子装置708,其例如控制光源和图像传感器二者,以使得进行高度精确的相位差测量。[0096]在一个示例中,相机可以包括计算逻辑710。在一个实施例中,计算逻辑可被布置来参照图4、图5和图6中的一个或多个以执行本文中所描述的方法。在一个示例中,计算查找表的值的所述方法可以作为相机的测试和校准期间的一次性处理而被执行。[0097]计算逻辑可以进一步包括集成的深度图计算逻辑712,可选的查找表构建逻辑716和存储在存储器中的查找表714。在一个示例中,深度图计算逻辑712可被布置来根据从光源发射的光和在接收器处接收到的光之间的相位差别从而估计对象的距离。在不同的示例中,所接收的光经历了至少两个路径反射例如多径反射。[0098]查找表714可以存储测量到的幅度和相位与如上所述的校正的深度值之间的关联(换算成单个赋值的索引)。[0099]在一个示例中,查找表构建逻辑716可以被用来如上文参照图4所描述的那样填充查找表714。然而,在相机处实现查找表构建逻辑716不是必需的。[0100]在其它示例中,计算逻辑710可以被安置在相机之外的另一设备上,例如游戏系统,个人计算机,移动设备或其他计算设备。[0101]可替代地或者另外地,计算逻辑710的一个或多个组件的功能可以至少部分地由一个或多个硬件逻辑组件来执行。例如但不限于,可以使用的示例性类型的硬件逻辑元件包括:现场可编程门阵列(FPGA),程序专用集成电路(ASIC),程序专用标准产品(ASSP),片上系统的系统(S0C),复杂可编程逻辑器件(CPLD),图形处理单元(GPU)。[0102]图8示出了可以被实现为任何形式的计算和/或电子设备的示例性的基于计算的设备800的各个组件,并且其中,可以实现本文所描述的任何方法的实施例。[0103]基于计算的设备800包括一个或多个处理器802,其可以是微处理器、控制器或用于处理计算机可执行指令以控制设备操作从而来完成如下任何操作的任何其它适当类型的处理器:计算通用多径校正深度值并将那些值存储在查找表中,从飞行时间测量值的经验性时间中计算精确的深度测量。在例如使用片上系统架构的一些示例中,处理器802可以包括一个或多个固定函数块(也称为加速器),其使用硬件(而不是软件或固件)来实现深度计算或查找表创建的方法的一部分。例如,用于计算深度图的计算逻辑可以用硬件来实现。包括操作系统804的平台软件或任何其它适当的平台软件可以在基于计算的设备处被提供以使得能够在设备上执行应用软件806。在一个示例中,基于计算的设备800还可以包括计算逻辑808。计算逻辑808还可以包括集成的深度图计算逻辑810,以及存储的深度校正查找表812,该表可以被布置来如上所述参照图3来操作。在一个示例中,深度图计算逻辑810可以被布置来从光源发射的光和接收器处接收到的光之间的相位差中估计对象的距离。在各种示例中,所接收的光经历了通用多径反射,除了没有干扰的光线路径之外还涉及两个或更多的光线路径。在一些示例中,计算逻辑808被布置来计算用于如上所述参考图4对查找表进行填充的精确深度值。[0104]计算机可执行指令可以使用基于计算的设备800能够访问的任意计算机可读介质来提供。计算机可读介质可以包括例如诸如存储器816之类的计算机存储介质和通信介质。诸如存储器816之类的计算机存储介质包括以用于存储诸如计算机可读指令、数据结构、程序模块或其它数据的信息的任意方法或技术实现的易失性和非易失性的、可移除的和非可移除的介质。计算机存储介质包括但不限于1^11、如114?1?0114£?1?011、闪速存储器或其它存储器技术、CD-ROM、数字多功能盘(DVD)或其它光学存储设备、磁盒、磁带、磁盘存储或其它磁存储设备,或能够用于存储信息以便由计算设备访问的任意其它非传输介质。相反,通信介质可以具体实施计算机可读指令、数据结构、程序模块或者调制的数据信号中的其它数据,诸如载波或其它传输机制。如本文定义的,计算机存储介质不包括通信介质。如在此定义,计算机存储介质不应被解释为传播信号本身。传播信号可以存在于计算机存储介质中,但是传播信号本身不是计算机存储介质的示例。虽然计算机存储介质(存储器816)被示出为位于基于计算的设备800内,但是将意识到的是,存储器可以远程地分布或定位且经由网络或其它通信链路(例如,使用通信接口808)来访问。[0105]基于计算的设备800还包括输入/输出控制器816,其被布置来将显示信息输出到显示设备824,该显示设备824可以与基于计算的设备800分离或集成。显示信息可以提供图形用户接口。输入/输出控制器820还被布置来接收和处理来自一个或多个设备的输入,所述设备诸如用户输入设备822(例如,鼠标、键盘、相机、麦克风或其它传感器)。在一些示例中,用户输入设备822可以检测语音输入、用户姿势或其它用户动作并且可以提供自然用户接口(NUI)。该用户输入可用于生成如上所述的深度图。在实施例中,如果显示设备824是触摸敏感显示设备,则其还可以充当用户输入设备822。输入/输出控制器820还可以输出数据给除了显示设备之外的设备,例如,本地连接的打印设备(图8中未示出)。[0106]输入/输出控制器820、显示设备824和用户输入设备822的任何设备可以包括NUI技术,其使用户能够以自然的方式与基于计算的设备交互,免于诸如鼠标、键盘、远程控件等输入设备强加的人工约束。可以提供的NUI技术的示例包括但不限于那些依赖于以下各项的技术:语音和/或语言识别、触摸和/或指示笔识别(触摸敏感显示器)、屏幕上以及邻近于屏幕的姿势识别、悬浮手势、头部和眼镜跟踪、语音和语言、视觉、触摸、姿势和机器智能。可以使用的NUI技术的其它示例包括意图和目标理解系统、使用深度相机(诸如立体相机系统、红外相机系统、RGB相机系统以及这些的组合)的运动姿势检测系统、使用加速度计/陀螺仪的运动姿势检测、面部识别、3D显示、头、眼和注视跟踪、沉浸式增强现实和虚拟现实系统以及利用电场传感电极(EEG和相关方法)来感测脑活动的技术。[0107]术语"计算机"或"基于计算的设备"在本文中用于指代具有处理能力而使得它能够执行指令的任意设备。本领域技术人员将认识到,这些处理能力合并到许多不同的设备中并且因此术语"计算机"或"基于计算的设备"各自包括PC、服务器、移动电话(包含智能手机)、平板计算机、机顶盒、媒体播放器、游戏控制台、个人数字助理和许多其它设备。[0108]本文所描述的方法可以由有形存储介质上的机器可读形式的软件来执行,例如是包含计算机程序代码单元的计算机程序的形式,当程序在计算机上运行并且其中计算机程序可以具体实施在计算机可读介质上时,计算机程序代码单元适于执行本文所述的任何方法的全部步骤。有形存储介质的示例包括计算机存储设备,计算机存储设备包括计算机可读介质,诸如盘、拇指驱动器、存储器等,并且不包括传播信号。传播信号可以存在于有形存储介质中,但是传播信号本身不是有形存储介质的示例。软件能够适于在并行处理器或串行处理器上执行,使得方法步骤可以以任何适当的顺序或者同时地执行。[0109]这确认了软件可以是有价值的、可单独交易的商品。其旨在涵盖在"哑设备(dump)"或标准硬件上运行或者控制"哑设备"或标准硬件以执行期望的功能的软件。还旨在涵盖"描述"或定义了硬件的配置的软件,诸如HDL(硬件描述语言)软件,其被用于设计硅芯片,或者用于配置通用可编程芯片,以执行期望的功能。[0110]本领域技术人员将认识到,用于存储程序指令的存储设备能够分布在网络上。例如,远程计算机可以存储被描述为软件的进程的示例。本地或终端计算机可以访问远程计算机并且下载软件的一部分或全部以运行程序。可替代地,本地计算机可以根据需要来下载软件块,或者在本地终端处执行一些软件指令,并且在远程计算机(或计算机网络)处执行一些软件指令。本领域技术人员还将认识到,通过使用本领域技术人员公知的常规技术,软件指令的全部或部分可以由诸如DSP、可编程逻辑阵列等专用电路来执行。[0111]可以在不失去所追求的效果的情况下扩展或改变本文给出的任何范围或设备值,这对本领域技术人员来说将是显而易见的。[0112]虽然已经以特定于结构特征和/或方法行为的语言描述了主题,但是应当理解的是,在随附权利要求中定义的主题不必局限于上述的具体特征或行为。相反,上述的具体特征和行为被公开为用于实现权利要求的示例性形式。[0113]将理解的是,上述的益处和优点可以涉及一个实施例或者可以涉及若干实施例。实施例不限于解决所述问题中的任意问题或全部问题的那些实施例或者具有所述益处和优点中的任意益处和优点或全部益处和优点的那些实施例。将进一步理解的是,对'一个'项目的引用是指那些项目中的一个或多个。[0114]本文所描述的方法的步骤可以以任意适当的顺序来执行,或者适当地同时执行。另外,可以在不偏离本文所述主题的精神和范围的情况下将单个块从任意方法中删除。可以在不丧失所追求的效果的情况下将上述示例的任意示例的方面与所述其它示例中的任意示例的方面组合以形成进一步的示例。[0115]术语"包括"在本文用于意指包括方法块或所识别的元素,但是这种块或元素不包括排他性列表,并且方法或装置可以包含额外的块或元素。[0116]将理解的是,以上描述仅仅通过示例的方式给出,本领域技术人员可以对其做出各种修改。上面的说明书、示例和数据提供了对示例性实施例的结构和使用的完整描述。虽然上文中按照一定程度的特定性或者参考一个或多个单个的实施例来描述了各个实施例,但本领域技术人员可以在不偏离该说明书的精神或范围的情况下对所公开的实施例进行若干改动。【主权项】1.一种计算机实现的方法,包括:在处理器处接收描绘场景中的表面的飞行时间深度相机的幅度和相位测量;根据所述测量计算查找表的索引;使用所述索引来从所述查找表中读取校正的深度值,校正值是通过考虑所述相机和所述场景中的表面之间的至少三个可能光线路径而已经被计算的从相机到所述表面的深度。2.根据权利要求1所述的方法,包括:针对由所述飞行时间深度相机所捕获的图像的多个像素而重复根据权利要求1所述的过程,以在少于30毫秒的时间中获得多径校正深度图。3.根据权利要求1所述的方法,其中所述查找表维度数目低于接收到的所述飞行时间深度相机的幅度和相位测量的维度数目。4.根据权利要求1所述的方法,包括:至少通过将所述测量分配给多个仓中的一个或多个仓而根据所述测量计算所述索引,其中一个仓是值的一个特定范围。5.根据权利要求1所述的方法,包括:通过将所述测量映射到较低维度的形式而根据所述测量计算所述索引。6.根据权利要求1所述的方法,所述校正值通过搜索反向散射矢量的值而已经被计算,其中所述反向散射矢量的值是权重,所述权重指示与多个不同距离仓相关联的光对在像素处观察到的幅度和相位值做出了多大贡献,所述距离仓通过将与所述飞行时间相机的距离范围划分为间隔而形成。7.根据权利要求6所述的方法,所述校正值通过搜索总和为最小绝对量的所述反向散射矢量的值而已经被计算。8.根据权利要求6所述的方法,所述校正值通过考虑所述幅度和相位值中的噪声而已经被计算。9.根据权利要求6所述的方法,其中所述搜索使用贪婪算法而被执行,所述贪婪算法分配所述反向散射矢量的值而不考虑可能影响所分配所述值的所述矢量的未来条目。10.-种深度图计算装置,包括:处理器,被布置以接收描绘场景中的表面的飞行时间深度相机的幅度和相位测量;深度图计算逻辑,被布置以根据所述测量计算查找表的索引;所述深度图计算逻辑被布置以使用所述索引从查找表中读取校正的深度值,校正值是通过考虑所述相机和所述场景中的表面之间的至少三个可能光线路径而已经被计算的从相机到所述表面的深度。【文档编号】G01S17/89GK105899969SQ201480072366【公开日】2016年8月24日【申请日】2014年12月12日【发明人】D·弗里德曼,E·克里普卡,Y·斯莫林,I·雷克特,M·施密特【申请人】微软技术许可有限责任公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1