1. 引言
运动图像分析(也称时变图像分析)的目标是确定空间物体的三维运动和结构,是目标跟踪的基础,其分析方法可以分为基于特征的方法和基于光流的方法。
从运动物体的图像序列中提取出正确的光流矢量,因为光流矢量构成的集合通常被称作“光流场”(optical flow) [1] ,主要涉及一个从某一图像序列中计算其可见点的三维速度矢量在成像表面上投影的过程,因而有些文献也称之为光流场计算或运动估计(motion estimation),是视频压缩、三维重建、运动目标检测、目标跟踪、活动检测和关键帧提取等许多机器视觉问题的关键技术之一。目前,光流场计算与分析在信息科学、军事科学、气象学、生物医学和实验流体力学等诸多学科领域的应用日益广泛深入,而光流计算问题本身的研究越来越突显出其重要性,与时间差分法、背景建模法并列成为运动目标检测的三大主流方法。
2. 问题描述
为简化叙述,我们以一些“点”为例进行说明,如图1所示。运动图像分析要解决这样一个问题:如何估计图1中各像素点从图(a)到图(b)的运动?问题可以转化为像素匹配问题,即给定一个图1(a)中的像素点,找出图(b)中的对应点。于是就涉及到特征的选择和匹配问题,比如说做出一些关键性的假设,像颜色恒常性(即图(a)中的像素点和图(b)中的对应点颜色一致;对于灰度图像,则表现为亮度一致性。)、小距离运动(即图中的像素点不会移动很远)等等。
特征匹配问题在具体计算中被转化为特征场的计算,具体来说就是视频序列中存在的图像时空信息,包括亮度、颜色值、帧差分信息、纹理、边缘等。
光流是由图像中的运动目标形成的图像灰度/亮度模式的变化,光流场计算即根据上述时空信息从运动图像序列中计算图像目标运动的速度矢量集合 [1] ,如图2所示,其中图2(a)代表运动图像的视频;图2(b)为间隔一点时间对视频中的运动目标进行剪影形成的图像序列;图2(c)为检测出的“光流场”。

