用于确定立体视觉中的分散视差场的方法转让专利

申请号 : CN200580052496.6

文献号 : CN101356831B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : G·弗朗西尼S·莱普索尼G·普雷斯蒂

申请人 : 意大利电信股份公司

摘要 :

在立体视觉的系统(100)中包括拍摄同一场景的两个相机(T1,T2),在得知对极几何时执行用于确定分散视差场的方法,包括下述步骤:通过两个相机,从两个不同位置捕获场景的第一和第二图像(IM1,IM2);选择第一图像中的至少一个像素,所述像素与场景中的某点相关联,第二图像包含也同样与场景的上述点相关联的一点;和计算使成本函数最小化的从所述像素到第二图像中的所述点的移位,该成本函数包括依赖于第一和第二图像之间的差别的项和依赖于从对极直线到第二图像中上述点的距离的项,然后核对其是否属于围绕对极直线的子集的可允许区域(其中允许所述点存在),以便在相机校准中考虑误差或不确定性。

权利要求 :

1.用于确定立体视觉中分散视差场的方法,包括步骤:

●从两个不同位置捕获同一场景的第一和第二图像,使得所述第一图像的至少一组像素与所述第二图像上对应的一组点相关联;

●选择所述第一图像中的至少一个像素;和

●确定与所述像素相关联的所述第二图像的点,其中确定所述点包括使成本函数最小化,所述成本函数以所述像素和所述点之间的视差向量作为变量,并且依赖于以所述像素为中心的窗口中和以要确定的点为中心的对应窗口中第一和第二图像之间的差异;

其特征在于所述成本函数包括一项,该项以单调增加方式依赖于要确定的所述点与和所述像素相关联的所述第二图像中的对极直线的距离。

2.按照权利要求1的方法,其中分别通过第一和第二相机捕获所述第一和第二图像,并且所述项依赖于所述第一和第二相机的校准参数。

3.按照权利要求2的方法,其中根据相机校准数据的不确定性对所述项施加权重。

4.按照权利要求1的方法,其中所述项与所述点和对极线之间的距离平方成比例。

5.按照前述权利要求中任一项的方法,其中确定与所述像素相关联的所述第二图像的点的步骤包括在所述第二图像中界定在所述对极直线周围的所述点的可允许区域。

6.按照权利要求5的方法,其中所述可允许区域包含在由垂直于所述对极直线的直线界定的半平面中。

7.按照权利要求1-4中任一项的方法,其中所述成本函数包括参数,所述参数由以所述第二图像中所述像素为中心的所述窗口的像素中的亮度梯度以及以所述像素为中心的所述窗口的像素与同一窗口中所述第二图像的像素之间的亮度差构成。

8.按照权利要求1-4中任一项的方法,其中确定与所述像素相关联的所述第二图像的点的步骤包括使相对权重与包含在以所述像素为中心的所述窗口中的所有像素相关联。

9.按照权利要求8的方法,其中与以所述像素为中心的所述窗口的中心区域中的像素相关联的权重大于与所述窗口的外部区域中的像素相关联的权重。

10.用于立体视觉的系统,包括适于拍摄同一场景的第一和第二拍摄相机和适于从所述第一和第二相机接收所述场景的相应同时图像的处理单元,所述处理单元被配置用于按照权利要求1-9中任一项来处理所述相应图像。

说明书 :

技术领域

本发明一般涉及用于自动分析立体视觉的图像的方法,尤其涉及用于在对极几何已知时确定分散视差场的方法。

背景技术

