ARTrack论文阅读分享(单目标跟踪)

PS:好久没写csdn了,比较懒,临近过年了提前祝各位读者新年快乐。 (新年玩嗨了,都忘续写了,惭愧惭愧),新年已过,祝各位龙年吉祥。
偶然碰到了这篇论文,觉得是一种很新颖的架构,所以拿过来分享下。
(上一个觉得很新颖的架构是SeqTrack,但又觉得只是把输入和输出变一变又太普通了,所以没有写相关论文精读笔记,如有需要可以留言)
今天分享的论文是ARTrack:Autoregressive Visual Tracking (自回归视觉跟踪),字越少,论文越“狠”。

论文网址:https://openaccess.thecvf.com/content/CVPR2023/papers/Wei_Autoregressive_Visual_Tracking_CVPR_2023_paper.pdf

GitHub网址:https://github.com/MIV-XJTU/ARTrack

单目标跟踪的相关背景就不详细展开。

文章最主要的创新点

将跟踪视为坐标序列解释任务,通过学习一个简单的端到端模型对轨迹序列变化进行建模,以保持对目标的跨帧跟踪

以往传统的SOT的想法:通常将跟踪视为每帧模板匹配问题,进而忽略了视频帧之间的时序依赖性。

前言/概述

ARTrack将跟踪视为一项坐标序列解释任务,逐步估计物体轨迹,其中当前估计是由先前的状态引起的,进而影响子序列。
这种时间自回归方法对轨迹的顺序演化进行建模,以保持跨帧跟踪对象,使其优于现有的仅考虑每帧定位精度的基于模板匹配的跟踪器。ARTrack简单直接,省去了后处理。

在这里插入图片描述
图片分析:

  1. template和search(t时刻) 与之前的操作步骤是一样的,变为patch embedding送入编码器,提取特征,特征交互。

  2. search图片中多个虚影表示先前的状态,t时刻表示当前状态。先前的状态经过一些处理作为command token 进入到自回归的解码器,影响当前状态(t随时间增加以此往复)。

  3. 输出方面,和seqTrack一致, 直接回归目标框的两个点(左上右下)。

传统跟踪中的问题(未考虑帧关系)

  1. 传统的跟踪方法做的是每帧的模板匹配,从而忽略了帧之间的连续性。
  2. 某些算法中涉及的模板更新和后处理技术过于复杂,可能需要单独的训练(e.g. mixformer中的模板更新)和推理,这会损害简单的端到端框架。
  3. 和1问题差不多,目标跟踪强调在整个序列中保持定位精度,而传统的跟踪方法旨在每帧中优先考虑即时定位精度,导致训练和推理之间的客观不匹配。(作者认为我们更应该看重整个跟踪的流程、序列。而不是过于关注每帧的定位。全局最优≠每时刻最优)

本文的改进

把视觉跟踪作为一个连续的坐标解释任务,以条件概率的形式表述:
在这里插入图片描述
在t时,通过前N个时刻, command token , Z ,X_t 来预测t时刻结果的概率。
作者简称这个公式为AR(N)
C:图片里的command token
Z: template 模板Z也可以在每个时间步长使用更新机制[13,56]进行更新,或者简单地作为初始机制[40,64]
X_t : t时刻的search
Y_t t时刻预测的结果

特别 的 AR(0) = 在这里插入图片描述
此时不以先前的状态为条件

最重要的三大组成

Sequence Construction from Object Trajectory

Tokenization(标志化)

t时刻的预测包含4个值 在这里插入图片描述。 tokenization的思想是,将这些值缩放到 [1,n_bins]范围内的整数(这里有点参照量化的思想,通过压缩的方法,减少计算量, 比如图片大小 256*256,要把结果压缩到[1,16] 就是把所有的像素位置压缩了16倍, 可想此时的的精确度会挺低的,因为原来(256)预测(0–15) 都对应[1,16]中的1。)。

Trajectory coordinate mapping(轨迹坐标映射)

主要讲了坐标映射的关系----------大多数跟踪器裁剪搜索区域以降低计算成本,导致了坐标的映射关系变得略微复杂,最终预测的位置是相对于裁剪的搜索区域的坐标,而非原图坐标。在本文的方法中,作者将前面的框坐标缓存在全局坐标系中𝑁 帧,并在裁剪搜索区域之后将它们映射到当前坐标系。特别的,如果我们使用全帧进行搜索,则不再需要此坐标映射步骤。
可以简单理解为:裁剪中检测到物体的相对坐标+ 裁剪位置的绝对坐标(绝对坐标作者在此进行了缓存)

个人感觉:这一步骤的意义不是很大,只是减少了一个操作步骤,对于预测的4个值尽量简化了后处理的复杂性

Representation range of vocabulary(词汇的表示范围)

