您的位置:首页 > 其它

浅析TLD算法

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

可以先看以下Kalal关于TLD算法的介绍视频:
http://v.youku.com/v_show/id_XMjU1NDg3NDIw.html?from=y1.2-1-176.3.1-2.1-1-1-0-0
TLD最显著的贡献在于提出了一种检测、跟踪、学习相结合的目标跟踪方法,分别定义了分类器与跟踪器,并利用学习机制来相互促进及获得正样本的动态更新。下图是TLD算法的整体架构图:



接下来分别说说这三个模块:

检测模块(Detection):

TLD的检测思想是采用多分辨率窗口来进行目标检测,采用的是级联分类器架构。级联分类器的第一层方差分类器其实算是一个筛选器,利用积分图来计算检测区域的方差,利用阈值滤掉一批明显不是前景的区域;第二层是一个随即森林集合分类器(与其说是随机森林不如说是随机蕨),在检测框中随机定义一组坐标点对,比较样本中每个坐标点对位置的像素值大小关系,大于等于置1、小于置0,按顺序排列即成为一个特征值(和LBP算子比较相似),这样的特征值在TLD中定义了一组,参考下图:


一颗蕨类植物就是一组随机蕨特征值,每个叶片有一节一节的关节可以想象一个特征值中每一位上一对匹配点对的关系。
实际运行时,在选定了最初的目标区域后进行前景特征值的初始化,接着利用朴素贝叶斯分类器即可得到特征空间内各特征值是前景的概率,使用这个分类器即可对检测框内的图片进行分类了;第三层是一个1-NN最近邻分类器,将通过了前两层分类器的检测区域与正样本做相似度计算,只取大于阈值的区域作为检测目标的区域,如果大于阈值的区域过多则取相似度最大的K个(K-NN ...)。下图是Kalal在他的论文里关于检测模块的一个示意图:



最左边的是方差分类器,中间的是随机森林集合分类器,最右边的是最近邻分类器。

跟踪模块(Tracking):

跟踪模块采用的算法加入了back-tracking思想的金字塔光流算法,Kalal认为一个好的跟踪结果应该是具有回溯性的,也就是说从第t帧的目标位置A1往前跟踪得到t+1帧目标位置B,再从t+1帧的目标位置B跟踪回第t帧得到目标位置A2,则A1与A2的距离的远近反映出了这次跟踪效果的好坏。
TLD的实现方式:在第t帧的目标位置的N个光流粒子跟踪到第t+1帧,再从第t+1帧往回跟踪回第t帧,比较各个粒子的偏移程度,取偏移小的一半粒子留用下一帧,其他的抛弃。最后,考察跟踪成功的粒子分布,在粒子分布最密集的区域画框,得到该帧的跟踪结果。(TLD是允许跟踪失败的,跟踪失败则不返回目标框,跟踪是否失败的判断是根据整体粒子的偏移程度)

学习模块(Learning):

学习模块在第一帧时为检测模块及自己提供了原始的正样本和负样本,正样本是离选定区域最近的10个扫描窗口中选定10个,进行放缩、旋转和仿射变换,得到200张正样本图片,再选一批离选定区域最远的扫描窗口内的图片为负样本。在每一帧中如果结果达到条件也会启动学习模块更新分类器与正负图片样本,条件之一是跟踪模块必须未返回失败,说明学习模块是有考虑只学习跟踪效果较好的帧的。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: