【小白笔记】目标跟踪Meta-Tracker_ Fast and Robust Online Adaptation for Visual Object Trackers

Aug 31, 2018 - Views:

Posted by tominute

1.主要贡献

先给出论文地址:👉论文地址

这篇文章是ECCV18的文章,不是一个单独的跟踪算法而是一种用于增强基于DNN跟踪算法性能的方法。下面就来说一下这篇文章吧,有不对的地方欢迎一起讨论~


贡献:该文使用了去年很火的元学习的方法(meta-learn/learn to learn)用在提升基于DNN跟踪算法的性能,目的是学到网络的初始参数,训练利用了其他跟踪和检测的数据库和未来帧的信息,从而能够对未来帧中目标的变化更加鲁棒,也防止对当前帧过拟合。作者在MDNet和CREST上加入该方法进行实验,在速度(限制了迭代次数)和精度上都得到了提升。

2.元学习

所谓元学习就是学会学习,具体在本文就是学习初始网络模型,元学习的一种就是不用移除现有的优化算法而是学习到最适合当前算法的初始模型。

2.1用于跟踪的元学习

先来看一下本文提出的元学习初始化跟踪模型的流程。 1 2 分为两步,第一步使用随机初始化的$\theta_0$和训练样本第一帧的图像进入网络得到一个输出F,根据groundtruth得到loss,再引入一个$\alpha$作为梯度下降的动量参数,反复迭代T次后得到$\theta_0^T$作为$\theta_1$进入第二步,第二步就是看当前得到的参数是否对后面帧(每次迭代随机取一帧)的目标鲁棒,这里的loss对$\theta_1$和$\alpha$的导数作为训练的梯度的一部分,对N个训练样本得到的梯度求和,用ADAM算法进行优化得到最优的初始参数$\theta_0$和$\alpha$。

Motivation: 一般的跟踪过程中,初始模型都是由第一帧目标及周围的区域决定的,然后利用正则项使训练结构更加鲁棒,在后续的跟踪中,使用之前训练和检测的结果来更新模型。但是后续帧的场景是更加真实的,所以元学习的过程中用到了后续帧的真实场景能够使跟踪器对目标的变化更加鲁棒。

元学习算法细节: 论文中间作者简单讲了在线更新的一般方法。 这里给出了梯度下降的更新方程,用于对$\theta$更新,$\alpha$是动量,作者认为这里是向量比较好,就是和$\theta$的规模一样大,他的元学习方法很简单就是重复的进行上面的两步不断的优化$\theta_0$和$\alpha$。后面几段文章不断重复讲这个过程我感觉有点啰嗦,文字 图 算法都上了。。。而核心的梯度下降算法都有现成的工具可以计算。所以呢感觉这篇文章就是借了元学习的东风,能深挖的东西还是有的。 而后续跟踪中的更新,作者说了一堆然后说找一个学习率更新就行了不用$\alpha$了。。。

2. 具体应用

3 MDNet: 作者使用元学习的过程来取代了多域训练和正则的方法,直接去找到一个鲁棒的初始模型,即CNN二分类器。 这里作者使用了打乱标签的技巧,因为元学习过程包含了大量的目标变化,而相对于静态数据库,目标类别则少了很多,这可能会导致分类器把最近看到的目标分成背景(这里我也不是很清楚)。打乱标签可以使分类器不去关注目标特定的外观,而去关注如何把当前目标从背景分离开。 CREST: 这个一个把相关滤波做成网络一层的CNN跟踪方法,本质上就是相关滤波,作者为了把元学习用进去,舍弃了原算法的PCA,使用了1*1的卷积层进行降维,这一层也作为$\theta$的一部分可以学习,然后为了统一尺度,使用了标准化尺度的方法,具体就是对原目标warp一下做前向,反传的时候再warp回去。 训练数据: 作者除了使用MDNet的那一套训练手段(做OTB用VOT训,做VOT用OTB训),还用了目标检测的一些数据。

3. 实验

作者使用了python进行编程,其中MDNet提供的py版本性能比matlab版要低(问号脸?),所以作者选择了这个与meta的SDNetpy版本进行比较。由于使用了类似MDNet的训练方法,metaCREST比CREST在VOT16上EAO高3个点多,而metaSDNet仅仅比pyMDNet提高了1个点,改进并不理想,速度则是3.5fps(由于用了比较少的训练样本),且由于初始模型训练好了所以后续跟踪时迭代次数会少,收敛更快。总体感觉这篇论文主要就是应用了元学习的思想但是处理手法还是不够精彩。