表示范围可以对应于Tokenization中 [1, n_bins] 基于搜索区域的大小来设置词汇表的表示范围,但是由于对象的快速移动,先前的轨迹序列有时可能延伸到搜索区域的边界之外。为此,我们将表示范围扩展为搜索区域范围的倍数
(例如,如果搜索区域范围为[0.0,1.0],我们将其扩展为[-0.5,1.5])
图例:
在这里插入图片描述
分析图片:

  1. 裁剪搜索区域降低计算成本,发现这里裁剪的应该是白色的范围 对应词汇表应该是 0—400,即这里 n_bins是400。
  2. 根据representation range of vocabulary中所述,这里进行了搜索区域拓展, 拉伸到了-200 ,600(即绿色区域),而不在这些范围内的物体会被掩码(预测结果4个值中墨绿色背景的颜色)即丢弃(看t-3 t+2时刻,对于边界外的x坐标,则取对应的最大值和最小值)。

Network Architecture

下面来详细讲下里面的网络架构,可以发现包含Encoder 和Decoder
在这里插入图片描述

Encoder(编码器)

同OStrack中的VIT编码器进行视觉特征编码。模板和搜索图像首先被分割成补丁,进行平坦化和投影,以生成一系列标记嵌入。然后,我们添加带有位置和身份嵌入的模板和搜索标记,将它们连接并输入到普通的ViT主干中,以对视觉特征进行编码。

Decoder(解码器)笔者对于解耦的地方还是有点疑惑

编码器底部输入为历史坐标 token(时空提示) 和一个 cmd 命令token,侧边输入(红色Z和黄色X_t)图像编码特征进行交叉注意力操作。
对之前的公式再次进行详细讲解
在这里插入图片描述:之前的坐标标记,用作时空提示,将前N帧的轨迹传播到后续帧中
C:命令标记,提供轨迹建议
Z:模板特征
X_t:搜索区域特征
命令标记C提供了一个轨迹建议,然后将模板特征 Z与搜索区域特征X_t相匹配,以获得更准确的坐标预测Y_t

解码器优点:
这种简单的解码方法消除了现代视觉跟踪器架构中的复杂性和定制,例如定位头和后处理,因为坐标可以立即从共享词汇中去除。
具体的:自注意(具有因果掩码)以传达时空信息。交叉注意力将运动线索与视觉线索相结合,从而做出最终预测。在每个解码器层中交替地执行这两个操作以混合这两种嵌入。

优化点:解耦编解码器
作者为了提高效率,进行如下步骤:将自我关注层和交叉关注层变为解耦(相互独立的),并分别堆叠。这样,可以并行地对视觉特征进行交叉关注,这是解码器中最耗时的计算。(这一小段对于笔者来说不是很懂,)
【左图:Masked Self-attention 和Cross-attention是一起执行的;; 右图:先执行Masked Sefl-attention 得到当前预测坐标值,再通过Cross-attention 修正当前预测坐标值】

Training and Inference

Training

再次,着重关注其损失函数

通过视频序列进行学习: 在这里插入图片描述利用softmax交叉熵损失函数使令牌序列的对数似然最大。
在启动时(t≤N),缓存的时空提示 由初始的Y1填充。随着t的增加,得到新的Yt,并对缓存的时空提示进行循环替换,用新的预测再进行更新。

仅仅上面这一个损失函数显然不够,作者还引入了 SIoU 损失来更好地测量预测边界框和地面实况边界框之间的空间相关性。
在这里插入图片描述

Inference

从模型预测的结果在这里插入图片描述进行argmax(选择最大可能性下标的像素点)采样。 (下面涉及NLP里面的知识,结束符令牌)不需要用额外的EOS令牌来结束序列预测,因为在我们的问题中序列长度是固定的。在获得离散的标记后,作者对结果进行去量化以获得连续的坐标。

效果

在这里插入图片描述

总结

  1. 本文的思想非常的好,收获最大的点/最创新的点:跟踪视为一项坐标序列解释任务,逐步估计物体轨迹。让模型开始总整体的角度去看待物体的轨迹。

  2. 真要复现还是很耗时的(图源于作者github的issue)在这里插入图片描述
    推理速度目前只开源了26fps, 45fps没开源(区别就在于解码器中的解耦的操作,具体不是很懂)。

额外补充

官方的复现log文件没有,本人通过邮箱与作者取得联系(作者邮箱:yfbai@stu.xjtu.edu.cn),得到了几个训练期间的log文件,有需要的可以留言。

有一篇大佬的博客讲ARTrack代码方面讲的很透彻,令我启发很大,在此也推荐下:https://blog.csdn.net/laizi_laizi/article/details/134260221

欢迎指正

因为本文主要是本人用来做的笔记,顺便进行知识巩固。如果本文对你有所帮助,那么本博客的目的就已经超额完成了。
本人英语水平、阅读论文能力、读写代码能力较为有限。有错误,恳请大佬指正,感谢。

欢迎交流
邮箱:refreshmentccoffee@gmail.com

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值