开始本文之前,我们首先看上方给出的3张图片,它们分别是同一个视频的第1,40,80帧。在第1帧给出一个跑步者的边框(bounding-box)之后,后续的第40帧,80帧,bounding-box依然准确圈出了同一个跑步者。以上展示的其实就是目标跟踪(visual object tracking)的过程。目标跟踪(特指单目标跟踪)是指:给出目标在跟踪视频第一帧中的初始状态(如位置,尺寸),自动估计目标物体在后续帧中的状态。
人眼可以比较轻松的在一段时间内跟住某个特定目标。但是对机器而言,这一任务并不简单,尤其是跟踪过程中会出现目标发生剧烈形变、被其他目标遮挡或出现相似物体干扰等等各种复杂的情况。过去几十年以来,目标跟踪的研究取得了长足的发展,尤其是各种机器学习算法被引入以来,目标跟踪算法呈现百花齐放的态势。2013年以来,深度学习方法开始在目标跟踪领域展露头脚,并逐渐在性能上超越传统方法,取得巨大的突破。本文首先简要介绍主流的传统目标跟踪方法,之后对基于深度学习的目标跟踪算法进行介绍,最后对深度学习在目标跟踪领域的应用进行总结和展望。
经典目标跟踪方法
目前跟踪算法可以被分为产生式(generative model)和判别式(discriminative model)两大类别。
产生式方法运用生成模型描述目标的表观特征,之后通过搜索候选目标来最小化重构误差。比较有代表性的算法有稀疏编码(sparse coding),在线密度估计(online density estimation)和主成分分析(PCA)等。产生式方法着眼于对目标本身的刻画,忽略背景信息,在目标自身变化剧烈或者被遮挡时容易产生漂移。
与之相对的,判别式方法通过训练分类器来区分目标和背景。这种方法也常被称为tracking-by-detection。近年来,各种机器学习算法被应用在判别式方法上,其中比较有代表性的有多示例学习方法(multiple instance learning), boosting和结构SVM(structured SVM)等。判别式方法因为显著区分背景和前景的信息,表现更为鲁棒,逐渐在目标跟踪领域占据主流地位。值得一提的是,目前大部分深度学习目标跟踪方法也归属于判别式框架。
近年来,基于相关滤波(correlation filter)的跟踪方法因为速度快,效果好吸引了众多研究者的目光。相关滤波器通过将输入特征回归为目标高斯分布来训练 filters。并在后续跟踪中寻找预测分布中的响应峰值来定位目标的位置。相关滤波器在运算中巧妙应用快速傅立叶变换获得了大幅度速度提升。目前基于相关滤波的拓展方法也有很多,包括核化相关滤波器(kernelized correlation filter, KCF), 加尺度估计的相关滤波器(DSST)等。
基于深度学习的目标跟踪方法
不同于检测、识别等视觉领域深度学习一统天下的趋势,深度学习在目标跟踪领域的应用并非一帆风顺。其主要问题在于训练数据的缺失:深度模型的魔力之一来自于对大量标注训练数据的有效学习,而目标跟踪仅仅提供第一帧的bounding-box作为训练数据。这种情况下,在跟踪开始针对当前目标从头训练一个深度模型困难重重。目前基于深度学习的目标跟踪算法采用了几种思路来解决这个问题,下面将依据思路的不同展开介绍,并在最后介绍目前跟踪领域出现的运用递归神经网络(recurrent neural network)解决目标跟踪问题的新思路。
利用辅助图片数据预训练深度模型,在线跟踪时微调
在目标跟踪的训练数据非常有限的情况下,使用辅助的非跟踪训练数据进行预训练,获取对物体特征的通用表示(general representation ),在实际跟踪时,通过利用当前跟踪目标的有限样本信息对预训练模型微调(fine-tune), 使模型对当前跟踪目标有更强的分类性能,这种迁移学习的思路极大的减少了对跟踪目标训练样本的需求,也提高了跟踪算法的性能。
这个方面代表性的作品有DLT和SO-DLT,都出自香港科技大学王乃岩博士。
DLT(NIPS2013)
Learning a Deep Compact Image Representation for Visual Tracking
DLT是第一个把深度模型运用在单目标跟踪任务上的跟踪算法。它的主体思路如上图所示: