为图像序列建立深度图的方法转让专利

申请号 : CN03816879.0

文献号 : CN1669053B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : S·R·弗克斯J·C·弗拉克P·V·H·哈曼

申请人 : 动态数字视距研究有限公司

摘要 :

一种对一图像序列建立至少一个深度图的方法,包括以下步骤:接收所述图像序列中的多个点的深度数据;利用所述深度数据和分类器来确定作为图像特性和相对位置的函数的深度特性;使用所述图像特性对所述图像序列的至少一个帧建立深度图。

权利要求 :

1.一种对一图像序列建立至少一个深度图的方法,其特征在于,包括以下步骤:接收所述图像序列中的多个点的深度数据;

利用所述深度数据和分类器来确定深度特性,其为图像特性的函数,所述分类器编码

2D点和3D点之间的关系;

使用所述图像特性对所述图像序列的至少一个帧建立深度图。

2.如权利要求1所述的方法,其特征在于,所述图像特性包括RGB值。

3.如权利要求1所述的方法,其特征在于,所述图像特性包括RGB值和相对xy位置。

4.如上述任一权利要求所述的方法,其特征在于,还包括为所述图像序列中的至少预定数量的点确定深度数据的初始化步骤。

5.如权利要求1所述的方法,其特征在于,包括自举所述分类器的初始化步骤。

6.一种对一图像序列建立至少一个深度图的方法,其特征在于,包括以下步骤:将所述图像序列划分成多个图像像片;

接收所述图像像片中至少一个图像像片中的多个点的深度数据;

使用所述深度数据和分类器来确定深度特性,其为图像特性和相对位置的函数,所述分类器编码2D点和3D点之间的关系;

使用所述图像特性对所述至少一个图像像片的至少一个帧建立深度图。

7.如权利要求6所述的方法,其特征在于,向每个像片被指定一对应的分类器。

8.如权利要求7所述的方法,其特征在于,将至少一个对应的分类器初始化成与前一分类器类似的状态。

9.一种对一图像序列建立至少一个深度图的方法,其特征在于,包括以下步骤:接收多个帧的图像数据;

接收所述帧中至少一个帧的多个点的深度数据;

使用所述图像数据和所述深度数据来确定一分类器,以确定作为图像数据的函数的深度特性,其中所述分类器编码2D点和3D点之间的关系;

使用所述分类器对所述帧中所述至少一个帧确定深度图。

10.如权利要求9所述的方法,其特征在于,所述图像数据包括RGB值。

11.如权利要求9所述的方法,其特征在于,所述图像数据包括相对xy位置。

12.如权利要求9所述的方法,其特征在于,还包括对所述图像序列中的至少预定数量的点确定深度数据的初始化步骤。

13.一种对一图像序列建立至少一个深度图的方法,其特征在于,包括以下步骤:将所述图像序列划分成多个图像像片;

对于每个图像像片,接收多个点的深度数据,并使用所述深度数据和各自的分类器来建立初始分类器,以确定作为图像特性和相对位置的函数的深度特性,其中所述分类器编码2D点和3D点之间的关系;

通过组合至少两个来自多个所述像片的初始分类器来建立至少一个组合分类器;

使用所述至少一个组合分类器对所述图像序列的至少一个帧建立深度图。

14.如权利要求13所述的方法,其特征在于,所述图像特性包括RGB值。

15.如权利要求13所述的方法,其特征在于,所述图像特性包括相对xy位置。

16.如权利要求13所述的方法,其特征在于,还包括对所述图像序列中的至少预定数量的点确定深度数据的初始化步骤。

17.如权利要求13所述的方法,其特征在于,使用所述至少两个初始算法的平均来确定所述组合分类器。

18.如权利要求13所述的方法,其特征在于,使用所述至少两个初始分类器的加权平均来确定所述组合分类器。

19.如权利要求13所述的方法,其特征在于,包括将所述分类器初始化到一随机状态的初始化步骤。

20.如权利要求13所述的方法,其特征在于,至少一个所述分类器初被始化到与前一分类器类似的状态。

说明书 :

为图像序列建立深度图的方法