自动分析图像中要解决的常见问题是确定在显示利用一个或多个相机从不同视点获得的同一场景的两帧之间存在的视差(disparity)。视差与同一场景元素的两帧的位置有关。现已有计算每个图像像素以及限于像素的子集(即一组点)的视差的算法。前一情形涉及密集视差场,后一情形涉及分散视差场。本发明属于第二类。
用于确定两帧之间存在的分散视差场的普遍技术在于识别和关联相对的相关点,即描述特征图像区域的点。为此,现已有基于识别可在帧之间似真地关联(即降低模糊度)的角度、边缘(egde)、轮廓或任何其它特征的若干算法。这些算法用于跟踪一般帧(也是由一个相机在不同时刻拍摄的)之间的点。
在“计算机视觉”领域,已有很多文献涉及寻求不同帧之间的对应问题。尤其,在立体视觉中,主要目的之一是确定自n(n≥2)个不同视图到描绘的对象之间的距离。当n=2时,为确定对应,考虑描述视觉系统(即相机特征和位置)的参数,使用描述与同一场景有关的两帧之间存在的关系的所谓基本矩阵。该关系意味着,在第一图像(帧)上取一个点,其在第二图像(帧)上的对应点将位于一条直线上(称为对极线)。
基于识别和跟踪图像中具有的特征可被用于计算分散视差场的最著名算法之一是在Carlo Tomasi和Takeo Kanade的“Shape and Motionfrom Image Stream-part 3-Detection and Tracking of Point features”(Technical Report CMU-CS-91-132,April 1991)文中描述的那个算法,本领域中称为KLT(Kanade-Lucas-Tomasi)技术。如该文所述,帧之间的正确点跟踪存在两个要解决的重要问题:如何选择要跟踪的特征(“特征选择”)和如何逐帧跟踪它们(“跟踪”)。该文尤其描述了一种用于通过2×2线性系统(其可在要被最小化的成本函数中变换)进行跟踪的算法,其未知量是两帧之间的点特征的两维移位向量(视差向量)。尽管可与图像顺序有关,KLT技术也可被有效地用于相同场景的同时图像的情形。
基于KLT技术的J.Shi和C.Tomasi的文章“Good features totrack”(IEEE Conference on Computer Vision and PatternRecognition(CVPR94),Seattle,June 1994)提出了一种可对其进行跟踪的特征的选择标准。
J.Mendelsohn、E.Simoncelli和R.Bajcsy的文章“Discrete-TimeRigidity-Constrained Optical Flow”(7th International Conference OnComputer Analysis of Images and Patterns,September 10-12,1997)涉及密集场的计算并且提出视差向量(其构成密集场)指向位于对极直线上的位置。有了该约束,如果准确得知对极直线,则可改进可获得的结果。
H.Najafi和G.Klinker的文章“Model-based Tracking withStereovision for AR”(Proceedings of the Second IEEE and ACMInternational Symposium on Mixed and AugmentedReality(ISMAR),2003)提出利用KLT技术的基本矩阵顺流来移除某些特征,对于这些特征,第二帧中的对应点未处在对极直线上。从而,与两个相机的配置相冲突的视差向量被移除。

发明内容

申请人注意到,KLT技术并未利用基本矩阵知识,这些知识在两个或更多相机的情形中通常是可获得的。
而且,申请人注意到,利用基本矩阵的视差计算技术约束点停留在对极线(epipolar line)上,并且这种约束只在假定精确相机校准的情况下带来正确结果。然而,校准典型地通过估计来获得,并且因而容易有误差或者不准确。
申请人发现,通过适当修改KLT方法以考虑与可通过校准处理计算的基本矩阵有关的信息,可提高提取的视差场的质量。尤其,申请人发现,通过修改点跟踪处理以便考虑基本矩阵(但不设定绝对约束),可任意地影响处理,以便补偿校准系统过程中的误差。
尤其,申请人发现,通过在KLT技术成本函数中引入一个与对极线和搜索点之间距离的平方成正比的项从而允许该设置偏离对极直线,能够在近似校准的情况下获得精确结果。由此获得的结果好于可通过运用原始KLT技术获得的结果和可通过约束识别的点只处于对极直线上的结果。
优选地,为了确定与第一图像的像素相关联的第二图像的点,反复执行成本函数最小化步骤多次,每次均使用在之前的循环中获得的成本函数更新。
而且,申请人发现,可进一步限定相对于对极直线的有效区域,这种限制由半线(对极直线的子集)表示,其导致消除不指向该半线附近的位置的所有视差场。
本发明的优选应用领域是计算机视觉,尤其用于从多视点拍摄的情形。

