运动目标跟踪算法综述

  运动目标跟踪是视频监控系统中不可缺少的环节。在特定的场景中,有一些经典的算法可以实现比较好的目标跟踪效果。本文介绍了一般的目标跟踪算法,对几个常用的算法进行对比,并详细介绍了粒子滤波算法和基于轮廓的目标跟踪算法。最后简单介绍了目标遮挡的处理、多摄像头目标跟踪和摄像头运动下的目标跟踪。

一、一般的目标跟踪算法

  一般将目标跟踪分为两个部分:特征提取、目标跟踪算法。其中提取的目标特征大致可以分为以下几种:

  1) 以目标区域的颜色直方图作为特征,颜色特征具有旋转不变性,且不受目标物大小和形状的变化影响,在颜色空间中分布大致相同。

  2) 目标的轮廓特征,算法速度较快,并且在目标有小部分遮挡的情况下同样有较好的效果。

  3) 目标的纹理特征,纹理特征较轮廓特征跟踪效果会有所改善。

  目标跟踪的算法大致可以分为以下四种:

  1) 均值漂移算法,即meanshift算法,此方法可以通过较少的迭代次数快速找到与目标最相似的位置,效果也挺好的。但是其不能解决目标的遮挡问题并且不能适应运动目标的的形状和大小变化等。对其改进的算法有camshift算法,此方法可以适应运动目标的大小形状的改变,具有较好的跟踪效果,但当背景色和目标颜色接近时,容易使目标的区域变大,最终有可能导致目标跟踪丢失。

  2) 基于Kalman滤波的目标跟踪,该方法是认为物体的运动模型服从高斯模型,来对目标的运动状态进行预测,然后通过与观察模型进行对比,根据误差来更新运动目标的状态,该算法的精度不是特高。

  3) 基于粒子滤波的目标跟踪,每次通过当前的跟踪结果重采样粒子的分布,然后根据粒子的分布对粒子进行扩散,再通过扩散的结果来重新观察目标的状态,最后归一化更新目标的状态。此算法的特点是跟踪速度特别快,而且能解决目标的部分遮挡问题,在实际工程应用过程中越来越多的被使用。

  4) 基于对运动目标建模的方法。该方法需要提前通过先验知识知道所跟踪的目标对象是什么,比如车辆、行人、人脸等。通过对要跟踪的目标进行建模,然后再利用该模型来进行实际的跟踪。该方法必须提前知道要跟踪的目标对象是什么,然后再去跟踪指定的目标,这是它的局限性,因而其推广性相对比较差。

二、基于粒子滤波的运动目标跟踪

  粒子滤波实现运动目标跟踪分为四个步骤:1)初始化提取运动目标特征;2)特征搜索阶段;3)决策阶段;4)粒子重采样。这后面三个过程的依次循环实现的对运动目标的跟踪。

  1)提取运动目标特征

  这个阶段需要通过人机交互选定待跟踪的目标,通过计算跟踪目标的特征,如目标的颜色特征,计算该区域颜色空间的直方图,以此作为描述目标的特征。

  2)特征搜索阶段

  初始化提取了目标的特征后,就可以去在目标的周围撒粒子搜索目标对象。撒粒子的方法有很多,例如:a)均匀分布的放:即在整个视频画面中均匀的撒粒子。b)在目标的附近以高斯分布来撒粒子,即靠近目标的地方多撒些,离目标较远的地方少放些。每个粒子按照初始化时候得到的目标特征计算出它所处的位置的颜色特征,并计算该直方图向量与目标的直方图向量的相似性程度。然后对每个粒子与目标计算出的相似度做归一化,使得所有粒子的相似度加起来和等于1。

  3)决策阶段

  根据每个粒子与目标的相似程度做加权平均。设第i个粒子的坐标是,它和目标的相似度是,则目标的最可能的位置为:,,n为粒子的个数。

  4)粒子重采样

  粒子重采样就是根据相似度的大小重新分配粒子的个数,即在相似度最高的粒子出放更多的粒子,在相似度低的粒子那少放粒子。粒子滤波算法的核心思想就是粒子的随机采样和粒子的重要性重采样。因为不知道目标在那个位置,就随机的进行撒粒子。撒完粒子后,根据描述目标的特征相似度来计算每个粒子的相似度,然后在相似度高的地方多撒些粒子,相似度低的地方少撒粒子,这就是粒子滤波的思想。

三、基于轮廓的跟踪

  形状复杂的目标是很难用简单的几何形状来描述的。基于轮廓的目标跟踪方法提供了更准确的形状描述。这种方法的主要思想是利用前一帧建立的目标模型找到当前帧的目标区域。模型可以是目标区域的颜色直方图、边缘或轮廓。基于轮廓的目标跟踪方法大体上可以分为形状匹配、轮廓跟踪。前者搜索目标在当前帧特征,后者通过状态空间模型或直接最小化能量函数推导初始轮廓在当前帧的位置。

