Video Target Tracking Based on Online Learning—TLD多目标跟踪算法
- TLD算法回顾
TLD(Tracking-Learning-Detection)是英国萨里大学的一个捷克籍博士生Zdenek Kalal在其攻读博士学位期间提出的一种新的单目标长时间(long term tracking)跟踪算法。该算法与传统跟踪算法的显著区别在于将传统的跟踪算法和传统的检测算法相结合来解决被跟踪目标在被跟踪过程中发生的形变、部分遮挡等问题。同时,通过一种改进的在线学习机制不断更新跟踪模块的“显著特征点”和检测模块的目标模型及相关参数,从而使得跟踪效果更加稳定、鲁棒、可靠。
TLD算法详细描述参见:http://www.cnblogs.com/liuyihai/p/8306419.html
- 基于TLD的多目标跟踪框架
现实的场景中,对于一个拍摄的视频序列,只跟踪视频序列的一个目标越来越不能满足实际需求。 因此,探讨TLD算法在多目标跟踪中的应用研究很有必要。与单目标跟踪相比, 多目标跟踪的整体流程依然是跟踪、检测、学习和综合输出,唯一的区别是随时可以添加新的跟踪目标。 基于以上分析,多目标跟踪算法总过程如下图所示。

上图整个框架实现过程如下:(1)读入视频序列。(2) 用鼠标标定或者输入矩形框参数的形式定位跟踪的目标框(就是画一个矩形框)。(3)初始化参数,生成样本。样本用来得到检测模块的样本库。(4) 跟踪的目标框分别进入跟踪模块和检测模块, 通过相关条件判断在下一帧是否存在跟踪到目标。(5)通过学习模块反馈作用检测模块,更新检测模块的样本库。并用检测模块对跟踪模块进行更新。(6)对于每一帧跟踪模块和检测模块的结果在综合模块中进行处理输出定位下一帧中目标出现的位置方位。(7)如果在执行的过程中,添加新的目标,则重复上述过程,依次处理每一个跟踪目标,这样就实现了多个目标的跟踪。
- TLD多目标跟踪原理详解
-----------------------------------------------------多目标跟踪模块---------------------------------------------
跟踪单个目标只需要四个参数(横坐标,纵坐标,长度,宽度)就能确定被跟踪目标的信息位置。但是跟踪多个目标时候,需要对不同目标加以区分, 所以目标矩形框的数据结构略作改变, 在以前的数据结构中添加一个序号用来表示不同的目标,这样用五个参数就可以很好地区分多个目标。如下图所示。

存在多个目标时,同一帧图像中同时存在多个目标要被跟踪,多个目标是以结构体数组的形式存放的。这时候跟踪模块需要使用LK中值流法(方法原理同TLD单目标跟踪)以循环的方式反复跟踪结构体数组中的每个目标,直到所有目标被跟踪完毕。
-----------------------------------------------------多目标检测模块---------------------------------------------
目标检测模块也是让待测的滑动矩形框依次通过方差分类器、集合分类器和最近邻分类器,过滤掉不满足条件的滑动矩形框,找出最近似的矩形框。

多目标时滑动窗口的形成过程
对于单目标 TLD 算法,滑动窗口是这样产生的。以跟踪目标框在视频中的长宽为基数, 以一定尺度比例缩放; 每缩放一次遍历一次整个图像片,最终得到大量的滑动窗口。 每一个目标框为基数产生的滑动窗口都达到了几万个,每一帧图像多要产生滑动窗口。如果同时有多个目标,也按照这种方式分别产生各自跟踪窗口的滑动矩形框,数量将成倍增加,并且在后面检测这些窗口的时候处理速度也非常缓慢。这就导致不能用简单的循环重复实现TLD算法检测模块对多目标的检测改进。 当有多个目标产生滑动矩形框时,滑动窗口成倍增加的主要原因是不同尺寸生成的滑动窗口不一致所致。 为了减少生成滑动窗口的数量,在视频序列中跟踪多个目标的时,让标定的跟踪目标矩形框间长宽比固定,这样生成的滑动窗口是与初始目标框成比例缩放的。 那么处理每一帧视频时,不同的跟踪目标只需要生成一次滑动窗口便可。
宽度和长度归一化过程具体如下:
a)计算出第一个被跟踪的目标框的宽度和长度的比率,如下式所示,w0 表示第一个目标框的宽度, h0 表示第一个目标框的高度, p 表示宽度和长度比的值。

b)那么对于第n(n=2,3,...,N)个被跟踪的目标框,我们令其宽度保持不变,可以通过下式计算出第n个被跟踪的目标框的归一化高度.

下图给出了新添加目标后(蓝色目标),进行归一化处理后的跟踪过程:

