快速目标跟踪方法总结

1、简介

目标跟踪是计算机视觉研究领域的热点之一,有着很是普遍的应用,如:相机的跟踪对焦、无人机的自动目标跟踪等都须要用到目标跟踪技术。此外,还有特定物体的跟踪,好比人体跟踪,交通监控系统中的车辆跟踪,人脸跟踪和智能交互系统中的手势跟踪等。算法

过去的几十年来,目标跟踪技术取得了长足的进步。特别是近几年,随着深度学习的目标跟踪方法的出现,得到了使人满意的效果,也涌现了愈来愈多的方法,这都使得目标跟踪技术取得了突破性的进展。app

本文主要内容包括:目标跟踪的基本流程与框架,快速目标跟踪相关方法及其应用效果。框架

但愿经过本文能帮助读者对目标跟踪领域有一个较为全面的认识,对其中涉及到的方法及原理有进一步的了解。机器学习

 

2、目标跟踪基本流程与框架

目标(单目标)跟踪任务就是在给定某视频序列初始帧的目标大小与位置的状况下,预测后续帧中该目标的大小与位置。学习

此基本任务大体流程能够根据框架进行以下划分:spa

输入初始化目标框(初始帧),在下一帧中产生众多候选框(Motion Model),提取这些候选框的特征(Feature Extractor),而后对这些候选框评分(Observation Model),最后在这些评分中找一个得分最高的候选框做为预测的目标(Prediction A),或者对多个预测值进行融合(Ensemble)获得更优的预测目标。设计

根据如上框架,咱们能够把目标跟踪的主要研究内容概括为5个方面3d

(1)运动模型:如何产生众多的候选样本。orm

(2)特征提取:利用何种特征表示目标。视频

(3)观测模型:如何为众多候选样本进行评分。

(4)模型更新:如何更新观测模型使其适应目标的变化。

(5)集成方法:如何融合多个决策从而得到一个更优的决策结果。

下面分别简要介绍这5项研究内容:

运动模型(Motion Model): 生成候选样本的速度与质量直接决定了跟踪系统表现的优劣。经常使用的有两种方法:粒子滤波(Particle Filter)和滑动窗口(Sliding Window)。粒子滤波是一种序贯贝叶斯推断方法,经过递归的方式推断目标的隐含状态。而滑动窗口是一种穷举搜索方法,它列出目标附近的全部可能的样本做为候选样本。

特征提取(Feature Extractor): 鉴别性的特征表示是目标跟踪的关键之一。经常使用的特征被分为两种类型:手工设计的特征(Hand-crafted feature)和深度特征(Deep feature)。经常使用的手工设计的特征有灰度特征(Gray),方向梯度直方图(HOG),哈尔特征(Haar-like),尺度不变特征(SIFT)等。与人为设计的特征不一样,深度特征是经过大量的训练样本学习出来的特征,它比手工设计的特征更具备鉴别性。所以,利用深度特征的跟踪方法一般很轻松就能得到一个不错的效果。

观测模型(Observation Model): 大多数的跟踪方法主要集中在这一块的设计上。根据不一样的思路,观测模型可分为两类:生成式模型(Generative Model)和判别式模型(Discriminative Model)。生成式模型一般寻找与目标模板最类似的候选做为跟踪结果,这一过程能够视为模板匹配。经常使用的理论方法包括:子空间稀疏表示字典学习等。而判别式模型经过训练一个分类器去区分目标与背景,选择置信度最高的候选样本做为预测结果。由于有大量的机器学习方法能够利用,判别式方法已经成为目标跟踪中的主流方法。经常使用的理论方法包括:逻辑回归,岭回归,支持向量机,多示例学习,相关滤波等。

模型更新(Model Update): 模型更新主要是更新观测模型,以适应目标表观的变化,防止跟踪过程发生漂移。模型更新没有一个统一的标准,一般认为目标的表观连续变化,因此经常会每一帧都更新一次模型。但也有人认为目标过去的表观对跟踪很重要,连续更新可能会丢失过去的表观信息,引入过多的噪音,所以利用长短时间更新相结合的方式来解决这一问题。

集成方法(Ensemble Method): 集成方法有利于提升模型的预测精度,也经常被视为一种提升跟踪准确率的有效手段。集成方法能够笼统的划分为两类:在多个预测结果中选一个最好的,或是利用全部的预测加权平均。

 

3、快速目标跟踪方法

模板匹配

模板匹配是目标跟踪的经典方法,它的优势有:简单准确,适用面广,抗噪性好,并且计算速度快。缺点是不能适应剧烈光照变化和目标剧烈形变。

