目标跟踪系统框架

【转载】

本文参考了hjl240的文章追踪系统分模块解析(Understanding and Diagnosing Visual Tracking Systems)

本文参考了leek1727文章An Experimental Survey on Correlation Filter-based Tracking

本文参考的原文献包括An Experimental Survey on Correlation Filter-based Tracking,Understanding and Diagnosing Visual Tracking SystemsHigh-Speed Tracking with Kernelized Correlation Filters

本文参考的书籍视觉目标跟踪方法(国防工业出版社.查宇飞)

目标跟踪系统框架

    一、 目标跟踪可以描述为这样一个问题:估计场景中运动目标的轨迹,也就是说,检测跟踪器需要在所有图像序列中标记目标。与此同时可以提供目标更多的信息,如目标的形状、区域等信息。在我们看到的一些资料中可能有不同的说法,大体意思是相同的。例如,目标跟踪(特指单目标跟踪)是指:给出目标在跟踪视频第一帧中的初始状态(如位置、尺度),自动估计目标物体在后续帧中得状态。
    对于一个输入视频或图像序列,手动或者自动检测到目标,将目标的状态作为目标跟踪的初始状态,同时对目标建模,获取相关特征构造目标的描述模型,然后在后续的图像中利用目标模型,采取统计滤波或者密度估计的方式估计目标的当前状态,同时利用当前状态更新目标模型。跟踪框架如下:

    输入—目标初始化—特征提取—目标模型—目标搜索—输出

    1、目标检测,在目标的初始化阶段,可以是自动检测运动目标,如智能监控中通过与固定背景的比较,获得运动目标;也可以是手动标记目标,如制导武器确定打击目标。
    2、目标描述(包括特征提取和目标模型两部分),在获取目标的初始状态后,就要提取目标的特征;在目标的特征的基础上,构建目标描述模型,模型可分为生成式模型判别式模型。生成式模型主要是通过计算目标和样本的联合概率,找到与目标模型最相近的样本作为当前目标状态的估计。判别式模型则使计算条件概率,直接判断样本是否为目标。在这里需补充:经典目标跟踪方法中,当前的跟踪算法也可以分成生产式(generative model判别式(discriminantive model两大类。生产式方法运用生成模型描述目标的表现特征,之后通过搜索候选目标来最小化重构误差(即寻找最佳匹配窗口);生产式方法着眼于对目标本身的刻画,忽略背景信息,在目标自身变化剧烈或者被遮挡时容易产生漂移。判别式方法通过训练分类器来区分目标和背景(即从背景中区分目标)。
    判别式方法因为显著区分背景和前景的信息,表现更为鲁棒,在目标跟踪领域占据主流地位。近年来,基于相关滤波(correlation filter)的跟踪方法因为速度快,效果好吸引了众多的研究目光。相关滤波器通过将输入特征回归为目标高斯分布来训练filters。并在后续跟踪中寻找预测分布中的响应峰值来定位目标的位置。相关滤波器在运算中巧妙应用快速傅立叶变换获得了大幅度速度提升。注:在后面的内容中将会有对核化相关滤波器(kernelized correlation filter, KCF)算法跟踪的描述。
    3、目标搜索,如何在一帧的图像中获取目标候选样本,是影响跟踪算法效率的重要因素之一。贝叶斯滤波、核密度估计和水平集方法是3中典型的目标搜索方式,贝叶斯滤波实在时间序列上利用贝叶斯公式,可实现非高斯非线性情形下的预测;核密度估计方法本质上一种梯度下降方法,通过不断的迭代逐步找到函数的极值点;水平集是将二维数据转换为三维数据,将目标的轮廓用零水平集来表示,这种方法可以自然地处理目标形变。
    4、模型更新,由于目标在跟踪过程中不停的发生变化,而当前的模型只能含有之前目标样本信息,不能反映目标的变化。当目标变化较大时,无法识别出目标,导致目标丢失;若快速更新目标模型,就会形成误差的积累,产生模型的漂移现象。因此,模型的更新是一个两难的问题,如何合理地更新目标模型,使能够准确地适应目标的变化,同时避免模型漂移导致的跟踪失败,也是目标跟踪中得一个重要研究内容。

   二、Wang NaiYan博士2015年发表的Understanding and Diagnosing Visual Tracking Systems的文章里将目标跟踪分解为五个部分,称为,运动模型(motion model特征提取(feature extractor)、观测模型(observation model)、模型更新器(model updater)以及合奏后处理(ensemble post-processor)。

1、运动模型:基于对当前当前帧的估计,该模型会产生一些在当前帧可能包含的目标候选区或者bounding boxes

2、特征提取:对每个候选区域提取特征,用这些特征来表征这些候选区域;

3、观测模型:对候选区域的的特征进行分析,来确定该区域是否为目标区域;

4、模型更新器:用来更新观测模型以及控制更新的策略和频率;

5、合奏后处理:当一个跟踪系统中含有多个跟踪器时,要对多个跟踪器的跟踪结果进行一个组合分析,得到最终的跟踪结果。

跟踪的框架如下:


   输入帧—运动模型—特征提取—观测模型—模型更新—合奏后处理器


    输入帧即目标区域,同时初始化观测模型;下帧运动模型产生一系列的候选区域;提取候选区域的特征;观测模型计算候选区域是目标区域概率;更新模型基于观测模型的输出判断是否更新观测器;合奏后处理器整合;多个跟踪器然后输出(单个跟踪器则没有第五部分)。如下图:

   三、 在Chen Zhe 2015年发表的 An Experimental Survey on Correlation Filter-based Tracking文章里,他总结了近年来相关滤波视觉跟踪方法。相关滤波器跟踪框架如下:


   输入—特征提取 —(余弦窗)—(傅里叶变换)—(傅立叶逆变换) —(相关滤波器) —确定最大响应值 —更新目标位置 


1、输入:初始化,确定当前输入,并根据视频的第一帧中目标位置提取的特征,训练、学习得到相关滤波器;

2、特征提取:对于随后的每一帧,裁剪下之前的预测区域,从上一帧目标区域提取特征用来检测;可以从原始的输入数据中提取大量特征,通常情况下,为了平滑结果,我们会加上一个余弦窗口;

3、确定最大响应值:利用余弦傅里叶变换类替代卷积操作(提升计算效率),即做傅里叶变换,然后与相关滤波器相乘,结果做傅里叶逆变换,最大响应区就是要跟踪的目标新位置;

4、更新目标位置:新位置区域训练、更新得到新的相关滤波器,用于之后的观测。


               

四、综上,可以看出目标跟踪,其实它的大体流程都是相同,只是为了在视觉跟踪领域方便自己的理论研究而提出了与自己理论研究相对应的跟踪结构框架。其实很多跟踪算法只是对跟踪框架中的某个部分进行了改进,并没有影响到整个跟踪框架。初接触目标跟踪看到每篇文章基本上都有自己的跟踪框架,当时也是一头雾水。在Wang NaiYan博士2015年发表的 Understanding and Diagnosing Visual Tracking Systems的文章,对跟踪框架进行了很详尽的描述。将传统的目标跟踪算法框架进行了更精细分解,分为motion model、feature extractor、observation model、model updater以及ensemble post-processor五部分,但并没有改变跟踪的本质。精细分解后的结构框架更利于对视觉跟踪的研究,更方便确定在视觉跟踪当中哪个部分对跟踪影响更加重要,Wang NaiYan博士提出这个视觉跟踪框架,通过实验验证进而提出了特征提取在目标跟踪当中的重要性远比观察模型要重要得多。


纯新手才接触目标跟踪不久,第一次写博客,很多理解不到位的,请大家多多见谅,更希望能够多多批评指正,帮助进步,我一定虚心接受。


    下篇文章我将接着第二部分, Chen Zhe发表的文章总结了近年来相关滤波视觉跟踪方法,写一下kcf(High-Speed Tracking with Kernelized Correlation Filters)跟踪算法部分介绍,代码以及运行的结果分析,正好巩固一下相关滤波器跟踪方法。


本文参考了hjl240的文章追踪系统分模块解析(Understanding and Diagnosing Visual Tracking Systems)

本文参考了leek1727文章An Experimental Survey on Correlation Filter-based Tracking

本文参考的原文献包括An Experimental Survey on Correlation Filter-based Tracking,Understanding and Diagnosing Visual Tracking SystemsHigh-Speed Tracking with Kernelized Correlation Filters

本文参考的书籍视觉目标跟踪方法(国防工业出版社.查宇飞)

目标跟踪系统框架

    一、 目标跟踪可以描述为这样一个问题:估计场景中运动目标的轨迹,也就是说,检测跟踪器需要在所有图像序列中标记目标。与此同时可以提供目标更多的信息,如目标的形状、区域等信息。在我们看到的一些资料中可能有不同的说法,大体意思是相同的。例如,目标跟踪(特指单目标跟踪)是指:给出目标在跟踪视频第一帧中的初始状态(如位置、尺度),自动估计目标物体在后续帧中得状态。
    对于一个输入视频或图像序列,手动或者自动检测到目标,将目标的状态作为目标跟踪的初始状态,同时对目标建模,获取相关特征构造目标的描述模型,然后在后续的图像中利用目标模型,采取统计滤波或者密度估计的方式估计目标的当前状态,同时利用当前状态更新目标模型。跟踪框架如下:

    输入—目标初始化—特征提取—目标模型—目标搜索—输出

    1、目标检测,在目标的初始化阶段,可以是自动检测运动目标,如智能监控中通过与固定背景的比较,获得运动目标;也可以是手动标记目标,如制导武器确定打击目标。
    2、目标描述(包括特征提取和目标模型两部分),在获取目标的初始状态后,就要提取目标的特征;在目标的特征的基础上,构建目标描述模型,模型可分为生成式模型判别式模型。生成式模型主要是通过计算目标和样本的联合概率,找到与目标模型最相近的样本作为当前目标状态的估计。判别式模型则使计算条件概率,直接判断样本是否为目标。在这里需补充:经典目标跟踪方法中,当前的跟踪算法也可以分成生产式(generative model判别式(discriminantive model两大类。生产式方法运用生成模型描述目标的表现特征,之后通过搜索候选目标来最小化重构误差(即寻找最佳匹配窗口);生产式方法着眼于对目标本身的刻画,忽略背景信息,在目标自身变化剧烈或者被遮挡时容易产生漂移。判别式方法通过训练分类器来区分目标和背景(即从背景中区分目标)。
    判别式方法因为显著区分背景和前景的信息,表现更为鲁棒,在目标跟踪领域占据主流地位。近年来,基于相关滤波(correlation filter)的跟踪方法因为速度快,效果好吸引了众多的研究目光。相关滤波器通过将输入特征回归为目标高斯分布来训练filters。并在后续跟踪中寻找预测分布中的响应峰值来定位目标的位置。相关滤波器在运算中巧妙应用快速傅立叶变换获得了大幅度速度提升。注:在后面的内容中将会有对核化相关滤波器(kernelized correlation filter, KCF)算法跟踪的描述。
    3、目标搜索,如何在一帧的图像中获取目标候选样本,是影响跟踪算法效率的重要因素之一。贝叶斯滤波、核密度估计和水平集方法是3中典型的目标搜索方式,贝叶斯滤波实在时间序列上利用贝叶斯公式,可实现非高斯非线性情形下的预测;核密度估计方法本质上一种梯度下降方法,通过不断的迭代逐步找到函数的极值点;水平集是将二维数据转换为三维数据,将目标的轮廓用零水平集来表示,这种方法可以自然地处理目标形变。
    4、模型更新,由于目标在跟踪过程中不停的发生变化,而当前的模型只能含有之前目标样本信息,不能反映目标的变化。当目标变化较大时,无法识别出目标,导致目标丢失;若快速更新目标模型,就会形成误差的积累,产生模型的漂移现象。因此,模型的更新是一个两难的问题,如何合理地更新目标模型,使能够准确地适应目标的变化,同时避免模型漂移导致的跟踪失败,也是目标跟踪中得一个重要研究内容。

   二、Wang NaiYan博士2015年发表的Understanding and Diagnosing Visual Tracking Systems的文章里将目标跟踪分解为五个部分,称为,运动模型(motion model特征提取(feature extractor)、观测模型(observation model)、模型更新器(model updater)以及合奏后处理(ensemble post-processor)。

1、运动模型:基于对当前当前帧的估计,该模型会产生一些在当前帧可能包含的目标候选区或者bounding boxes

2、特征提取:对每个候选区域提取特征,用这些特征来表征这些候选区域;

3、观测模型:对候选区域的的特征进行分析,来确定该区域是否为目标区域;

4、模型更新器:用来更新观测模型以及控制更新的策略和频率;

5、合奏后处理:当一个跟踪系统中含有多个跟踪器时,要对多个跟踪器的跟踪结果进行一个组合分析,得到最终的跟踪结果。

跟踪的框架如下:


   输入帧—运动模型—特征提取—观测模型—模型更新—合奏后处理器


    输入帧即目标区域,同时初始化观测模型;下帧运动模型产生一系列的候选区域;提取候选区域的特征;观测模型计算候选区域是目标区域概率;更新模型基于观测模型的输出判断是否更新观测器;合奏后处理器整合;多个跟踪器然后输出(单个跟踪器则没有第五部分)。如下图:

   三、 在Chen Zhe 2015年发表的 An Experimental Survey on Correlation Filter-based Tracking文章里,他总结了近年来相关滤波视觉跟踪方法。相关滤波器跟踪框架如下:


   输入—特征提取 —(余弦窗)—(傅里叶变换)—(傅立叶逆变换) —(相关滤波器) —确定最大响应值 —更新目标位置 


1、输入:初始化,确定当前输入,并根据视频的第一帧中目标位置提取的特征,训练、学习得到相关滤波器;

2、特征提取:对于随后的每一帧,裁剪下之前的预测区域,从上一帧目标区域提取特征用来检测;可以从原始的输入数据中提取大量特征,通常情况下,为了平滑结果,我们会加上一个余弦窗口;

3、确定最大响应值:利用余弦傅里叶变换类替代卷积操作(提升计算效率),即做傅里叶变换,然后与相关滤波器相乘,结果做傅里叶逆变换,最大响应区就是要跟踪的目标新位置;

4、更新目标位置:新位置区域训练、更新得到新的相关滤波器,用于之后的观测。


               

四、综上,可以看出目标跟踪,其实它的大体流程都是相同,只是为了在视觉跟踪领域方便自己的理论研究而提出了与自己理论研究相对应的跟踪结构框架。其实很多跟踪算法只是对跟踪框架中的某个部分进行了改进,并没有影响到整个跟踪框架。初接触目标跟踪看到每篇文章基本上都有自己的跟踪框架,当时也是一头雾水。在Wang NaiYan博士2015年发表的 Understanding and Diagnosing Visual Tracking Systems的文章,对跟踪框架进行了很详尽的描述。将传统的目标跟踪算法框架进行了更精细分解,分为motion model、feature extractor、observation model、model updater以及ensemble post-processor五部分,但并没有改变跟踪的本质。精细分解后的结构框架更利于对视觉跟踪的研究,更方便确定在视觉跟踪当中哪个部分对跟踪影响更加重要,Wang NaiYan博士提出这个视觉跟踪框架,通过实验验证进而提出了特征提取在目标跟踪当中的重要性远比观察模型要重要得多。


纯新手才接触目标跟踪不久,第一次写博客,很多理解不到位的,请大家多多见谅,更希望能够多多批评指正,帮助进步,我一定虚心接受。


    下篇文章我将接着第二部分, Chen Zhe发表的文章总结了近年来相关滤波视觉跟踪方法,写一下kcf(High-Speed Tracking with Kernelized Correlation Filters)跟踪算法部分介绍,代码以及运行的结果分析,正好巩固一下相关滤波器跟踪方法。


猜你喜欢

转载自blog.csdn.net/qq_38097815/article/details/78494704