附图说明

下面将参考示出了本发明的非限制性应用例子的附图来描述本发明。具体地:
图1示意性地示出了用于视频拍摄的系统,其包括两个相机和由本发明中描述的处理组成的块;
图2示意性地示出了两相机摄取的图像,在其中一图像上指出与另一图像的像素相关联的对极线;
图3示出了上述图像,其指出上述对极线和视差向量的可允许区域;
图4和图5示出了从不同角度摄取的同一场景的一对帧,以在本发明的技术和以原始方式执行的KLT技术之间进行对比试验;
图6示出了以原始方式执行的KLT跟踪技术的结果;
图7示出了通过本发明的技术获得的结果;
图8和图9示出了图6和图7中所示结果的对比细节。

具体实施方式

参考图1,100整体上表示一个用于使用多个相机进行视频拍摄的系统。具体而言,系统100能够从同一场景的不同位置拍摄并且确定所拍摄的图像之间的分散视差场。
系统100包括第一相机T1和第二相机T2,两者均能产生同一场景的相应数字图像(或帧)IM1、IM2。可使两相机T1、T2朝向场景的方向为相互平行或相互倾斜。
系统100还包括处理单元PU,其连接到两相机T1、T2并能够按照下述方法处理从两相机T1、T2接收的数字图像IM1和IM2以获得分散视差场。而且,系统100包括相机校准模块CM(最好是处理单元中或单独单元中的软件模块),能够向处理单元提供要用于按照本发明方法的处理的校准数据。
同一场景的两个同时图像之间存在的关系与由一单独相机拍摄的连续图像序列中存在的关系相似。因而可参考KLT跟踪技术来解决确定图像特征移位的问题,如上述文章中Shi和Tomasi所提出地来选取特征。
可用函数F(x,y,t)表示图像序列,其中F指强度(单色情况下是标量1)、x和y是空间坐标(帧中的位置),t是时间。KLT技术也同样基于的常用的近似方法将时刻t和t+τ之间的图像变化仅表示为空间失真。
F(x,y,t)=F(x+u(x,y),y+v(x,y),t+τ)(1)
其中u(x,y)和v(x,y)是两空间方向中的移位量。公式1在文献中称为“亮度变化约束等式”(BCCE)。
这意味着可通过在时刻t将每个图像点移动适当量(称为移位(displacement))获得时刻t+τ中的图像。通过得知图像中每个像素的移位,可构建图像自身的视差场(即一组应用于相关帧的向量),允许在另一时刻构建帧。
实际上,不是严密观察BCBE。只要考虑其中一个图像中的部分隐藏对象就足够了:这些对象不是从一帧“移”到下一帧,而只是出现或不出现。相同问题可在对象进入或离开场景的图像边缘发现。在任何情况中,KLT技术考虑一些特征而不是所有像素,并且能够对特征获得在移位计算下游的BCCE校正的估计。
本发明的技术对属于场景的不同特征单独地计算两(或更多)帧之间存在的视差场(从而其产生分散场)。
简要地,如图1中所示,本发明的方法包括下述步骤,下面将对这些步骤进行详细描述:
-通过计算相机T1、T2的诸如焦距和投影中心之类的固有参数和诸如旋转-平移(roto-translation)矩阵之类的非固有参数来校准相机T1、T2(块110);
-提取图像IM1的特征(块120);
-跟踪第二图像IM2上的特征,考虑校准参数(块130);和
-从计算中移除第二图像IM2中未落入可允许区域内的点,下面进行定义(块140);
在本发明的方法中必须将移除步骤看作是优选的而不是强制的。本方法输出的是第一图像IM1的特征和第二图像IM2的对应点之间的匹配。
如上所述,计算分散视差场的问题可分为两部分:如何选择要跟踪的对象(即图像特征),和如何跟踪选择的对象。本发明影响跟踪操作。
可以下列方式将两时刻t和t+τ的上述函数F表示为两个函数I和J:
I(x)=F(x,y,t)(2)

