Transformer Meets Tracker(TrDiMP)
transformer结构应用在分类分支。
第一帧self.init_classifier()
-
self.transformer_label:(15,1,22,22),根据目标在特征图上的位置制定高斯标签。
-
self.transformer_memory:(7260,1,512),其中7260=152222,512的特征图维度,通过transformer encode得到,步骤如下,几点说明:
1. 没有位置嵌入 2. normalization具体是第3维度除第3维的L2范数,即对每个token单独作normalization 3. Query和Key共用W_k 4. 没有转换矩阵W_v 5. 没有multi-head,n_head=1 6. Transformer Encode结构只有1次且没有FFN
-
对输入特征(15,512,22,22)遍历第一维度(样本),对每个样本分别通过transformer decode,然后将每隔decode的特征(1,512,22,22)拼接成(15,512,22,22)得到最终的样本特征,再输入DiMP中的分类模型。每个样本特征的transformer decode步骤如下:
1. self-attention参数与encode共享 2. cross-attention1((query=tgt(484,1,512), key=memory(7260,1,512), value=pos(7260,1,512)):通过self.transformer_label:(15,1,22,22)复制512份,对每个维度的特征施加相同的mask,**mask的作用类似与位置嵌入**) 3. cross-attention2:这里输入的value=memory*pos 4. 所有attention中Query和Key共用W_k、没有转换矩阵W_v、n_head=1 5. Transformer Decode结构只有1次且没有FFN
后续帧self.init_classifier()
主要干两件事
- 根据跟踪结果判断是否更新self.transformer_memory,以及pos来更新W
- 将后续帧的特征输入transformer decode得到text_x,再与W卷积得到score map
Transformer Tracker
…