当物体在相机前面运动,或者,相机在固定环境中运动时,在物体所成的图像上,亮度模式会发生相应的变化。这些变化可以被用于恢复物体和相机之间的相对运动,以及物体的形状。事实上,要完成这个任务,需要解答如下两个子问题:
•第一张图像如何变化,才能生成第二张图像?
•物体和相机之间如何运动,才能匹配上图像的变化?
本章中,我们将详细分析和求解第一个问题。基于第一个问题的解,在第12章中,我们将进一步深入研究和解答第二个问题。第一个问题中的“如何变化”,具体是指:如何对各个像素点进行移动。图11.1可以帮助我们深入理解这个问题。图11.1(a)中的“箭头”描述了各个像素点的移动情况,由于像素点的运动,图11.1(a)最终变成了图11.1(b)所示的亮度模式。因此,
•像素点的运动是使得图像亮度模式发生变化的内在原因!
我们的任务是探索一个“相反”的过程,我们所看到的是图11.1中的两张图像(参见图11.2(a)和图11.2(b)),我们所希望“观测”出的运动,是图11.1(a)中的红色“箭头”,也就是说,每一个像素点(在像平面上)的运动速度,如图11.2所示。
(www.xing528.com)
图11.2 我们需要对两张图像进行对比,判断其差别,进而推测像素点的运动。(a)初始图像。(b)变化后的图像。(c)两张图像之间的对比,“白色”表示亮度不变,“灰色”表示变亮了,“黑色”表示变暗了。
正如我们前面所提到的,像素点的运动是使得图像亮度模式发生变化的内在原因,我们要估计像素点的运动,首先要“观察”图像亮度模式的变化。因此,我们需要对两张图像进行对比,判断其差别,这提示我们对两张图像做差,如图11.2(c)所示。图11.2(c)中,“白色”表示亮度不变的像素点,“灰色”表示变亮的像素点,“黑色”表示变暗的像素点。图11.2(c)中“灰色”和“黑色”的像素点上的运动,是我们可以通过观测进行估计的,称为“看得见的运动”;而白色像素点上即使有运动,我们也是无法观测到的,称为“看不见的运动”。因此,我们通过图11.2所估计出来(或“观测”到)的运动信息,并不完全等价于图11.1(a)中的“箭头”。
我们将图11.1(a)中的“箭头”(像素点的速度)称为速度场,而将通过图11.2所估计出来运动信息称为光流[1]。需要指出的是:
•光流并不等同于速度场,而是对速度场的一种视觉估计!事实上,我们所要解决的问题远比图11.1和11.2中所示的情况复杂。首先,我们所处理的是灰度图而非二值图,其次,(各个)像素点的运动情况也更加复杂,可以沿着任意方向(而并非只是“上”“下”“左”“右”四个方向)运动,并且,速度大小也不一定是整数。图11.1和11.2只是用来帮助我们理解本章中我们所要研究的问题和完成的任务,接下来,我们将建立严谨的理论模型,来逐步实现对问题的分析和求解,进而建立起相应的光流估计算法。
图11.3 光流并不总是等于速度场。图(a)中,光源是固定的,一个光滑的球在不断的转动,在这种情况下,图像并不发生变化,但是,速度场却并不为零。图(b)中,球面是固定的,但是,光源在不断地运动,在这种情况下,图像的明暗在不断的变化,但是,速度场却为零。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。