J(x+d)=F(x+u,y+v,t+τ)(3)
其中d是与具有坐标x=(x,y)的像素相关联并且包含两个分量u和v的移位向量。通过将该置换插入,可以下述方式重写等式(1)表示的BCCE
I(x)=J(x+d)(4)
由于本方法单独地应用于每个选择的点,因此能够考虑以须计算其移动(即在像素x上)的对象为中心的像素窗W。在窗口W中,除了可表示为下式的剩余误差之外,等式(4)是有效的:
ϵ=W[I(x)-J(x+d)]2dx---(5)
通过使等式(5)中的误差最小来获得最佳移位向量d。等式(5)不是线性的,为了对其求解,最好将其转换成线性等式。当移位向量d较小时,通过利用在一阶处被截断的泰勒逼近,可完成该转换。
J(x+d)=J(x)+gTd(6)
其中g是在x=(x,y)中所求的函数J的梯度,
g(x)=J(x)---(7)
通过使等式(6)对落入窗口W内的所有像素离散化,得到下述等式系:
Jx(p1)u+Jy(p1)v=I(p1)-J(p1)······Jx(pN)u+Jx(pN)v=I(pN)-J(pN)---(8)
其中Jx(pn)和Jy(pn)是一般像素pn中的梯度向量的两个元素,并且N是包含在窗口W中的像素数。
等式系(8)可表示为下述矩阵形式:
Jx(p1)Jy(p1)······Jx(pN)Jy(pN)uv=I(p1)-J(p1)···I(pN)-J(pN)---(9)
可将等式(9)重写成紧凑形式Ad=b。矩阵A由落入所应用的窗口内的像素中的第二帧的亮度梯度组成。向量b由同一窗口中的两帧的像素之间的亮度差组成。向量d是要计算的移位。应当理解,移位不必朝向像素(因而具有离散坐标),而是更通常地朝向第二图像的点,其可以在两相邻像素的中间。
通过下述方式(见等式(10))将权重与每个等式相乘,对属于窗口的每个像素分配相对重要性是有利的。
VAd=Vb(10)
其中
V=w1···wN
因此,分配给一般像素Pn的权重等于wn。权重被用于将较大的重要性赋予位于窗口中心的像素。
该系统是超定(over-determined)的,因为其由N个等式(N>2)和两个未知量组成并且可通过代表最小二乘逼近的法方程求解:
ATWAd=ATWbGd=e---(11)
其中
W=VTV′
G=ATWA′
e=ATWb
KLT技术还包括用于选取要跟踪的点的标准。可利用例如按照Shi-Tomasi的教导的公知技术来完成该选取。选取的标准无论如何必须保证矩阵G的可逆性。
所有上述讨论对于呈现同一场景并且同时摄取的一对帧(例如图1中的帧IM1和IM2)也同样有效。在这种情况下,事实上,两函数I和J分别与第一图像IM1和第二图像IM2相关联。两帧IM1和IM2可满足等式(1)的一个必要条件是两个相机T1、T2被放置为一个足够靠近另一个,使得它们拍摄相同场景部分。
通过对极几何来表示同一场景的两次拍摄之间的关系。两次拍摄均可见的场景中的每个元素在两帧IM1和IM2中投影在遵从简单等式的位置上。该等式的系数包含在由3×3个元素组成的基本矩阵F中。在齐次坐标中指定的两帧中的投影位置是
m1=x1y11