综上所述,当视频序列要添加新的目标的时(新目标鼠标框定的目标与第一个目标的长宽比一般不一致),根据第一个目标框的长宽比归一化处理新添加的目标,这样新添加的目标与初始的目标长宽比一致只是大小不一样。这样跟踪多个目标也只需要生成一组滑动窗口即可,计算量大大降低。
多目标时的方差滤波过程
方差分类器筛选滑动窗口的依据是方差阈值,大于该阈值则通过方差分类器,小于该阈值丢弃。图像中有多个目标时,采取如下策略确定方差阈值大小:如果只跟踪一个目标,就得到该目标的方差,然后让该目标框方差大小的一半作为方差分类器的阈值;如果存在多个目标的时候,就选择最小 跟踪目标框方差的一半作为方差分类器的阈值。通过上述分析得知,如果同时跟踪的目标越多,并且多个目标最大方差与最小的方差相差很大的时, 方差分类器筛选出来的滑动窗口数量较多。反之,多个目标框方差较为接近的时候,方差分类器筛选出来的滑动窗口数量相对较少。
多目标时的集合分类器过程
因此, 多目标集合分类器主要完成两项工作,其一, 进一步过滤掉不符合条件的待测滑动窗口,其二,对于筛选出来窗口进行分类,使得不同滑动窗口属于不同的跟踪目标。 随机森林有良好的特性, 多目标集合分类器依然基于随机森林。在集合分类器中,每增加一个新的目标,就以该目标框长度、 宽度、编号和方差参数条件来进行仿射变换等生成正样本。由于每一个目标框都是带有编号的,这样正样本通过随机森林时,训练出来的结果都带有编号的, 以区分其属于不同的目标。另一个方面,上一步待测的滑动矩形框也会通过随机森林, 通过随机森林也会得到 2bitBP 编码的特征码,根据特征码与上述训练出来的库进行对比,如果在库中比对,比对的结果满足阈值条件,则认为含有前景目标,予以保留。样本库中的样本都是根据不同目标有编号的,这样比对成功的滑动窗口就可以编号。否
则丢弃。 从上述过程中可以看出,一个待测窗口开始进入集合分类器的时候,是没有加以区分的,通过集合分类器后,被保留下来的滑动窗口已经带有特定编号了,并且该编号与跟踪目标框的编号是一致的。多个待测窗口通过该集合分类器后,被筛选出来的滑动窗口已经被标有不同的编号了,从而达到过滤和分类的目的。 当然,同时跟踪多个目标时,一个待测窗口可能同时被打上多个不同编号,但他们之间并不矛盾。
多目标时的最近邻分类器过程
对于多个目标,最近邻分类器主要完成两个功能。其一是,将跟踪模块跟踪到的图像片与上一帧的图像片进行匹配比对,若相似度大于指定阈值则认为。最终跟踪模块跟踪的结果成功。其二是,将通过集合分类器的滑动窗口与各自的的图像片进行比对,其相似度大于一定的阈值则认为,滑动窗口时该矩形框的最终检测窗口。
-----------------------------------------------------多目标学习模块---------------------------------------------
传统的 TLD 算法,学习模块分为在线模型和 P-N 学习模块。因为在实验中,在上述多目标最近邻分类器已经充当了在线模型的作用,故多目标学习模块主要完成两部分的内容。其一是,最近邻样本库的训练;其二是,集合分类器的训练。扩展的多目标最近邻分类器充当了与在线模型类似的功能,故对于多个目标学习模块只需要训练更新集合分类器和最近邻分类器的总样本库。对于集合分类器中正样本产生是在添加目标的时产生的。最近邻分类器中的正样本库由各自在上一帧中跟踪到的目标加上编号生成的,负样本只有一个库,是与被跟踪目标相似度都小的图像片组成的样本。 正样本和负样本的产生来源于两部分。其一,每增加一个目标,会在样本库中添加属于该的目标的正样本和更新负样本库。其二, 每一次检测模块最终的得到的滑动窗口也会作为新的样本存入各自样本库中, 并更新负样本。 学习样本库如下图所示。
-----------------------------------------------------多目标综合模块---------------------------------------------
多目标综合模块与单目标的策略是一致的,只是这时候有多个目标,循环处理每一个目标即可。
- TLD多目标跟踪算法源码
- TLD多目标跟踪参考文献
[1]http://tldvision.com/pdf/tld2_spec_sheet.pdf
[2]姚沛. 基于TLD多目标跟踪算法研究
- TLD多目标跟踪演示视频
多动静目标跟踪:http://www.miaopai.com/show/kQQI-zVHpomC-MQ7JiMaA0d1SjZeeZxpdO8ryw__.htm

