From: 目标跟踪方法的发展概述算法
From: 目标跟踪领域进展报告网络
经典目标跟踪方法框架
2010 年之前,目标跟踪领域大部分采用一些经典的跟踪方法,好比 Meanshift、Particle Filter 和 Kalman Filter,以及基于特征点的光流算法等。性能
Meanshift 方法是一种基于几率密度分布的跟踪方法,使目标的搜索一直沿着几率梯度上升的方向,迭代收敛到几率密度分布的局部峰值上。首先 Meanshift 会对目标进行建模,好比利用目标的颜色分布来描述目标,而后计算目标在下一帧图像上的几率分布,从而迭代获得局部最密集的区域。Meanshift 适用于目标的色彩模型和背景差别比较大的情形,早期也用于人脸跟踪。因为 Meanshift 方法的快速计算,它的不少改进方法也一直适用至今。学习
粒子滤波(Particle Filter)方法是一种基于粒子分布统计的方法。以跟踪为例,首先对跟踪目标进行建模,并定义一种类似度度量肯定粒子与目标的匹配程度。在目标搜索的过程当中,它会按照必定的分布(好比均匀分布或高斯分布)撒一些粒子,统计这些粒子的类似度,肯定目标可能的位置。在这些位置上,下一帧加入更多新的粒子,确保在更大几率上跟踪上目标。测试
Kalman Filter 常被用于描述目标的运动模型,它不对目标的特征建模,而是对目标的运动模型进行了建模,经常使用于估计目标在下一帧的位置。大数据
另外,经典的跟踪方法还有基于特征点的光流跟踪,在目标上提取一些特征点,而后在下一帧计算这些特征点的光流匹配点,统计获得目标的位置。在跟踪的过程当中,须要不断补充新的特征点,删除置信度不佳的特征点,以此来适应目标在运动中的形状变化。本质上能够认为光流跟踪属于用特征点的集合来表征目标模型的方法。编码
在深度学习和相关滤波的跟踪方法出现后,经典的跟踪方法都被舍弃,这主要是由于这些经典方法没法处理和适应复杂的跟踪变化,它们的鲁棒性和准确度都被前沿的算法所超越,spa
可是,了解它们对理解跟踪过程是有必要的,有些方法在工程上仍然有十分重要的应用,经常被看成一种重要的辅助手段。(新的旧的都要学,deep vision的坑 太深太深)设计
检测与跟踪相结合的方法
在 2010 年左右,目标跟踪的方法一般分红基于产生式模型的方法和基于鉴别式模型的方法。
人们开始采用一种在线学习的方法来训练跟踪的检测器,好比,在第一帧目标出现的位置创建初始的检测模型,并在后续帧更新模型以适应目标的变化,这里介绍当时 Surrey 大学博士生 Z.Kalal 提出的一种长效跟踪的 TLD(Tracking-Learning-Detection)方法。
TLD 方法的整个框架有三个模块,其中
跟踪器(Tracking)负责用经典的方法跟踪目标,论文中采用基于光流的特征点统计方法肯定目标在下一帧的跟踪位置,
检测器(Detection)负责在必定的范围内检测目标,而且与跟踪结果综合获得最终的输出结果。在肯定目标的最佳位置以后,
学习模块(Learning)负责对跟踪结果和检测器进行修正,在目标的周围选取更多的正负样本在线更新检测器的模型。
做者利用了多级分类器的方式来提升检测器的检测能力,下降误检,级联了一个在线学习的随机森林分类器和最近邻的分类器。
为了平衡整个检测器的稳定性和学习能力,做者提出了一种半监督的学习方法,利用 P-N 限制条件更新模型,使检测器可以收敛到一个稳定的状态。
从整个框架的设计上看,TLD 的工程意义要大于算法自己,做者对每一个模块都作了不少细节上的调整,好比利用 Backward-Forward 来过滤不可靠的光流特征点,对物体的变化作了尺度上的估计,利用 P-N 样本集更新随机森林分类器等。
TLD 的代码也公开了,人们能够很容易重现论文的结果。这种跟踪和检测相结合的框架和思想,极大地推进了跟踪算法的发展。那时对于跟踪算法的评测尚未公认的数据集和评测标准,很难对不一样跟踪方法的进行比较。
因此,在 2013 年左右,人们开始创建公共的测试视频集,定义了跟踪的初始条件和评价指标,好比 OTB 数据集(Object Tracking Benchmark)和 VOT 竞赛(Visual Object Tracking),其中 OTB 数据集至今已经有 100 多段视频,以短时跟踪为主,里面包含了各类复杂的变化场景,VOT 竞赛每一年举办一次,迄今已经举办了 4 年,自此跟踪的模型和算法突飞猛进,好比 2013 年的冠军 Struck,利用结构化 SVM 方法在线学习的一个分类器,2014 年的冠军 DSST,一种改进的基于相关滤波的多尺度跟踪方法,以后陆续又出现了不少基于深度学习的方法。
基于相关滤波的跟踪算法
相关滤波的跟踪算法始于 2012 年 P.Martins 提出的 CSK 方法,做者提出了一种基于循环矩阵的核跟踪方法,而且从数学上完美解决了密集采样(Dense Sampling)的问题,利用傅立叶变换快速实现了检测的过程。
在训练分类器时,通常认为离目标位置较近的是正样本,而离目标较远的认为是负样本。
回顾前面提到的 TLD 或 Struck,他们都会在每一帧中随机地挑选一些块进行训练,学习到的特征是这些随机子窗口的特征,而 CSK 做者设计了一个密集采样的框架,可以学习到一个区域内全部图像块的特征。
密集采样的过程能够经过做者提出的循环矩阵来实现,而且整个分类器的学习过程能够用快速傅立叶变换转化成频域内的计算,不受 SVM 或 Boost 等学习方法的限制。
不管是用线性分类仍是核分类,整个学习过程十分高效,证实过程完备,易于理解。在论文中做者给出的算法实现只须要十几行代码。利用快速傅立叶变换,CSK 方法的跟踪帧率能达到 100~400fps,奠基了相关滤波系列方法在实时性应用中的基石。
相关滤波系列的方法发展很快,好比 CSK 做者引用的 MOSSE 方法,后续他又提出了基于 HOG 特征的 KCF 方法。后续还有考虑多尺度或颜色特征(Color Name 表)的方法以及用深度学习提取的特征结合 KCF 的方法(好比 DeepSRDCF 方法)等。
从它的发展过程来看,考虑的尺度愈来愈多,特征信息也更加丰富,固然计算时间也会相应增长,但整体上说,相关滤波系列的跟踪方法在实时性上优点明显,采用哪一种改进版本的方法视具体的应用而定。
相关滤波的方法也有一些缺陷,好比目标的快速移动,形状变化大致使更多背景被学习进来等都会对 CF 系列方法形成影响。虽而后续的研究也有一些针对性的改进,好比改进边界效应,改善背景更新策略或提升峰值响应图的置信度等,但普适性还须要进一步研究,特别是对不一样的应用针对性地调整。
基于深度学习的跟踪方法 (以后有进一步了解)
最近三年是深度学习技术的高速发展期,深度学习技术也被成功应用在计算机视觉的各个应用领域,跟踪也不例外。在大数据背景下,利用深度学习训练网络模型,获得的卷积特征输出表达能力更强。
在目标跟踪上,初期的应用方式是把网络学习到的特征,直接应用到相关滤波或 Struck 的跟踪框架里面,从而获得更好的跟踪结果,好比前面提到的 DeepSRDCF 方法。
本质上卷积输出获得的特征表达,更优于 HOG 或 CN 特征,这也是深度学习的优点之一,但同时也带来了计算量的增长。
目前不少研究跟踪的框架和方法每每会同时比较两种特征,从而验证跟踪方法或框架的改进提升,
网络不一样层的卷积输出均可以做为跟踪的特征,对于如何有效地利用深度学习的特征,Martin.D 也作了大量的工做,提出了一系列相关的方法,好比 C-COT 和 ECO 等。
深度学习的另外一大优点是端到端的输出,咱们认为这为跟踪开辟了一片光明的前景,这里以 GOTURN 方法为例,介绍来自斯坦福大学的 D.Held 发表 ECCV2016 上的文章,目前 GOTURN 方法已经 集成在 OpenCV 3.2.0 的开发版本中。
GOTURN 方法利用 ALOV300+视频序列集和 ImageNet 检测数据集训练了一个基于图像对输入的卷积网络,输出在搜索区域内相对于上一帧位置的变化,从而获得目标在当前帧上的位置。
为了获得网络训练所需的大数据集,做者不只利用了视频序列集中的随机连续帧对图,并且利用了更多的单张图片集进行数据加强。对于数据的扰动分布,做者也作了大量的实验,使得跟踪的位置变化更加平滑。
从网络结构中能够看出,GOTURN 先从输入的图像对中分别提取前一帧和当前帧的卷积特征,再送入三个全链接层,最后获得预测的位置变化。其中卷积层是经过 ImageNet 预训练获得,而且在跟踪网络训练中固定这部分参数(防止过拟合),学习全链接层的参数。本质上说,GOTURN 也利用了深度学习强大的特征表达能力,可是,它创建了第一个基于深度学习的端到端输出的跟踪框架,并且在 GPU GTX680 上跟踪速度在能达到 100fps。
基于深度学习的跟踪框架目前还在不断发展中,好比牛津大学的 Luca Bertinetto 提出的端到端的跟踪框架(另外一个框架),从 SiameseFC 到今年的 CFNet。虽然相比于相关滤波等传统方法,在性能上还很是慢,可是这种端到端输出能够与其余的任务一块儿训练,特别是和检测分类网络相结合,在实际应用中有着十分普遍的前景。
前面介绍的跟踪方法都是对通用目标的跟踪,没有目标的类别先验。在实际应用中,还有一个重要的跟踪是特定物体的跟踪,好比人脸跟踪、手势跟踪和人体跟踪等。特定物体的跟踪与前面介绍的方法不一样,它更多地依赖对物体训练特定的检测器。
人脸跟踪因为它的明显特征,它的跟踪就主要由检测来实现,好比早期的 Viola-Jones 检测框架和当前利用深度学习的人脸检测或人脸特征点检测模型。
手势跟踪在应用主要集中在跟踪特定的手型,好比跟踪手掌或者拳头。设定特定的手型能够方便地训练手掌或拳头的检测器。
实际上,跟踪和检测是分不开的,好比传统 TLD 框架使用的在线学习检测器,或 KCF 密集采样训练的检测器,以及当前基于深度学习的卷积特征跟踪框架。
一方面,跟踪可以保证速度上的须要,而检测可以有效地修正跟踪的累计偏差。不一样的应用场合对跟踪的要求也不同,好比特定目标跟踪中的人脸跟踪,在跟踪成功率、准确度和鲁棒性方面都有具体的要求。
另外,跟踪的另外一个分支是多目标跟踪(Multiple Object Tracking)。多目标跟踪并非简单的多个单目标跟踪,由于它不只涉及到各个目标的持续跟踪,还涉及到不一样目标之间的身份识别、自遮挡和互遮挡的处理,以及跟踪和检测结果的数据关联等。
从 2015 年开始,MOT 竞赛每一年会举办一次,在基于深度学习的目标检测成功率大幅提升的背景下,MOT 的成功率也处于快速发展的通道中。
目标跟踪领域进展报告,重点关注:基于深度学习的目标跟踪
较早运用深度学习方法进行目标跟踪的是王乃岩在NIPS2013的工做。
当时卷积神经网络在计算机视觉领域尚未彻底开展起来,当时他们使用一种自动编码器,在100万张的32*32的图像上离线训练目标的表示,而后运用到目标跟踪任务上。
在2015年,王乃岩继续将卷积神经网络运用到目标跟踪任务中,采用卷积神经网络输出50*50的heatmap来表示每一个像素是否处于目标以内的几率。
卷积神经网络模型运用的是ImageNet数据集预训练的模型,而后在线进行更新,跟踪时运用两个卷积神经网络,采用不一样的更新策略。
在OTB50数据集上,与传统采用手工设计的方法相比较,该方法性能有了极大的提高。
随着深度学习的火热,从2015年开始,利用深度学习进行目标跟踪的研究工做愈来愈多。
马超在ICCV2015的工做是将卷积神经网络中不一样层的特征图结合起来,在相关滤波框架下进行跟踪。
在浅层的网络中,空间的分辨率较高,可是特征的语义信息比较少;
随着卷积神经网络层数的增长,从深层网络提取的特征语义信息愈来愈丰富,可是空间的分辨率就会越低,不利于对目标的定位。
因此融合不一样层的特征,有利于提升目标跟踪的精度。
这是大连理工大学卢湖川老师在ICCV2015的工做,将全卷积网络用在目标跟踪上,运用卷积神经网络不一样层之间的特性,对网络中不一样层的特征进行融合,提升了目标跟踪的性能,该网络在OTB50上取得了不错的结果。
CVPR2016上提出的MDNet方法在多个数据集上都取得了很是好的结果,该网络具有以下特色:
MDNet经过卷积神经网络学习性能很强的分类器,将目标和背景分开。
其网络结构输出K个全链接层,对应K个用来训练的序列。
训练的时候每次选出一个序列,更新对应的分支全链接层和内部共享的隐含层。
为了提升分类性能,该模型挖掘有难度的负样原本构造训练的minibatch。
在跟踪时,采用边框回归来提升网络的精度,定位时经过在上一帧采样N个候选,而后将分类结果最好的一个候选做为目标位置。
该网络的缺点是速度慢,在NVIDIA Tesla K20 GPU上速度是1帧/秒。
虽然运行时间慢,可是该网络的精度很是高,在OTB50和OTB100上都取得了很是好的结果。
近期美国天普大学凌海滨老师对MDNet模型进行了改进,在网络中采用循环神经网络对目标自身结构进行建模。
该网络在OTB100上取得了不错的跟踪结果。
孪生网络
CVPR2016上提出了一种经过类似性学习的方式进行目标跟踪的孪生网络。
其最大的特色是,该方式训练好的网络直接在跟踪上使用,不须要更新。网络一样采用了不一样层的特征融合和边框回归来提高目标跟踪的性能。
该网络也是取得了不错的结果。
在ECCV2016上也有一篇采用孪生网络的工做,与上一篇不一样之处在于,这篇采用全卷积网络。
其优点在于:只须要一次前向操做,经过cross-correlation layer就能够获得全部卷积区域的得分;对于搜索图像也不要求必须和目标的图像大小一致。
该网络在VOT2015数据集上取得了不错的结果,因为采用了全卷积网络的结构,和其余基于深度学习的方法相比,速度具备很大的优点。
在ECCV2016上还有一个采用深度回归网络进行目标跟踪的工做,与目标检测中基于回归方法的卷积网络有些相似,这个方法直接对目标位置进行回归。
与其余基于深度学习方法的目标跟踪相比,该方法具备以下特色:
因为直接对目标位置进行回归,其速度上会有更大的优点。
改变了其余方法提取第一帧的做为参考模型方式,而在前一帧的目标位置提取参考模型,提取的目标patch里还含有必定的背景context信息
在线跟踪的时候网络模型不用进行更新
在训练的时候不只采用了视频输入,同时还采用了静态图像输入,图像采用的是ImageNet检测挑战的数据集来进行训练,所以特征提取更加细腻。
与其余基于深度学习的方法相比,该模型主要的优点是速度快,在GTX Titan X GPU上运行超过100帧/秒。
最近发表的另一些基于深度学习的目标跟踪工做,例如:采用CNN和LSTM进行结合的方式。