Encoder:首先对传入的特征预处理——利用一个bottleneck层降低channel数1024→256;然后Search特征和Template特征按空间维度展平如下所示。相当于d个一维向量,向量长度为
H
x
∗
W
x
+
H
z
∗
W
z
H_x*W_x+H_z*W_z
Hx∗Wx+Hz∗Wz。x表示Search特征,z表示template特征。最后就是Sin位置嵌入、多头注意力、前馈网络。 【注意: 这里可以看到,Enoder的自注意力机制是对传入的特征全局性的计算相似度矩阵,这里传入的特征有Search特征和Template特征,所以这里自注意力已经相当于在交叉注意力了,但是和真正的交叉注意力有区别,因为自注意力机制中QKV都是自己。】
预测头:预测头的输入是从Encoder解离出的Search特征和Decoder输出的embedding【猜测之前Encoder特征不是有256个一维向量吗?这个目标query的embedding是一个1 * 1 * 256的向量,针对Encoder的每一个特征都有一个权重分数,来对Search特征进行调整,使其更容易找到预测目标】。然后就是用点乘计算Search特征和Decoder输出的embedding相似度,元素维度的乘法是为了增强重点区域,说白了还是一个加权,跟点乘计算方法不太一样但是目的是一样的。最后对一维的
1
∗
1
∗
H
x
×
W
x
1* 1* H_x \times W_x
1∗1∗Hx×Wxreshape成
H
x
∗
W
x
H_x * W_x
Hx∗Wx的特征图,输入到一个全连接网络中,输出预测的目标坐标点(左上和右下)的概率图,用期望计算得到最后的坐标值【这样的坐标值包括了坐标点位置预测和尺度预测】