用于深度图的低等待时间变形的系统、方法和计算机程序产品的制作方法

文档序号:7792156阅读:204来源:国知局
用于深度图的低等待时间变形的系统、方法和计算机程序产品的制作方法
【专利摘要】方法、系统和计算机程序产品以将深度图变形成与图像对齐,其中负责图像的图像传感器(例如,相机)以及负责原始的深度图的深度传感器在空间上是分离的。在实施例中,在原始的深度图已经完成读取之前,可以开始深度图的变形。此外,在已经完成生成整个变形的深度图之前,可以使应用可以利用来自变形的深度图的数据。此类方法和系统可以改进整个过程的速度,和/或降低存储器的需求。
【专利说明】用于深度图的低等待时间变形的系统、方法和计算机程序产品

【技术领域】
[0001 ] 本文中描述的实施例一般涉及图像处理。

【背景技术】
[0002]深度图和图像一起可以构成许多应用的主输入,诸如视频监控、视频游戏(例如,微软的体感器(Kinect))、手势解释和从非仪表化的用户不显眼地获取输入的其它应用。采用深度图和图像作为输入的其它有关应用可以包含:分析传感器附近的3D环境的那些应用,例如用于机器人或车辆的自主控制或安全监测系统。
[0003]在一些情况下,就深度图是或被制作地好像是由被放置在与产生图像的成像传感器相同的物理位置处的深度传感器产生的意义而言,如果深度图和图像被配准或对齐,则此类应用的设计可能很容易。当是这种情况时,深度图的像素可能与图像的像素对应,以及反之亦然。
[0004]然而,在实际中,深度图和图像常常由不同的传感器产生,以及因此可能从不同的物理位置来成像。幸运地,能够以使得深度图或图像几乎好像是从不同的投影中心看到的方式来变形深度图或图像。

【专利附图】

【附图说明】
[0005]图1说明了深度图变形过程的实施例的结果。
[0006]图2是说明根据实施例的深度图变形过程的流程图。
[0007]图3说明根据实施例的深度图变形过程的时间线。
[0008]图4是说明根据实施例的减少等待时间的深度图变形的流程图。
[0009]图5说明根据实施例的减少等待时间的深度图变形过程的时间线。
[0010]图6是说明根据实施例的处理遮挡的减少等待时间的深度图变形过程的流程图。
[0011]图7是说明根据实施例的矫正稀疏性条件的减少等待时间的深度图变形过程的流程图。
[0012]图8说明了根据实施例的稀疏性矫正。
[0013]图9是说明根据实施例的当应用可以利用变形的深度图的数据时的流程图。
[0014]图10是说明根据实施例的减少等待时间的深度图变形过程的时间线。
[0015]图11是说明根据实施例的系统的示例的框图,在该系统中可以实现减少等待时间的深度图变形。
[0016]图12是说明实施例的软件或固件实施例的框图。
[0017]图13说明了可以实现实施例的信息系统。
[0018]图14说明了可以实现实施例的移动信息设备。
[0019]在附图中,参考标记中的最左边的数字(多个)标识参考标记首次出现的附图。