1、形状匹配方法

  这种方法和基于模板的目标跟踪方法相似,基本思想都是在当前帧中搜索目标的轮廓和目标的相关模型。另一种方法是在连续帧中寻找关联轮廓,使用目标的外观特征,建立轮廓关联,或者称为轮廓匹配,和点匹配方法类似。

  首先,由背景减除发来进行轮廓检测;再次,提取轮廓后,计算目标的模型和每个轮廓之间距离来实现匹配;目标的模型可以是密度函数(颜色特征或边缘直方图)、目标边缘、轮廓边界或这些信息的组合。

2、轮廓跟踪

  从上一帧的轮廓位置预测出当前帧的轮廓。当前帧和上一帧的目标轮廓有重叠部分,大体上可分为两中实现方式,用状态空间模型对目标的轮廓的形状和运动状态建模,或用梯度搜索进行推演轮廓。梯度搜索是一种轮廓能量最小化方法。

  1)状态空间模型的目标跟踪

  由轮廓的形状和目标的运动参数(如,速度、加速度、运动方向等)定义目标的状态,在轮廓的后验概率最大时更新目标状态。

  2)能量最小化方法的目标跟踪

  此方法和目标分割方法类似,其中的分割和跟踪部分都是通过梯度下降法或贪婪算法来最小化能量。

  3)讨论

  轮廓跟踪通常在跟踪整个目标区域时使用,其最突出的优点在于能更好的适应目标形状的变化。在轮廓跟踪算法中,目标表达可以是外观模型、形状模型、运动模型或这几个模型的组合。目标模型可密度函数进行建模,目标形状用轮廓子空间形式进行建模。在直观的轮廓搜索中基于外观的形状表达得到普遍应用。Hausdroff距离是对基于边缘形状的表达的最广泛测量方法。

四、遮挡处理

  通常,遮挡可以分为三种情况:目标间遮挡、背景遮挡、自遮挡。对于目标之间的相互遮挡,可以选择根据目标的位置和目标特征的先验知识来处理这一问题。而对于场景结构的导致的部分遮挡此方法则难以判断,因为难以辨认究竟是目标形状发生变化还是发生遮挡。所以,处理遮挡问题的通用方法是用线性或非线性动态建模方法对运动目标进行,并在目标发生遮挡时,预测目标的可能位置,一直到目标重新出现时再修正它的位置。可以用卡尔曼滤波器来实现估计目标的位置,也可以用粒子滤波对目标做状态估计。或者使用:轮廓投影、光流特征等方法。

五、多摄像头目标跟踪

  多摄像头目标跟踪的需求一般来自于以下两方面:

  1)深度跟踪和遮挡处理;

  2)扩大跟踪场景区域。

  多摄像头跟踪中的一个重要问题是如何处理不同摄像头之间的视角的对应关系。一般情况下可以人工定义,也可以根据观测的场景和运动目标进行自动计算。

六、摄像头运动下的目标跟踪

  摄像头运动时就没法通过背景相减法获取目标的具体位置和大小描述, 这种情况下对目标的特征描述和目标跟踪算法的就要求较高。常用的方法有以下几种:

质心跟踪算法

  这种跟踪方式主要用于跟踪有界目标,如飞机,目标和背景的差异较大。目标完全在视频画面内,跟踪时,常常需要用一些图像预处理算法,如对比度增强、图像去噪、双极性增强等。

边缘跟踪算法

  当要跟踪的目标有一个或多个边缘并且同时具有不确定的边缘,此时边缘跟踪的效果最好。典型的跟踪对象是发射中的火箭,它有很好的前边缘,但是尾部边缘却由于喷气而不确定。

场景锁定跟踪算法

  该算法主要用于在复杂场景的目标跟踪。适合于从空中对监控地面或者地面场景的监控。这个算法会跟踪视频画面中的多个目标,然后跟据每个点的运动状态,估计整个场景全局运动,场景中的运动目标和运动目标的定位是自动选择的。当跟踪的目标移动到视频画面外时,新的目标可以被自动标识。

组合跟踪算法

  这种方法顾名思义就是利用两种或两种以上的具有互补特性的算法的组合:如将质心类算法和相关类算法进行组合。组合后的算法就能够适合于目标大小、形状、及表面特征变化较大的场景。

运动目标跟踪算法综述

时间: 2024-09-30 21:57:58

运动目标跟踪算法综述的相关文章

视频目标跟踪算法综述

视频跟踪:基于对比度分析的目标跟踪.基于匹配的目标跟踪和基于运动检测的目标跟踪      基于对比度分析的目标跟踪:主要利用目标和背景的对比度差异实现目标的检测与跟踪.这类算法按照跟踪参考点的不同可以分为边缘跟踪# 形心跟踪和质心 跟踪等.这类算法不适合复杂背景中的目标跟踪"但在空中背景下的目标跟踪中非常有效. 基于匹配的目标跟踪:主要通过前后帧之间的特征匹配实现目标的定位.   特征匹配:特征是目标可区别与其他事物的属性, 具有可区分性.可靠性.独立性和稀疏性.基于匹配的目标跟踪算法需要提取目

