RATM: RECURRENT ATTENTIVE TRACKING MODEL
ICLR 2016
本文主要内容是 结合 RNN 和 attention model 用来做目标跟踪。
其中模型的组成主要是:
1. an attention model 主要用来从输入图像中提取 patch;
2. RNN 用来预测 attention 参数,即:下一帧应该 look 的问题。
Paper: http://xueshu.baidu.com/s?wd=RATM%3A+RECURRENT+ATTENTIVE+TRACKING+MODEL&rsv_bp=0&tn=SE_baiduxueshu_c1gjeupa&rsv_spt=3&ie=utf-8&f=8&rsv_sug2=1&sc_f_para=sc_tasktype%3D%7BfirstSimpleSearch%7D&rsv_n=2
Code: https://github.com/wangxiao5791509/RATM
本文所使用的框架流程图如下所示:
1. Attention
本文提到, attention model 非常适合跟踪问题,因为他可以通过目标的历史轨迹来缩小 region-of-interst 的区域。
原本的 attention model 从输入图像中产生 glimpse(一瞥),是通过一个叫做 a grid of 2D Gaussian filters,顺序的执行一系列的 row filter 和 column filter。该 grid 拥有 4个参数,即:
the grid center $g_X, g_Y$,the isotropic standard deviation, and the stride between grid points.
对于在 attention patch中的行 i,列 j,平均距离 $\mu_X^i, \mu_Y^j$ 通过下式进行计算:
动态产生的参数 作为一个向量 h 的线性转换:
然后对参数进行归一化:
其中 A 和 B 分别是输入图像的宽和高。
滤波器通过下面的公式计算得到提取的 patch,即:
在上式中, a 和 b 代表输入图像的列和行的索引。通过这两个公式就可以得到一个 N*N 的 patch p:
2. RNN
一个最简单的 RNN 包括一个输入,一个 hidden,一个 输出层。在时间步骤 t,该网络,基于输入帧 $x_t$ 和 之前的 hidden state $h_{t-1}$,计算新的 hidden state:
本文对 RNN 并未做过多介绍,因为创新点也不在于此,只是说是基于 Theano 框架做的实验。
3. Recurrent Attentive Tracking Model:
跟踪问题主要是将一系列的输入视频帧 $X = (x_1, x_2, ... , x_T)$ 映射成 一系列的位置 $Y = (y_1, y_2, ... , y_T)$。那么在一个时刻 t 的位置预测 $y_t$,那么其轨迹通常具有非常高的相关内容信息,并且非常适合用 一个隐层状态模型(a hidden state model)来对这个轨迹进行表示。所提出的 RNN 就是结合了 attention model 和 RNN 的优势,并且区别于普通的神经网络。
每一个时间步骤,RNN的 hidden state vector $h_t$ 通过公式2,3 映射成 window parameters。然后在下一个时刻,由 attention model 输出的image patch 作为 RNN 的输入。并非直接将 原始图像输入给 RNN,而是用预先训练的 CNN model 提出其feature 传给 RNN。具体结构见下图:
实验: