基于Deep Learning的跟踪算法总结(一)

来源:互联网 发布:逆波兰表达式 c语言 编辑:程序博客网 时间:2024/05/16 06:08

博主最近主要关注使用深度学习的视频跟踪一系列算法,本文为学习笔记,仅供学习交流,如有侵权,请指出。

原文:https://zhuanlan.zhihu.com/p/22334661

No Free Lunch

不同于检测、识别等视觉领域深度学习一统天下的趋势,深度学习在目标跟踪领域的应用并非一帆风顺。其主要问题在于训练数据的缺失。深度模型的魔力之一来自于对大量标注训练数据的有效学习,而目标跟踪仅仅提供第一帧的bounding-box作为训练数据。

接下来,介绍几种思路来解决上述数据缺少的问题。

一、利用辅助图片数据预训练深度模型,在线跟踪时微调

在目标跟踪的训练数据非常有限的情况下,使用辅助的非跟踪训练数据进行预训练,获取对物体特征的通用表示(general representation ),在实际跟踪时,通过利用当前跟踪目标的有限样本信息对预训练模型微调(fine-tune), 使模型对当前跟踪目标有更强的分类性能,这种迁移学习的思路极大的减少了对跟踪目标训练样本的需求,也提高了跟踪算法的性能。

DLT(NIPS2013)
Learning a Deep Compact Image Representation for Visual Tracking
这里写图片描述

DLT是第一个把深度模型运用在单目标跟踪任务上的跟踪算法。它的主体思路如上图所示:

(1) 先使用栈式降噪自编码器(stacked denoising autoencoder,SDAE)在Tiny Images dataset这样的大规模自然图像数据集上进行无监督的离线预训练来获得通用的物体表征能力。预训练的网络结构如上图(b)所示,一共堆叠了4个降噪自编码器, 降噪自编码器对输入加入噪声,通过重构出无噪声的原图来获得更鲁棒的特征表达能力。SDAE1024-2560-1024-512-256这样的瓶颈式结构设计也使获得的特征更加compact。

(2) 之后的在线跟踪部分结构如上图(c)所示,取离线SDAE的encoding部分叠加sigmoid分类层组成了分类网络。此时的网络并没有获取对当前被跟踪物体的特定表达能力。此时利用第一帧获取正负样本,对分类网络进行fine-tune获得对当前跟踪目标和背景更有针对性的分类网络。在跟踪过程中,对当前帧采用粒子滤波(particle filter)的方式提取一批候选的patch(相当于detection中的proposal),这些patch输入分类网络中,置信度最高的成为最终的预测目标。

(3) 在目标跟踪非常重要的模型更新策略上,该论文采取限定阈值的方式,即当所有粒子中最高的confidence低于阈值时,认为目标已经发生了比较大的表观变化,当前的分类网络已经无法适应,需要进行更新。

小结:DLT作为第一个将深度网络运用于单目标跟踪的跟踪算法,首先提出了“离线预训练+在线微调”的思路,很大程度的解决了跟踪中训练样本不足的问题,在CVPR2013提出的OTB50数据集上的29个跟踪器中排名第5。

但是DLT本身也存在一些不足

(1) 离线预训练采用的数据集Tiny Images dataset只包含32*32大小的图片,分辨率明显低于主要的跟踪序列,因此SDAE很难学到足够强的特征表示。

(2) 离线阶段的训练目标为图片重构,这与在线跟踪需要区分目标和背景的目标相差甚大。

(3) SDAE全连接的网络结构使其对目标的特征刻画能力不够优秀,虽然使用了4层的深度模型,但效果仍低于一些使用人工特征的传统跟踪方法如Struck等。

SO-DLT(arXiv2015)
Transferring Rich Feature Hierarchies for Robust Visual Tracking

SO-DLT延续了DLT利用非跟踪数据预训练加在线微调的策略,来解决跟踪过程中训练数据不足的问题,同时也对DLT存在的问题做了很大的改进。

这里写图片描述

(1) 使用CNN作为获取特征和分类的网络模型。如上图所示,SO-DLT使用了的类似AlexNet的网络结构,但是有几大特点:一、针对跟踪候选区域的大小将输入缩小为100*100,而不是一般分类或检测任务中的224*224。 二、网络的输出为50*50大小,值在0-1之间的概率图(probability map),每个输出像素对应原图2*2的区域,输出值越高则该点在目标bounding-box中的概率也越高。这样的做法利用了图片本身的结构化信息,方便直接从概率图确定最终的bounding-box,避免向网络输入数以百计的proposal,这也是SO-DLT structured output得名的由来。三、在卷积层和全连接层中间采用SPP-NET中的空间金字塔采样(spatial pyramid pooling)来提高最终的定位准确度。

(2) 在离线训练中使用ImageNet 2014的detection数据集使CNN获得区分object和非object(背景)的能力。

这里写图片描述

SO-DLT在线跟踪的pipeline如上图所示:

(1) 处理第t帧时,首先以第t-1帧的的预测位置为中心,从小到大以不同尺度crop区域放入CNN当中,当CNN输出的probability map的总和高于一定阈值时,停止crop, 以当前尺度作为最佳的搜索区域大小。

(2) 选定第t帧的最佳搜索区域后,在该区域输出的probability map上采取一系列策略确定最终的bounding-box中心位置和大小。

(3) 在模型更新方面,为了解决使用不准确结果fine-tune导致的drift问题,使用了long-term 和short-term两个CNN,即CNNs和CNNl。CNNs更新频繁,使其对目标的表观变化及时响应。CNNl更新较少,使其对错误结果更加鲁棒。二者结合,取最confident的结果作为输出。从而在adaptation和drift之间达到一个均衡。

小结:SO-DLT作为large-scale CNN网络在目标跟踪领域的一次成功应用,取得了非常优异的表现:在CVPR2013提出的OTB50数据集上OPE准确度绘图(precision plot)达到了0.819, OPE成功率绘图(success plot)达到了0.602。远超当时其它的state of the art。

SO-DLT有几点值得借鉴:

(1) 针对tracking问题设计了有针对性的网络结构。

(2) 应用CNNS和CNNL用ensemble的思路解决update 的敏感性,特定参数取多值做平滑,解决参数取值的敏感性。这些措施目前已成为跟踪算法提高评分的杀手锏。

但是SO-DLT离线预训练依然使用的是大量无关联图片,作者认为使用更贴合跟踪实质的时序关联数据是一个更好的选择。

0 0