简介

本文为目标跟踪算法调研总结。
注意: 可做分享,切勿在投稿论文中大段摘用(重复率会很高)。

1. 定义

目标跟踪是通过分析视频图片序列,对检测出的各个候选目标区域实施匹配,定位出这些目标在视频序列中的坐标。根据算法理论的不同,目标跟踪算法又可分为目标表观建模和跟踪策略两部分,其中目标表观建模又可分为生成式跟踪和判别式跟踪两个方面。本节将分别就这几个方面介绍目标跟踪算法的研究现状。

2. 算法

(1)目标表观建模

目标表观建模问题又称目标匹配问题,它是根据目标的表观特征来建立相应的表观模型,是跟踪算法中最为重要的模块。根据对目标表观的建模方式,可以将目标表观建模分为生成式跟踪和判别式跟踪。

a. 生成式模式

生成式跟踪算法不考虑背景信息,通过学习建立一个模型来表示目标,然后使用该模型直接与目标类别进行匹配,以达到跟踪的目的。生成式跟踪方式按照表观建模的建立形式的不同,可以分为基于核的算法、基于子空间的算法以及基于稀疏表示的算法[ ]。

基于核的跟踪算法首先对目标进行表观建模,进而确定相似性度量策略以实现对目标的定位。该算法的优点是,当目标为非刚体时,目标跟踪也有很好的效果。最典型的核跟踪算法是均值漂移(Meanshift)算法[ ],该算法本质上是基于梯度上升的局部寻优算法。由于Meanshift算法实现简单、速度较快,它在模式识别、数字图像处理和计算机视觉等领域均应用广泛。但是在目标跟踪时,Meanshift算法不能很好的解决目标被遮挡、背景杂乱、尺度变化等问题,一些研究学者在meanshift算法的基础上提出了改进的核跟踪算法。为了解决局部遮挡问题,Wang等[ ]提出了基于分块Meanshift的跟踪算法,通过不同分块对中心位置的加权投票,降低被遮挡的目标区域对跟踪结果的影响。

基于子空间的算法是模式识别和机器学习领域的一个研究热点,它的关键在于对目标的特征空间进行表示,构建相关基及其张成的子空间。该算法的优势是,基于子空间的算法将图像由高维数据压缩成低维特征空间,大大降低了目标跟踪算法计算所需的时间。基于子空间的算法需要设定准则来确定要保留的图像信息、低维空间特性等,常见的准则有:主成分分析[ ](PCA)、线性判别分析[ ](LDA)、局部保持映射[ ](LPP)等。基于子空间的算法的缺点是,在跟踪问题中,背景分布比较混乱,而通常子空间算法都会假设数据服从高斯分布或局部高斯分布,导致基于判决性子空间的跟踪算法往往结果不稳定[ ]。

基于稀疏表示的方法通常假设跟踪目标在一个由目标模板所构成的子空间内,其跟踪结果是通过寻求与模板重构误差最小的候选目标。Mei等[ ]首次将稀疏表示理论应用于解决跟踪问题,通过对重构稀疏引入稀疏约束提出一种最小化的跟踪算法,该算法能够较好的解决目标遮挡问题,但其计算代价较高。基于稀疏表示的跟踪算法是未来在线视觉跟踪领域的一个研究热点,如果更好的结合稀疏表示等理论与跟踪问题的先验知识等时未来的研究趋势。在一些文献中,基于稀疏表示的方法被分类到判别式跟踪中。

b. 判别式模型

判别式跟踪方法将目标跟踪问题转化为寻求跟踪目标与背景间决策边界的二分类问题,通过分类最大化地将目标区域与非目标区域分别开来。因此,目标跟踪的准确性和稳定性很大程度上以来于在特征空间上目标与背景的可分性,如何在线建立能够适应目标和背景外观变化的判别模型,是判别式跟踪算法研究的关键。与生成式模型相比,判别式模型在应对目标的强遮挡及外观变化时,具有更高的鲁棒性。判别式跟踪算法主要有以下几个研究方向:基于Boosting和SVM的判别模型、基于随机学习的判别模型和基于深度学习的判别模型。

