姓名:刘帆;学号:20021210609;学院:电子工程学院
转载于:
https://blog.csdn.net/qq_34919792/article/details/89893249
【嵌牛导读】目标跟踪算法后,目标检测算法出现,将两者相结合的算法成为新的研究方向。
【嵌牛鼻子】目标跟踪检测算法,机器学习
【嵌牛提问】什么是跟踪检测算法?最基础的算法包括哪些?
【嵌牛正文】
第二阶段(2010年~2012年,检测与跟踪相结合的方法出现)
在该阶段,对已存的目标追踪算法出现了两种比较公认的分类,一种是基于生成模型的方法,一种是基于判别模型的方法。在第一阶段中的方法都属于前一种,而基于判别的方法是指通过分类来做跟踪,也叫检测跟踪(Tracking-by-Detection)。
通过机器学习方法,提取图像特征,并训练分类器进行分类,在下一帧用训练好的分类器找到最优区域。该阶段,经典的判别类方法有Struck和TLD。
1、Struck
《Struck:Structured Output Tracking with Kernels》是Sam Hare, Amir Saffari, Philip H.S.Torr等人于2011年发表在Computer Vision (ICCV)上的一篇文章。Struck算法(下图左手边)主要提出一种基于结构输出预测的自适应视觉目标跟踪的框架,通过明确引入输出空间满足跟踪功能,能够避免中间分类环节,直接输出跟踪结果。同时,为了保证实时性,该算法还引入了阈值机制,防止跟踪过程中支持向量的过增长。
与传统方法不同,其新思路在于:
1)试图通过学习一个分类器来从局部背景中区分出目标对象。
2)使用在线结构输出SVM学习方法来解决跟踪问题,提出学习一个预测函数来直接估计帧之间的变化。
3)在需要添加一个新的支持向量时,支持向量的数目已经达到阈值,则就需要移除一个合适的支持向量,并潜在地调整仍存在的支持向量的系数以弥补移除的损失。
2、TLD
Tracking-Learning-Detection(TLD)是Zdenek Kalal提出的一种对视频中单个物体长时间跟踪的算法。我主要会根据他在2010年发表的论文《Tracking-Learning-Detection》来分析TLD算法的原理。
正如名字所示,TLD算法主要由三个模块构成:追踪器(tracker),检测器(detector)和机器学习(learning)。作者提出把追踪器和检测器结合使用,同时加入机器学习来提高结果的准确度。
追踪器的作用是跟踪连续帧间的运动,当物体始终可见时跟踪器才会有效。追踪器根据物体在前一帧已知的位置估计在当前帧的位置,这样就会产生一条物体运动的轨迹,从这条轨迹可以为学习模块产生正样本(Tracking->Learning)。
检测器的作用是估计追踪器的误差,如果误差很大就改正追踪器的结果。检测器对每一帧图像都做全面的扫描,找到与目标物体相似的所有外观的位置,从检测产生的结果中产生正样本和负样本,交给学习模块(Detection->Learning)。算法从所有正样本中选出一个最可信的位置作为这一帧TLD的输出结果,然后用这个结果更新追踪器的起始位置(Detection->Tracking)。
学习模块根据追踪器和检测器产生的正负样本,迭代训练分类器,改善检测器的精度(Learning->Detection)。
追踪模块是作者所提出的Median-FLow,是光流的一种改进。首先在上一帧t的物体包围框里均匀地产生一些点,然后用Lucas-Kanade追踪器正向追踪这些点到t+1帧,再反向追踪到t帧,计算FB误差,筛选出FB误差最小的一半点作为最佳追踪点。最后根据这些点的坐标变化和距离的变化计算t+1帧包围框的位置和大小。
学习模块是提供了P-N学习一种半监督学习方式。
P专家(P-expert):检出漏检(false negative,正样本误分为负样本)的正样本,其作用是寻找数据在时间上的结构性,它利用追踪器的结果预测物体在t+1帧的位置。如果这个位置(包围框)被检测器分类为负,P专家就把这个位置改为正。也就是说P专家要保证物体在连续帧上出现的位置可以构成连续的轨迹;
N专家(N-expert):改正误检(false positive,负样本误分为正样本)的正样本其作用是寻找数据在空间上的结构性,它把检测器产生的和P专家产生的所有正样本进行比较,选择出一个最可信的位置,保证物体最多只出现在一个位置上,把这个位置作为TLD算法的追踪结果。同时这个位置也用来重新初始化追踪器。
检测模块是级联分类器,包含三个类别。第一个图元方差分类器,通过方差比较排除一半以上的样本。第二个集成分类器,通过随机蕨来提供一个分类准则,排除概率低的样本。第三个是最近邻分类器,计算新样本的相对相似度,取相似度高的为检测样本。
TLD的工作流程如上图所示。首先,检测器由一系列包围框产生样本,经过级联分类器产生正样本,放入样本集;然后使用追踪器估计出物体的新位置,P专家根据这个位置又产生正样本,N专家从这些正样本里选出一个最可信的,同时把其他正样本标记为负;最后用正样本更新检测器的分类器参数,并确定下一帧物体包围框的位置。
参考链接
Struck跟踪原理:https://blog.csdn.net/App_12062011/article/details/52220566
SVM参考:https://blog.csdn.net/v_july_v/article/details/7624837
TLD原理:http://johnhany.net/2014/05/tld-the-theory/