综述:运动目标跟踪算法

运动目标跟踪算法总结

 1  传统的目标跟踪算法

运动目标跟踪,首先对目标进行有效地表达。然后在接下来的视频序列的每一帧中找到相似度与目 标最大的区域,从而确定目标在当前帧中的位置。 早期的生成式方法主要有两种思路: 1) 依赖于目标外观模型。通过对目标外观模型进行建模,然后在之后的帧中找到目标。 例如: 光流法。2) 不依赖于目标外观模型。选定目标建立目标模型,然后在视频中搜索 找到目标模型。例如: Meanshift。

1.1  光流法

光流法 (Lucas-Kanade) 的概念首先在 1950 年提出,它是针对外观模型对视频序列中的像素进行操作。通过利用视频序列在相邻帧之间的像素关系,寻找像素的位移变化来判断目标的运动状态,实现对运动目标的跟踪。 但是,光流法适用的范围较小,需要满足三种假设: 图像的光照强度保持不变; 空间一致性,即每个像素在不同帧中相邻点的位置不变,这样便于求得最终的运动矢量; 时间连续。光流法适用于目标运动相对于帧率是缓慢的,也就是两帧之间的目标位移不能太大。

随后,人们开始在光流法的基础上进行了改进。 将 Harris 角点检测与光流法相结合,将光流法中的像素换成 Harris 特征点进行目标跟踪,这样减少了跟踪像素的数量,使得算法的复杂度降低,处理速度加快。同时,相比于普通的像素,Harris角点对目标的描述更好,具有很强的鲁棒性。

光流法的缺点:它对视频中所有的像素进行计算,实时性差。采用一定的缩小计算范围的算法,具有重大意义。其中常见的算法有 Kalman 滤波、粒子滤波等。

1.2  Kalman 滤波

Kalman 滤波是一种能够对目标的位置进行有效预测的算法。 它建立状态方程,将观测数据进行状态输入,对方程参数进行优化。 通过对前 n 帧数据的输入,可以有效地预测第 n 帧中目标的位置,Kalman 估计也叫最优估计。 因此,在目标跟踪过程中,当目标出现遮挡或者消失时,加入 Kalman 滤波 可以有效地解决这种问题。

Kalman 滤波缺点是只适合于线性系统,适用范围小。针对 Kalman 滤波适用范围小这一问题,人们提出了粒子滤波的方法。粒子滤波的思想源于蒙特卡洛思想,它利用特征点表示概率模型。这种表示方法可以在非线性空间上进行计算,其思想是从后验概率中选取特征表达其分布。最近,人们也提出了改进平方根容积卡尔曼滤波的方法来减小误差,从而实现精准跟踪。

1.2.1  粒子滤波

贝叶斯推理就是类似于Kalman滤波的过程。而Kalman滤波是线性高斯模型,对于非线性非高斯模型,就采用蒙特卡洛方法(Monte Carlo method,即以某时间出现的频率来指代该事件的概率)。采用一组粒子来近似表示系统的后验概率分布,然后使用这一近似的表示来估计非线性非高斯系统的状态。粒子滤波从一定程度上,属于Kalman滤波的拓展。

重要性采样就是根据对粒子的信任程度添加不同的权重,对于信任度高的粒子,添加大一点的权重,否则就添加小一点的权重,根据权重的分布形式,可以得到与目标的相似程度。

粒子滤波算法步骤:

1、初始状态:用大量粒子模拟X(t),粒子在空间内均匀分布;

2、预测阶段:根据状态转移方程,每一个粒子得到一个预测粒子;

3、校正阶段:对预测粒子进行评价,越接近于真实状态的粒子,其权重越大;

4、重采样:根据粒子权重对粒子进行筛选,筛选过程中,既要大量保留权重大的粒子,又要有一小部分权重小的粒子;

5、滤波:将重采样后的粒子带入状态转移方程得到新的预测粒子,即步骤2。

1.3  核方法