目标跟踪算法综述

转自  https://www.zhihu.com/question/26493945 作者:YaqiLYU 第一部分:目标跟踪速览 先跟几个SOTA的tracker混个脸熟,大概了解一下目标跟踪这个方向都有些什么.一切要从2013年的那个数据库说起..如果你问别人近几年有什么比较niubility的跟踪算法,大部分人都会扔给你吴毅老师的论文,OTB50和OTB100(OTB50这里指OTB-2013,OTB100这里指OTB-2015,50和100分别代表视频数量,方便记忆): Wu Y, L

运动目标检测跟踪各过程算法综述

运动目标检测跟踪各过程算法综述 图像预处理数字图像中的几种典型噪声有:高斯噪声来源于电子电路噪声和低照明度或高温带来的传感器噪声:椒盐噪声类似于随机分布在图像上的胡椒和盐粉微粒,主要由图像切割引起或变换域引起的误差:加性噪声是图像在传输中引进的信道噪声.一般来说,引入的都是加性随机噪声,可以采用均值滤波.中值滤波.高斯滤波等方法去除噪声,提高信噪比.均值滤波在噪声分布较平均,且峰值不是很高的情况下能够得到较好的应用:中值滤波对尖脉冲噪声的滤除有较好的效果,并且能突出图像的边缘和细节:高斯滤波对滤

TLD实时跟踪算法浅析

和大多数人一样,喜欢上TLD算法是从Kalal的一个视频开始的,一个令人心潮澎湃的视频.不得不说这个视频做的是相当的好,背景音乐更是恰到好处,当然别人的算法过硬才是关键,确实技高一筹啊,美中不足的可能就是Kalal憋足的发音了,哈哈,开玩笑啦.研究这个算法的现状是资源非常多,有很多博客,C++,matlab的源码都有,那我为什么还要写这个文章呢?原因是在阅读C++版本的代码时发现了bug,但目前据我所知,网络上没有一个人将其解释清楚,也有可能是我"搜商"不行哦,呵呵,也可能其他博主忙着

基于MeanShift的目标跟踪算法及实现

一.简介 首先扯扯无参密度估计理论,无参密度估计也叫做非参数估计,属于数理统计的一个分支,和参数密度估计共同构成了概率密度估计方法.参数密度估计方法要求特征空间服从一个已知的概率密度函数,在实际的应用中这个条件很难达到.而无参数密度估计方法对先验知识要求最少,完全依靠训练数据进行估计,并且可以用于任意形状的密度估计.所以依靠无参密度估计方法,即不事先规定概率密度函数的结构形式,在某一连续点处的密度函数值可由该点邻域中的若干样本点估计得出.常用的无参密度估计方法有:直方图法.最近邻域法和核密度估计

图像局部特征点检测算法综述与应用举例

研究图像特征检测已经有一段时间了,图像特征检测的方法很多,又加上各种算法的变形,所以难以在短时间内全面的了解,只是对主流的特征检测算法的原理进行了学习.总体来说,图像特征可以包括颜色特征.纹理特等.形状特征以及局部特征点等.其中局部特点具有很好的稳定性,不容易受外界环境的干扰,本篇文章也是对这方面知识的一个总结. 本篇文章现在(2015/1/30)只是以初稿的形式,列出了主体的框架,后面还有许多地方需要增加与修改,例如2013年新出现的基于非线性尺度空间的KAZE特征提取方法以及它的改进AKAT

opencv学习之基于背景提取等目标跟踪算法#20190704

/* *********************************************************************************************************************** 任务目标: 基于背景提取的目标跟踪算法实践及代码分析. ***************************************************************************************************

特征选择常用算法综述

特征选择的一般过程: 1.生成子集:搜索特征子集,为评价函数提供特征子集 2.评价函数:评价特征子集的好坏 3.停止准则:与评价函数相关,一般是阈值,评价函数达到一定标准后就可停止搜索 4.验证过程:在验证数据集上验证选出来的特征子集的有效性 1.生成子集 搜索算法有 完全搜索.启发式搜索.随机搜索 三大类. (1)完全搜索 <1>宽搜(Breadth First Search):时间复杂度高,不实用 <2>分支界限搜索(Branch and Bound):其实就是宽搜加上深度的限

运动目标跟踪中kalman滤波器的使用

目标跟踪的kalman滤波器介绍 Kalman滤波器是通过前一状态预测当前状态,并使用当前观测状态进行校正,从而保证输出状态平稳变化,可有效抵抗观测误差.因此在运动目标跟踪中也被广泛使用.在视频处理的运动目标跟踪里,每个目标的状态可表示为(x,y,w,h),x和y表示目标位置,w和h表示目标宽高.一般地认为目标的宽高是不变的,而其运动速度是匀速,那么目标的状态向量就应该扩展为(x,y,w,h,dx,dy),其中dx和dy是目标当前时刻的速度.通过kalman滤波器来估计每个时刻目标状态的大致过程