ODTrack: Online Dense Temporal Token Learning for Visual Tracking论文及代码结构解读

论文地址
代码地址

写在最前面

作者采用了One-Stream的框架,pipeline用的是OSTrack的,两者基本相同。
区别在于:

  • 使用了3张Template构建Template_list与一张Search构建融合特征
  • 使用了2张Search,每张分别进行一次上述过程
  • 在Test和Eval中,保存历史预测Box,并根据这个Box裁剪出相应的历史Template,便于后续帧序列的Template采样3张

存在的问题

  • search和template图像对之间的采样是稀疏的,不足以充分表达目标的动态变化
  • 在test和eval中,search和template之间的匹配是离线的(就是template或者search没有更新),这阻碍了其中互信息的表达

解决方案

在这里插入图片描述

  • 使用token sequence propagation paradigm(这里的说法让人困惑,操作是在ViT的第3、6、9层block中,把注意力的嵌入向量进行最大值筛选, 把这个筛选的标准当成了token)
  • 引入两种token propagation attention mechanisms(token传播的注意力机制)
  • 在test或eval中把预测过的bbox存起来,并根据这个裁剪出用于更新的template,存在内存中,便于后面构成template_list,用于更新,如下图
    在这里插入图片描述

具体方法

sample和template mask生成方法

在这里插入图片描述

采样

如图所示,采样2张search和3张template,search是列表输入到网络中,每张search会轮流对应采样的三张template进行预测。
这里是跟OSTrack不同的地方

mask生成

有三种方式,如图所示,作者在代码中设置了三种,实际上只用了第一种
这里是跟OSTrack不同的地方

ce_keep_rate

ce_keep_rate在代码中有两个名字,另一个是keep_ratio_search,作用是在token的注意力中,将生成的embedding抽取topk,然后生成一个 [ B a t c h , H × W × k e e p _ r a t i o _ s e a r c h , C ] [Batch, H\times W \times keep\_ratio\_search, C] [Batch,H×W×keep_ratio_search,C]的embedding
从这里可以看出, ce_keep_rate的作用就是把search的嵌入向量截断,只选取最大的一部分

什么是CE?

代码中使用了很多CE的前缀,比如,vit_ce、ce_block等,这就是单纯的使用了candidate_elimination模块,所以会加一个ce前缀
在这里插入图片描述

pipeline

作者使用了ViT的backbone和CornerHead的预测头,简单地说就是ViT+CornerHead,不一样的地方就是在ViT的第3、6、9层Block中,把Multi-Head-Attention的输出进行了candidate-elimination操作,这里面就是作者提到的token propagation和token的Attention。上图说的就是这个,但是非常不直观,可以看下图

在这里插入图片描述下面是详细pipeline,很细的哦
在这里插入图片描述
由于CSDN对图片的限制,只能发普通清晰度的,无损SVG点击这里下载

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值