另一类基于搜索的方法是核方法。核跟踪方法是目标跟踪的主要方法,应用非常广泛。例如 Meashift、Camshift 算法,它直接运用最速下降法的原理,向梯度下降方向对目标模板逐步迭代,直到迭代到最优位置。它的核心就是一步一步迭代寻找最优点,在跟踪中,就是为了寻找相似度值最大的候选区间。

1.3.1  Meanshift算法

Meanshift 就是对样本点与中心点的矢量差求平均值。 矢量和的方向就是概率密度增加的方向,沿着概率密度增加的方向移动向量,逐步迭代直到找到最优解。 但是这种搜索方法存在缺陷,只对样本点进行计算,无论距离中心点的远近,其贡献是一样的。当目标出现遮挡或运动模糊时,外层的特征 容易受到背景的影响,其准确性降低。针对这一情况,应该赋予不同的采样点不同的权值,离中心点越近,权值越高; 反之亦然。为了解决这一问题,Du等人将Epannechnikov 核函数引入到Meanshift 中。核函数公式如下:

Kx=c1-x2   x≤10           其他

综述:运动目标跟踪算法_第1张图片

 

图1-1 Meanshift跟踪原理图

图1-1表示了Meanshift跟踪原理图:可以看出,算法通过逐步迭代寻找概率密度最大的方向。当偏移量小于某一设定阈值时,则可以认为样本迭代到最佳位置,达到目标跟踪的目的。 跟踪的过程分为三个步骤:

1) 目标模型的建立: 在初始帧中选中目标模型,对初始帧中的目标区域建立 RGB颜色空间直方图。

2) 模型的搜索: 在后续帧中,在前一帧的基础上逐步搜索,得到目标区域的模型。

3) 相似度判别:相似度判别式是判断是否继续迭代的条件。当目标模型与跟踪模型的相似度小于特定的阈值时,迭代停止,得到待跟踪的目标区域。引入 BH 系数进行判断,系数值越大,相似度越高。

Meanshift算法的缺陷:虽然实现了较好的跟踪效果,但是对目标尺度的变化不能进行自适应的跟踪。针对这一缺陷,人们提出了Camshift算法,该算法是在 Measnhift 基础上的改进,在其中加入了尺度自适应机制,可以根据目标的大小自动调节跟踪框的尺度。

核方法由于其快速收敛的性质在实际中得到越来越广泛的应用,研究人员逐步将优质的特征,尺度自适应以及模型的预测机制加入到核方法中并取得 了很好的效果。但是跟踪的速度难以得到本质上的提高,人们开始考虑使用新的跟踪算法来提高跟踪精度。

1.4  相关滤波跟踪算法

在相关滤波方法用于目标跟踪之前,所有的跟踪算法都是在时域上进行处理。 在运算过程中,涉及到复杂的矩阵求逆计算,运算量大,实时性差。 基于相关滤波的目标跟踪方法将计算转换到频域,利用循环矩阵可以在频域对角化的性质,大大减少了运算量,提高运算速度。 KCF 在相关滤波基础上进行了优化,引入了循环矩阵。 目标跟踪过程中缺少大量的负样本,通过循环矩阵可以增加负样本的数量,提高分类器训练的质量。 将高斯核加入到岭回归中,能够将非线性的问题转换到高维的线性空间中,简化计算。

1.4.1  MOSSE滤波器

为了使空域的相关滤波转换到频域滤波以提高运算速度,引入卷积算子,这里的卷积算子并没有什么实际的物理意义,可以看做一个把空域相关滤波转到频域的桥梁。卷积公式如下:

g=f*h

gi,j=fi-k,j-l⋅h(k,l)

通过卷积定理:函数卷积的傅立叶变换是函数傅立叶变换的乘积,上式可以变换为G=FH*。

最小二乘法是曲线拟合时的一种方法,通过最小化误差的平方来寻找数据的最佳函数配比。在MOSSE中通过最小化实际输出的卷积和期望输出卷积之间的方差来得到合适的滤波器。