(a) (b)
Figure 1. The motion analysis with the “point” as an example
图1. 以“点”为例的运动分析说明
(a) (b) (c)
Figure 2. The example of “optical flow”
图2. “光流场”示例
3. 相关工作
自80年代初Horn和Schunck [1] 提出基本的光流计算方法以来,大量的理论和实验研究都集中在光流场估计及其相关信息处理问题上。总体说来可以将现有的研究进展划分为三个阶段:第一阶段从1981年至1992年,以Horn & Schunck的方法 [1] (简称HS方法)和Lucas-Kanade方法 [2] 的开创性工作为基点,产生了一些以HS方法为代表的经典算法,早期的一些运动图像分析依赖于光流场的局部、粗略估计来进行图像分割,即分割为运动情况一致而又互不交叠的多个区域,在区域边界处的估计结果准确性很差;1993年至1998年为第二阶段,以Barron等 [3] 和Black [4] 等的工作为代表,Barron等的工作是对HS方法进行了量化分析并指出其优化计算过程中的问题,Black等率先将鲁棒估计引入光流场计算中来;第三个阶段从1999年至今,以Li和Osher [5] 、Deqing Sun [6] 等的工作较为突出,Li和Osher提出了在光流计算中应用中值滤波,被Deqing Sun等人的实验证明可以在多数情况下改善光流计算的鲁棒性,Deqing Sun等不仅对前人的以HS方法为代表的经典算法通过实验进行了比较分析,还融合其中较为先进的元素提出了一些改进措施以及一个用于光流场计算的概率模型 [7] 。可以概括地说,前两个阶段并没有对光流场的开创性工作有很大的改进,只是理论框架中的元素的增加和完善;由于光流场计算量大、假设条件很强,许多运动分析方法都以不涉及光流场计算为优势。第三个阶段的研究工作开始改善光流计算的准确性和实时性,使其向实用化发展。
具体来说,如何实现快速准确的光流计算涉及四个方面的问题:
一、约束条件
许多光流场估计方法都假定了图像亮度的静态不变性(亮度不变模型BCM),即亮度的变化只是由运动这一个因素引起,于是就产生了著名的光流约束条件 [1] ,如下式所示:
(1)
式中
g = [gx, gy, gt]T为亮度在时域偏导的矢量表示,v = [u, v]T即为待估计的光流场。因为该式并不能确定问题的唯一解(即常说的“孔径效应”),需要添加新的约束来求解该问题,通常使用就是速度流v在一个小的邻域范围内的局部约束 [2] ,即线性亮度恒常性,对每个点独立进行计算并将结构张量与高斯函数卷积,将流估计问题转化为一个代价方程的最小化问题,如下式所示:
(2)
上式就是Lucas-Kanade 方法 [2] 采用的代价方程,这一方程可以被理解为图像信号在指定邻域范围内沿给定方向v = [u, v]T上波动造成的差异度。
由于亮度恒常性经常无法满足,研究者们转而应用梯度的恒常性,梯度恒常性的鲁棒性较之亮度恒常性要强很多,另外还有有向平滑性约束 [8] 、刚性约束 [8] 和图像分割约束 [9] 等,但是总体说来,这些局部约束条件并不处处成立,在存在大范围运动、遮挡、往复运动和孔径现象时就会失效。于是研究者们一直寻求一种能够将局部约束条件鲁棒整合的方法,或者说是某种空间一致性。
二、迭代优化方法
选择约束条件之后,就是建立目标函数并采用某种迭代优化方法进行计算。迭代优化方法可分为连续型和离散型。连续型常用梯度下降法、微分法等;离散型常用融合选优法(即采用经典方法产生光流场,然后用割图等方法选择比较好的计算结果并优化)和动态多尺度优化法(先进行粗尺度下对一些松散点的计算,然后按照从粗到精的顺序动态更新计算结果)等 [10] 。
在具体求解时,经典的最小均方估计方法隐含的一个假设条件是空域求偏导是无误差的,然而由于图像噪声的存在和噪声模型与实际噪声的不匹配性,偏导数的数值计算结果不可避免地会带有误差,于是另外两种优化计算方法TLS (total least squares) [11] 和EIV (errors-in-variables) [12] 被用来减小估计误差。迭代式Lukas-Kanade算法通过求解Lucas-Kanade 方程估计每一个像素点的速度,得到光流场的速度估计。典型算法的性能分析参见文献 [2] [13] 。另外,光流场的计算需要检测运动速度不连续点形成的边界,有人采用马尔可夫随机场(Markov Random Fields) [14] 和正则化技术 [15] 检测这一边界;Stefan Roth等将离散和连续型的优化计算方法相结合,在优化过程中考虑了非凸性能量的影响 [16] ;Gang Dong等 [17] 提出了基于TLS (total least squares)模型一种考虑所有求导过程误差的运动流估计方法,并将噪声模型和运动参数模型结合到一起。还可以应用Euler-Lagrange方程最小化代价方程并采用线性/非线性离散化方法优化系统。
在求解目标函数的迭代优化过程中常用的“惩罚”函数有三种,Deqing Sun通过实验证明:阶段分步非凸性优化(GC-0.45)最优,Charbonnier次之,而Lorentzian的效果最差 [5] 。
总之,求解过程是一个迭代优化过程,松弛标记、多尺度分析等技术均可加入。显然,初始化估计结果越好,算法收敛越快,效果就越好。
三、鲁棒估计
鲁棒估计即是前面所说的一种能够将局部约束条件鲁棒整合的方法,好的鲁棒估计方法要求能在增强对离群数据的鲁棒性的同时,不对运动边界过度平滑。比如:在均匀扩散的基础上附加鲁棒统计有助于保留图像中的不连续点,现在性价比较高的方法有:针对高速运动提出的中值滤波 [5] 、双边带滤波 [18] 、多尺度分析 [19] 、纹理分解 [20] 、5*5滤波加基于样条曲线的双三次插值 [20] 、求导时域平均法 [20] 、阶段分步非凸性优化 [2] 、高阶滤波器 [21] 、图像分割 [22] 等方法。
四、空间关联
空间关联的物理含义是同一平面上的点运动情况相似,而且由于邻近点的空间关联性,整幅图像的光流场体现出渐变或一致的特性。而从数学角度表述就是在式(2)的基础上融合更多的约束条件和空间信息,总体说来,分以下两个部分:
(3)
式中,第一项包含了式(2)中的亮度恒常性和梯度恒常性;第二项就可以施加流驱动的空间一致性约束、刚性约束或平滑性约束,可以用一阶或高阶偏微分方法实现。
实验结果表明,能够整合更多的影响因素的方法更好,但是整合更多因素之后,虽然平均误差减小,但是误差方差仍然较高,只有小幅降低。
4. 分析与展望
从上述对相关工作的描述中可以看出,运动图像分析中涉及的光流场计算是一个相对比较成熟的研究领域。然而由于孔径效应、无纹理区域、噪声、非刚性运动、运动不连续、遮挡、大幅度运动、小目标、光照不均等问题的存在,光流与图像运动之间的关系不总成立,因而还是有很多实际问题需要解决。根据我们的分析,目前可以预见的一些研究方向有:
一、数据的分层表示 [23] 近年来越来越得到研究者的重视。这种表示方法有很多优势:1) 可以很自然地把不连续点涵盖进去;2) 有益于信息交换;3) 有利于减小信息的不确定性。但是这种分层表示方法实现起来却很困难。
二、多帧数据的信息融合。现有的研究表明,两帧相关法 [24] 只对速度较慢的情况适用,而且无法处理多个运动目标同时出现或者存在遮挡的情况,三帧相关的效果要好得多。毫无疑问,多帧信息融合处理得越好,速度场的计算会越准确。
三、运动边界区域的统计计算。运动边界问题是指,由于物体遮挡,在运动的边界附近的图像序列之间并没有相互匹配的部分,因而光流约束方程不再满足,同时再加上计算时平滑约束的影响,因此在运动边界处光流计算会产生较大误差,该问题也是光流计算中尚未很好解决的难题之一。光流场或图像目标速度的准确测量对于许多机器视觉的实际应用都是需要解决的问题,传统的方法一般都没有考虑运动物体的边界 [3] ,从而不利于描述运动物体的结构。
四、将一些简单有效的处理方式有效地整合起来是一种很好的解决思路,比如Deqing Sun通过实验证明:在预处理阶段,简单的梯度恒常性的应用与更复杂的纹理分解方法的效果几乎相当;5 × 5大小的中值滤波在每次迭代后应用可以在多数情况下改善算法的鲁棒性;而应用现代优化方法对经典的HS方法改进后可以使这一方法在Middlebury数据集上测试排名分别为平均端点误差第九、平均角度误差第十二 [5] 。
五、全局信息的应用和整合。一般的光流计算方法在运动位移较大或存在多个运动目标时会失效,通过匹配方式建立全局的对应关系可以有助于提高光流计算的准确性,克服局部优化算法在大运动的情况下即使采用多尺度分析也无法克服的问题。
六、现有的方法是大多假定图像分割、边缘检测等基本图像处理技术已解决,而实际上这些底层技术仍存在很多问题,图像处理结束和求微分技术如能完成得更好,有利于准确计算光流。可以说,光流计算的准确性是一个可以持续改善的问题。
最后推荐一些比较好的网络资源。搜索光流场方面资料的网站有
¨ http://www.cs.brown.edu/people/dqsun/
¨ http://gpu4vision.icg.tugraz.at/
¨ http://homepages.inf.ed.ac.uk/cgi/rbf/CVONLINE/entries.pl?TAG518
¨ http://www.gris.tu-darmstadt.de/~sroth/pubs/index.html
¨ http://www.gris.tu-darmstadt.de/research/visinf/software/index.en.htm
测试数据下载网站:
¨ http://vision.middlebury.edu/flow/data/
¨ http://gpu4vision.icg.tugraz.at/index.php?content=downloads.php
如欲进行算法评估,可登陆网站http://of-eval.sourceforge.net/参加测试排名。