基于Boosting和SVM的判别模型一直被广泛应用于目标检测和目标跟踪领域,该算法的原理在第2.2.1.3已经介绍过,这里不再陈述。在目标跟踪领域中,基于Boosting跟踪的算法具有较强的判别学习能力,能够自适应选择区分性较强的特征,完成跟踪任务,但是该类算法没有考虑目标特征间的关联性,从而导致信息的冗余;基于SVM的跟踪算法在具有较强分类性能的SVM分类器中引入最大化分类间隔约束,以达到对目标与非目标划分的目的,最终实现对目标的跟踪。徐俊格等[ ]提出了一种结合SVM和加权Meanshift的目标跟踪算法,使用颜色特征的SVM分类器对像素点进行分类,再结合对前景目标和背景特征赋予不同权值的Meanshift算法,突出前景特征,降低背景噪声对目标的干扰,实现了复杂场景下的目标跟踪。

基于随机学习的跟踪算法通过融合随机特征与输入建立目标的表观模型,典型的基于随机学习的跟踪算法有在线随机森林和朴素贝叶斯等。随机学习能够实现并行运算,可以同时执行特征选取和随机输入输出,可以使用GPU和多核来加快速度,节省算法运行时间。与基于在线Boosting和SVM的方法相比,该算法处理速度更快、效率更高,且易扩展到对多分类问题的处理。但是该算法特征选取时比较随机,因此跟踪性能不够稳定。

以上所述的特征建模方法均是浅层特征提取和建模,因此在复杂环境中(比如运动模糊、变形、旋转和光照等)对目标的表征比较弱[ ]。近年来,深度学习方法借助其优秀的特征建模能力,在目标跟踪领域取得了巨大的成功。Fan等[ ]利用大量的辅助图像训练深度卷积神经网络,并将模型应用于行人跟踪中,取得了较好的效果。Wang[ ] 等提出的DLT方法首次提出离线预训练与在线微调相结合的思路,该算法存在的问题是分类器效果差,当存在目标姿态变化或背景杂乱等干扰时,会导致目标模型一直更新,算法实时性差。针对该现象,Dai 等[ ]降低了网络层次,从而降低复杂度,同时在模型更新时,采用与训练相同的网络进行调整,简化了网络结构,提高了算法的实时性。尽管基于深度学习的目标跟踪算法学习能力更强,但是深度学习应用到跟踪领域面临两个难题,首先是训练数据的大小,训练数据的多少直接影响到测试的精度。在该问题上,很多学者使用图像分类的大型数据集预训练模型,但是这种数据集与视频跟踪所需的实际数据往往存在较大的差异,导致跟踪误差较大。第二个难题是,随着深度学习网络层数的增加,算法的计算量增大,这会降低跟踪过程中的实时性。

(2)跟踪算法

跟踪策略的目的是希望所建立的运动模型能够预估出下一帧图像中目标的可能状态,为目标的状态估计提供先验知识,用来在当前帧图像中寻找最优的目标位置。常用的运动估计方法有:卡尔曼滤波[ ]、粒子滤波[ ]、隐马尔可夫模型[ ]和均值漂移[ ]等。

卡尔曼滤波和粒子滤波是属于基于概率的跟踪方法[ ]。该类跟踪方法采用贝叶斯滤波理论估计目标的状态,即根据目标当前时刻的先验知识和状态方程,采用递推的方式对下一时刻的状态进行预测和修正,以实现对目标时变状态的估计。该方法通常采用位置、速度等作为目标位置信息的状态变量,状态变量通过状态方程的递推运算实现状态预测,之后把状态变量最新的观测值带入观测似然方程,并评价状态预测置信度,以修正状态变量的预测值。

基于均值漂移的目标跟踪算法是确定性跟踪算法的代表。该类算法的基本思想是,由目标检测算法获取目标的模板,然后将候选目标位置与目标模板相匹配以实现目标的跟踪。该类算法通常以代价函数作为目标模板与候选目标位置间的相似性度量,以最优化理论寻找代价函数的最大值,并选择代价函数取得最大值时候选目标的位置作为目标在当前图像序列中的估计位置。

3. 总结

目标表观建模方法及其优缺点比较:

除此之外,还需要调研最新的目标跟踪算法。若有最新的方法,再行补充文档。

