TLD(Tracking-Learning-Detection)是英国萨里大学的一个捷克籍博士生在其攻读博士学位期间提出的一种新的单目标长时间(long term tracking)跟踪算法。该算法与传统跟踪算法的显著区别在于将传统的跟踪算法和传统的检测算法相结合来解决被跟踪目标在被跟踪过程中发生的形变、部分遮挡等问题。同时,通过一种改进的在线学习机制不断更新跟踪模块的“显著特征点”和检测模块的目标模型及相关参数,从而使得跟踪效果更加稳定、鲁棒、可靠。

对于长时间跟踪而言,一个关键的问题是:当目标重新出现在相机视野中时,系统应该能重新检测到它,并开始重新跟踪。但是,长时间跟踪过程中,被跟踪目标将不可避免的发生形状变化、光照条件变化、尺度变化、遮挡等情况。传统的跟踪算法,前端需要跟检测模块相互配合,当检测到被跟踪目标之后,就开始进入跟踪模块,而此后,检测模块就不会介入到跟踪过程中。但这种方法有一个致命的缺陷:即,当被跟踪目标存在形状变化或遮挡时,跟踪就很容易失败;因此,对于长时间跟踪,或者被跟踪目标存在形状变化情况下的跟踪,很多人采用检测的方法来代替跟踪。该方法虽然在某些情况下可以改进跟踪效果,但它需要一个离线的学习过程。即:在检测之前,需要挑选大量的被跟踪目标的样本来进行学习和训练。这也就意味着,训练样本要涵盖被跟踪目标可能发生的各种形变和各种尺度、姿态变化和光照变化的情况。换言之,利用检测的方法来达到长时间跟踪的目的,对于训练样本的选择至关重要,否则,跟踪的鲁棒性就难以保证。

考虑到单纯的跟踪或者单纯的检测算法都无法在长时间跟踪过程中达到理想的效果,所以,TLD方法就考虑将两者予以结合,并加入一种改进的在线学习机制,从而使得整体的目标跟踪更加稳定、有效。

简单来说,TLD算法由三部分组成:跟踪模块、检测模块、学习模块;如下图所示

其运行机制为:检测模块和跟踪模块互补干涉的并行进行处理。首先,跟踪模块假设相邻视频帧之间物体的运动是有限的,且被跟踪目标是可见的,以此来估计目标的运动。如果目标在相机视野中消失,将造成跟踪失败。检测模块假设每一个视帧都是彼此独立的,并且根据以往检测和学习到的目标模型,对每一帧图片进行全图搜索以定位目标可能出现的区域。同其它目标检测方法一样,TLD中的检测模块也有可能出现错误,且错误无非是错误的负样例和错误的正样例这两种情况。而学习模块则根据跟踪模块的结果对检测模块的这两种错误进行评估,并根据评估结果生成训练样本对检测模块的目标模型进行更新,同时对跟踪模块的“关键特征点”进行更新,以此来避免以后出现类似的错误。TLD模块的详细;流程框图如下所示:

在详细介绍TLD的流程之前,有一些基本知识和基本概念需要予以澄清:

基本知识:

在任意时刻,被跟踪目标都可以用其状态属性来表示。该状态属性可以是一个表示目标所在位置、尺度大小的跟踪框,也可以是一个标识被跟踪目标是否可见的标记。两个跟踪框的空间域相似度是用重叠度(overlap)来度量,其计算方法是两个跟踪框的交集与两者并集的商。目标的形状采用图像片(image patch,个人认为,可以理解为滑动窗口)p来表示,每一个图像片都是从跟踪框内部采样得到的,并被归一化到15*15的大小。两个图相片