无人机航拍多目标跟踪 :
- 程序安装及运行答疑
liuyihai@126.com liuyihai@aliyun.com
- 博文预告
下一篇博文将详细讲述深度学习(人工智能)算法在视频目标跟踪中的应用情形-----欢迎阅读
Video Target Tracking Based on Online Learning—TLD多目标跟踪算法的更多相关文章
- Video Target Tracking Based on Online Learning—TLD单目标跟踪算法详解
视频目标跟踪问题分析 视频跟踪技术的主要目的是从复杂多变的的背景环境中准确提取相关的目标特征,准确地识别出跟踪目标,并且对目标的位置和姿态等信息精确地定位,为后续目标物体行为分析提供足 ...
- Video Target Tracking Based on Online Learning—深度学习在目标跟踪中的应用
摘要 近年来,深度学习方法在物体跟踪领域有不少成功应用,并逐渐在性能上超越传统方法.本文先对现有基于深度学习的目标跟踪算法进行了分类梳理,后续会分篇对各个算法进行详细描述. 看上方给出的3张图片,它们 ...
- Survey of single-target visual tracking methods based on online learning 翻译
基于在线学习的单目标跟踪算法调研 摘要 视觉跟踪在计算机视觉和机器人学领域是一个流行和有挑战的话题.由于多种场景下出现的目标外貌和复杂环境变量的改变,先进的跟踪框架就有必要采用在线学习的原理.本论文简 ...
- 论文阅读之:Deep Meta Learning for Real-Time Visual Tracking based on Target-Specific Feature Space
Deep Meta Learning for Real-Time Visual Tracking based on Target-Specific Feature Space 2018-01-04 ...
- 201904Online Human Action Recognition Based on Incremental Learning of Weighted Covariance Descriptors
论文标题:Online Human Action Recognition Based on Incremental Learning of Weighted Covariance Descriptor ...
- 论文笔记之:Action-Decision Networks for Visual Tracking with Deep Reinforcement Learning
论文笔记之:Action-Decision Networks for Visual Tracking with Deep Reinforcement Learning 2017-06-06 21: ...
- 论文笔记:Visual Object Tracking based on Adaptive Siamese and Motion Estimation Network
Visual Object Tracking based on Adaptive Siamese and Motion Estimation 本文提出一种利用上一帧目标位置坐标,在本帧中找出目标可能出 ...
- 【Machine Learning】KNN算法虹膜图片识别
K-近邻算法虹膜图片识别实战 作者:白宁超 2017年1月3日18:26:33 摘要:随着机器学习和深度学习的热潮,各种图书层出不穷.然而多数是基础理论知识介绍,缺乏实现的深入理解.本系列文章是作者结 ...
- [笔记]Learning to Rank算法介绍:RankNet,LambdaRank,LambdaMart
之前的博客:http://www.cnblogs.com/bentuwuying/p/6681943.html中简单介绍了Learning to Rank的基本原理,也讲到了Learning to R ...
随机推荐
- php-基础知识-apache服务器
一.支持php的服务器有:iis.apache.lighted(德国制造).nginx(俄罗斯制造,功能强大[反向代理.服务器集群.流媒体服务器........].轻量) 二.今天主要分享apache ...
- Eclipse Pydev添加MySQLdb模块,Windows下安装MySQL-python
1.首先确保Windows下已经安装Python.Eclipse并且Eclipse已经集成Pydev能成功运行Python 2.下载MySQL-python 地址:http://www.codegoo ...
- centOS7 mini配置linux服务器(四) 配置jdk
这里简单写一下centos7Mini 安装jdk1.8的全过程. 一.下载jdk,linux版本. 地址:http://www.oracle.com/technetwork/java/javase/ ...
- flask 动手写的接口平台
笔者做的是测试,在群里经常有人讨论,怎么和开发对接怎么难,怎么测接口比较难,开发不愿因写文档等等,是啊,我感觉也是这样,沟通,还有我们应该怎样去学习,去扩充自己,让自己不再受开发所左右, 笔者就像试图 ...
- PhoneGap开发环境搭建
项目中要用PhoneGap开发,了解了下基本规则,记录一下,以备后查.(只针对Android平台) 一.安装 在安装PhoneGap开发环境之前,需要先安装以下框架: 1.Java SDK 2.Ecl ...
- 搜索引擎之全文搜索算法功能实现(基于Lucene)
之前做去转盘网的时候,我已经公开了非全文搜索的代码,需要的朋友希望能够前去阅读我的博客.本文主要讨论如何进行全文搜索,由于本人花了很长时间设计了新作:观点,观点对全文搜索的要求还是很高的,所以我又花了 ...
- JavaScript的DOM编程--07--节点的属性
节点的属性: 1). nodeName: 代表当前节点的名字. 只读属性. 如果给定节点是一个文本节点, nodeName 属性将返回内容为 #text 的字符串 2). nodeType:返回一个整 ...
- 3D轮播切换特效 源码
这个3D轮播切换特效是我2017年2月份写的 当初我 刚接触HTML不久,现在把源码分享给大家 源码的注释超级清楚 . <!-- 声明文档类型:html 作用:符合w3c统一标准规范 每个浏览器 ...
- NPOI 1.2 教程
NPOI 1.2 教程官方地址 很多人可能对NPOI还很陌生,别担心,通过本教程你将对NPOI有进一步的认识和理解. 目录 1. 认识NPOI 2. 使用NPOI生成xls文件 2.1 创建基本内容 ...
- Nginx集群及代理的应用
目录 1 大概思路... 1 2 了解Nginx及文档资源... 1 3 Nginx命令模块及进程结构... 2 4 解读Nginx配置... 3 5 ...