目标跟踪 | 目标跟踪算法总结相关推荐

  1. 点一万个赞:商汤SiamRPN目标跟踪最强算法开源

    商汤SiamRPN目标跟踪最强算法开源 导语:商汤科技智能视频团队首次开源其目标跟踪研究平台PySOT,包含商汤科技SiamRPN系列算法,以及刚被CVPR2019收录为Oral的SiamRPN++. ...

  2. 目标跟踪:CamShift算法

    1.前言 camshift利用目标的颜色直方图模型将图像转换为颜色概率分布图,初始化一个搜索窗的大小和位置,并根据上一帧得到的结果自适应调整搜索窗口的位置和大小,从而定位出当前图像中目标的中心位置. ...

  3. 目标跟踪-粒子滤波算法

    http://blog.csdn.net/hujingshuang/article/details/45535423 前言: 粒子滤波广泛的应用于目标跟踪,粒子滤波器是一种序列蒙特卡罗滤波方法,其实质 ...

  4. OpenCV总结:目标跟踪之CamShift算法

    CamShift算法全称是"Continuously Adaptive Mean-Shift"(连续的自适应MeanShift算法),是对MeanShift算法的改进算法,可以在跟 ...

  5. KCF算法(相关滤波算法) 跟踪目标

    这是笔者目前碰到的性能最好的传统目标跟踪算法,所以这里也简单介绍下这个算法的由来. 一.算法介绍 KCF全称为Kernel Correlation Filter 核相关滤波算法.是在2014年由Joa ...

  6. 2020中兴捧月算法大赛阿尔法赛道决赛总结(多目标检测与跟踪)

    赛题:多目标检测与跟踪 代码地址 初赛:排名第1 初赛思路:第一次做跟踪任务.简单的认为是检测+reid问题. 初赛: 1.首先明确题意:多目标跟踪:指标MOTA和MOTP, 后期的大量实验证明检测算 ...

  7. Complexer-YOLO:基于语义点云的实时三维目标检测与跟踪

    泡泡点云时空,带你精读点云领域顶级会议文章 标题:Complexer-YOLO: Real-Time 3D Object Detection and Tracking on Semantic Poin ...

  8. MO-LTR:基于单目RGB视频的多目标定位、跟踪与重建

    点击上方"3D视觉工坊",选择"星标" 干货第一时间送达 标题:MO-LTR: Multiple Object Localization, Tracking a ...

  9. 哇塞,可以使用PyTorch实现目标检测与跟踪,这不有趣多了

    引言 在昨天的文章中,我们介绍了如何在PyTorch中使用您自己的图像来训练图像分类器,然后使用它来进行图像识别.本文将展示如何使用预训练的分类器检测图像中的多个对象,并在视频中跟踪它们. 图像中的目 ...

  10. matlab 图像分割 提取人像_几种典型的图像处理技术(分类 目标提取 目标跟踪 语义分割 实例分割)...

    目前,在处理海上无人艇的感知系统的开发.其中,比较核心的一个部分就是基于光电的目标识别(Object Detection). 任务目标 如图所示,从包含舰艇的图片中,标识舰艇的位置 本文的学习笔记,主 ...

最新文章

  1. Python字符串编码坑彻底详细解决 何梁
  2. 《卫生信息基本数据集编制规范》等23项行业标准的通告
  3. Python错误“ ImportError:未命名模块”
  4. 「镁客·请讲」摩簦伞易新宇:对共享雨伞的不同理解,让他们玩法也和他人不同...
  5. mysql安装 经验_MySQL安装教程 这些经验不可多得
  6. 2008-07-29
  7. Android --- Binary XML file line2 Binary XML file line 2 Error inflating class unknown
  8. shell脚本练习(12.8)
  9. android必看java_Android开发工程师必看笔试题:Java基础选择题(一)
  10. caffe安装_【开源框架】caffe图像分类从模型自定义到测试
  11. TensorFlow——如何查看当前版本TF编译使用的CUDA和cuDNN的编译版本
  12. Linux命令之---cat
  13. 北斗导航 | 基于改进RANSAC算法的BDS接收机自主完好性监测算法研究
  14. JavaScript刷新当前页面的五种方式
  15. 如何让企业微信的消息在微信里显示?
  16. 单片机的ISP是什么
  17. 2022-2027年中国暖气片行业市场全景评估及发展战略规划报告
  18. canvas设置lineWidth属性,出现线条被fill覆盖问题。
  19. 示波器电流探头工作原理-Pintech品致
  20. c语言如何实现人民币转换编程,C语言成序设计实现人民币小写金额与大写金额的转换.docx...

热门文章

  1. visio中绘制空间坐标系,visio导入科学图形包
  2. 达梦数据库SQL语句执行
  3. linux下的rpm命令详解,RPM包命令详解
  4. 互联网产品经理的工作职责
  5. 修改Postman安装路径
  6. rk3568 LTE(N720)
  7. vue 多个组件动态加载(动态组件的使用)
  8. 关于C#项目开发梳理
  9. 电工学复习【7】-- 集成运算放大器
  10. crt测试显示器软件,MonitorTest(显示器性能测试软件)