m2=x2y21
其中x1、y1、x2、y2是呈现拍摄元素的两帧中的两个像素的坐标。这些坐标必须遵从等式
m2TFm1=0---(12)
因此,给出两帧的第一帧中的一点m1,第二帧中的点m2必须位于其系数由乘积Fm1确定的直线上。对称地,给出第二帧中的一点m2,点m1必须位于具有包含在乘积m2TF中的系数的直线上。将这些直线称为对极。这些关系构成了完全由基本矩阵F表示的对极几何。
在本说明书中,假定已知确定基本矩阵的固有和非固有的相机校准参数。不过,申请人注意到,由于校准可以被估计错误影响,使用由此提供的信息来作为绝对约束可能是不正确的。
为了关联自校准参数的知识得到的信息,将KLT技术解释为自等式(9)获得的特定函数的最小化是有用的。此等式是超定等式,并且可通过最小二乘逼近来求解;其解对应于找到由Ad-b给出的所谓剩余范数的最小值。因此,可用下式重新描述上述问题:
d=argmin||Ad-b||2(13)
即作为要被最小化的成本函数。考虑等式(10)中引入的权重,等式(13)变成
d=arg min||Gd-e||2(14)
实际上,会出现这种情况:由此获得的向量并不总是正确的,即并不总与从一帧到另一帧的对象移位相对应。例如,当KLT算法基于的线性逼近失效时,这种情况可能发生。
对于两个相机的情况,能够考虑与校准有关的信息,从而改进结果。对极几何提供关于第二帧中的区域(在其中,为计算移位向量d而不得不搜索特征)的指示。
本发明通过将校准数据变换为要被添加到已经包含在等式(14)中的那些约束的约束来利用校准数据。将该约束变换为与对极信息有关的成本项。如果已精确得知几何形状,搜索点应当位于对极直线上。考虑到校准是通过估计获得的,因而易于产生误差或者不准确,更合适的是分配与校准信息有关的价(valence)。因此,必须允许解偏离对极直线,这在本发明中是通过在成本函数(14)中引入与对极线和搜索点之间距离的平方成比例的一项来获得的。
从而,等式(14)采取形式
d=argmin{||Gd-e||2+λ2ρ(z+d,L)2}(15)
其中ρ是表示点z+d(即,被量d=[u v]T变换的点z=[x y]T)和L(即,与点z相关联的对极直线)之间的欧几里得距离的函数。λ因子必须预先构建并且可被启发式地确定,这同样取决于分配给基本矩阵的可靠性。λ值越高,越依赖基本矩阵的正确性。λ可增加,直到它实际约束解位于对极直线上。
通过基本矩阵F获得对极直线。在第二帧中,自点z+d的直线距离可表示为
ρ(z+d,L)=a(x+u)+b(y+v)+ca2+b2---(16)
其中系数a、b和c由下式中的乘积给出
abc=Fz---(17)
从而该线上的任意点m=[xm ym 1]T遵从等式
axm+bym+c=0
等式(15)的解可通过法方程获得
GλpTTGλpTd=GλpTTeλr---(18)
其中向量p和r被定义为
p=1a2+b2ab---(19)