考虑到防止滤波器过拟合,使滤波器能够较快的适应旋转、遮挡、尺度变化等问题,引入一个学习效率(learning rate)的参量η表示不同时序的帧的权重学习效率参量使得时序离当前帧越近的帧所占权重越大,之前的帧的学习结果随时间呈指数递减。

https://img-blog.csdnimg.cn/20181105145342887.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzMyNzYzNzAx,size_16,color_FFFFFF,t_70

图1-2 MOSSE滤波流程图

 

2  深度学习方法

最近,随着深度学习方法的广泛应用,人们开始考虑将其应用到目标跟踪中。但是将深度学习方法用到目标跟踪存在严重的缺陷: 1) 因为在目标跟踪中的正样本只有初始帧中的目标,没有大量的数据难以训练出性能优良的分类器。 2) 深度学习方法通过将多层网络连接训练分类器来提高跟踪精度,但是随着卷积层数量的提高以及训练网络的复杂,算法的实时性很低,不能满足快速运动目标的实时跟踪。

虽然深度学习方法存在着缺陷,但是由于其在结构上的巨大优势,研究人员逐步将其缺点进行改进。

优良的特征是实现良好跟踪的基础,深度学习方法得出的深度特征比传统的手工特征 (HOG、灰 度、CN、Harris 等) 更加精确。 相关滤波的核心思想是将计算转化到频域,相比于传统方法,跟踪速度得到了大幅度的提升。 为了结合两种方法的优点,人们开始将深度学习引入到相关滤波中。

深度学习的方法本质就是构建各种深度神经网络然后提取目标中越来越有效的特征进行训练,直到训练出准确率高的网络。研究人员主要在卷积核和网络结构这两个方面进行改进。

 

3  各种方法总结与比较

最早的目标跟踪算法是光流法利用视频序列在相邻帧之间的像素关系,寻找像素的位移变化来判断目标的运动状态,实现对运动目标的跟踪。但是光流法需要的假设太多,后来将 Harris 角点检测与光流法相结合,减少了算法复杂度。光流法的缺陷就是需要对目标所有像素计算,实时性很差。

然后人们为了缩小计算范围,加快计算速度,发明了Kalman 滤波算法。主要思想就是建立状态方程,将观测数据进行状态输入,对方程参数进行优化。但是Kalman 滤波只适合于线性系统,适用范围小,所以人们提出了粒子滤波的方法,采用一组粒子来近似表示系统的后验概率分布,然后使用这一近似的表示来估计非线性非高斯系统的状态。

另外还有一套基于搜索的核方法,应用非常广泛主要有Meashift、Camshift 算法。Meanshift 方法的思想就是利用矢量和的方向就是概率密度增加的方向,沿着概率密度增加的方向移动向量,使用最速下降法,逐步迭代直到找到最优解。Meanshift 方法由于对目标尺度的变化不能进行自适应的跟踪,针对这一缺陷,人们提出了Camshift算法,该算法是在 Measnhift 基础上的改进,在其中加入了尺度自适应机制,可以根据目标的大小自动调节跟踪框的尺度。

上述算法都是在时域上进行处理。 在运算过程中,涉及到复杂的矩阵求逆计算,运算量大,实时性差。基于相关滤波的目标跟踪方法将计算转换到频域,利用循环矩阵可以在频域对角化的性质进行运算。主要相关滤波算法有MOSSE、KCF、CSK、CN等。

近几年的深度学习被炒的火热,深度学习方法当然有其天然的优势就是,通过网络层数的叠加能无限逼近任意非线性函数,并且自动化提取目标有效特征,只要有大量的训练数据,就有机会训练出一个好的目标跟踪器。但是深度学习的天然缺陷也是巨大的,网络太复杂计算量太大无法做到实时性。虽然深度学习方法存在着缺陷,但是由于其在 结构上的巨大优势,研究人员逐步将其缺点进行改进。 从改进的方向分成基于相关滤波方法的改进和基于网络结构的改进。

 

你可能感兴趣的:(计算机视觉)