目标跟踪:TLD算法阅读后记
花了一个星期的时间阅读完2011年目标跟踪SOTA算法TLD,从中学习到不少东西,根据回忆记录下来,可能会有不少纰漏之处。
machine learning应用在目标跟踪领域
之前我以为machine learning应用在目标跟踪领域,应该是挺晚的,没想到之前的许多跟踪算法都应用到了。比如随机森林、聚类算法、binary-classification。文章将TLD框架分解成3个部分:tracking,learning,detecting,其中learning和detecting部分都涉及到了machine learning的分类算法。
特征选择
从TLD可以看出,以前的算法对图像特征的选择没有现在这么丰富。TLD直接在boundingBox内平均选取了若干raw pixels当作特征点进行跟踪,raw pixel对光照、形变、遮挡都十分不鲁棒,所以TLD在遇到光照变化、物体遮挡和形变时,效果很差。按照今天的思路,HOG肯定要上,起码行人跟踪不成问题了,而TLD跟踪行人效果也是很差的。
相关运算
大概2014年之后,基于相关滤波的跟踪独占鳌头,速度和精度都上了一个新台阶。但给两张图做相关来判定相似程度,在以前的论文中也是常用的。不同的是,以前的论文仅仅将相关的系数与threshold作比较,而没有进一步发展出相关滤波器。
"传统的"跟踪
TLD经常将tracking和detecting分开来说,在TLD之前的算法中,默认tracking是预测物体在下一帧的位置,而不是检测物体在下一帧的位置。这是很不一样的。打个比方,tracker根据第一、二帧的图片,就可以直接预测第三帧中目标的位置;而检测则只能通过在第三帧中搜索和对比才能知道目标在哪儿。而现在提到跟踪,已经不在乎tracking和detecting的区别了,因为他们已经是一体的了。拿KCF举例,实际上也预测了下一帧的大概位置,就是在当前帧的目标附近;而最终确定目标位置,是通过检测。
P-N EXPERTS
入乡随俗,将tracking和detecting分开来看 P-N 专家。P 专家检测False Positive Object,即检测器检测到的假的目标;然后把假的目标当作负样本训练分类器,这样分类器今后就可以避免再次犯这种样本带来的错误。N 专家检测False Negative Object,即跟踪器跟踪到的假的背景;然后把假的背景当作正样本训练分类器,这样分类器今后就可以避免再次将这种正样本判断成背景的错误。P-N EXPERTS输入TLD的learning部分。
DETECTOR
Detector是以一种穷举的方式产生大量样本,然后从样本中找出谁是目标。Detector的初始样本可能有几万到几十万个,然后通过方差、融合分类器和最近邻分类器最终得到仅仅数个输出的样本。据论文介绍,方差对比可将样本数减少一半,十分高效。但不得不说,这儿的Detector还是太老实了,像KCF一样在目标周围弄一个检测区域,帧率还会提升。
框图
最后以4个框图代表TLD的精髓吧