r=-(ax+by+c)a2+b2---(20)
可对等式(11)和(14)进行扩展,以通过每步均提供泰勒级数的更新的迭代计算,获得更精确的结果。在这种情况中,视差向量由多个项组成。在每步均添加项,并且最终的结果可表示为
d=Σm=1Kdm---(21)
其中每一项是一个向量
dm=umvm---(22)
在第M步中,等式(9)变成
Jx(p1+Σm=1M-1dm)Jy(p1+Σm=1M-1dm)······Jx(pN+Σm=1M-1dm)Jy(pN+Σm=1M-1dm)uMvM=I(p1)-J(p1+Σm=1M-1dm)···I(pN)-J(pN+Σm=1M-1dm)---(23)
或者,更紧凑地
AM-1dM=bM-1(24)
从而,在第M次迭代,等式(11)变成
AM-1TWAM-1dM=AM-1TWbM-1GM-1dM=eM-1---(25)
在M=1、同时d0=0时初始化迭代。迭代的总次数可预先设定或根据最后添加的项的范数确定。
可通过修改等式(20)中描述的向量r,使得提供等式(15)的解的法方程(18)适合上述迭代处理。在第M次迭代,该向量将采取如下形式
r=-(a(x+Σm=1M-1um)+b(y+Σm=1M-1vm)+c)a2+b2---(26)
迄今所述的处理添加关于要计算的移位向量方向的信息,即等式(15)产生与对极几何一致的移位矢量。但是,这对于正确地表征向量本身是不够的,因为对于对极直线的约束带有一定自由度。该自由度由下述事实得出:等式(15)中的第二项将解带向对极直线,但不一定带向第二帧中的真实特征位置。可通过引入对极直线的可允许区域从而将它转换成半线来减小该问题。
该核对基于的事实是:参考图2,可将点P(可在拍摄场景中的无穷远距离处找到)关联到第一帧IM1中的特征A。从而,点B可位于与第二帧IM2相关联的对极直线L上,其是点P的投影。由于投影到点A的任意场景对象位于半线AP上,该对象在第二帧中的投影必须位于作为半线AP的投影的半线S上。因此,该半线是对极直线的子集。
考虑由于不确定的校准可靠性而偏离对极直线的可能性,可将可允许的子集扩展为以B为顶点、包含半线S的可允许区域Z,如图3中可看出。
按照这些讨论,可执行允许有效地移除不遵从场景几何的移位向量的核对。因而,该核对(在点B位于第二帧IM2中的情形时是有用的)允许移除点z+d不处在可允许区域Z中的所有备选{z,d}(特征和移位向量)。区域Z可具有不同形状。必要的是Z是该平面的子集,该平面由经过与之相邻的点B的曲线界定并包含半线S。
可将半线S表示如下:
S={B+κ·e:κ0}---(27)
其中K是非负因子,是与对极直线平行的方向向量。
可通过相机校准参数知识获得用于限定半线S的元素。在这些元素中,两相机的固有参数被包含在矩阵k1和k2中,而将与第二机器相关联的旋转矩阵和变换向量(非固有参数)称为R和t。更多详情请参考Richard Hartley和Andrew Zisserman的“Multiple VisionGeometry”(Cambridge University Press,2000)中第153-156和244页。矩阵R和向量t将属于第二相机的坐标系转换为属于第一相机的坐标系。第一帧中的特征A可用齐次坐标表示为:
A=xy1
点B(位于无穷远处的点P的投影)可通过A和校准参数表示为:
B=K2RwR3w---(28)
其中R3表示旋转矩阵R的第三行。向量w从点A获得,为
w=K1-1A||K1-1A||---(29)
方向向量可表示为
e=K2((R3w)t-t3Rw)---(30)
其中t3是变换向量t的第三个元素。
作为例子,可参考图3,以下述方式定义可允许区域。必须检验其正确性的点的位置由和z+d给出。如果从B开始并且穿过z+d的半线与半线S形成的角度小于特定阈值,则该点属于可允许区域。在这种情况下,在检验下述关系时用向量项来表示其是否属于的核对
(z+d-B)Te||z+d-B||||e||θ---(31)
其中标准化向量的内积超出了要设定的阈值θ∈[0,1]。最小阈值是0,此时可允许区域是由垂直于点B中的对极直线的直线界定并且包含半线S的半平面。阈值越趋于值1增加,可允许区域越受限。依据上述标准,图3示出了与0和1之间的中间阈值对应的可允许区域,以及一个不可接受的点z+d’的例子。
当作为上述处理的结果从处理单元PU输出时,获得从第一帧IM1提取的特征和在第二帧IM2中找到的对应点之间的关联,从而获得与这些点本身相关的移位向量d。
可在图4-9中看到一些例子。图4和5包含从不同角度拍摄的同一场景的一对帧,已经对其运用了构成本发明的算法。
图6示出了以原始方式执行的KLT跟踪技术的结果,而图7示出了通过本发明的技术获得的结果。两图中指出,为跟踪选取的特征的移位向量为线段。如可观察到的,在图7中这些线段相互间更相干地面对一定方向,这是误差出现得较少的指标。
图8和9示出了其中由本发明带来的益处较明显的一些重要细节。在这些后面的图像的每一个中,左上方块(8a,9a)以由第一帧提取的特征为中心;右上方块(8b,9b)以通过原始KLT技术获得的第二帧中的点为中心;右下方块(8c,9c)以通过本发明获得的第二帧中的点为中心。在两右方块中,示出了与有关特征相关联的对极直线,这使我们能够了解获得的重要改进。