5.6 运动目标跟踪
目标检测的后继步骤就是目标跟踪,目标跟踪是在事先不了解目标运动信息的条件下,通过来自信息源的数据实时估计出目标的运动状态,从而实现对目标的位置和运动趋势的判定。运动目标的跟踪问题是一个复杂的估计问题。最初是用于军事研究,是精确武器制导中的关键技术。随着图像跟踪技术研究的深入,图像跟踪的应用已渗透到诸如视觉监控、医学诊断、电力故障巡检、智能小区、交通等领域。研究一种鲁棒性好、精确度高、性能稳定和适用性强的目标跟踪方法依然面临巨大挑战,并且具有重要的理论意义和实用价值。根据算法所用到的图像信息可以把图像序列跟踪算法大致分为如下几类[12]:
(1)基于边缘的目标跟踪。主要是假设已知边缘的状态向量,该状态向量包括边缘线段的位置、方向和强度,通过图像变形获得包含目标的备选区域,再对规范化边缘进行跟踪。
(2)基于运动场估计的目标跟踪。主要有光流法、块匹配以及基于贝叶斯最大后验概率模型的统计方法。
(3)基于团块的目标跟踪。基于团块的跟踪算法基本原则是对候选像素进行图像分割,判断该像素是属于目标还是属于背景或者属于其他的区域。基于团块的跟踪算法也可以称为基于图像分割的跟踪,因为它和图像分割所使用的基本方法是一致的,都是根据给定线索优化像素的选择、合并和分离,都把具有相同特征的像素点集合成一个区域。
(4)基于模板匹配的区域跟踪出发点就是对图像的外部特征做匹配运算,与参考模板区域匹配程度最高的就是目标,选择哪一种特征作为匹配运算的对象一直是人们研究的热点。
(5)基于主动轮廓线的目标跟踪。Snake模型,又称为主动轮廓线模型,最初是由Kass和Witkin于1955年提出的,具体表现为一个可变形的曲线,根据图像信息来改变曲线位置和形状。它的中心思想是最小化图像能量函数。Snake是能量极小化的样条函数,内力约束它的形状,外力引导它的行为,图像力将其拖向显著的图像特征。Snake利用对光照变化相对不敏感的轮廓信息对目标物体进行建模,并对轮廓的曲率和物体的运动加入平滑性约束。这比直接对整个物体建模更具有普适性,比利用角点等图像底层信息进行信号分析更能抵御场景干扰。
在这些跟踪算法中有很多在我们这个环境是用不上的,由于检测的杂质是十分小的,而且从摄像机输入的是灰度图,这样就不能从它的颜色信息来跟踪,而且它会旋转,就导致轮廓会发生变化,也不能通过轮廓匹配来进行跟踪。
下面是对几种跟踪算法实验结果的展示。
(1)基于Mean Shift简单跟踪算法
算法思想:利用Mean Shift算法的特点——自适应的梯度上升搜索峰值来寻找上一帧目标在当前帧的位置。输入的是前一帧的前景图,在当前帧中对前一帧物体的重心位置,扩展一定的范围,进行Mean Shift算法[4][20]~[23],当设定一定的收敛条件时,它就会在这一帧的图像中收敛到一个目标位置,这也就是上一帧该目标在这一帧中的位置,可以用这种方法进行跟踪。从5.32图中可以看出它会出现跟丢和跟不上的情况,效果不是很理想。

图5.32 基于Mean Shift简单跟踪算法跟踪效果
(2)基于最近团块跟踪算法
图5.33为最近团块跟踪算法跟踪效果图。它是根据最近当前帧前景目标和上一帧前景目标匹配的,也就是说搜索这一帧所有的运动目标,找到与上一帧的目标最近但是面积又相差不是很大的目标就是这一帧的目标,来进行跟踪。这种算法比较简单,但是从图中可以看出它也会出现跟丢和跟不上的情况,不是很理想。