[0001] 本发明针对用于从2D图像得出深度图的改进的技术,特别是,本发明涉及一种从与一图像序列相关联的一组稀疏的3D点中恢复密集深度图(densedepth map)的方法。 [0002] 从运动恢复结构(Structure-from-Motion:SfM)技术是用于恢复投影到摄像机的平面2D膜底面上的场景的3D信息的方法的集合。从SfM算法得出的结构信息一般采用一组投影矩阵(projection matrices)的形式,每个图像帧一个投影矩阵,表示图像平面中的特定的2D点与其对应的3D点之间的关系。SfM算法依赖于跟踪特定的图像特征以确定有关场景的这种结构信息。一般来说,仅仅能精确地跟踪图像的一小部分——这些点通常位于边缘和角落上,在这些地方,明显的强度不连续性提供了明确的跟踪线索。 [0003] 类 似 地,可 使 用 立 体 的 或 多 视 觉 (multi-ocular)不 一 致 分 析(disparityanalysis)从2D图像确定3D点。如用SfM分析一样,只能对位于有足够对比度可精确确定与第二图像对应关系的位置的小部分图像建立3D点。
[0004] 在许 多 应用 中,包括 但 不限 制 于立 体 图像 透 射图 (stereoscopic imagerendering)、机器人导航和特定效果动画制作应用,这种稀疏3D点是不够的。这些应用要求图像中的每个2D点与一3D点相关联的密集深度图。
[0005] 用于将稀疏3D点变换到密集深度图的现有技术依赖于稀疏3D数据的空间内插或假设检验方法,例如RANSAC算法。所有这些方法仅使用每个单独的图像帧上可用的稀疏3D点数据。这导致两个主要的缺陷——首先,在任一单个图像中可用的稀疏点的数量可能不足以精确地导出密集深度图,其次,从一帧到下一帧的深度图的连续性可能是拙劣的。本发明揭示了一种针对这些缺陷的 用于从稀疏3D数据导出密集深度图的方法。 [0006] 申请人在共同待批的PCT申请号PCT/AU01/00975中揭示了一种用于从一个或多个图像产生深度图的方法,该申请的内容通过引用而被揭示于此。该方法涉及两步处理。在第一步中,使用与单个图像相关联的稀疏深度数据来为该图像产生深度图。在第二阶段中,使用在第一阶段中产生的结果产生一图像序列中的各图像的深度图。虽然该方法在理想情况下起作用,但是对处理具有许多限制。在申请人的在先申请中,必须选择图像序列中的一定数量的关键帧。对于这些关键帧的每一帧,必须知道该关键帧中的足够数量的像素的深度数据,使得可以产生用以产生对应的深度图的方程。也就是说,给出关键帧中的足够数量的像素的深度数据,可以得出一函数,使得可以确定每一其它像素的深度。一旦对关键帧产生了这些函数,那么就随后可以使用这些函数来产生用于剩余的帧的函数。 [0007] 申请人在先处理的局限之一是必须要求两个阶段。将理解到,如果由于某种原因而在第一阶段中引入了差错,那么该差错就会在整个第二阶段中传递。在这种情况下,最后得出的深度图可能是不令人满意的。
[0008] 更为关注的是,为了令人满意地完成第一阶段,必须知道关键帧中的足够数量的像素的深度,以便求解方程来产生该关键帧的深度图。例如,如果一关键帧具有350,000个像素,那么理想地应当知道17,500个像素(或像素总数的5%)的深度,以便能生成深度图的函数。如果深度已知的像素数量不够,那么所产生的深度图的质量将不够质量。如果不能为一关键帧产生精确的深度图,则不可能成功地完成第二阶段。因此,需要一种产生深度图的简化的处理过程。
[0009] 因此,本发明的一个目的是提供一种从2D图像序列产生深度图的改进的系统,不要求两阶段处理,也不依赖于已知一关键帧中必需数量的像素的深度。 [0010] 考虑上述目的,本发明的一个方面中提供一种对一图像序列建立至少一个深度图的方法,包括以下步骤:
[0011] 接收多个帧的图像数据;
[0012] 接收所述多个帧中至少一个帧的多个点的深度数据;
[0013] 使用所述图像数据和所述深度数据来确定一算法,以确定作为图像数据的函数的深度特性;
[0014] 使用所述算法对所述至少一个帧确定深度图。
[0015] 在本发明的进一步的方面中,提供一种对包括多个帧的2D图像序列建立至少一个深度图的方法,每个帧包括多个点,所述方法包括以下步骤:
[0016] 接收至少一个帧中的多个点的深度数据;
[0017] 确定具有所述深度数据的所述点的图像数据;
[0018] 将所述深度数据和所述图像数据输入分类器,以对所述图像数据和所述深度数据之间的关系进行编码;
[0019] 使用经编码的关系来得出2D图像的至少一个帧的深度图。
[0020] 在本发明的又一方面中,提供一种对一图像序列建立深度图的方法,包括以下步骤:
[0021] 接收所述图像序列中的多个点的深度数据;
[0022] 利用所述深度数据训练分类器,以确定作为图像特性和相对位置的函数的深度特性;
[0023] 使用所述图像特性对所述图像序列的每个帧建立深度图。
[0024] 在本发明的又一方面中,提供一种对一图像序列建立深度图的方法,包括以下步骤:
[0025] 将所述图像序列划分成多个图像像片;
[0026] 对于每个图像像片,接收多个点的深度数据,并使用所述深度数据训练各自的分类器以建立初始算法,以确定作为图像特性和相对位置的函数的深度特性; [0027] 通过从多个所述像片组合至少两个初始算法建立至少一个组合算法; [0028] 使用所述至少一个组合算法对所述图像序列的每个帧建立深度图。 [0029] 在本发明的又一方面中提供一种对一图像序列建立至少一个深度图的方法,包括以下步骤:
[0030] 将所述图像序列划分成多个图像像片;
[0031] 接收至少一个图像像片中的多个点的深度数据;
[0032] 使用所述深度数据和分类器来确定作为图像特性和相对位置的函数的深度特性;
[0033] 使用所述图像特性对所述至少一个图像像片的至少一个帧建立深度图。 [0034] 图像数据可包括每个点或像素的RGB值,并还可包括xy位置。本发明还可包括对图像中的若干点确定深度数据的初始化步骤。可人工地、自动地或人工和自动手段的组合来确定深度数据。
[0035] 当把图像序列划分成一系列像片时,本发明的较佳实施例将组合每个帧的两侧的两个分类器的输出。
[0036] 图1说明了申请人的共同待批的专利申请的工作方式。
[0037] 图2说明了本发明的操作。
[0038] 图3说明了在本发明的一个实施例中的分类器的使用。
[0039] 图4说明了通过使用相邻的分类器的本发明的较佳实施例。
[0040] 深度图表示从某一特定角度观看到的场景的3D轮廓。当密集深度图与2D图像相关联时,它对图像中的每个像素对用于捕捉图像的摄像机与所观察到的对象之间的距离进行编码。本发明的一个目的是仅给定稀疏的一组3D点就恢复出深度图,这可从下述的手段之一获得。
[0041] 为了实现这个目的,包含若干图像帧的图像序列可分解成一系列的像片(shot)。一张像片理想地包含一个或多个图像帧,其中的帧间差异相对较小。图像序列中的像片边界的频率和位置可取决于序列中的运动。可由操作者人工地识别或者可使用像片检测算法来自动地识别像片边界。像片检测算法采用图像帧序列作为输入,输出一个或多个像片边界。像片边界有效地将图像序列划分成一个或多个组,使得任一组中的连续图像之间的差异相对较小。自动像片检测算法通常基于图像差异。例如,为了确定是否要在序列的两个连续的图像之间插入像片边界,要计算该两个图像的每个像素之间的总差异。如果该差异超过预定的阈值,则插入像片边界。
[0042] 图2说明了本发明的操作。
[0043] 图3说明了在本发明的一个实施例中的分类器的使用。
[0044] 图4说明了通过使用相邻的分类器的本发明的较佳实施例。
[0045] 发明详述
[0046] 深度图表示从某一特定角度观看到的场景的3D轮廓。当密集深度图与2D图像相关联时,它对图像中的每个像素对用于捕捉图像的摄像机与所观察到的对象之间的距离进行编码。本发明的一个目的是仅给定稀疏的一组3D点就恢复出深度图,这可从下述的手段之一获得。
[0047] 为了实现这个目的,包含若干图像帧的图像序列可分解成一系列的像片(shot)。一张像片理想地包含一个或多个图像帧,其中的帧间差异相对较小。图像序列中的像片边界的频率和位置可取决于序列中的运动。可由操作者人工地识别或者可使用像片检测算法来自动地识别像片边界。像片检测算法采用图像帧序列作为输入,输出一个或多个像片边界。像片边界有效地将图像序列划分成一个或多个组,使得任一组中的连续图像之间的差异相对较小。自动像片检测算法通常基于图像差异。例如,为了确定是否要在序列的两个连续的图像之间插入像片边界,要计算该两个图像的每个像素之间的总差异。如果该差异超过预定的阈值,则插入像片边界。
[0048] 3D点可定义成具有关联深度值的2D点,关联深度值表示点离摄像机的距离,并可根据下述过程中的任一个或任何组合来产生:
[0049] 1.从运动恢复结构算法:这种算法最初将识别首幅图像中的若干特征点,并试图在后续的图像中定位相同的特征点。诸如对象的角落和边缘之类的高对比区域一般是最可靠的用于跟踪的识别特征。一旦定位了足够的对应的2D点,就可能得出3D点。例如,如果已知两个图像之间的8个对应的2D点,则可使用Longuet-Higgens算法来恢复图像之间的核面几何(epipolar geometry)。与摄像机校准矩阵相结合,可对对应的2D点作三角测量,已寻找它们的恢复的3D位置。
[0050] 2.立体的或多视觉算法:如果使用以固定相对配置的两个或多个摄像机捕捉图像序列,则可使用每个摄像机的图像之间的对应关系,通过三角测量得出深度估计。如用SfM算法一样,对应的点仅可能在高对比区域中可靠地识别出,这限制了可通过这种算法确定的精确的3D点的数量。
[0051] 3.人工点对应或直接深度指定:可通过指示两个或多个图像中的点之间的对应关系或通过直接将一深度值与单个2D点相关联,来人工地识别3D点。
[0052] 本发明使用分类器对2D点(输入)和3D点(输出)之间关系进行编码。分类器可被认为是对一组输入和一组输出之间的关系进行编码的算法。分类器具有内部配置,可处于若干不同的状态中。在监督分类中,分类器使用输入和输出之间的关系的例子来改变(adapt)其内部状态。该处理过程可称为训练分类器。可使用从上述过程中得出的3D点来训练分类器。可选地,可选择不要求训练的分类器。
[0053] 为了清楚起见,我们将图像序列中时刻t出现的图像中的位置x,y处的2D点描述为:
[0054] P{x,y,t,I},
[0055] 其中,I是点P的图像特性集。在较佳实施例中,图像特性I由2D点P的红、绿、篮颜色分量组成。包括红、绿、篮分量的线性或非线性组合或高阶统计的任何其它的图像特性都可使用,而不影响本发明的本质,但不限于这些。
[0056] 3D点定义成:
[0057] R={x,y,z,t,I},
[0058] 其中,z对应于深度或离开点R的摄像机的距离。可使用上述技术产生的3D点来训练分类器。分类器对一组2D点及其对应的3D点之间的关系进行编码。由于这种关系随着时间变化,因此以一规定的时间间隔T来训练分类器。在较佳实施例中,该时间间隔与通过像片检测识别的图像序列的分解相符合。应注意到,单个时间间隔T可包括时间上不相邻的一个或多个像片。一个图像序列可能在两个或多个不同的场景之间交替变换,例如,在摄像机交替地聚焦于访问者和被访问者的新闻访问节目期间。在这些情况下,时间间隔T可包含来自一个场景(例如访问者)的所有图像。图3示出了使用像片检测算法分解的图像序列,图中央的三个帧属于一单个像片2。帧1是前一像片14中的图像,帧5是后一像片15中的图像。像片中的每个图像帧具有与之相关联的若干3D点4。各3D点的深度Z是人工地还是自动地得出,这无关紧要,所要求的是深度已知的一系列点。为简单起见,这些3D点通过它们在2D图像平面上的投影来表示。当前像片中的所有3D点输入到分类器,作为训练数据,而不管它们处于哪个帧中。
[0059] 经训练的分类器3可表示2D点P与3D点R之间在时间间隔T上的关系或映射: [0060] 如果t处于时间间隔T之内,C{T}:P{x,y,t,I}≡R{x,y,z,t,I}。 [0061] 换言之,现在可使用用在一组特定的图像帧上得出的3D点训练的分类器来在相同的时间间隔上为任何其它2D点恢复深度值。
[0062] 将分类器限制于特定的时间间隔提高了从2D点恢复3D点的精确性,但可能导致时间上不一致的结果。这些不一致一般在两个分类器之间的时间边界处明显。 [0063] 例如,考虑图像序列分解成两个像片的情况。对于每个像片中的所有3D点,对分类器进行训练。还假设第一个像片占据从t1至t2(包含的)的图像帧,第二个像片占据从t3至t4(包含的)的图像帧。t2处的图像帧将使用第一分类器进行分类,t3处的图像帧将使用第二分类器进行分类。在某些情况下,这可能在恢复出的深度图中引起可注意到的不连续。也就是说,第一个像片中的对象可能由于分类的结果而以某一深度表现出来,而第一个像片中的那些相同的对象可能由于第二分类器的结果而以一不同的深度表现在第二个像片中。在该 情况下,对于观众来说,图像看上去是跳跃的。
[0064] 在这可能成为问题的情况下,本发明的较佳实施例以两种方式来解决一致性问题。
[0065] 在训练之前,分类器一般初始化到某一随机状态。根据分类器的特性,该初始状态可能对训练后的分类器的最终状态产生显著的影响。为了提高两个分类器C1和C2(C2出现在C1之后)之间的一致性,C2可初始化到与分类器C1的初始状态相同的状态。可选地,可使用分类器C1的部分地或完全地训练的状态来初始化C2。例如,如果我们假设第一分类器初始化到随机状态s1。在训练期间,分类器可反复地改变其状态,例如从s1到s50。接着第一分类器的第二分类器可初始到例如状态s10而不是一随机状态。用第二分类器的某一状态初始化第一分类器的过程称为自举(bootstrap)第一分类器。自举具有提高训练分类器的速度的额外优点,因为起始状态一般更为接近于最终训练状态。
[0066] 为了进一步提高结果的一致性,可组合两个或多个分类器,从2D点确定3D点。例如,考虑在从时刻t1到时刻t2的时间间隔上经训练的分类器与作为t1与t2之间的中点的特定时间点相关联。
[0067] 对于我们希望确定3D点的任一点P{x,y,t,I}来说,我们确定其时间中点紧接着出现在时刻t之前或之后的两个最接近的分类器。图4示出了由若干图像帧组成的图像序列,该图像序列被分解成两个像片12和13。时间t从左向右随着每个连续的图像帧而增加。为了对作为图像序列的像片12中的图像7的一部分的给定2D点6确定3D点,可以组合具有直接位于2D点6的时间t之前的时间中点的第一分类器14和具有紧接着2D点6的时间t之后的时间中点的第二分类器15。
[0068] 假设第一分类器14输出3D点R1,第二分类器15输出3D点R2,假设2D点P作为输入,组合装置18可以通过组合R1和R2来产生改进的3D点R2。组合装置181可以简单的对R1和R2作平均,但是理想地使用其输入的加权组合。在较佳实施例中,权重基于点P和分类器的时间中点之间的时间距离。作为该过程的进一步说明,考虑在t1与t2之间的时间间隔上经训练的第一分类器14的时间中点定义为Tm1=0.5*(t1+t2)。类似地,在t3与t4之间的时间间隔上经训练的第二分类器15的时间中点定义为Tm2=0.5*(t3+t4)。 [0069] 我们可以通过分别对第一分类器14计算权重w1=(t-tm1)/(tm2-tm1),对第二分类器15计算权重w2=(tm2-t)/(tm2-tm1),来确定两个分类器的相对贡献。然后,可如下计算改进的3D点R3:
[0070] R3=w1*R1+w2*R2。
[0071] 在另一实施例中,通过与时间接近度相对的分类差错估计来确定加权。 [0072] 将理解到,本系统与申请人的在先系统具有显著的不同,并且从而与用于为图像序列产生深度图的任何其它方法有显著不同。如图1所示,申请人的在先过程要求选择若干关键帧,并且对各关键帧中足够数量的像素的深度要已知。对于每个关键帧,假设足够的像素被指定了深度,则可在第一阶段中建立深度图。然后在第二阶段中使用每个关键帧的深度图为剩余的帧产生随后的深度图。该过程与图2所例示的本发明显著不同。图2示出了没有必要从图像序列中选择关键帧。此外,没有必要确保某一帧或关键帧的足够数量的像素或点具有指定的深度。相反,本发明采用多个帧的若干数量的像素的深度和图像数据,来建立深度图。将理解到,用于分类器的数据可来自于单个帧,尤其是图像序列是关于静止对象时更是如此,但是,即使是在这种情况下,本发明也与申请人的在先申请不同,不同在于使用分类器来对像片的每个帧产生深度图,相反,现有系统对两个关键帧产生两个深度图,然后使用这些关键帧深度图来产生随后的深度图。
[0073] 将理解到,在各情况下,每个像素的图像数据是已知的。也就是说,如果我们考虑RGB分量,对于每个像素而言,系统已知相对XY位置以及RGB值。所要求的是像片序列中的若干像素具有一指定给它们的深度。可通过人工地、或自动地、或人工或自动的组合来指定深度。然后可把该信息传送给本发明的分类器,从而对像片的每个帧建立深度图。 [0074] 可通过利用相邻像片中的分类器来进一步改进本发明的系统。也就是说,对由相邻分类器产生的深度进行参考,而不是依赖于单个分类器单独产生的深度图。再次,这例示于图5中。在该情况中,第一像片12包括四个帧,它们的数据馈入分类器14。类似地,相邻的像片13包括6个帧,它们的数据馈入第二分类器15。为了确定第一至第十帧中的任何一个帧中的任何一个点的深度,例如,第四帧17中的点16的深度,将两个分类器的输出加以组合以确定 该点的深度。理想地,取决于考虑哪个帧,对任一分类器的依赖性将根据有利于某一分类器来进行加权。例如,在图4的例子中,与第一帧相比,第五帧中分类器15的加权将更多。类似地,对于第五帧来说,分类器14的加权将比对第十帧的更多。 [0075] 把加权设计成考虑图像中对象的深度可能随时间变化。还理解到对象的深度将对于对象的历史深度以及未来深度具有某种相关性。通过对各种分类器进行加权,可以实现像片之间的更为平滑的过渡。
[0076] 将理解到,在更为复杂的系统中,可能组合不止两个分类器,以便提高过渡平滑性。例如,可使用三个分类器,这包括用于某一像片的分类器以及位于该像片两侧的两个相邻的分类器。
[0077] 考虑到申请人的在先系统在当时作出了显著的改进。本系统对申请人的在先系统又作了进一步的改进。没有必要进行两阶段处理,以便对任一图像序列中的帧确定深度图。此外,没有必要已知单个帧中的足够数量的像素,以便在第一阶段得出深度图。相反,虽然本发明可依赖于单个帧,但是它能够从一系列帧中得出信息,从而对这些帧的每一个帧产生深度图。此外,即使对于某一帧不知道任何深度数据,本系统也将能够进行,例如图4的第九帧的例子所示。在该情况下,分类器使用剩余帧中的已知的深度数据。 [0078] 虽然通过示例性的应用概括和阐述了本发明的方法和装置,但是本领域的技术人员将理解到,许多广泛改变的实施例和应用都处于本发明的教示和范围之内,这里所给出的例子仅仅是说明性的,而不应被解释成对本发明的范围的限制。