ECCV2018一篇用LSTM做tracking的文章,文章链接:MemTrack
Motivation:
作者主要是想解决基于模板匹配类算法对目标形变的适应性问题。 典型的模板匹配算法比如Siamese通常采用第一帧或者上一帧目标特征作为模板。采用第一帧为模板难以适应目标的形状变化,而直接用前一帧的目标特征作为模板又很容易因为累积性的误差导致跟踪漂移。所以作者提出用一个动态记忆网络来适应目标的形态变化,同时采用LSTM网络来控制目标特征的读取。
Contribution
- 提出了一个动态记忆网络(dynamic memory network)来适应外观的变化
- 提出了一个门控残差模板学习策略(gated residual template learning)来控制最终模板的生成,能够在初始特征之上添加适当的特征变化量。
Method
先来看看MemTrack的网络结构
两个主要的模块记忆模块和LSTM模块我分别用蓝色和绿色框表示了出来。记忆模块用来存储目标的外形特征,LSTM模块用来输出一系列的控制信号。整个的流程大概是:
候选区 S t S_t St输入 → \rightarrow → 特征提取 → \rightarrow → LSTM读控制信号 → \rightarrow → 读取记忆模块特征 → \rightarrow → 与原始特征模板融合生成最终模板 → \rightarrow → 模板匹配目标 → \rightarrow → 边界框回归 → \rightarrow → 提取目标特征 → \rightarrow → LSTM写控制信号 → \rightarrow → 存入新的目标特征 → \rightarrow → 提取下一帧候选区
LSTM控制模块
这幅图详细的描述了LSTM和记忆模块的交互结构,当前帧的特征向量 a t a_t at 和上一帧的隐藏状态 h t − 1 h_{t-1} ht−1 输入到LSTM,输出当前帧的隐藏状态 h t h_t ht ,然后用 h t h_t