图5.33 基于最近团块跟踪算法跟踪效果
(3)基于SIFT(scale invariant feature transform)特征的Mean Shift跟踪
SIFT是一种基于尺度不变的特征变换,它查找出来的点的特征不会随着物体的旋转而发生改变,这对于我们的环境来说是十分适合的[24]~[27]。均值漂移(Mean Shift)目标跟踪算法由于具有快速模板匹配和无参数密度估计等特点,为了提高该算法的鲁棒性,把目标分成多个区域,对每个区域利用Mean Shift进行跟踪。然后利用尺度不变特征变换(SIFT)剔除那些匹配的关键点数目少的子区域。最后,利用匹配关键点数目多的区域得到目标的位置。
SIFT算子是一种基于尺度空间,对图像缩放、旋转甚至映射变换保持不变性的图像局部特征描述算子。SIFT算法首先在尺度空间进行特征检测,并确定关键点的位置和关键点所处的尺度,然后使用关键点邻域梯度的主方向作为该点的方向特征,以实现算子对尺度和方向的无关性。这样就可以削弱杂质旋转带来的缺点。高斯卷积核是实现尺度变换的唯一线性核,于是依附二维图像得出尺度变换空间的定义为:
(https://www.daowen.com)
其中,G(x,y,σL)是尺度可变换的高斯核函数:

其中,(x,y)是坐标,σL是尺度。
输入图像通过不同尺度的高斯核函数滤波和二次采样,形成高斯金字塔图像,然后相邻尺度的两个高斯图像相减得到DOG(Difference-of-Gaussians)金字塔多尺度空间。

对DOG尺度空间每个点与相邻尺度和相邻位置的点逐个进行比较,得到的局部极值位置即为关键点所处的位置和对应的尺度。
在以关键点为中心的邻域窗口内采样,并用直方图统计邻域像素的梯度方向。梯度直方图的范围为0°~360°,其中每10°为一个柱,共36个柱。直方图的峰值则代表了该关键点的方向。后续的描述子构造均以该方向为参照,这样所构造的描述子具有旋转不变性,在梯度直方图中,当存在一个相当于主峰值的四分之三的边峰时,将这个方向定义为关键点的辅方向。一个关键点具有一个主方向和一个以上的辅方向,这可以增强匹配的鲁棒性。
Mean Shift算法本质上是一个自适应的梯度上升搜索峰值的方法。如果数据集服从概率密度函数f(x),给定一个初始点,Mean Shift算法会一步一步移动直至最终收敛到第一个峰值点。
给定d 维空间Rd中的n个样本xi,i=1,…,n,在x 点的Mean Shift向量的基本形式定义为:

其中,Sh是一个半径为h 的高维球区域,满足以下关系的y 点的集合:
![]()
k表示在这n个样本点xi中,有k个点落入Sh区域中。
我们可以看到(xi-x)是样本点xi相对于点x 的偏移向量,式(5.21)定义的Mean Shift向量Mh(x)就是对落入区域Sh中的k 个样本点相对于点x 的偏移向量求和然后再求平均。从直观上看,如果样本点xi从一个概率密度函数f(x)中采样得到,由于非零的概率密度梯度指向概率密度增加最大的方向,因此从平均上来说,Sh区域内的样本点更多地落在沿着概率密度梯度的方向。因此,对应的Mean Shift向量Mh(x)应该指向概率密度梯度的方向。
在Mean Shift的扩展形式中,核函数的引入使得系统建模符合实际情况,从式(5.21)我们可以看出,只要是落入Sh的采样点,无论其离x 远近,对最终的Mh(x)的贡献是一样的,一般说来,离x 越近的采样点对估计x周围的统计特性越有效,因此我们引进核函数的概念,在计算Mh(x)时可以考虑距离的影响,同时我们也可以认为在这所有的样本点,权值不同,宜对每个样本都引入一个权重系数。
由此以来,我们就可以把基本的Mean Shift形式扩展为:

G(x)是一个单位核函数,H 是一个正定的对称d×d 矩阵。我们一般称之为带宽矩阵。w(xi)≥0是一个赋给采样点xi的权重。
图5.34是基于SIFT特征的Mean Shift跟踪算法的结果示意图:从图中可以看出这种算法的结果比较理想,几乎不会出现跟丢和跟不上的结果,这对后期处理很有帮助。