模板匹配法,就是指在一帧图像内寻找目标模板的位置,其中和模板最像的地方就是目标。只要把全图的全部子区域和目标模板比较一下,找到最像目标模板的子区域,它就是目标的位置。如何度量子区域和目标模板的类似程度呢?最简单的办法就是计算这两者的相关系数。

相关系数(r)是一种数学距离,能够用来衡量两个向量的类似程度。它起源于余弦定理:cos(A)=(a2+c2-b2)/2bc.若是两个向量的夹角为0度(对应r=1),说明它们彻底类似,若是夹角为90度(r=0),则它们彻底不类似,若是夹角为180度(r = -1),则它们彻底相反。把余弦定理写成向量的形式:

cos(A) = <b,c>/(|b|*|c|),

即:cos(A) = (b1c1+b2c2+… bncn)/sqrt[(b12+b22+…+bn2) (c12+c22+…+cn2)]

其中分子表示两个向量的内积,分母表示两个向量的模相乘。

在实际应用中,更经常使用的是去均值相关系数,它在上式的基础上还要在分子分母减去各个向量的均值:

 

这样,两个向量类似的部分被减掉,它们的相关性就被放大了。

假设目标模板是一个10*10的图像,它就能够被看做是一个100维的向量,每一维是一个像素点的灰度值。而后把这个向量和图像中的每个子区域做比较,找出相关系数最大的子区域,目标的位置就找到了。

TLD

TLD算法主要由三个模块构成:追踪器(tracker),检测器(detector)和机器学习(learning)。

对于视频追踪来讲,经常使用的方法有两种,一是使用追踪器根据物体在上一帧的位置预测它在下一帧的位置,但这样会积累偏差,并且一旦物体在图像中消失,追踪器就会永久失效,即便物体再出现也没法完成追踪;另外一种方法是使用检测器,对每一帧单独处理检测物体的位置,但这又须要提早对检测器离线训练,只能用来追踪事先已知的物体。

TLD是对视频中未知物体的长时间跟踪的算法。“未知物体”指的是任意的物体,在开始追踪以前不知道哪一个物体是目标。“长时间跟踪”又意味着须要算法实时计算,在追踪中途物体可能会消失再出现,并且随着光照、背景的变化和因为偶尔的部分遮挡,物体在像素上体现出来的“外观”可能会发生很大的变化。

追踪器的做用是跟踪连续帧间的运动,当物体始终可见时跟踪器才会有效。追踪器根据物体在前一帧已知的位置估计在当前帧的位置,这样就会产生一条物体运动的轨迹,从这条轨迹能够为学习模块产生正样本(Tracking->Learning)。

检测器的做用是估计追踪器的偏差,若是偏差很大就改正追踪器的结果。检测器对每一帧图像都作全面的扫描,找到与目标物体类似的全部外观的位置,从检测产生的结果中产生正样本和负样本,交给学习模块(Detection->Learning)。算法从全部正样本中选出一个最可信的位置做为这一帧TLD的输出结果,而后用这个结果更新追踪器的起始位置(Detection->Tracking)。

学习模块根据追踪器和检测器产生的正负样本,迭代训练分类器,改善检测器的精度(Learning->Detection)。

光流法(Lucas-Kannade)

光流法的原理:利用图像序列中像素在时间域上的变化以及相邻帧之间的相关性来找到上一帧跟当前帧之间存在的对应关系,从而计算出相邻帧之间物体的运动信息。

假设一:场景中物体被跟踪的部分亮度保持不变;

假设二:运动相对于帧率是缓慢、连贯的数学表达指的是在上连续,可导;

假设三:相邻的点保持近邻δ邻域内全部像素点的速度(U,V)相等;

对于大多数30Hz摄像机,大而不连贯的运动较多,因此LK光流法在实际中的跟踪效果很差,一般一个大的窗口来捕获大的运动,但每每违背运动连贯的假设,故引入图像金字塔。

在图像金字塔的最高层计算光流,用获得的运动估计结果做为下一层金字塔的起始点,重复这个过程直到到达金字塔的最底层。这样将不知足运动假设的可能性降到最小从而实现对更快和更长的运动的跟踪。

这个算法的不足在于它不能产生一个密度很高的流向量,例如在运动的边缘和黑大的同质区域中的微小移动方面流信息会很快的褪去。它的优势在于有噪声存在的鲁棒性仍是能够的。

4、快速目标跟踪方式的应用效果

  • 原图像大小为640x480
  • Intel(R) Xeon(R) CPU X5660 @ 2.80GHz

目标跟踪方式

原图像大小

1/2

1/4

1/6

模板匹配

40ms

11ms

3.8ms

2ms

TLD

9ms

4.5ms

3.6ms

3.5ms(效果不佳)

光流法

4ms

2.5ms

1.8ms

1.2ms(效果不佳)

 


 

zeusee.com 智云视图

相关文章
相关标签/搜索