【具体实施方式】
[0020]现在参照附图来描述实施例,其中相同的参考标记指示同一元素或功能上类似的元素。虽然论述了特定的配置和布置,但是应当理解的是,这样做仅是出于说明性的目的。相关领域的技术人员将认识到的是,在不背离本说明书的范围的情况下,能够使用其它配置和布置。对于相关领域的技术人员来说将明显的是,除了本文中描述的系统和应用之外,还能够在各种各样的其它系统和应用中使用这些配置和布置。
[0021]本文中公开的是方法、系统和计算机程序产品以将深度图变形成与图像对齐,其中负责图像的图像传感器(例如,相机)以及负责原始的深度图的深度传感器在空间上是分离的。在实施例中,在原始的深度图已经完全读取之前,可以启动深度图的变形。此外,在已经完全生成整个变形的深度图之前,可以使应用可以利用来自变形的深度图的数据。此类方法和系统可以改进整个过程的速度,和/或降低存储器的需求。
[0022]变形强度图以匹配深度图的视角可能比将深度图映射到图像的视角显著地困难:如果在所有像素处有可靠的深度图的值,则此类变形将产生图像,该图像好像是从与深度图相同的物理位置产生的。然而,对于许多深度传感器,可能有不具有可靠的测量的像素位置。当三维(3D)场景信息不能利用时,可以基于从其它位置确定的深度的估计来进行强度像素的变形。例如,常见的估计技术可以是假设该区域是平面的,以及从附近或甚至全局图像值来得出3D平面的参数。当估计不对应于真实的3D结构时,它们可能导致变形图像中的误差或人工痕迹,其中在变形后,对象可能表现出被撕裂或伸展。相比之下,用于将深度图变形成图像的方法和系统可以产生改进的结果,因为只有具有已知3D位置的值可以被变形,因此输出值可以表现为维持来自原始的未变形视图的它们的形状和大小。另一个优点是,将深度图变形成强度图可能不会造成强度图中的人为痕迹,因为没有改变强度图。
[0023]在图1中说明了根据实施例的变形深度图的结果。在(a)处示出了原始的深度图,以及在(b)处示出了使用附近的相机获取的图像。在(C)处示出了直接在图像(b)上覆盖深度图(a)的结果。注意的是,深度图和图像未对齐。在(d)处示出了在图像(b)上的变形版本的深度图(a)的覆盖。注意的是,有较小的不重合以及其它小的人为痕迹,但是深度图和图像相对较好地对齐。
[0024]变形深度图深度传感器
深度传感器可以产生在它的视野内的空间的物理测量。它可以周期地产生深度图,或深度测量的集合。每个测量可以指示沿着物理线到这个线上的第一物理占用点的距离。深度传感器的不例可以包含但不限于:立体相机、飞行时间激光扫描仪、结构光3D传感器、雷达、激光雷达和声纳传感器。深度图可以被描述为测量的集合(x(n),y(n), z(n)),1 (η ( N,其中N是将被映射的像素的数量。
[0025]测量可以被认为在双索引数组(x(i,j),y(i, j), z(i,j))中,I彡i彡W以及I ^ j ^ H,其中W和H表示图的宽度和高度,对(i,j)可以定义2D像素位置,以及z (i,j)可以定义在这个位置处的像素的深度。
[0026]可以从深度传感器输出这个2D数组,作为光栅顺序中的像素的测量流,在左上角的像素处开始数据输出,并跨越顶行从左到右进行,然后返回到下一行的开始,等等,直达到达右下角像素。
[0027]可以沿着发源于被称为传感器的投影中心的单个3D点的有规律地间隔开的射线来进行测量。可以选择坐标系,使得投影中心具有坐标(0,0,0)。在这种情况下,测量可以具有特定的形式(x(i, j), y(i, j), z (i, j)) = z (i, j).(i/gu - u。,j/gv - v。,I),其中(Utl, v0)可以被称为深度图的主点,以及gu和@7是深度图的焦距(以像素为单位)。在这种情况下,深度图可以由值W,H, U0, V。,gu, gv和测量z(i,j) ,1彡i彡W和I彡j ( H,来表示。在一些传感器中,深度测量可以由被称为视差(d)的量来表示,视差(d)与深度的倒数成比例,d(i,j) = k / z(i,j),其中k是已知的常量。
[0028]相机
相机可以在它的视野内产生空间的辐射测量。它可以周期性地产生图像或这些测量的集合。每个辐射测量可以提供关于沿着物理线(在测量时从该线上的点向着相机)行进的电磁波的强度、频率和/或极化的一些信息。例如,彩色相机可以产生沿着光线行进的可见光的各自的红、绿和蓝成分的测量R、G和B。
[0029]相机可以以光栅顺序产生数据,在左上角的像素处开始数据输出,并跨越顶行从左到右进行,然后返回到下一行的开始,等等,直达到达右下角像素。光栅顺序中的这个像素序列可以被称为像素的流或像素流。
[0030]I(i, j)可以指在像素位置(i,j)处的相机测量。能够高效地计算3D场景点(X,y,z)投影的图像位置(u, V)。在透视相机的情况下,例如,具有坐标(X,y, z) 3D点(在中心位于主点以及具有与图像平面的X轴和Y轴平行的X轴和Y轴的参考系中)可以投影到图像位置(U,V) = (x/z, y/z) O (u, V)可以被称为(x, y, z)的投影。
[0031]对应于(u,V)的像素位置(i, j)可以由(i, j) = (fu(u + u0), fv(v+vQ))给出,其中fu和匕是相机的X焦距和Y焦距,以及(Utl, V0)是相机的主点。在实施例中,在通过索引对来近似真值对(fu(U + U0), f v (v+v0))时,可以发生一些取整。
[0032]在这个文档中注意的是,出于说明的目的,描述了透视相机,但是本文中的描述可以应用于能够容易地计算3D点的2D投影的任何相机,诸如反射折射相机。
[0033]变形操作
在实施例中,变形操作可以将由在一个位置处的传感器产生的深度图变换成与由在不同位置(T)处观看相同场景的传感器产生的深度图相似的深度图。对于在具有测量的原始的深度图中的每个像素,可以遵从类似的流程。首先,由像素表示的世界点的3D坐标可以从深度图中的行索引和列索引、该像素的深度测量以及传感器的参数(如果需要)(例如,主点和焦距)来计算。接着,可以计算中心位于T的坐标系中的相同3D点的坐标。然后,可以计算在新的深度图中的变换的3D点的投影的2D坐标。然后,可以在新的深度图中适当的行索引和列索引处存储新的坐标系中的深度值。以更精确的记法,传感器位于(0,0,0),以及原始的深度图可以被变形到如从位于T = (Tx, Ty, Tz)的传感器的视角看到的深度图。变换的深度值可以被写成坐标(xT(i’,j’),yT(i’,j’),zT(i’,j’))的一部分,深度为 ζτ(?’,j’),i’ 在 1,..W’ 中以及 j’ 在 1,..Η’ 中。
[0034]在图2中说明了变形过程的实施例。可以对于具有深度z(i,j)的原始的深度图中的每个像素来执行这个过程。在210,可以从原始的深度图读取3D点(x(i,j),y(i, j),z(i,j))。在220,可以计算原点为T的坐标系中的对应坐标,(x’,f, z’)= (x(i,j)-Tx,y(i,j)-Ty,z(i,j)_Tz)。在230,可以计算变形的深度图像中的投影的位置。在传感器具有单个投影中心以及具有与深度传感器相同的取向的情况下,这可以被计算为(U’,V’)=(x’/z’,y’/z’)。在240,在变形的深度图中对应于(u’,V’)的索引(i’,j’)可以被计算为(i,,j’)= (f’>,+ u’Q),f’v(V’+V’Q))。在 250,如果 I 彡 i’ 彡 W’ 以及I彡j’彡H’JlJZT(i’,j’)可以被设置为z’。
[0035]在以上变形过程中描述的计算是出于说明的目的而给出的,以及可以由其它类似的计算来替换。例如,在深度传感器和相机类似于先前说明,但是具有不同的定向,跟3乘3旋转矩阵R相关的情况下,可以通过R.(x(i,j)_Tx, y(i,j)-Ty, z (i, j)-Tz)计算坐标(x’,y’,z’),其中”表示3乘3矩阵与三维向量的乘积。例如,在深度传感器和相机都具有唯一的投影中心以及具有相同的成像平面(物理的或校正的)的情况下,在视差空间中,能够放弃3D计算以及完全由更简单的计算来替换3D计算。
[0036]降低等待时间
从原始的深度图来构建变形的深度图
在常规的深度映射系统中,可以在开始变形过程前,完成原始的深度图的读取。一旦完成变形过程以及生成变形的深度图,则能够使应用可以利用变形的深度图中的数据。在以上方法中,在应用能够开始使用变形的深度图之前,可能需要等待处理整个原始的深度图。在图3中说明了这个过程。在310,可以将原始的深度图从深度传感器读取到存储器。在320,可以计算变形的深度图。在330,可以使应用可以利用变形的深度图。在原始的深度图的捕获的开始和变形进程开始的时刻之间的持续时间被示出为Twmp。在原始的深度图的捕获的开始和应用进程能够开始读取变形的深度图的时刻之间的持续时间被示出为TApp。
[0037]深度传感器可以以先后顺序产生它们的输出,以便能够从深度传感器直接读取原始的深度图。在实施例中,变形过程可以在正在产生原始的深度图时,或使用其它降低等待时间的方式,来读取原始的深度图。因此,在此类实施例中,可能不需要存储整个原始的深度图,因此降低了系统的存储器需求;与其它方式相比,变形过程可以更早地开始,以及从而更早地终止。
[0038]在实施例中,可以仅从原始的深度图的有界限的区域内的像素来计算变形的深度图中的像素的最终深度值。因此,一旦可以已经处理了原始的深度图的这个有界区域中的所有像素,则在变形的图像中的考虑的像素的值可能不会再被改变。因此,使用变形的深度图的应用可以在该时刻开始处理考虑的像素。因此,应用可以在完全计算变形的深度图之前,开始处理变形的深度图。根据实施例,以下给出有界区域的大小的计算的更详细的论述。
[0039]更准确地说,对于在变形的深度图中的任何像素η’,其中I < η’ < N’以及N’是变形的深度图的大小,在原始的深度图中有像素的集合Α(η’),其中这些像素可以影响η’的最终深度值ζ(η’)。也就是说,在这个集合A (η’)外的像素可能不会影响变形的深度图的像素η’的最终值。在本文中,这个集合可以被称为原始的深度图中考虑的像素η’的起源的界限区域。在实施例中,一旦已经处理了该有界区域中的所有像素,则可以输出变形的深度图的相关联像素η’。在一些情况下,不会同时处理原始的深度图的Α(η’)中的所有像素η。相反,可以以预定的顺序(诸如光栅顺序)来处理它们。对于原始的深度图的任何特定处理顺序而言以及对于变形的深度图的任何像素η’而言,有Α(η’ )中的“最后”像素I (η’),使得一旦已经处理了 1(η’),则已经处理了 Α(η’ )中的所有像素,以及从而可能不会由变形过程进一步修改变形的深度图的像素η’的最终值。
[0040]相反地,对于原始的深度图的任何像素η,在变形的深度图中有像素S(n)的集合,该集合S(n)由像素η’组成,使得η是可以影响η’处的变形的深度图的值(S卩l(n’)= η)的最后的像素。换句话说,S(n) = In’ I l(n’)=n}。
[0041]如以下将进一步详细论述的,可以基于描述深度传感器的真实3D方位和强度相机视图的3D方位之间的关系的转换、深度传感器的操作范围以及算法(诸如插值法和邻居填充)的其它参数来计算有界区域。可以在变形开始之前,计算对于任何输出的深度像素的有界区域。在变形操作期间的任何点处指示输出深度图中的什么像素是准备好的结果可以被存储在查询表中。如本文中使用的,词语“准备好”可以指变形的深度图中的像素或行的状态为已经完全被确定。
[0042]将这些结果存储在更大的聚合组(例如,通过行来聚合)中可能更加实用。在实施例中,可以创建具有H个条目的查询表,其中H是输入深度图中的行的数目。在每个条目处,这个表可以含有输出深度图的对应的行,该对应的行在完成处理给定输入行时将是准备好的。根据实施例,在图4中对这种情况进行了说明。在410,可以开始读取新的(至今未处理)原始的深度图。在420,可以做出关于是否已经处理了原始的深度图的所有的确定。如果没有,则在430,可以处理原始的深度图的下一个可以利用的像素。在440,可以做出关于是否已经到达输入行的末端的确定,以及如果没有,则过程可以在420处继续,或可替代地在430继续。如果到达输入行的末端,则在450,可以访问查询表以确定输出行是否准备好;然后任何完成的准备好的行可以被输出给应用和/或使应用可以利用,以及过程可以在420处继续。如果在420,确定已经完全地处理了原始的深度图,则可以终止变形过程,以及如果需要的话,可以开始下一个深度图的处理。
[0043]使用此类实施例,可以得到具有如在图5中示出的时间图的过程。这个图示出了重叠读取(510)、计算(520)和应用(530)过程如何可以减少处理图像花费的时间。在实施例中,只要计算了原始的深度图的第一像素(在这种情况下,Ttop可以接近于O)或此后不久就可以利用原始的深度图的第一像素。特别地,可以降低数据开始可以从深度传感器利用的时刻和应用可以开始处理变形的深度图的时刻之间的等待时间,因为在开始变形之前,原始的深度图的读取不需要完全完成。注意的是,在这个图中概念性地示出了读取过程510和变形计算520之间的重叠的量。在不同的实施例中,等待时间中减少的量可能变化。
[0044]以下将论述在变形计算520和应用530中的重叠。
[0045]考虑遮挡
在上述实施例中,变换的深度值可以被存储在输出的变形的深度图中。替代仅重写可能已经被存储在那个位置处的任何值,变化可以被引入(凭借该变化,可以首先读取新的深度值)以及用于在新的值更接近于相机(即,具有较小的深度值)时重写在输出的变形的深度图中的先前存在的值。在图6中说明了此类变形过程的实施例。在实施例中,这个过程类似于图2的过程,如此处描述的最后的元素被替换。如在图2中,可以对于具有深度测量的原始的深度图中的每个像素(i,j)来执行图6的过程。在610,可以从原始的深度图读取3D点(x(i,j),y(i,j),z(i,j))。在620,可以计算原点为T的坐标系中的对应坐标,(X,,y’,z’)= (x(i, j)-Tx, y(i,j)-Ty, z(i,j)_Tz)。在 630,可以计算在变形的深度图像中的投影的位置。在传感器具有单个投影中心的情况下,这可以被计算为(U’,V’)=(x’/z’,y’/z’)。在640,在变形的深度图中对应于(u’,V’)的索引(i’,j’)可以被计算为(i,,j,)= (f,U(u,+ U,Q), f,V(v,+v,o))。
[0046]在650,可以做出关于是否是I < i’ < W’以及I < j’ ( H’的确定。如果是,则在660,可以做出关于是否先前已经设置了深度测量^(1’,j’)的确定。如果是,则在670,可以做出关于是否是zT(i’,j’)> z’的确定。如果是,则在680,zT(i’,j’)被改变成值z’。如果在660,确定还没有设置zT(i’,j’),则在680,zT (i’,j’)被设置成值z’。注意的是,使用这个改变,所生成的深度图可以被视为用作Z-缓冲器(z-buffer)。
[0047]降低结果的深度图的稀疏性
在实施例中,使用目前为止描述的过程,可能没有完全地填充变形的深度图。这种情况能够出现是由于许多原因。可能没有被完全地填充原始的深度图。此外,变形可以使得原始的深度图的多个像素再现到新的深度图的单个像素中;由于视点改变,或仅由于在计算中的取整,所以这种情况能够发生。这可能让其它像素没有测量值。此外,可以设置变形的深度图的至多W*H个像素,以便,如果变形的深度图具有比原始的深度图更多的像素,则将不设置变形的深度图中的一些像素。
[0048]根据实施例,可以执行在变形的深度图中“洞”的填充,作为变形算法的一部分。以下描述填充此类洞的各种方法。
[0049]填充洞的一种方法可以涉及在映射像素被再现到深度图(如上所述)后,在它们被输出到接收应用之前,增加明确的填充步骤。输出被延迟,直到输出像素附近的小范围邻居被认为准备好。在实施例中,能够通过考虑周围的有效(即,没有丢失)深度值来填充不具有深度值的任何像素。有许多用于填充此类洞的方法,包含但不限于:重复有效的最近的邻居的值;基于若干最近的周围有效值来内插值(例如,假设平面表面),或基于最近的有效邻居的平均值、中位数或众数进行填充。在其它实施例中,填充过程可以估计场景中的可能的不连续,以及不包含跨越不连续的深度邻居。在这个步骤中,还可以执行噪声降低。例如,在各个方面在一段距离内由空深度像素包围的单个深度值可以被认为是噪声值并且被移除。
[0050]根据实施例,空洞填充的另一个方法可以临时地存储新的传感器坐标系中每个映射的像素的变形的位置和深度,而不是直接将它再现到新的深度图中。当已经计算了来自原始像素的周围的小范围邻居的像素的映射的坐标时,这些3D坐标可以用于定义多边形,以及被投影到新的深度图中。内插法可以用于再现由映射的多边形覆盖的输出像素值。例如,可以在输出深度图的大小大于原始图的情况下,使用这个方法。如下,更详细地描述这个方法。
[0051]在此类实施例中,可以存储映射的值z’(以及,如果需要,还有X’和y’)的邻居,以及变形的深度图中的真值的像素的位置(a’(i,j),b’(i,j))。出于注释的目的,x’,y’和z’是基于原始的深度图的像素(i,j)计算的各自值x’ (i, j), I,(i, j)和z’(i,j)。
[0052]在这个方法中,可以内插结果的的深度图中的值:在变形的深度图中的像素α’,j’)处的值可以从在围绕α’,j’)的邻居位置(u’ a,j),V’匕」))处的值0^’ a,j),I,(i,j),Z’(i,j))来内插。在实施例中,内插的邻居可以具有FxG像素的大小。
[0053]在图7中说明了这个方法的实施例。这个过程可以在原始的深度图中的像素上一行一行(或一列一列)的循环。在710,可以从原始的深度图读取3D点(x(i,j), y(i, j),z(i,j))。在720,可以计算原点为T的坐标系中的对应坐标,(x’,f, z’)= (x(i,j)-Tx,y(i,j)-Ty,z(i,j)_Tz)。在730,可以计算变形的深度图像中的投影的位置。在传感器具有单个投影中心的情况下,投影的位置可以被计算成(u’,V’)= (X’ /z’,y’ /z’)。在740,像素(a,(i,j),b,(i,j))可以被计算为(f,u(u,+u’。),f’v(v’+v’。))。在 750,如果i > F并且j > G,则在能够从像素位置(a’ (1-c, j-d), b’ (1-c, j-d))处(所有c在0和F之间,以及所有d在0和G之间)的值进行内插的每个位置(i’,j’ )处,可以计算内插值(xT(i, j), yT(i, j), zT(i, j) ο
[0054]图8说明了在F=G=2的情况下可以在750处发生的示例性内插。实数值像素位置(a’ (1-c, j-d), b’ (1-c, j-d))被示出为在多边形的拐角处的点,而值(i’,j’)(在该值处,能够确定内插值)被示出为在该多边形内部的点。从右下角开始以及顺时针移动,在多边形的拐角处的位置被示出为(a’ (i, j), b’(i,j)),(a’ (1-1, j), b’ (1-1, j)),(a,(1-1, j~l), b,(1-1, j~l))和(a,(i, j-1), b,(i, j-1))。
[0055]在各种实施例中,可以使用本领域的普通技术人员已知的任何适当的内插方法来实现这个过程。例如,使用F=G=I,能够使用最近邻居内插;使用F=G=2,能够使用双线性内插;使用F=G=4,能够使用双三次内插。如果值的一部分丢失,则不同的内插机制可以用于计算内插值。例如,使用F=G=2,如果一个值、两个值或三个值丢失,则仍然可以使用最近邻居内插找到值。
[0056]在实施例中,可能仅需要存储变形的深度图的值(X’ (i, j), y’ (i, j), z’ (i, j))和位置(u’ (i, j), v’(i,j))的G行(如果该深度图是一行一行扫描的)或F列(如果该深度图是一列一列扫描的)。
[0057]注意的是,在各种实施例中,可以结合用于处理变形的深度图中的遮挡的上述过程来使用降低稀疏性的上述方法。
[0058]确定变形的深度图的读取何时可以开始
如上所述,在实施例中,在已经由变形过程处理原始的深度图中的所有像素(i,j)之前,可以读取或以其它方式使得应用可以利用像素a’,j’)处的变形的深度图的值。构思是确定对于给定的变形的深度图像素a’,j’),在原始的深度图中可能影响变形算法的过程内的z’a’,j’)的值的像素的区域α(γ,j’)。可以由有界矩形[cmina’,j’),cmax(α’,j’)] X [Rminα’,j’),Rmaxα’,j’)]来表示这个区域,其中 Cmin 和 Cmax 可以表示该区域的列边界,以及Rmin和Rmax可以表示该确定的行边界。
[0059]为了确定区域A(i’,j’),注意的是,所有的深度传感器可以具有可能的测量z的有界范围。可以存在已知边界Zmin < Zfflax ( C?,使得在任何像素(i,j)处,Zfflin ( z(i,j) ( zmax。因此,在变形的深度图中的z’值也将由z’min = Zfflin -TjPz’max = Zfflax -Tz来约束。
[0060]在变形的深度图中的像素(i’,j’)可以对应于位于3D线段|z’(i’/f’x - u0’,j’ / f’ y - V。’,I) + T I z’ min彡z’彡z’ max }上的3D点。在原始的深度图中,在这个3D线段上的点的投影一般可以形成曲线。可以基于Zmin和Zmax来确定用于这个曲线的边界框。在深度传感器具有透视投影模式的情况下,这个曲线可以是由3D线段的极点(在z’=Z’min和Z’ = Zmax处的点)的投影限定的2D线段。可以由这个线段的极点来限定这个2D线段的紧边界框。
[0061]在实施例中,只要在变形的深度图的行j’中的所有像素准备好被读取时就开始读取该行j’常常是便利的:可以只要已经处理了原始的深度图中的行max{Rmax(i’,j’ )
I < i’ < W’},就开始读取行j’,凭借此进一步降低等待时间。根据实施例,在图9中说明了这种情况。在910,可以做出关于是否已经处理了在原始的深度图中的行max{Rmax(i’,j’)I I彡i’彡W’}的确定。如果是,则在930,可以读取行j’。如果否,则处理可以返回910。注意的是,变形过程可以继续贯穿所说明的操作,以便当监测到910中阐明的条件时,处理另外的像素。
[0062]当变形算法能够在有界的时间中来处理原始的深度图中的每个像素时,可能是便利的是,在由开始偏移(相对于变形算法的开始而取该开始偏移)限定的固定的时间表和读取像素的速度上来读取变形的深度图。如本领域的普通技术人员将知道的是,能够确定确保不过早地读取值的偏移和读取速度。
[0063]确定何时能够读取变形的深度图的示例
在实施例中,可以在深度传感器和相机彼此接近的情况下,来做出这种确定。在这个示例中,可以假设的是,距离Zmin是深度传感器和相机之间的距离的5倍或大于5倍,可以通过使当前的深度传感器和相机并列来得到这种情形。可以假设的是,深度传感器和相机指向同一方向。
[0064]在这种情况下,在无穷远处的点可以出现在相机的图像平面中以及在深度传感器的图像平面中的相同位置中,以便深度传感器和相机之间的最小视差是零。
[0065]约束深度图和图像之间的总视差可能是期望的。在这个相同的传感器配置中,以及假设用于两个传感器的45度的现实视野,则可以示出的是,深度传感器和相机之间的最大视差将是深度的图或图像的大小的至多四分之一。如果视野更大,如许多传感器的情况,则这个最大视差可以变得更小。
[0066]约束垂直视差可能也是期望的。如果,例如相机位于在深度传感器的左面或右面(如与上或下相对),则它们视图之间的垂直视差可以仅是它们视图之间的总视差的一部分,以及因此是非常有限的。可以假设的是,垂直视差小于图像的大小的八分之一。
[0067]另外,用于内插的额外填充可能是有利的。可以假设的是,一行一行地读出深度图。考虑到用于深度内插的G个像素(相对于图像,G可以小),可以得出的结论是,对于变形的深度图中的给定像素a’,j’),在原始的深度图中能够影响在a’,j’)中的变形的深度图的值的像素的集合可以在不高于原始的深度图的六分之一以及不宽于原始的深度图的四分之一的区域中。因此,一旦已经变形了原始的深度图的四分之一,就能够开始读出变形的深度图的第一像素。
[0068]出于说明的目的,在这个示例中使用的特定参数将示出的是,可以基于深度传感器和相机的相对位置以及它们的视野来确定何时开始读取深度图。原始的深度图的四分之一的图可以略微更大或更小,但是一般地可以基本上小于完整深度图的大小。特别地,如果使深度传感器和相机良好地对齐,则垂直视差可以较小,以及因此在变形的深度图中的像素可以与(在原始的深度图中)的像素(从该像素来计算深度图中的像素)几乎在相同的行上,以及可以进一步降低在能够开始读取输出深度图之前的等待时间。
[0069]可以基于变形处理每个像素的速度以及基于应用处理每个像素的速度,来确定能够读取出变形的深度图的速度。
[0070]示例实现方式的描述图10说明了根据实施例,以与图像对齐的方式来变形深度图的过程。如在1010处示出的,这个过程从时间t=0开始。在1020,可以开始从深度传感器进行读出。然后,在1030,过程可以等待,直到t= TWa,p。在该时间点,如在1040示出的,可以开始变形流程。此处,变形过程可以从第一存储器缓冲器进行读取,以及将生成的变形的深度图写入到第二存储器缓冲器中。然后,在1050处,过程可以等待,直到t= TApp。然后,从1060开始,应用可以利用来自变形的深度图的数据。
[0071]应用于三目系统
根据本发明的实施例,可以在如在图11中说明的三目系统中实现本文中描述的方法和系统。一般地,此类系统可以包含:立体深度传感器和相机。不管立体深度传感器具有黑白相机,彩色相机,红外线相机,近红外线相机,紫外线相机、多谱线相机还是其它类型的相机,都可以实现上述方法和系统。相机可以是黑白的、色的、红外线的、近红外线的、紫外线的或其它形式的相机。出于说明的目的,以下论述的是彩色相机。
[0072]图11的实施例示出了三目系统1100,在三目系统1100中,两个相机1110和1120是立体深度传感器的一部分,以及第三相机1130是彩色相机。左和右图像预处理框(分别为1115和1125)可以校正图像,以便移除镜头畸变,以及以便核线在左图像和右图像中是水平的以及符合逐行的。来自立体深度框1140可以从左和右校正图像计算深度图。彩色图像处理框1150可以校正彩色图像,以便移除镜头畸变,以及以便校正的彩色图像的图像平面与立体深度图的图像平面平行。深度图变形框1160可以变形深度图,以便深度图看起来像具有与彩色相机相同的投影中心,以及可以并入以上图2、4、6、7和图9中的任何或所有图的功能。如以下将论述的,可以在软件、固件或硬件中,或在它们的组合中来实现深度图变形框1160的处理。这个框的处理可以使用定制的或通用的计算设备。
[0073]注意的是,上述方法和系统可以应用于使深度图与另一个深度图而不是与图像对齐。
[0074]而且,以上论述已经假设的是,变形的深度图被表示在具有与原始的深度图相同的X、Y和Z轴的参考系中。当用于表示结果的参考系具有不同的基时,可以使用以上系统和方法。如果R用于指示3x3矩阵,该3x3矩阵用于将深度传感器的参考系的轴映射到相机的参考系的轴,贝1J可以由(X’,y’,Z’)= R.(x(i, j) - Tx, y (i, j) - Ty, z (i, j)-Tz)来替换图2的220。
[0075]另外,在深度传感器也产生图像(例如,立体相机)的情况下,可以使用以上变形和用于变形深度图的内差过程来变形此类图像。
[0076]在实施例中,本文中描述的处理中的一些或全部处理可以被实现成软件,固件或硬件,或它们的任何组合。硬件实施例可以包含:离散的和集成的电路逻辑、专用集成电路(ASIC)逻辑以及微控制器,以及可以被实现成领域特定的集成电路封装的一部分,或集成电路封装的组合。
[0077]在图12中的计算系统1200的情景中说明了软件或固件的实施例。系统1200可以包含:一个或多个中央处理器(多个)(CPU) 1220和存储体1210,存储体1210可以包含一个或多个短暂性的和/或非短暂性的计算机可读介质,该计算机可读介质可以存储计算机程序逻辑1240和在上述处理期间生成的数据,该数据包含但不限于:例如,深度图。可以将存储体1210实现成一个或多个设备,该一个或多个设备包含:例如,只读存储器(ROM)或随机存取存储器(RAM)设备,或它们的组合。CPU 1220和存储器1210可以使用本领域的普通技术人员已知的若干技术(诸如总线或点到点互连)中的任何技术进行通信。可以由CPU 1220来读取和执行在存储器1210中含有的计算机程序逻辑1240。在实施例中,一个或多个I/O端口和/或I/O设备(一起被示出为I/O 1230)可以连接到CPU 1220和存储器1210。在实施例中,I/O 1230可以包含:一个或多个输入设备(诸如例如图11的相机1110和1120),或用于捕获图像和原始的深度图的其它设备。
[0078]在图12的实施例,计算机程序逻辑1240可以包含:模块1250,该模块负责原始的深度图的低等待时间变形以创建变形的深度图。在实施例中,模块1250可以并入上述的和在图2、4、6和/或图7中的任何或全部图中说明的处理。计算机程序指令(被示出为逻辑1240)可以包含模块1260,模块1260被配置为处理变形的深度图中的遮挡,如图6中示出的。计算机程序逻辑1240可以包含模块1270,模块1270用于变形的深度图中的稀疏性的矫正,如图7中示出的。计算机程序逻辑1240可以包含应用访问模块1280,模块1280负责使得另外的应用可以访问来自变形的深度图的数据,如图9中示出的。注意的是,虽然遮挡处理模块1260、稀疏性矫正模块1270和应用访问模块1280被示出为与变形模块1250分离的模块,但是在备选的实施例中,可以将这些模块全部并入在单个模块中。
[0079]上述的系统、方法和计算机程序产品可以是更大的信息系统的一部分。图13将此类实施例说明成系统1300。在实施例中,系统1300可以是媒体系统,但是系统1300不限制于这种情景。例如,系统1300可以并入到个人计算机(PC)、膝上型计算机、超级膝上型计算机、平板计算机、触摸板、便携型计算机、手持型计算机、掌上计算机、个人数字助理(PDA)、蜂窝电话、组合的蜂窝电话/PDA、电视、智能设备(例如,智能电话、智能平板计算机、智能手表或智能电视)、移动互联网设备(MID)、消息传送设备、数据通信设备等。可以将具有对齐的变形的深度图的图像(如上述生成的)提供给此类系统,例如以用于用户访问或用于由在系统1300中执行的硬件或软件进一步进行处理。
[0080]在实施例中,系统1300包括:耦合到显示器1320的平台1302。平台1302可以接收来自内容设备(诸如内容服务设备(多个)1330或内容交付设备(多个)1340或其它类似的内容源)的内容。包括一个或多个导航特征的导航控制器1350可以用于与例如平台1302和/或显示器1320进行交互。以下将详细地描述这些组件中的每个组件。
[0081]在实施例中,平台1302可以包括以下中的任何组合:芯片组1305、处理器1310、存储器1312、存储设备1314、图形子系统1315、应用1316和/或无线电1318。芯片组1305可以在处理器1310、存储器1312、存储设备1314、图形子系统1315、应用1316和/或无线电1318之间提供内部通信。例如,芯片组1305可以包含:能够提供与存储设备1314互通信的存储设备适配器(未绘出)。
[0082]可以将处理器1310实现成复杂指令集计算机(CISC)或精简指令集计算机(RISC)处理器,x86指令集兼容处理器,多核心,或任何其它微处理器或中央处理器(CPU)。在实施例中,处理器1310可以包括:双核处理器(多个)、双核移动处理器(多个)等。
[0083]可以将存储器1312实现成易失性存储器设备,诸如但不限于随机存取存储器(RAM)、动态随机存取存储器(DRAM)或静态RAM (SRAM)0
[0084]可以将存储设备1314实现成非易失性存储设备,诸如但与限于磁盘驱动器、光盘驱动器、磁带驱动器、内部存储设备、附接的存储设备、闪速存储器、电池供电的SDRAM(同步DRAM)和/或网络可以访问的存储设备。在实施例中,存储设备1314可以包括:例如,在包含多个硬盘驱动器时,对于有价值的数字媒体提高存储设备性能增强保护的技术。
[0085]图形子系统1315可以执行用于显示的图像(诸如静态图像或视频图像)的处理。图形子系统1315可以是例如图形处理器(GPU)或虚拟处理单元(VPU)。模拟或数字接口可以用于可通信地耦合图形子系统1315和显示器1320。例如,该接口可以是以下中的任何一个:高清晰度多媒体接口、显示端口、无线HDMI和/或无线HD兼容技术。图形子系统1315能够被集成到处理器1310或芯片组1305中。图形子系统1315能够是可以通信地耦合到芯片组1305的独立卡。
[0086]可以在各种硬件架构中实现本文中描述的图形和/或视频处理技术。例如,图形和/或视频功能可以被集成在芯片组中。可替代地,可以使用离散的图形和/或视频处理器。作为又一个实施例,可以由通用处理器(包含多核处理器)来实现图形和/或视频功能。在另一个实施例中,可以在消费电子设备中实现该功能。
[0087]无线电1318可以包含:能够使用各种合适的无线通信技术来传送和接收信号的一个或多个无线电。此类技术可以涉及跨域一个或多个无线网络的通信。示例性无线网络包含(但不限于):无线局域网(WLAN)、无线个域网(WPAN)、无线城域网(WMAN)、蜂窝网络和卫星网络。在跨越此类网络的通信中,无线电1318可以依照任何版本的一个或多个可以适用的标准来进行操作。
[0088]在实施例中,显示器1320可以包括:被配置为显示图像(诸如由上述的处理单元处理的图形)的任何电视类型的监视器或显示器。显示器1320可以包括:例如计算机显示屏、触摸屏显示器、视频监视器、类似电视的设备和/或电视。显示器1320可以是数字的和/或模拟的。在实施例中,显示器1320可以是全息显示器。此外,显示器1320可以是透明表面,该透明表面可以接收视像投影。此类投影可以传递各种形式的信息、图像和/或对象。例如,此类投影可以是用于移动增强现实(MAR)应用的视像叠加。在一个或多个软件应用1316的控制下,平台1302可以在显示器1320上显示用户界面1322。
[0089]在实施例中,内容服务设备(多个)1330可以由任何国家的、国际的和/或独立的服务来托管,以及因此平台1302可以经由例如互联网来访问内容服务设备(多个)1330。内容服务设备(多个)1330可以耦合到平台1302和/或显示器1320。平台1302和/或内容服务设备(多个)1330可以耦合到网络1360以传播(例如,发送和/或接收)往返于网络1360的媒体信息。内容交付设备(多个)1340也可以耦合到平台1302和/或显示器1320。
[0090]在实施例中,内容服务设备(多个)1330可以包括:有线电视盒,个人计算机,网络,电话,启用互联网的设备或能够递送数字信息和/或内容的装置,以及能够经由网络1360或直接地在内容提供商和平台1302和/或显示器1320之间单向或双向地传播内容的任何其它类似的设备。将了解的是,可以经由网络1360单向地和/或双向地往返于系统1300中的组件中的任何组件和内容提供商来传播内容。内容的示例可以包含任何媒体信息,媒体信息包含:例如,视频、音乐、医用和游戏信息等。
[0091]内容服务设备(多个)1330接收诸如包含媒体信息的有线电视节目的内容,数字信息和/或其它内容。内容提供商的示例可以包含任何有线电视或卫星电视或无线电或互联网内容提供商。所提供的示例不是旨在限制本发明的实施例。
[0092]在实施例中,平台1302可以接收来自具有一个或多个导航特征的导航控制器1350的控制信号。例如,控制器1350的导航特征可以用于与用户界面1322进行交互。在实施例中,导航控制器1350可以是定位设备,该定位设备可以是允许用户将空间数据(例如,连续的和多维的)输入到计算机的计算机硬件组件(特别是人机接口设备)。许多系统(诸如,图形用户界面(GUI)和电视以及监视器)允许用户使用物理手势控制计算机或电视机,以及向计算机或电视剧提供数据。
[0093]可以通过移动显示在显示器(例如,显示器1320)上的指针、光标、聚焦环或其它可视的指示符,来呼应控制器1350的导航特征的移动。例如,在软件应用1316的控制下,可以将位于导航控制器1350上的导航特征映射到例如显示在用户界面1322上的虚拟导航特征。在实施例中,控制器1350可以不是单独的组件而是被集成到平台1302和/或显示器1320中。然而,实施例不限制于这些元素或本文中示出或描述的情景。
[0094]在实施例,驱动器(未示出)可以包括:例如,使得用户能够在初始启动后使用按钮的触摸,立即(当启用该技术时)开启或关闭如电视的平台1302的技术。当“关闭”平台时,程序逻辑可以允许平台1302向媒体适配器或其它内容服务设备(多个)1230或媒体交付设备(多个)1340流式传输内容。另外,芯片组1305可以包括用于5.1环绕立体声音频和/或高清晰度7.1环绕立体声音频的硬件和/或软件支持。驱动器可以包含用于集成图形平台的图形驱动器。在实施例中,图形驱动器可以包括外部设备互连(PCI)总线图形卡。
[0095]在各种实施例中,可以集成系统1300中示出的组件中的任何一个或多个组件。例如,可以集成平台1302和内容服务设备(多个)1330,或可以集成平台1302和内容交付设备(多个)1340,或例如,可以集成平台1302、内容服务设备(多个)1330和内容交付设备(多个)1340。在各种实施例中,平台1302和显示器1320可以是集成单元。例如,可以集成显示器1320和内容服务设备(多个)1330,或可以集成显示器1320和内容交付设备(多个)1340。这些示例不意在限制本发明。
[0096]在各种实施例中,可以将系统1300实现成无线系统、有线系统或这两者的组合。当被实现成无线系统时,系统1300可以包含:适用于通过无线共享介质进行通信的组件和接口,诸如一个或多个天线、传送器、接收器、收发器、放大器、滤波器、控制逻辑等。无线共享介质的示例可以包含:无线频谱的部分,诸如RF频谱等。当被实现成有线系统时,系统1300可以包含:适用于通过有线通信介质进行通信的组件和接口,诸如输入/输出(I/O)适配器、使用对应的有线通信介质连接到I/o适配器的物理连接器、网络接口卡(NIC)、盘控制器、视频控制器、音频控制器等。有线通信介质的示例可以包含:电线、电缆、金属引线、印刷电路板(PCB )、背板、交换结构、半导体材料、双绞线、同轴电缆、光纤等。
[0097]平台1302可以建立一个或多个逻辑或物理信道以传播信息。信息可以包含:媒体信息和控制信息。媒体信息可以指表示用于用户的内容的任何数据。内容的示例可以包含:例如,来自语音会话的数据、视频会议、流式传输的视频、电子邮件(“电子邮件”)消息、语音邮件消息、字母数字符号、图形、图像、视频、文本等。来自语音会话的数据可以是例如话音信息、静默周期、背景噪声、舒适噪声、声调等。控制信息可以指表示用于自动系统的命令、指令或控制字的任何数据。例如,控制信息可以用于通过系统路由媒体信息,或指令节点以预定的方式来处理媒体信息。然而,实施例不限制于在图13中示出或描述的元素或情景。
[0098]如上所述,可以在各种物理样式或形状因子中来具体化系统1300。图14说明了可以具体化系统1300的小形状因子设备1400的实施例。在实施例中,例如,可以将设备1400实现成具有无线能力的移动计算设备。例如,移动计算设备可以指具有处理系统和移动电源或电力供应(诸如,一个或多个电池)的任何设备。
[0099]如上所述,移动计算设备的示例可以包含:个人计算机(PC)、膝上型计算机、超级膝上型计算机、平板计算机、触摸板、便携性计算机、手持型计算机、掌上计算机、个人数字助理(PDA)、蜂窝电话、组合的蜂窝电话/PDA、电视、智能设备(例如,智能电话、智能平板计算机、智能手表或智能电视)、移动互联网设备(MID)、消息传送设备、数据通信设备等。
[0100]移动计算设备的示例还可以包含:被布置为由人穿戴的计算机。在实施例中,例如,可以将移动计算设备实现成能够执行计算机应用以及话音通信和/或数据通信的智能电话。尽管可以使用被实现成例如智能电话的移动计算设备来描述一些实施例,但是可以了解的是,也可以使用其它无线移动计算设备来实现其它实施例。在这点上,实施例没有限制。
[0101]如在图14中示出的,设备1400可以包括:壳体1402、显示器1404、输入/输出(I/O)设备1406和天线1408。设备1400还可以包括导航特征1412。显示器1404可以包括:适于移动计算设备的用于显示信息的任何合适的显示器。显示的信息可以包括:由处理单元(例如,GPU)处理的图形。I/O设备1406可以包括:用于将信息输入到移动计算设备的任何合适的I/O设备。I/O设备1406的示例可以包含:字母数字键盘、数字小键盘、触摸板、输入键、按钮、开关、摇臂开关、麦克风、扬声器、语音识别设备和软件等。还可以通过麦克风将信息输入到设备1400。可以由语音设备将此类信息数字化。在这点上,实施例没有限制。
[0102]以下示例关于进一步的实施例。
[0103]示例I是用于图像处理的系统,该系统包括:第一电路逻辑单元,第一电路逻辑单元被配置为读取来自原始的深度图的像素坐标,以及第二电路逻辑单元,第二电路逻辑单元被配置为基于原始的深度图来计算变形的深度图,其中在完成读取来自原始的深度图的所有像素之前,开始计算变形的深度图。
[0104]在示例2中,示例I的变形的深度图的计算可以非必须地包括:确定原始的深度图中的有界区域,其中该有界区域含有像素,该像素的坐标影响变形的深度图中的像素的值。
[0105]在示例3中,如果示例I的变形的深度图的计算导致相同坐标处的多个像素,则该计算可以非必须地包含:在多个像素中选择具有最小深度的像素,以供在变形的深度图中使用。
[0106]在示例4中,示例I的变形的深度图的计算可以非必须地包括:使用丢失值的位置附近的变形的深度图的邻居中的像素的深度值,通过内插来填充变形的深度图中的该丢失值。
[0107]在示例5中,示例4的内插可以非必须地包括:向丢失值分配深度值,该深度值是以下中的一个:等于邻居像素的深度值,以及等于多个各自邻居像素的深度值的函数。
[0108]在示例6中,示例4的变形的深度图的计算可以非必须地包括:对于原始的深度图中的像素(i,j),计算和存储变形的图像中的位置(a’(i,j), b’(i,j)) = (f’u(u’ +u’。),€\(<+<。)),其中广11和€\是焦距,以及(11’(|,v’Q)是原始的深度图中的主点的坐标,(a’ (i, j), b’ (i, j))对应于变形的深度图中的点(u’,V’)= (x’ /z’,y’ /z’);以及如果i > ?和j > G,其中F和G是内插邻居的维度,则对于能够从变形的深度图中的像素位置(a’(1-c,j-d), b’ (1-c, j-d))处(其中,所有c在0和F之间,以及所有d在O和G之间)的值内插的丢失值的变形的深度图中的每个位置α’,j’),使用变形的深度图中的像素位置(a’(1-C,j-d), b’(1-c,j-d))处(所有C在O和F之间,以及所有d在O和G之间)的深度值来计算内插值(xT(i, j), yT(i, j), zT(i,j))。
[0109]在示例7中,示例6的内插可以非必须地包括以下中的一个:
最近邻居内插;双线性内插;双三次内插。
[0110]在示例8中,示例I的主题还可以非必须地包括:第三电路逻辑单元,第三电路逻辑单元被配置为使得在完成变形的深度图的计算之前,应用可以利用在变形的深度图的计算期间生成的像素坐标。
[0111]在示例9中,使得示例8的应用可以利用所生成的像素坐标可以非必须地包括:当在变形的深度图的计算期间已经完全处理了原始的深度图中的行max{Rmax(i’,j’)I I (
W’}时,使得可以利用变形的深度图的行j’,其中Rmax是原始的深度图的有界区域中的最高行,其中有界区域包含影响变形的深度图中的像素(i’,j’ )的最终值的像素,创建具有对于原始的深度图的每个行的条目的查询表,其中该表中的每个条目标识变形的深度图的行,在完成对应于条目的原始的深度图的行的计算时,该行将是准备好的,以及使用该表来查询变形的深度图的一个或多个行是否准备好。
[0112]示例10是图像处理的方法,该方法包括:读取来自原始的深度图的像素坐标;以及基于原始的深度图,计算变形的深度图,其中在完成读取来自原始的深度图的所有像素之前,开始计算变形的深度图,其中由可编程的处理器来执行所述读取和计算。
[0113]在示例11中,权利要求10的变形的深度图的计算可以非必须地包括
确定原始的深度图中的有界区域,其中该有界区域含有像素,该像素的坐标影响变形的深度图中的像素的值。
[0114]在示例12中,示例10的主题还可以非必须地包括:在多个像素中选择具有最小深度的像素,以供在变形的深度图中使用,如果变形的深度图的计算导致相同坐标处的多个像素,则在多个像素中选择具有最小深度的像素,以供在变形的深度图中使用。
[0115]在示例13中,示例10的变形的深度图的计算可以非必须地包括:使用丢失值的位置附近的变形的深度图的邻居中的像素的深度值,通过内插来填充变形的深度图中的该丢失值。
[0116]在示例14中,示例13的内插可以非必须地包括:向丢失值分配深度值,该深度值是以下中的一个:等于邻居像素的深度值,以及等于多个各自邻居像素的深度值的函数。
[0117]在示例15中,示例13的变形的深度图的计算可以可选地包括:对于原始的深度图中的像素(i,j),计算和存储变形的图像中的位置(a’(i,j), b’(i,j)) = (f’u(u’ +u’。),€\(<+<。)),其中广11和€\是焦距,以及(11’(|,v’Q)是原始的深度图中的主点的坐标,(a’ (i, j), b’ (i, j))对应于变形的深度图中的点(u’,V’)= (x’ /z’,y’ /z’);以及如果i > ?和j > G,其中F和G是内插邻居的维度,则对于能够从变形的深度图中的像素位置(a’(1-c,j-d), b’ (1-c, j-d))处(其中,所有c在0和F之间,以及所有d在O和G之间)的值内插的丢失值的变形的深度图中的每个位置(i’,j’),使用变形的深度图中的像素位置(a’(1-c,j-d), b’(1-c,j-d))处(所有c在0和F之间,以及所有d在O和G之间)的深度值来计算内插值(xT(i, j), yT(i, j), zT(i,j))。
[0118]在示例16中,示例15的内插可以可选地包括以下中的一个: 最近邻居内插;双线性内插;双三次内插。
[0119]在示例17中,示例10的主题还可以可选地包括:使得在完成变形的深度图的计算之前,应用可以利用在变形的深度图的计算期间生成的像素坐标。
[0120]在示例18中,使得示例17的应用可以利用所生成的像素坐标可以可选地包括:当在变形的深度图的计算期间已经完全处理了原始的深度图中的行max{Rmax(i’,j’)I I (
W’}时,使得可以利用变形的深度图的行j’,其中Rmax是原始的深度图的有界区域中的最高行,其中有界区域包含影响变形的深度图中的像素(i’,j’ )的最终值的像素,创建具有对于原始的深度图的每个行的条目的查询表,其中该表中的每个条目标识变形的深度图的行,在完成对应于条目的原始的深度图的行的计算时,该行将是准备好的,以及使用该表来查询变形的深度图的一个或多个行是否准备好。
[0121]示例19是用于图像处理的计算机程序产品,该计算机程序产品包含至少一个非短暂性的计算机可读介质,该计算机可读介质具有存储在其中的计算机程序逻辑,该计算机程序逻辑包含逻辑以使得处理器读取来自原始的深度图的像素坐标;以及逻辑以使得处理器基于原始的深度图,计算变形的深度图,其中在完成读取来自原始的深度图的所有像素之前,开始计算变形的深度图。
[0122]在示例20中,示例19的变形的深度图的计算可以可选地包括
确定原始的深度图中的有界区域,其中该有界区域含有像素,该像素的坐标影响变形的深度图中的像素的值。
[0123]在示例21中,如果示例19的变形的深度图的计算导致相同坐标处的多个像素,则该计算可以可选地包含:在多个像素中选择具有最小深度的像素,以供在变形的深度图中使用。
[0124]在示例22中,示例19的变形的深度图的计算可以可选地包括:使用丢失值的位置附近的变形的深度图的邻居中的像素的深度值,通过内插来填充变形的深度图中的该丢失值。
[0125]在示例23中,示例22的内插可以可选地包括:向丢失值分配深度值,该深度值是以下中的一个:等于邻居像素的深度值,以及等于多个各自邻居像素的深度值的函数。
[0126]在示例24中,示例22的变形的深度图的计算可以可选地包括:对于原始的深度图中的像素(i,j),计算和存储变形的图像中的位置(a’(i,j), b’(i,j)) = (f’u(u’ +u’。),€\(<+<。)),其中广11和€\是焦距,以及(11’(|,v’Q)是原始的深度图中的主点的坐标,(a’ (i, j), b’ (i, j))对应于变形的深度图中的点(u’,V’)= (x’ /z’,y’ /z’);以及如果i > ?和j > G,其中F和G是内插邻居的维度,则对于能够从变形的深度图中的像素位置(a’(1-c,j-d), b’ (1-c, j_d))处(其中,所有c在0和F之间,以及所有d在O和G之间)的值内插的丢失值的变形的深度图中的每个位置(i’,j’),使用变形的深度图中的像素位置(a’(1-c,j-d), b’(1-c,j-d))处(所有c在0和F之间,以及所有d在O和G之间)的深度值来计算内插值(xT(i, j), yT(i, j), zT(i,j))。
[0127]在示例25中,示例24的内插可以可选地包括以下中的一个:
最近邻居内插;双线性内插;双三次内插。
[0128]在示例26中,示例19的主题还可以可选地包括逻辑以使得处理器使得在完成变形的深度图的计算之前,应用可以利用在变形的深度图的计算期间生成的像素坐标。
[0129]在示例27中,使得示例26的应用可以利用所生成的像素坐标可以可选地包括:当在变形的深度图的计算期间已经完全处理了原始的深度图中的行max{Rmax(i’,j’)I I (
W’}时,使得可以利用变形的深度图的行j’,其中Rmax是原始的深度图的有界区域中的最高行,其中有界区域包含影响变形的深度图中的像素(i’,j’ )的最终值的像素,创建具有对于原始的深度图的每个行的条目的查询表,其中该表中的每个条目标识变形的深度图的行,在完成对应于条目的原始的深度图的行的计算时,该行将是准备好的,以及使用该表来查询变形的深度图的一个或多个行是否准备好。
[0130]示例28是用于图像处理的装置,该装置包括:用于读取来自原始的深度图的像素坐标的构件;以及用于基于原始的深度图,计算变形的深度图的构件,其中在完成读取来自原始的深度图的所有像素之前,开始计算变形的深度图。
[0131]在示例29中,示例28的用于计算的变形的深度图的构件可以可选地包括:用于确定原始的深度图中的有界区域的构件,其中该有界区域含有像素,该像素的坐标影响变形的深度图中的像素的值。
[0132]在示例30中,示例28的主题还可以可选地包括:在多个像素中选择具有最小深度的像素,以供在变形的深度图中使用,如果变形的深度图的计算导致相同坐标处的多个像素,则在多个像素中选择具有最小深度的像素,以供在变形的深度图中使用。
[0133]在示例31中,示例28的用于计算变形的深度图的构件可以可选地包括:用于使用丢失值的位置附近的变形的深度图的邻居中的像素的深度值,通过内插来填充变形的深度图中的该丢失值的构件。
[0134]在示例32中,示例31的内插可以可选地包括:向丢失值分配深度值,该深度值是以下中的一个:等于邻居像素的深度值,以及等于多个各自邻居像素的深度值的函数。
[0135]在示例33中,示例31的用于计算变形的深度图的构件还可以可选地包括构件,该构件用于对于原始的深度图中的像素(i,j),计算和存储变形的图像中的位置(a’ (i,j), b,(i, j)) = (fu(u+ u0), f’V(v+v。)),其中 fu 和 fv 是焦距,以及(uQ, vQ)是原始的深度图中的主点的坐标,(a’(i,j), b’(i,j))对应于变形的深度图中的点(u’,V’)=(x’/z’,y’ /z’);以及包括如下构件:如果i > ?和」> G,其中F和G是内插邻居的维度,则对于能够从变形的深度图中的像素位置(a’(1-c,j-d), b’(1-c,j_d))处(其中,所有c在O和F之间,以及所有d在O和G之间)的值内插的丢失值的变形的深度图中的每个位置(i’,j’),使用变形的深度图中的像素位置(a’ (1-c, j-d), b’ (1-c, j-d))处(所有c在0和F之间,以及所有d在0和G之间)的深度值来计算内插值(xT(i,j),yT(i, j),zT(i, j))。
[0136]在示例34中,示例33的内插可以可选地包括以下中的一个:
最近邻居内插;双线性内插;双三次内插。
[0137]在示例35中,示例28的主题还可以可选地包括用于使得在完成变形的深度图的计算之前,应用可以利用在变形的深度图的计算期间生成的像素坐标的构件。
[0138]在示例36中,示例28的用于使得应用可以利用所生成的像素坐标的构件可以可选地包括:用于当在变形的深度图的计算期间已经完全处理了原始的深度图中的行max{Rmax(i’,j’ ) I I彡i’彡W’ }时,使得可以利用变形的深度图的行j’的构件,其中Rmax是原始的深度图的有界区域中的最高行,其中有界区域包含影响变形的深度图中的像素α’,j’)的最终值的像素,用于创建具有对于原始的深度图的每个行的条目的查询表的构件,其中该表中的每个条目标识变形的深度图的行,在完成对应于条目的原始的深度图的行的计算时,该行将是准备好的,以及用于使用该表来查询变形的深度图的一个或多个行是否准备好的构件。
[0139] 在本文中借助于说明功能、特征和它们的组合的功能构建块来公开了方法和系统。出于方便描述的目的,本文中已经任意地定义了这些功能构建块的边界中的至少一些边界。只要适当地执行指定的功能和它们的关系,就可以定义可替代的边界。此外,虽然本文中公开了各种实施例,但是应当理解的是,仅是通过示例而不是限制来呈现各种实施例。对于相关领域的技术人员而言将明显的是,在不背离本文中公开的方法和系统的精神和范围的情况下,可以对实施例在形式和细节上做出各种改变。因此,权利要求书的广度和范围不应当由本文中公开的示例性实施例中的任何示例性实施例来限制。
【权利要求】
1.一种用于图像处理的系统,包括: 第一电路逻辑单元,其被配置为读取来自原始的深度图的像素坐标;以及 第二电路逻辑单元,其被配置为基于所述原始的深度图来计算变形的深度图,其中在完成读取来自所述原始的深度图的所有像素之前,开始计算所述变形的深度图。
2.根据权利要求1所述的系统,其中所述变形的深度图的所述计算包括:确定所述原始的深度图中的有界区域,其中所述有界区域含有像素,所述像素的坐标影响所述变形的深度图中的像素的值。
3.根据权利要求1所述的系统,其中如果所述变形的深度图的所述计算导致相同坐标处的多个像素,则在所述多个像素中选择具有最小深度的像素,以供在所述变形的深度图中使用。
4.根据权利要求1所述的系统,其中所述变形的深度图的所述计算包括: 使用丢失值的位置附近的所述变形的深度图的邻居中的像素的深度值,通过内插来填充所述变形的深度图中的所述丢失值。
5.根据权利要求4所述的系统,其中所述内插包括:向所述丢失值,分配深度值,所述深度值是以下中的一个: 等于邻居像素的深度值;以及 等于多个各自邻居像素的深度值的函数。
6.根据权利要求4所述的系统,其中所述变形的深度图的所述计算包括: 对于所述原始的深度图中的像素(i,j),计算和存储所述变形的图像中的位置(a’ (i,j), b,(i, j)) = (fu(u+ u0), fv(v+vQ)),其中 fu 和 fv 是焦距,以及(uQ, vQ)是所述原始的深度图中的主点的坐标,(a’(i,j), b’(i,j))对应于所述变形的深度图中的点(u’,V’ ) = (X,/z’,y’ /z’ );以及 如果i > F和j > G,其中F和G是内插邻居的维度,则对于能够从所述变形的深度图中的像素位置(a’(i_c,j-d), b’(1-c,j_d))处所有c在O和F之间以及所有d在O和G之间的值内插的丢失值的所述变形的深度图中的每个位置(i’,j’),使用所述变形的深度图中的像素位置(a’(1-c,j-d), b’(1-c,j-d))处对于所有c在O和F之间以及所有d在O和G之间的深度值来计算内插值(xT(i’,j’),yT(i’,j’),zT(i’,j’))。
7.根据权利要求6所述的系统,其中所述内插包括以下中的一个: 最近邻居内插; 双线性内插;以及 双三次内插。
8.根据权利要求1所述的系统,还包括: 第三电路逻辑单元,其被配置为使得在完成所述变形的深度图的所述计算之前,应用可以利用在所述变形的深度图的所述计算期间生成的像素值。
9.根据权利要求8所述的系统,其中使得应用可以利用所生成的像素值包括: 当在所述变形的深度图的计算期间已经完全处理了所述原始的深度图中的行maxUi,,J.,) I I ( i’彡W’}时,使得可以利用所述变形的深度图的行j’,其中Rmax是所述原始的深度图的有界区域中的最高行,其中所述有界区域包含影响所述变形的深度图中的像素(i’,j’)的最终值的像素; 创建具有对于所述原始的深度图的每个行的条目的查询表,其中所述表中的每个条目标识所述变形的深度图的行,所述行在完成对应于所述条目的所述原始的深度图的行的计算时,将是准备好的;以及 使用所述表来查询所述变形的深度图的一个或多个行是否准备好。
10.一种图像处理的方法,包括: 读取来自原始的深度图的像素坐标;以及 基于所述原始的深度图,计算变形的深度图,其中在完成读取来自所述原始的深度图的所有像素之前,开始计算所述变形的深度图, 其中由可编程的处理器来执行所述读取和计算。
11.根据权利要求10所述的方法,所述变形的深度图的所述计算包括: 确定所述原始的深度图中的有界区域,其中所述有界区域含有像素,所述像素的坐标影响变形的深度图中的像素的值。
12.根据权利要求10所述的方法,还包括: 在所述多个像素中选择具有最小深度的像素,以供在所述变形的深度图中使用,如果所述变形的深度图的计算导致相同坐标处的多个像素,则在所述多个像素中选择具有最小深度的像素,以供在所述变形的深度图中使用。
13.根据权利要求10所述的方法,其中所述变形的深度图的所述计算包括: 使用丢失值的位置附近的所述变形的深度图的邻居中的像素的深度值,通过内插来填充所述变形的深度图中的所述丢失值。
14.根据权利要求13所述的方法,其中所述内插包括: 向丢失值分配深度值,所述深度值是以下中的一个: 等于邻居像素的深度值;以及 等于多个各自邻居像素的深度值的函数。
15.根据权利要求13所述的方法,其中所述变形的深度图的所述计算包括: 对于所述原始的深度图中的像素(i,j),计算和存储所述变形的图像中的位置(a’ (i,j), b,(i, j)) = (fu(u+ u0), fv(v+vQ)),其中 fu 和 fv 是焦距,以及(uQ, vQ)是所述原始的深度图中的主点的坐标,(a’(i,j), b’(i,j))对应于所述变形的深度图中的点(u’,V’ ) = (X,/z’,y’ /z’ );以及 如果i > F和j > G,其中F和G是内插邻居的维度,则对于能够从所述变形的深度图中的像素位置(a’(i_c,j-d), b’(1-c,j-d))处所有c在0和F之间以及所有d在0和G之间的值内插的丢失值的所述变形的深度图中的每个位置(i’,j’),使用所述变形的深度图中的像素位置(a’(1-c,j-d), b’(1-c,j-d))处对于所有c在0和F之间以及所有d在O和G之间的深度值来计算内插值(xT(i, j), yT(i, j), zT(i,j))。
16.根据权利要求15所述的方法,其中所述内插包括以下中的一个: 最近邻居内插; 双线性内插;以及 双三次内插。
17.根据权利要求10所述的方法,还包括: 使得在完成所述变形的深度图的所述计算之前,应用可以利用在所述变形的深度图的计算期间生成的像素坐标。
18.根据权利要求17所述的方法,其中使得应用可以利用所生成的像素坐标包括: 当在所述变形的深度图的计算期间已经完全处理了所述原始的深度图中的行max{Rmax(i,,j,) I I ( i’彡W’}时,使得可以利用所述变形的深度图的行j’,其中Rmax是所述原始的深度图的有界区域中的最高行,其中所述有界区域包含影响变形的深度图中的像素的最终值的像素; 创建具有对于所述原始的深度图的每个行的条目的查询表,其中所述表中的每个条目标识变形的深度图的行,所述行在完成对应于所述条目的所述原始的深度图的行的计算时,将是准备好的;以及 使用所述表来查询所述变形的深度图的一个或多个行是否准备好。
19.一种用于图像处理的计算机程序产品,所述计算机程序产品包含至少一个非短暂性的计算机可读介质,所述计算机可读介质具有存储在其中的计算机程序逻辑,所述计算机程序逻辑包含: 使得处理器读取来自原始的深度图的像素坐标的逻辑;以及 使得处理器基于所述原始的深度图,计算变形的深度图的逻辑,其中在完成读取来自所述原始的深度图的所有像素之前,开始计算所述变形的深度图。
20.根据权利要求19所述的计算机程序产品,其中所述变形的深度图的所述计算包括: 确定所述原始的深度图中的有界区域,其中所述有界区域含有像素,所述像素的坐标影响所述变形的深度图中的像素的值。
21.根据权利要求19所述的计算机程序产品,其中如果所述变形的深度图的所述计算导致相同坐标处的多个像素,则在所述多个像素中选择具有最小深度的像素,以供在所述变形的深度图中使用。
22.根据权利要求19所述的计算机程序产品,其中所述变形的深度图的所述计算包括: 使用丢失值的位置附近的所述变形的深度图的邻居中的像素的深度值,通过内插来填充所述变形的深度图中的所述丢失值。
23.根据权利要求22所述的计算机程序产品,其中所述内插包括:向所述丢失值分配深度值,所述深度值是以下中的一个: 等于邻居像素的深度值;以及 等于多个各自邻居像素的深度值的函数。
24.根据权利要求22所述的计算机程序产品,其中所述变形的深度图的所述计算包括: 对于所述原始的深度图中的像素(i,j),计算和存储所述变形的图像中的位置(a’ (i,j), b,(i, j)) = (fu(u+ u0), fv(v+vQ)),其中 fu 和 fv 是焦距,以及(uQ, vQ)是所述原始的深度图中的主点的坐标,(a’(i,j), b’(i,j))对应于所述变形的深度图中的点(u’,V’ ) = (X,/z’,y’ /z’ );以及 如果i > F和j > G,其中F和G是内插邻居的维度,则对于能够从所述变形的深度图中的像素位置(a’(i_c,j-d), b’(1-c,j-d))处所有c在0和F之间以及所有d在0和G之间的值内插的丢失值的所述变形的深度图中的每个位置a’,j’),使用所述变形的深度图中的像素位置(a’(1-c,j-d), b’(1-c,j-d))处对于所有c在O和F之间以及所有d在O和G之间的深度值来计算内插值(xT(i, j), yT(i, j), zT(i,j))。
25.根据权利要求24所述的计算机程序产品,其中所述内插包括以下中的一个: 最近邻居内插; 双线性内插;以及 双三次内插。
26.根据权利要求19所述的计算机程序产品,还包括: 使得所述处理器使得在完成所述变形的深度图的所述计算之前,应用可以利用在所述变形的深度图的计算期间生成的像素坐标的逻辑。
27.根据权利要求26所述的计算机程序产品,其中使得应用可以利用所生成的像素坐标包括: 当在所述变形的深度图的所述计算期间已经完全处理了所述原始的深度图中的行max{Rmax(i,,j,) I I ( i’彡W’}时,使得可以利用所述变形的深度图的行j’,其中Rmax是所述原始的深度图的有界区域中的最高行,其中所述有界区域包含影响所述变形的深度图中的像素(i’,j’)的最终值的像素; 创建具有对于所述原始的深度图的每个行的条目的查询表,其中所述表中的每个条目标识所述变形的深度图的行,所述行在完成对应于条目的所述原始的深度图的行的计算时,将是准备好的;以及 使用所述表来查询所述变形的深度图的一个或多个行是否准备好。
【文档编号】H04N13/00GK104322060SQ201380016493
【公开日】2015年1月28日 申请日期:2013年3月15日 优先权日:2012年3月28日
【发明者】E.G.格罗斯曼, J.I.伍德菲尔, G.戈登 申请人:英特尔公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1