在这一节中,我们将考虑相机只做平动的情况。我们用t=(U,V,W)T来表示相机的运动速度。于是,我们可以得到方程:
此时,在生成的光流场中,所有向量的反向延长线都会经过同一个点。这个点被称为:膨胀中心(focus of expansion(FOE)),它的光流速度等于零。从透镜出发、沿着相机的运动方向的射线,会“穿过”物体表面上的一个点,这个点所成的像(在像平面上)的位置(x0,y0)T就是膨胀中心。根据式(12.18),膨胀中心的坐标为:
膨胀中心是:碰撞点的像(在图像中)的位置,可以被用于导航。通过检测膨胀中心附近的图像区域中的目标属性,我们可以预测是否会发生碰撞,并且,进一步分析如何去避免发生碰撞(例如让膨胀中心始终位于图像中的指定区域)。这也正是无源导航这个词的由来。
当U=V=0时,膨胀中心(x0,y0)T=(0,0)T位于图像正中央。对于第4章4.7小节中的例子,以及习题12.14中的场景,我们的导航控制策略是:首先,通过调整飞行姿态,使得目标位于图像中心;然后,直接向前运动,冲过(或撞击)目标。
12.2.1 相似曲面与相似运动
我们想要说明:如果两种(相机的)平动所产生的光流是相同的,那么,两个曲面是相似曲面,并且,这两种运动也是相似运动。我们用Z1和Z2来表示两个曲面,并且,用t1=(U1,V1,W 1)T和t2=(U2,V2,W 2)T来表示相机的两种不同运动。两组参数:{Z1,t1}和{Z2,t2}产生出相同的光流,也就是说,
图12.2 相机运动的6个参数所对应的光流(假设Z(x,y)为常数)。
从这些方程中消去Z1、Z2、u和v后,我们可以得到:
我们可以将其写为:
或者进一步写为:
注意,我们假设:{Z1,t1}和{Z2,t2}产生完全相同的光流。因此,对于所有的x和y,上式都必须成立。于是,我们可以进一步推导出:下面的三个式子也必须成立,也就是说,
我们可以将这三个等式写为如下的比例形式,即:
通过上式,我们可以得出:Z2是Z1通过膨胀扩大而形成的。显然,无论已知多少个点的光流,我们都无法通过光流求得Z1和Z2之间的比例因子(这个比例因子同样也是t1和t2之间的比例因子)。
我们说相机的运动被“唯一”确定是指:相机运动在“相差一个比例因子的意义上”被唯一地确定。注意:相机的平动是一个向量t=(U,V,W)T,因此,我们只能确定向量t的方向,而不能确定其大小。这也是我们在下一小节中加入约束条件=1的原因。
12.2.2 最小二乘方法
图12.3 当景深为常数时,对于平动,所得到的光流应该是图12.2(a)、图12.2(b)和图12.2(c)的线性组合。相应的无源导航问题就是:确定线性组合系数(˜U,˜V,˜W)T。
在设计求解算法之前,让我们先通过一个具体例子来深入理解这个问题。图12.3中给出的是一个极其特殊的情况:场景是一个竖直的平面,也就是说,景深Z(x,y)=Z0是一个常数。对于平动,所得到的光流应该是图12.2中的前三个图像,即:图12.2(a)、图12.2(b)、图12.2(c),的线性组合(或线性叠加)。相应的无源导航问题就是:要确定相应的线性组合系数,也就是说,如何通过图12.2(a)、图12.2(b)和图12.2(c)来“合成”图12.3中的光流?此时,无源导航问题可以被简化为:求解一组线性组合系数,使得成立。线性组合系数( U, V, W)T=(0.3,0.4,0.8)T时,对应的光流如图12.3(a)所示;当线性组合系数( U, V, W)T=(0.2,0.3,1)T时,对应的光流如图12.3(b)所示。光流估计过程中可能含有大量的噪声。图12.3(c)和图12.3(d)中分别给出了(与图12.3(a)和图12.3(b)对应的)带有噪声的光流估计结果,其中,噪声被选取为0.2到0.2之间的随机数。在习题12.13中,我们将继续针对这个问题开展深入分析。
需要指出的是:即使是只包含平动的无源导航问题,也要比图12.3中给出特殊的情况复杂得多。除了确定运动参数( U, V, W)T外,我们还需要确定曲面形状(也称为景深)Z(x,y)。也就是说,我们可以对图12.3中的每一个“箭头”任意地做尺度伸缩。
通常情况下,如果相机的运动只包含平动,那么,图像上两个点的光流方向,就可以唯一地确定相机的平动。但是,只使用如此少的信息有很大的缺点。我们测量的光流中包含很大的噪声,我们希望得到一种具有鲁棒性的方法。因此,我们考虑:使用最小二乘方法(也就是说:针对某种范数形式的最佳拟合),来确定:运动参数以及物体的表面形状。
在下面的内容中,我们假设像平面是一个矩形,即:x∈[w,w]并且y∈[h,h]。如果像平面为其他形状,(我们将要导出的)这种方法也同样适用。事实上,如果场景中包含:多个以不同速度运动的物体,那么,我们可以将该方法用于:场景中某一物体所对应的图像区域。通常情况下,物体和相机之间的距离有一个下界,因此,我们可以假设1/Z是一个有界函数。此外,绝大多数的场景是由具有光滑表面的物体所组成的,因此,我们可以假设:场景深度(景深)是“几乎处处”连续的。特别的,我们可以假设:场景中,1/Z不连续的点的集合是一个零测集[1]。这个假设保证了:进行积分所需要的所有必要条件。我们想要最小化下式:
(www.xing528.com)
对于这种情况,我们所得到是:在L2范数意义下的最佳拟合结果。函数f(x,y)的L2范数的定义为:
最小二乘方法中,求解式(12.29)的步骤如下:首先,我们确定每一个点(x,y)处的Z值,从而使得:在将U、V和W看作已知常数的情况下,式(12.29)中的积分取得最小值;然后,我们确定U、V和W的值,以使得式(12.29)中的积分取得最小值。注意,在式(12.29)中,Z是一个函数Z(x,y);而U、V和W是参数,因此,在优化过程中,我们将“对Z(x,y)的优化”和“对U、V和W的优化”分为两步进行处理。在对Z(x,y)的优化过程中,U、V和W被看作已知常数,这是一个变分问题。经过这一步后,原来优化问题被简化为:一般的参数优化问题。为了方便,我们定义:
注意:给定U、V和W以后,理论上,我们应该得到的光流为:
于是,我们可以将积分式(12.29)简写为:
现在,我们进行:上面提到的求解优化问题的两个步骤中的第一步。首先,令式(12.29)中的被积函数对Z求导,再令所得到的表达式等于零,我们可以得到:
因此,我们可以得到Z的值:
顺便说一下,由于Z>0,因此,上式给出了一个关于U、V和W的约束条件。在后面,我们会利用这个约束条件,在所得到的两个符号相反的解中,选取一个合理的解。注意:我们现在有:
因此,我们可以将式(12.29)中的积分进一步写为:
首先,我们可以明显看出来的是:将U、V和W同时乘以一个相同的因子,并不改变上式中的积分结果。这反映出一个事实:我们所确定的运动参数,是在相差一个尺度因子的意义下而言的。
图12.4 关于式(12.37)的一个几何解释。
在进行下一步的处理之前,我们先给出一个:关于我们到目前为止所做的操作的几何解释(如图12.4所示)。对于任意给定的图像点(x0,y0),其光流不但取决于:该图像点所对应的物体上的点的速度U、V和W;同时还取决于:物体上的点在Z方向上的投影值Z0。但是,光流速度(u,v)的方向并不依赖于Z0。点(u,v)一定位于:uv平面上由方程βuαv=0所确定的一条直线L上。假设:图像点(x0,y0)处光流的测量结果为(um,vm),并且,在直线L上,和(um,vm)距离最近的点为(ua,va)(该点对应于某一个Za)。于是,残留的误差为:点(um,vm)到直线L的距离。这个距离的平方就是:积分式(12.37)中的被积函数(即:积分号里面的部分)。
在优化求解的第二步中,积分式(12.37)分别对U、V和W求导,再令求导结果等于零,于是,我们得到:
如果我令:
那么,我们可以将公式(12.38)~(12.38)简写为:
我们发现:式(12.42)乘以U、加上式(12.43)乘以V、再加上式(12.44)乘以W,所得到的结果恒等于零。因此这三个方程(即:式(12.42)~(12.44))是线性相关的。这是我们的预料结果。如果
(其中f是一个可导函数),那么,上式两边对k求导,可以得到:
这个结果同时也和如下事实是一致的,即:确定相机的运动速度这个问题,是在相差一个常数因子的意义下而言的!因此,我们只需要两个方程,但是,方程关于U、V和W是非线性的,并且,我们也无法证明:方程的解(在相差一个常数因子意义下)是唯一的。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。