【EDCF(IJCAI2018)】论文阅读笔记
Do not Lose the Details: Reinforced Representation Learning for High Performance Visual Tracking
写在前面
这是王强2018年IJCAI的一个工作,其实从王强的18到19年发表的论文来看,他一直在关注细粒度这一块的表示,可能因为他之前做的人体姿态估计中比较多的都是处理像素级别的东西。然后他通过可视化来发现SiamFC中的相应容易受distractor影响的缺点,他表示SiamFC在学习的过程中会偏向于前景背景分割,而且跟踪任务过程中就希望特征对一切表观变化都鲁棒,这样就要求了高语义的信息,这样就会让网络忽略了很多细节的表达。所以这篇文章,他就用反卷积的方式,提出了编解码网络,并且用高低层特征级联的方式来保持目标的空间特征。
Motivation
- 基于CNN的特征具有分辨率小并且失去了很多原图的细节和一些空间位置信息;
- 这些CNN特征对细节不敏感而且容易被相似的物体所影响;
- 当跟踪的target在训练集中没见过并且发生较大形变的时候,模型预测有可能会偏移。
Contribution
- 提出了一个编解码网络来做跟踪,而且解码网络给整个tracking过程加了一个重建限制,这个限制使得网络的泛化性和判别力更好;
- 一个正则化的相关滤波层使得这个网络可以很高效得在线更新;
- 提出了一个多任务学习策略,这个策略可以使得相关分析和图像重建两个部分不断相互加强。
Algorithm
文章提出了一个EDCF的方法,这篇论文在网络的浅层使用CACF得到fine-gain的表示,高层得到的是强语义的特征,然后通过双线性插值的方式将高层的响应插值到浅层的,最后得到结果。网络结构如下:
1 Generic Semantic Embedding Learning for Robust Tracking(高层语义特征的学习)
这一节就介绍了如何将反卷积损失和高层语义的结合,用损失函数看着比较直观:
其中 表示了重建损失,可以从上图2中看出,这个损失包括了模板分支和search分支,其中 和 分别代表了模板和search分支,也就是根据conv5这层的特征反卷积出来的东西与原图做一个损失,使得网络学习过程中尽可能保持原图的信息。这里的 和 分别代表网络encoder和decoder的参数。 就是交叉熵损失了:
2 CACF
这一节就介绍了如何做CACF,虽然通过反卷积的方式使网络精度得到了提升,但是网络中间还是需要一些细节的限制,所以他们在第二层做了一个相关操作,这种浅层特征可以抑制distractor的影响。这里他们将CACF原始论文中使用的手工特征换成了浅层的网络特征,并且把这个层集成到网络中去,并且可导,然后提出了一个浅层的损失:
这块我没看过CACF,目测操作跟里面一样,可以去了解一下。然后这个 w 使用模板分支学出来的,所以其实可以理解为学习到了一种变换?这个感觉比较巧妙,感觉要去看一下原文,这里我就不讲了。
3 Multi-task learning
把以上的损失结合起来,再加上一个正则化项就得到最后的损失:
在跟踪的时候就选择响应最大位置为定位到的target:
因为这两个尺度不一样,所以通过双线性插值的方式将f resize到g 的尺度然后再找。模型更新部分,他们不是通过更新模板分支来更新的,而是更新CACF那边的 w ,更新策略如下:
这里学习率 是自适应的,他们表示因为模板是不变的,所以每个检索到的目标在模板下的响应都应该相似,若是不像,则可以解释为目标发生了表观的变化。
Experiment
精度提升还是很可观的:
总结
用反卷积来限制网络保留的特征是鲁棒的,并且也做了浅层高层的特征融合,融合的方式也比较巧妙,模型更新的方式也比较巧妙,一定程度上解决了SiamFC网络无法更新的问题。感觉这种也给了王强SiamMask的工作提供了铺垫吧。没啥缺点可挑的,代码还没开源,其实这种网络训练的时候应该比较费时,不过跟踪的时候快就好了。