Learning Spatio-Temporal Transformer for Visual Tracking

Motivation

卷积kernel不能对图像特征长距关系进行建模,因此他们只能处理一个局部邻域,无论是空间还是时间。空间信息包含了用于定位的目标表观信息,时序信息包含了目标的变化。本文利用encoder-decoder transformer结构建模全局的时空特征关系。encoder的输入是初始目标、当前图像和一个动态更新的模板,self-attention能够建立起他们空间上的关系,由于模板是动态更新的所以encoder能够抓住时空信息。decoder预测目标的空间位置。本文直接对bbox进行预测,减少了很多超参。

Related Work

跟踪器按照探索的信息分为空间和时空两类,只考虑空间的如Siamese,这些方法只计算 局部相似性,忽略了全局;考虑是时空分为基于梯度和不基于梯度的,基于梯度如MDNet,应用有限,不基于梯度的将时空分离探讨。

Method

先介绍了基于空间的transformer-baseline,简言之不更新。改进在于互相关
encoder将搜索图像和模板在空间维度上拉伸再concatenate,C*(HW+hw)。
decoder只引入了一个目标query增强encoder特征。没理解这里的query到底是什么,跟DETR一样是随机生成的,但因为跟踪只有一个目标所以只需要一个query。
他们各自包含了N、M层。
Learning Spatio-Temporal Transformer for Visual Tracking_第1张图片
首先计算相似度增强位置信息,提高判别力。再计算角点坐标,热力图表示。
Learning Spatio-Temporal Transformer for Visual Tracking_第2张图片

SpatioTemporal Transformer Tracking

主要改进之处有三点:
输入:加入了动态更新的模板
Head:还需要考虑是否更新模板,引入了score prediction head
训练和inference:先用回归head训练整个网络,再固定所以参数只对分类头进行训练。
问题:什么时候更新,间隔T并且score大于t。
Learning Spatio-Temporal Transformer for Visual Tracking_第3张图片
这里的时序其实就简单看作补充最新的跟踪信息,看下面消融实验吧,我自己做图像通道上concatenate起来效果并不好。这里更新间隔是200帧,也就是说在长时跟踪。
encoder和decoder结构一样,都有6层,8head attention layers和feed-forward network。

Experiment

Learning Spatio-Temporal Transformer for Visual Tracking_第4张图片
达到sota了,指标还挺高的,不管是否进行更新,在VOT2020上也很不错。
在这里插入图片描述
在长时跟踪数据集上也不错,我认为这是因为搜索图像是原目标大小5倍有关系,再加上score分支的有效性。
Learning Spatio-Temporal Transformer for Visual Tracking_第5张图片

Learning Spatio-Temporal Transformer for Visual Tracking_第6张图片
从表6消融实验可以得到,位置编码不是很重要把corner head替换成3层感知机表面box更加精确。
取消Score只得到了64.5%,而不使用时序信息到65.8%,这说明了不合理的使用时序信息可能导致精度下降,所以很重要筛选不可靠的模板。
这里是否体现了回归和分类分开训练的好处?

表7 比较了模板作为query,虽然模板也是引入encode目标信息的线索,但是消融实验encoder是把模板和搜索图像分开计算,然后把模板作为query放入encoder里面,没有有效地利用好模板和搜索图像的交互。
Hungarian表示Kquery但最后只有一两个契合gt,其他距离很远。
update query表示利用时序的方式,update query没有update template好。
联合训练导致bbox预测不精确,不同的任务要求数据不一样

Visualization

Learning Spatio-Temporal Transformer for Visual Tracking_第7张图片
上面表示encoder,更加集中到目标,具有很强的鲁棒性。
下面表示decoder,在模板上集中在左上角,在搜索图像上集中在目标的边界。

思考

motivation用tansformer就能解决了。
最牛的一点在于摆脱了跟踪里复杂的超参,直接预测最后的corner。
他提的corner head很有效,不预测score很新奇,消融实验双阶段的训练方式也不符合直观。
最后有个疑问,在长时跟踪可能他这个时序用的还可以,但是在短时上面间隔是否也是200帧更新就不得而知了。

你可能感兴趣的:(Siamese加时序)