视频跟踪算法--TLD跟踪算法介绍相关推荐

  1. 比微软kinect更强的视频跟踪算法--TLD跟踪算法介绍

    TLD (Tracking-Learning-Detection)是英国萨里大学的一个捷克籍博士生在其攻读博士学位期间提出的一种新的单目标长时间( long term tracking )跟踪算法.该 ...

  2. 比微软kinect更强的视频跟踪算法--TLD跟踪算法介绍 .

    转自:http://blog.csdn.net/carson2005/article/details/7647500 TLD(Tracking-Learning-Detection)是英国萨里大学的一 ...

  3. C++ OpenCV视频操作之CamShift跟踪算法

    前言 CamShift算法,全称是 Continuously AdaptiveMeanShift,顾名思义,它是对Mean Shift 算法的改进,能够自动调节搜索窗口大小来适应目标的大小,可以跟踪视 ...

  4. VS2013+OpenCV3.0编译TLD跟踪算法

    TLD算法跟CMT算法是同一个大神写的,不过现在已经停止更新了,原作者推荐使用CMT算法,不过还是要编译一下它比较一下两个有什么不同.因为TLD算法停止更新的时候还是OPenCV2.X,所以要移植到O ...

  5. 【含泪提速!】一文全解相似度算法、跟踪算法在各个AI场景的应用(附代码)

    大家好,我是cv君,大家是否为深度学习算法速度感到困扰?本次cv君倾力分享一个优秀的方法,通过相似度+跟踪方案优化速度问题,并提高了检测.分割算法稳定性,附带代码,一起肝起来吧~ 今天给大家全解一下图 ...

  6. Ubuntu-KCF/DSST算法无人机跟踪仿真/实物保姆级教程

    KCF算法无人机跟踪 介绍 自己搭建的无人机跟踪实验,主要讲软件,硬件的需要等等 基础知识准备 整个系统需要两部分,识别程序和控制无人机运动的程序,都是Python脚本,但运行需要在Ubuntu下用R ...

  7. 使用 OpenCV 进行对象跟踪的几种算法解读

    使用 OpenCV 进行对象跟踪--算法 在本节中,我们将深入研究不同的跟踪算法.目标不是对每个跟踪器有深入的理论理解,而是从实践的角度理解它们. 让我首先解释跟踪背后的一些一般原则.在跟踪中,我们的 ...

  8. 时空上下文视觉跟踪(STC)算法的解读与代码复现

    时空上下文视觉跟踪(STC)算法的解读与代码复现 zouxy09@qq.com http://blog.csdn.net/zouxy09 本博文主要是关注一篇视觉跟踪的论文.这篇论文是Kaihua Z ...

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

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

最新文章

  1. Nat. Commun. | 识别药物靶点的贝叶斯机器学习方法
  2. Nature综述——真菌的多样性:真菌的高通量测序及鉴定
  3. oracle替换表merge,sql – Oracle – 如何使用merge根据其他表和列中的值更新列
  4. for,while循环
  5. Hadoop的mapper输出中key和value之间的分隔符
  6. [vue] SSR解决了什么问题?有做过SSR吗?你是怎么做的?
  7. 使用Disentangling形式的损失函数回归2D和3D目标框
  8. 11条要点速读:网络小额贷款业务管理暂行办法(征求意见稿)
  9. 计算机通过逻辑电路实现运算,计算机组成与体系结构数据表示与运算算法和逻辑电路实现.ppt...
  10. Spring源码阅读-BeanFactory初始化-配置加载
  11. [音乐天堂]爱尔兰的小童星Declan
  12. 虫师带你入门Chrome Headless,从此爬虫0门槛!
  13. Mysql(多级分销)无限极数据库表设计方法
  14. 2380318-57-8,Thalidomide-O-PEG4-Azide通过点击化学与炔烃或DBCO、BCN连接的分子反应的PROTAC连接物
  15. 华为无线AC配置实例-华为3层ac旁挂+直接转发
  16. java实现加权随机,负载均衡--加权随机算法(Weight Random)
  17. VueHub:我用 ChatGPT 开发的第一个项目,送给所有 Vue 爱好者
  18. HTML中 单复选框的用法
  19. Bookkeeper工程实践
  20. 下列不属于噪声的是_[单选] 下列选项中不属于噪声的是()。

热门文章

  1. Capture原理图分页符跨页标注
  2. linux卸载veil,Kali Linux下Veil安装与使用的方法
  3. android 播放rtsp流的三种方式
  4. 一文读懂「TTS语音合成技术」
  5. RSA非对称加密原理
  6. 应急响应-Linux入侵排查(工具篇)
  7. 教女朋友学Python3-如何使用 Pycharm 进行调试
  8. 《Segmenter》-- 代码笔记
  9. 扩展 Geocoder 调用高德API查询POI数据
  10. mysql 遠端,遠端連線 GCE 的 MySQL 資料庫