Transformer这个香饽饽怎么能不用来迁移到目标追踪里呢。
本篇文章分析TransT。
Transformer Tracking.
文章侧重点
这篇文章是利用Transformer设计了一个新的基于注意力的特征融合网络和一个Siamese结构的集成该融合网络的追踪方法TransT。 在TransT中该融合网络以替换传统Siamese框架中的correlation相关操作。
几个值得注意的点:
- 特征融合网络由两个模板组成:基于自注意力的上下文增强模块 + 基于交叉注意力的特征增强模块。两个都是在增强特征。 不过回想Siamese网络结构中常用的naive correlation、depth-wise correlation、pixel-wise correlation都是在用提取的Template特征作为核来对Search特征进行增强,只是操作不同罢了【文中分析,原有的correlation是一种局部的线性的匹配过程,会导致语义信息丢失,陷入局部最优】。
- TransT的追踪结构也挺简单的:Siamese型的共享backbone网络、基于注意力机制的融合网络、分类和坐标回归预测头。
- 其实从可视化结果来看,TransT的Search特征的注意力还比较集中在目标上,但是Template特征因为引入Search特征,感觉Template的注意力被分散了。作者在文中说这是个奇怪的分布。所以这种特征设计网络其实感觉有一点草率了,不过Encoder和Decoder堆叠这么多,效果肯定也不会差。
网络结构
上下文增强模块
这个模块主要就是多头自注意力机制+位置编码Sin函数。与原始的Transformer中的多头自注意力机制一样。所以这个模块叫上下文语境的增强模块也正是因为Transformer中Encoder的自注意力的全局特性。
交叉特征增强
这个模块应用了Transformer的Decoder的多头交叉注意力机制、Sin位置编码和前馈神经网络(FFN)。之所以不索性去掉FFN,因为作者认为FFN模块增强了模型的拟合能力。
【不过在上一篇Transformer meets Tracking(TMT)中,有做关于FFN的消融实验证明FFN提升不多反而参数敏感容易坏事。这篇文章的消融实验关注于模块有无,倒也没这么细,不过我相信FFN肯定比TMT中重要啦】
TransT网络结构
这个网络结构倒也中规中矩,特征提取+特征融合+特征解析。最后在取响应最大生成边界框之前还应用了一个后置操作——窗口惩罚,相当于给离上一帧位置过远的响应小权重,因为每隔一帧物体不可能移动过远。
实际上后置处理都是超参敏感的,然鹅在消融实验中验证的时候可以看到,有窗口惩罚比没窗口惩罚的效果(AUC)上升2%,所以调好参数后置操作还是可以滴。
可视化结果分析
文中可视化了注意力模块的结果,TransT的网络结构中的特征融合网络一共堆叠了4层ECA和CFA模块。可视化结果也包含了4层。
n=1
n=1是相当于经过ECA的自注意力结果;经过ECA-CFA的交叉注意力结果
- 第一行是Search区域的自注意力机制,这时候还没有模板信息,所以注意力主要放在前景信息中,简单区分前后景。
- 第二行是模板的自注意力机制,这时候模板也是对自身应用注意力,提取了模板中的目标特征信息。
- 第三行是Search区域作为query的交叉注意力机制,模板的自注意力结果作为key和value,这时候注意力区域开始集中在目标小蚂蚁上。
- 第四行是模板的交叉注意力机制,模板作为query的交叉注意力机制,Search区域的自注意力结果作为key和value。特征加强在小蚂蚁尾部,因为相对应的Search特征那部分也比较明显。简单来说就是,在模板特征中引入了Search自注意力特征,反而有点干扰。
n=2
n=2是相当于经过ECA-CFA-ECA的自注意力结果;经过ECA-CFA-ECA-CFA的交叉注意力结果
- 第一行是Search特征自注意力的结果,这时候可以看到注意力主要在目标上面了,周围小蚂蚁干扰物只有少部分注意力。
- 第二行是Template特征自注意力结果,这时候注意力在目标的边界,照理说交叉注意力的结果才会主要在边界,这点有点奇怪。
- 第三行是Search特征交叉注意力结果,注意力在目标的边界。
- 第四行是Template特征交叉注意力结果,这个分布更奇怪了,我觉得是因为把Search区域的自注意力结果作为key和value,让原本的特征污染了。
n=3
n=3是相当于经过ECA-CFA-ECA-CFA-ECA的自注意力结果;经过ECA-CFA-ECA-CFA-ECA-CFA的交叉注意力结果
- 第一行是Search特征自注意力的结果,这时候可以看到注意力已经大部分在目标上面了。
- 第二行是Template特征自注意力结果,这时候注意力在目标的边界,但是有点涣散,感觉是被Search特征干扰了。
- 第三行是Search特征交叉注意力结果,注意力在目标的边界,比n=2的时候有加强。
- 第四行是Template特征交叉注意力结果,这个分布稍微正常点了,集中在小蚂蚁尾部。
n=4
n=4是相当于经过ECA-CFA-ECA-CFA-ECA-CFA-ECA的自注意力结果;经过ECA-CFA-ECA-CFA-ECA-CFA-ECA-CFA的交叉注意力结果
- 第一行是Search特征自注意力的结果,这时候可以看到注意力已经全部在目标上面了,抗干扰牛。
- 第二行是Template特征自注意力结果已经涣散了,说明当上一层的Template的交叉注意力本来就有点奇怪了,再自注意力效果只会更奇怪。
- 第三行是Search特征交叉注意力结果,注意力在目标的边界。
- 第四行是Template特征交叉注意力结果,这个分布更奇怪了,这时候作为key和value的Search区域的自注意力结果都分布在中间,所以注意力在中间。但是感觉这个交叉注意力不该关注边界吗?奇奇怪怪。
强强觉得奇怪吗?