ECCV 2018 MemTrack:《Learning Dynamic Memory Networks for Object Tracking》论文笔记

  理解出错之处望不吝指正。

  本文模型叫做MemTrack。本文的模型是基于相似学习的,主要有两个创新点:①.设计一个动态记忆网络;②.使用门控剩余模板和初始模板,生成最终的匹配模板。模型的整体架构如下:

 

  • 大致流程

  ①.对当前帧I_t,使用上一帧的预测位置进行剪裁,得到搜索区域S_t

  ②.对S_t进行特征提取,这里特征提取模块使用和SiamFC一样的结构;

  ③.使用注意力机制,获得输出a_t,使LSTM的输入更多的注意object,而不是background;

  ④.将a_t和LSTM的上一个隐层状态h_{t-1}一起输入LSTM,得到隐层状态h_{t}和记忆库控制信号c_{t}(包括read key k_t、read strength \beta _t、衰减率d^r和一些偏置项);

  ⑤.使用read key k_t、read strength \beta _t获得read weight w_t^r,再进一步获得剩余模板T_t^{retr}

  ⑥.对剩余模板T_t^{retr}和初始模板T_0进行加权累加,得到最终匹配模板T_t^{final}

  ⑦.使用最终匹配模板T_t^{final}与搜索区域S_t进行相似度计算,得到当前帧的预测结果,将结果进行剪裁得到O_t

  ⑧.对O_t进行特征提取,得到新的匹配模板T_t^{new},根据一些规则,将其写入动态记忆库。

 

  • 注意力机制

  先对S_t进行特征提取,得到f(S_t),使用n\times n的池化核对f(S_t)进行AvgPooling得到f^{*}(S_t),对f^{*}(S_t)分为n\times n个patch,第i个patch用f_{t,i}^*表示,根据下式得到输出a_t

    a_{t}=\sum_{i=1}^{L}\alpha _{t,i}f_{t,i}^*

  其中,\alpha _{t,i}通过下式计算:

    \alpha _{t,i}=\frac{exp(r_t,i)}{\sum_{k=1}^{L}exp(r_t,k)}

    r_{t,i}=W^{a}tanh(W^{h}h_{t-1}+W^{f}f_{t,i}^*+b)

  效果如下图:

 

  • LSTM控制

  如图所示:

   

 

  • Memory Reading

  通过下式得到read key k_t、read strength \beta _t(用于表示read key的置信度):

    k_{t}=W^{k}h_{t}+b_{k}

    \beta _t=1+log(1+exp(W^{\beta}h_t+b^\beta ))

  再计算出read weight w_t^r

    w_t^r(j)=\frac{exp\left \{ C(k_t,k_{M_t(j)})\beta _t \right \}}{\sum _{j^{'}}exp\left \{ C(k_t,k_{M_t(j^{'})})\beta _t \right \}}

  这里的C(x,y)是用于计算余弦相似度的函数。最终得到剩余模板:

    T_t^{retr}=\sum_{j=1}^{N}w_{t}^{r}(j)M_t(j)

 

  • 获得最终模板

  最终模板可以通过下式得到:

    T_t^{final}=T_0+r_t\odot T_t^{retr}

  其中r_t=\sigma(W^rh_t+b^r),是通过LSTM得到的。

 

  • Memory Writing

  得到新的匹配模板T_t^{new}后,根据以下三条准则,将其写入到动态记忆库中:

    ①.如果T_t^{new}的置信度低(包含大量背景信息),则不进行write;

    ②.如果T_t^{new}和以前帧相比变化不大,则用其替代以前帧;

    ③.如果T_t^{new}和以前帧相比变化较大,则用其覆盖动态记忆库中一个新位置。

  文中定义了一个write weight:

    w_t^w=g^w0+g^rw_t^r+g^aw_t^a

  这里的0代表零向量,w_t^r是read weight,w_t^a是allocation weight(负责指定write的位置)。g^w是“写门”,g^r是“读门”,g^a是“分配门”,是通过LSTM计算得到的:

    [g^w,g^r,g^a]=softmax(W^gh_t+b^g)

  上式满足g^w+g^r+g^a=1

  allocation weight通过下式计算:

    w_t^a(i)=\begin{Bmatrix} 1,if(i=argmin_iw_{t-1}^u(i))\\ 0,if(i\neq argmin_iw_{t-1}^u(i)) \end{Bmatrix}

  其中w_t^u=\lambda w_{t-1}^u+w_t^r+w_t^w,用于表示动态记忆库中不同位置的访问频次,\lambda是衰减因子。

  将write weight和擦除因子(erase factor)结合,进行动态记忆库的写入:

    M_{t+1}(i)=M_{t}(i)(1-w_t^w(i)e^w)+w^w_t(i)e^wT_t^{new}

   其中e^w=d^rg^r+g^ad^r是LSTM得到的衰减率,d^r=\sigma(W^dh_t+b^d)

 

  • 实验

  OTB-2015

  OTB-2013

  VOT-2016

  速度

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值