CVPR 2017 SANet:《SANet: Structure-Aware Network for Visual Tracking》论文笔记
理解出错之处望不吝指正。
本文模型叫做SANet。作者在论文中提到,CNN模型主要适用于类间判别,对于相似物体的判别能力不强。作者提出使用RNN对目标物体的self-structure进行建模,用于提升模型的鉴别相似物体的能力。模型的整体结构如下:
从图中我们可以看出,作者的主要创新点分为以下几部分:
(1)使用RNN提升模型鉴别相似物体的能力;
(2)在不同深度下使用RNN基于不同级别的特征对目标物体进行建模;
(3)使用跳跃式连接,融合CNN和RNN的特征,提升tracking性能。
-
RNN for Object Self-Structure Modeling
在RNN中,对于给定的输入序列,隐层和输出层在第
个时间步的输出为:
作者说道,对二维图像进行编码为无向有环图:
这种无向有环图不能直接应用在RNN中,于是作者使用四种不同的有向无环图对其进行近似:
以其中某张有向无环图为例,我们使用来表示,
代表点集,
代表边集。我们可以得出:
其中,代表
的前驱节点集合。
我们使用表示
的直接后继节点集合,对于每一个
,可以得出:
这里.
根据这两个公式,我们可以计算出在节点的导数:
其中,,
.
对于上面的四张有向无环图,我们可以得出:
-
论文中的其他部分
(1)网络结构。如本博客中第一张图片,**函数使用RELU;
(2)训练过程。使用和MDNet中一样的策略,最后一层有K个branch,对于不同的domain的数据,使用不同的branch训练。在测试时,将所有的K个branch去掉,重新随机初始化一个branch微调;
(3)Tracking。基于粒子滤波,对于当前帧,在上一帧检测出的目标周围随机采样N个target candidates,得分最高的作为tracking result;
(4)Update。使用和MDNet中一样的策略,使用长期样本库和短期样本库。对于tracking result的分数小于设定阈值的,使用短期样本库(短期正样本+短期负样本)进行更新,否则使用长期样本库(长期正样本+短期负样本)进行更新。
(5)困难负样本挖掘。使用和MDNet中一样的策略,在训练阶段的每一次迭代中,一个mini batch包含n个正样本和p负样本。用模型测试M(M >> p)个负样本,取top p个作为困难负样本。
(6)边界框微调。使用和MDNet中一样的策略,在第一帧训练一个简单的线性回归模型用于预测bbox,在后续帧中使用该模型去微调得到的bbox。