1. 引言
当前跟踪领域的做法是在单个数据集 (SOT 或 MOT) 上分别训练模型来解决单个问题。
孪生结构被广泛用于 SOT 中,各种设计都致力于提高目标的判别表示。对于 MOT,通过检测来进行跟踪是最流行的方式,并在几个数据集上达到了最好的性能。但这种方式不适用于 SOT,因为在 SOT 中模型无法检测未知类别的物体。也有人尝试使用 SOT 中的 Siamese tracker 来进行 MOT,但性能不如 MOT 中的 tracking-by-detection 方法。
在实际应用中,统一的跟踪系统在很多领域都有非常重要的意义。对于 AR/VR 应用,跟踪特定的或者是未见过的实例 (比如一个人的杯子) 属于 SOT,而感知环境中的一般类别 (比如人) 属于 MOT。如果使用两个独立的检测系统,会显得昂贵且低效。能够根据需要切换模式的统一跟踪系统在实际应用中尤为重要。
UniTrack 通过共享 backbone 和融合多个跟踪头来同时解决 SOT 和 MOT,但由于不同任务训练数据集的不同,其无法利用大规模跟踪数据集进行训练。如图 1 所示,SOT 和 MOT 中的训练数据来自各种来源。SOT 的数据集只提供视频中单个物体的标注,MOT 的数据集目标类别固定,提供稠密的目标标注。因此 UniTrack 的跟踪能力有限,无法在复杂场景下跟踪目标。
本文介绍了 Unified Transformer Tracker (UTT) 来解决两种跟踪任务。对于参考帧中的跟踪目标 (在 SOT 中被指定或在 MOT 中被检测的),在跟踪的这一帧根据先前帧的定位提供一个小的 proposal 特征图。然后对目标特征和 proposal 特征图进行相关操作,来更新目标表示并输出目标位置。这样就使得 UTT 能跟踪 SOT 和 MOT 中的目标。更新后的目标特征再和新的 proposal 搜索特征做相关操作以得到目标的准确位置。为了利用两个任务的数据集,我们交替使用每个任务的数据集进行训练。
2. 相关工作
2.1 SOT
大多数 SOT 方法裁剪目标和跟踪帧来得到目标表示。但在有多个跟踪目标时,这样的方法效率会很低。所以我们在 high-level 的特征图上提取目标表示,并通过裁剪特征图的方式限制搜索区域。不同于 transformer 常用的交叉注意力,使用目标特征和搜索特征之间的相关注意力来更新目标表示以跟踪目标。
2.2 MOT
最近的几种方法采样基于 transformer 的检测器来在帧间传播边框。在这些方法中,首先使用自注意力的 encoder 来增强特征表示,然后再 decoder 中采用交叉注意力,并将 query 替换为之前帧检测到的目标特征。我们将 encoder 和 decoder 集成到一个 transformer 中,在多个目标特征上应用自注意力,然后用相关注意力来更新目标特征和搜索特征。
2.3 Unified Tracking
UniTrack 通过共享的 backbone 同时解决 SOT 和 MOT 问题。针对每一个任务,设计 parameter-free 的 task head 来应对跟踪场景。ImageNet pretrained features 直接用于两个跟踪任务。多个跟踪头是否可以在不同的跟踪数据集上一起训练到目前为止还是未知的。此外,在单目标跟踪任务中,UniTrack 的性能与现有算法相比没有竞争力。本文提出了一种 Unified Transformer Tracker,不同的任务共享相同的跟踪头,使得模型能在 SOT 和 MOT 数据集上进行训练。在 SOT 上的性能得到了显著提升。
3. Method
3.1 Overview
现有的跟踪任务可分为单目标跟踪和多目标跟踪,下面先来回顾它们的定义。
SOT:对于包含
T
T
T 帧的视频序列,在第一帧
I
0
I^0
I0 中指定跟踪目标,令
B
0
=
{
(
x
1
,
y
1
,
x
2
,
y
2
)
}
\bm{B}^0 = \{(x_1, y_1, x_2, y_2)\}
B0={(x1,y1,x2,y2)} 表示第一帧中目标的坐标。SOT 的目标是在
T
T
T 帧中定位目标
{
B
^
}
t
=
1
T
\{\hat{\bm{B}}\}^T_{t = 1}
{B^}t=1T。在 SOT 中,跟踪目标可以是任意类别的物体,测试数据中的物体可以属于未见过的类别。通过比较预测的
{
B
^
}
t
=
1
T
\{\hat{\bm{B}}\}^T_{t = 1}
{B^}t=1T 和 ground truth
{
B
}
t
=
1
T
\{\bm{B}\}^T_{t = 1}
{B}t=1T 来评估跟踪性能。
MOT:在 MOT 中检测并跟踪来自一组固定类别的物体。假设我们在前一个帧
I
t
−
1
I^{t-1}
It−1 中检测到
N
N
N 个物体
B
d
t
−
1
=
{
b
i
t
−
1
}
i
=
1
N
\bm{B}^{t-1}_d = \{b_i^{t-1}\}^N_{i=1}
Bdt−1={bit−1}i=1N,在当前帧
I
t
I^{t}
It 中检测到
M
M
M 个物体
B
d
t
=
{
b
i
t
}
i
=
1
M
\bm{B}^{t}_d = \{b_i^{t}\}^M_{i=1}
Bdt={bit}i=1M。视频中跟踪目标的数量不是固定的,因为视频中可能会出现新的目标以及旧的目标会消失。MOT 的核心挑战是将之前的
N
N
N 个目标与当前的
M
M
M 个目标关联起来,帧中相同的目标应被分配唯一的 ID。
从统一的视角来看,将 SOT 中的初始帧和 MOT 中的前一帧作为参考帧 I I I,将 SOT 中的初始框和 MOT 中检测框作为参考边框 B \bm{B} B。跟踪器的目标是在当前帧 I t I^t It 中准确预测目标位置。对于参考帧 I I I,首先使用 backbone 来提取帧特征: R = Φ ( I ) ∈ R H × W × C \bm{R} = \Phi (I) \in \mathcal{R}^{H \times W \times C} R=Φ(I)∈RH×W×C,其中 H H H 和 W W W 分别是特征图的高和宽。当前帧 S t \bm{S}^t St 的特征也按相同方式提取。然后我们将帧的特征图和目标边框 B \bm{B} B 一起输入到 track transformer 中来预测目标位置。
3.2 track transformer
track transformer 是在给定参考框
B
\bm{B}
B,参考帧特征
R
\bm{R}
R 和当前帧特征
S
t
\bm{S}^t
St 的情况下生成目标坐标。跟踪过程可以表示为:
B
^
t
=
T
θ
(
S
t
,
R
,
B
)
\hat{\bm{B}}^t = \mathcal{T}_\theta(\bm{S}^t, \bm{R}, \bm{B})
B^t=Tθ(St,R,B)
其中
B
^
t
∈
R
N
×
4
\hat{\bm{B}}^t \in \mathcal{R}^{N \times 4}
B^t∈RN×4 表示跟踪目标的预测位置,
T
θ
\mathcal{T}_\theta
Tθ 表示由
θ
\theta
θ 参数化的 track transformer。
为了在当前帧中定位目标,首先用图 2 中的 target decoder 来提取目标特征,对于每个跟踪目标,使用 proposal decoder 生成可能包含目标的候选搜索区域,在 target transformer 中处理目标特征和搜索区域,来预测当前帧中目标的位置。
3.2.1 Target Decoder
生成目标特征的一种直观方法是在参考帧特征图上 (每个参考框包含的区域内) 使用 RoIAlign (输出大小为
1
×
1
1 \times 1
1×1),计算如下:
F
=
RoIAlign
(
R
,
B
)
∈
R
N
×
C
\bm{F} = \text{RoIAlign}(\bm{R}, \bm{B}) \in \mathcal{R}^{N \times C}
F=RoIAlign(R,B)∈RN×C
但这样忽略了空间背景信息,而空间背景信息对目标跟踪至关重要,特别是当不同跟踪目标的外观相似时。为了嵌入更多的背景信息,可以采用多头交叉注意力 (Multi-head Cross Attention, MCA) 来实现目标特征和帧特征之间的交互,然后按如下方式更新目标特征 (MCA + 残差连接 + 归一化):
F
c
=
Norm
(
F
+
MCA
(
F
,
S
t
,
S
t
)
)
\bm{F}_c = \text{Norm}(\bm{F} + \text{MCA}(\bm{F}, \bm{S}^t, \bm{S}^t))
Fc=Norm(F+MCA(F,St,St))
其中目标特征
F
\bm{F}
F 是 MCA 中的 query,帧特征
S
t
\bm{S}^t
St 是 key 和 value。
Norm
\text{Norm}
Norm 表示 instance normalization (把每个 H, W 单独拿出来归一化处理),帧特征按空间维度展平,因此有
H
W
HW
HW 个 value 和 key (
S
t
\bm{S}^t
St 是
H
×
W
×
C
H \times W \times C
H×W×C 维,
F
\bm{F}
F 是
N
×
C
N \times C
N×C 维,展平后经过 MCA 结果是
N
×
C
N \times C
N×C 维)。
最后使用一个标准的 FFN 模块,其中包含 2 层线性变换,中间采用 ReLU 激活函数 (与 Transformer 中的 FFN 相似)。输出按以下方式计算 (FFN + 残差连接 + 归一化):
F
o
=
Norm
(
F
c
+
FFN
(
F
c
)
)
\bm{F}_o = \text{Norm}(\bm{F}_c + \text{FFN}(\bm{F}_c))
Fo=Norm(Fc+FFN(Fc))
通过如上方式构成的 target decoder ,我们通过交叉注意力机制将更多的背景信息嵌入到目标表示中。
3.2.2 Proposal Decoder
通过对目标特征和帧特征做相关操作来跟踪目标。然而,当帧特征分辨率较高且有多个目标要跟踪时,对每个目标特征和整个帧特征进行相关操作的内存和计算开销会很大。因此引入 target proposal 为每个目标裁剪一个唯一的搜索区域,来减少在帧特征图中的搜索范围。设置 target proposal 的一种简单方法是选择之前最后一帧的跟踪结果区域
P
t
=
B
^
t
−
1
\bm{P}^t = \hat{\bm{B}}^{t-1}
Pt=B^t−1。但如果
B
^
t
−
1
\hat{\bm{B}}^{t-1}
B^t−1 不含跟踪目标,那这样就会定位失败。当跟踪目标从视频帧内消失并出现在新的位置时,问题会更加严重。例如,在 SOT 中,如果先前预测的位置中没有目标,则可能丢失跟踪目标。在 track transformer 中,生成更精确的 target proposal 至关重要。
为此,我们对目标特征和帧特征进行关联操作,提供了在 SOT 中 (MOT 还是使用前面说的简单方法) 有效的 target proposal,具体来说,通过以下方式获取目标的热图:
H
=
Softmax
(
Conv
(
CorrAtt
(
F
o
,
S
t
)
)
)
∈
R
N
×
H
W
×
2
\bm{H} = \text{Softmax}(\text{Conv}(\text{CorrAtt}(\bm{F}_o, \bm{S}^t))) \in \mathcal{R}^{N \times HW \times 2}
H=Softmax(Conv(CorrAtt(Fo,St)))∈RN×HW×2
其中
Conv
\text{Conv}
Conv 表示几次带有 ReLU 激活函数的卷积操作,
Softmax
\text{Softmax}
Softmax 是沿空间维度展平后进行,
CorrAtt
\text{CorrAtt}
CorrAtt 通过以下方式对目标特征和帧特征进行相关操作:
CorrAtt
(
F
o
,
S
t
)
=
(
F
o
∗
S
t
)
⊙
S
t
\text{CorrAtt}(\bm{F}_o, \bm{S}^t) = (\bm{F}_o * \bm{S}^t) \odot \bm{S}^t
CorrAtt(Fo,St)=(Fo∗St)⊙St
其中
∗
*
∗ 是卷积操作,
F
o
\bm{F}_o
Fo 是
1
×
1
1 \times 1
1×1 大小的卷积核,且输出通道数为 1 (
F
o
\bm{F}_o
Fo 是
N
×
C
N \times C
N×C 维,
S
t
\bm{S}^t
St 是
H
×
W
×
C
H \times W \times C
H×W×C 维,卷积结果是
N
×
H
×
W
N \times H \times W
N×H×W 维)。
⊙
\odot
⊙ 是 broadcast element-wise product (
H
×
W
H \times W
H×W 维和
H
×
W
×
C
H \times W \times C
H×W×C 维做 element-wise product 前要 broadcast)。
H
\bm{H}
H 表示目标边框的左上角和右下角的概率分布,通过如下方式计算出 target proposal:
P
t
=
∑
i
=
0
W
∑
j
=
0
H
(
i
∗
H
i
,
j
0
,
j
∗
H
i
,
j
0
,
i
∗
H
i
,
j
1
,
j
∗
H
i
,
j
1
)
\bm{P}^t = \sum_{i=0}^W\sum_{j=0}^H(i*\bm{H}_{i,j}^0, j*\bm{H}_{i,j}^0,i*\bm{H}_{i,j}^1, j*\bm{H}_{i,j}^1)
Pt=i=0∑Wj=0∑H(i∗Hi,j0,j∗Hi,j0,i∗Hi,j1,j∗Hi,j1)
其中
i
i
i 和
j
j
j 分别表示 x, y坐标,
H
i
,
j
0
\bm{H}_{i,j}^0
Hi,j0 和
H
i
,
j
1
\bm{H}_{i,j}^1
Hi,j1 分别表示目标在
(
i
,
j
)
(i, j)
(i,j) 点左上角和右下角的概率。
3.2.3 Target Transformer
首先根据
P
t
\bm{P}^t
Pt 为帧中的每个目标裁剪搜索特征图:
S
R
o
I
t
=
RoIAlign
(
S
t
,
P
t
)
∈
R
N
×
K
×
K
×
C
\bm{S}_{RoI}^t = \text{RoIAlign}(\bm{S}^t, \bm{P}^t) \in \mathcal{R}^{N \times K \times K \times C}
SRoIt=RoIAlign(St,Pt)∈RN×K×K×C
其中
K
K
K 是输出特征图的大小。这样,对于每个目标都有了候选搜索区域的特征。利用注意力机制更新目标特征:
F
a
=
Norm
(
F
o
+
MSA
(
F
o
)
)
\bm{F}_a = \text{Norm}(\bm{F}_o + \text{MSA}(\bm{F}_o))
Fa=Norm(Fo+MSA(Fo))
其中
MSA
\text{MSA}
MSA 表示多头自注意力,使用正弦函数来生成空间位置编码 (与 Vision Transformer 的做法相似)。
为了获得搜索区域内的目标信息,通过以下方式将目标特征和搜索特征图连接起来:
F
d
=
Norm
(
F
a
+
Correlation
(
F
a
,
S
R
o
I
t
)
)
\bm{F}_d = \text{Norm}(\bm{F}_a + \text{Correlation}(\bm{F}_a, \bm{S}_{RoI}^t))
Fd=Norm(Fa+Correlation(Fa,SRoIt))
其中
Correlation
\text{Correlation}
Correlation 按以下方式更新目标特征:
Correlation
(
F
a
,
S
R
o
I
t
)
)
=
FC
(
CorrAtt
(
F
a
,
S
R
o
I
t
)
)
)
\text{Correlation}(\bm{F}_a, \bm{S}_{RoI}^t)) = \text{FC}(\text{CorrAtt}(\bm{F}_a, \bm{S}_{RoI}^t)))
Correlation(Fa,SRoIt))=FC(CorrAtt(Fa,SRoIt)))
其中
FC
\text{FC}
FC 为全连接层,输入通道数为
K
2
C
K^2C
K2C,输出通道数为
C
C
C。
CorrAtt
\text{CorrAtt}
CorrAtt 和前面所说的相同 (结果为
N
×
K
×
K
×
C
N \times K \times K \times C
N×K×K×C 维) 。最后使用
FFN
\text{FFN}
FFN 模块生成目标特征
F
′
o
\bm{F'}_o
F′o,用来预测目标位置。box head 不是直接输出坐标,而是 proposal box 需要进行的平移变换和尺度缩放以确定目标位置。
堆叠 track transformer
L
L
L 次来定位跟踪目标。在第
i
i
i 个 track transformer 中,target proposal 由之前预测的定位更新,以提供新的候选搜索区域、同样的,目标特征也会被更新 (每层都会输出一次 bbox 的预测结果,当前层的预测结果为后面层提供候选区域)。所有的中间输出都保存在
{
B
^
i
t
}
i
=
1
L
\{\bm{\hat{B}_i^t}\}^L_{i=1}
{B^it}i=1L 中。
与之前的 transoformer 的差异:在跟踪领域,之前所有的 transformer 都采用 encoder-decoder 结构来增强目标表征。在交叉注意力操作中目标特征作为 query,帧特征作为 key 和 value。当有多个跟踪目标且视频分辨率较高时,该方法的跟踪效率较低。假设我们有
N
N
N 个跟踪目标,视频帧特征图大小为
H
×
W
H \times W
H×W,特征维度为
C
C
C,交叉注意力的复杂度为
O
(
H
W
N
C
)
\mathcal{O}(HWNC)
O(HWNC)。相比之下,我们从帧特征图中裁剪固定大小
K
×
K
K \times K
K×K
(
K
<
m
i
n
(
H
,
W
)
)
(K < min(H, W))
(K<min(H,W)) 的搜索区域,这样复杂度为
O
(
K
2
N
C
)
\mathcal{O}(K^2NC)
O(K2NC),更加高效。此外,还将交叉注意力改为相关注意力,能更有效地追踪各种场景下的目标。
3.3 训练
为了训练跟踪器,需要计算预测的边框和 ground truth 边框的 loss。对于 MOT,不使用 proposal decoder 生成用于训练的初始候选搜索区域,而是对 ground truth 边框
B
t
\bm{B}^t
Bt 添加高斯噪声作为初始候选区域。这样的做法和测试阶段相似,用前一帧中的检测框来作为当前帧的 proposal。此外,如果我们使用 proposal decoder 来为所有物体生成 proposal,那么模型无法训练。因为在 MOT 中特征图分辨率大且跟踪目标数量多。
令
B
t
∈
R
N
×
4
\bm{B}^t \in \mathcal{R}^{N \times 4}
Bt∈RN×4 为第
t
t
t 帧的 ground truth 边框,MOT 的损失函数可以写成:
L
M
O
T
b
o
x
=
∑
i
=
1
L
λ
G
L
G
I
o
U
(
B
^
i
t
,
B
t
)
+
λ
1
L
1
(
B
^
i
t
,
B
t
)
\mathcal{L}^{box}_{MOT} = \sum_{i = 1}^L \lambda_G \mathcal{L}_{GIoU}(\bm{\hat{B}}_i^t, \bm{B}^t) + \lambda_1\mathcal{L}_1(\bm{\hat{B}}_i^t, \bm{B}^t)
LMOTbox=i=1∑LλGLGIoU(B^it,Bt)+λ1L1(B^it,Bt)
其中
L
G
I
o
U
\mathcal{L}_{GIoU}
LGIoU 和
L
1
\mathcal{L}_1
L1 分别表示 Generalized IoU loss 和 1-norm loss。
λ
G
\lambda_G
λG 和
λ
1
\lambda_1
λ1 是用来平衡这两个损失的超参数。
对于 SOT,用 proposal decoder 来初始化 target proposal。SOT 的损失函数如下:
L
S
O
T
b
o
x
=
∑
i
=
0
L
λ
G
L
G
I
o
U
(
B
^
i
t
,
B
t
)
+
λ
1
L
1
(
B
^
i
t
,
B
t
)
\mathcal{L}^{box}_{SOT} = \sum_{i = 0}^L \lambda_G \mathcal{L}_{GIoU}(\bm{\hat{B}}_i^t, \bm{B}^t) + \lambda_1\mathcal{L}_1(\bm{\hat{B}}_i^t, \bm{B}^t)
LSOTbox=i=0∑LλGLGIoU(B^it,Bt)+λ1L1(B^it,Bt)
分别使用以上损失函数训练 SOT 和 MOT。在 MOT 中新出现的目标也应该被跟踪,所以需要使用目标检测。为此,在 UUT 中也需要添加 detection head 来进行目标检测。使用 deformable DETR 作为 detection head
Ψ
\Psi
Ψ。在跟踪过程中,首先检测在参考帧
I
t
I^t
It 中的所有目标
B
^
d
e
t
r
\bm{\hat{B}}^r_{det}
B^detr,
B
^
d
e
t
r
\bm{\hat{B}}^r_{det}
B^detr 用于作为当前帧的 target proposals。将当前帧特征、参考帧特征和检测到的边框
B
^
d
e
t
r
\bm{\hat{B}}^r_{det}
B^detr 输入 track transformer,生成跟踪边框
B
^
t
\bm{\hat{B}}^t
B^t。此外, detection head 还需要检测当前帧的目标,结果为
B
^
d
e
t
t
\bm{\hat{B}}^t_{det}
B^dett。通过计算
B
^
t
\bm{\hat{B}}^t
B^t 和
B
^
d
e
t
t
\bm{\hat{B}}^t_{det}
B^dett 的 IoU,可以匹配两帧之间都出现的目标。对于那些未被匹配的跟踪 (unmatched tracked) 目标,将其标记为丢失并在之后的帧进行跟踪;对于那些未被匹配的检测到的 (unmatched detected) 目标,为其分配新的 ID,因为它们是视频中新出现的目标。通过这种方式,我们跟踪了所有目标,并为相同目标分配了相同 ID。
为了使一个模型同时适用 SOT 和 MOT 任务,在每次迭代时交替使用 SOT 和 MOT 数据集来训练网络。在每次迭代中,一个 data loader 中的一个视频的两帧被采样并批处理作为网络的输入。在 SOT 迭代中,使用 target decoder 来改进目标表示,使用 proposal decoder 生成初始的 target proposal。在 MOT 迭代中,所有被标注的目标用于训练 detection head,两帧中的目标用于优化 track transformer。
4. 实验
4.1 实现细节
训练:在 COCO,TrackingNet,LaSOT,GOT10k,MOT16 和 CrowdHuman 数据集的训练集上训练 UUT,ResNet 作为 backbone。整个模型在 8 张 A100 上使用 AdamW 优化器迭代 800K 次。我们有 2 个 data loader 分别由于 SOT 和 MOT 训练,在统一的模式下交替训练。对于 SOT,将 batch size 设为 64,图片裁剪为
352
×
352
352 \times 352
352×352 大小,使用常规的 SOT 数据增强。 对于 COCO 数据集,对其进行不同的变换得到图像对;对于其他视频数据集,随机采样帧间间隔小于 200 的图像。对于 MOT,batch size 设为 16,使用 MOT 数据增强后应用随机的 resize。还添加了 deformable DETR 用于检测目标。
在线跟踪:对于 SOT ,在 LaSOT,TrackingNet 和 GOT10K 数据集的测试集上测试模型。对于 MOT,在 MOT16 数据集上进行验证,并使用了 public 和 private 两种目标检测器。
4.2 Evaluations in SOT
将 UTT 和 20 种先进的 SOT 方法在 3 个数据集上做比较,如表 1 所示。UTT 能在 SOT 数据集上以 25 FPS 的速度运行。
LaSOT:UTT 表现优于大多数 SOT 跟踪器,并能与性能最好的 TransT 相竞争。此外,UTT 在成功率上比 UniTrack 高出几乎 30 个百分点。
TrackingNet:与 UniTrack 相比,UTT 成功率高了 25.8%,精度高了 33.5%。
GOT10K:表现优于大多数 Siamese 跟踪器。
4.3 Evaluations in MOT
对于 MOT,在 MOT16 数据集上评估了模型,结果如表 2 所示。首先使用 deformable DETR 作为检测头,与 UTT 一起训练 (用 UTT-DFDETR 表示)。模型在数据集上以 8 FPS 的速度运行。UTT-DFDETR 在 MOTA (跟踪准确率) 方面优于 CTracker。参照 UniTrack,模型也使用了 FairMOT 的检测结果,不同的是直接预测目标位置。UTT 取得了最好的 MOTP (跟踪精度) 以及略低于 FairMOT 的 MOTA。
4.4 消融实验
为了验证设计的 Transformer 结构有效性,使用 ResNet-18 作为 backbone,训练 100K 迭代次数。对于 SOT,在 LaSOT 测试集上验证,对于 MOT,在一半 MOT 训练集上验证。
4.4.1 Target- and Proposal Decoder
为了验证 Target Decoder 和 Proposal Decoder 的性能,在 LaSOT 上进行实验,并得到对应的成功率、精度和 OP75 (平均重叠率) 评估指标。对于 baseline 模型,目标特征仅仅通过 RoIAlign 提取,target proposal 使用最后一帧的跟踪结果。可以看到,当添加了 proposal decoder,跟踪性能提升巨大,这是因为先前帧的跟踪定位可能提供错误的 proposal。进一步添加 target decoder,通过目标特征和环境特征的交互来增强目标特征表示,使得跟踪性能在成功率上提升了 0.6。
4.4.2 Target Transformer
Correlation:为了验证 correlation 层的优越性,设计了采样多头交叉注意力 (MCA) 的模型。具体来说,是将 correlation 模块和自注意力模块替换成了 MCA 模块,其中目标特征作为 query,裁剪后的搜索特征作为 key 和 value。同时也去除了多头自注意力 (MSA) 来进行验证。结果如表 4 所示。对比 UTT-MCA 跟踪器,在 SOT 数据集上成功率高了 1.8%,在 MOT 数据集上 MOTA 高了 1.0%。
Search size:对于每个跟踪目标,需要根据 target proposal 裁剪得到搜索特征。裁剪后的特征会与目标特征交互以更新目标定位。因此验证了不同特征大小 (也就是前面的
K
K
K ) 时的模型性能。
Iteration:验证了不同
L
L
L 时的跟踪性能。更多的 iteration 确实能提高性能,但这样会减慢训练和推理速度,因为计算开销更大了。
4.4.3 Training Recipe
因为没有训练检测头,只用 SOT 数据集训练模型是不能进行 MOT 任务的。只用 MOT 训练的模型在 SOT 数据集上表现很差,这是因为 MOT 数据集只提供了行人的标注。对比 只用 SOT 数据集 和 只用 MOT 数据集,两者都使用能得到更高的 MOTA 和更低的 IDF1。低的 IDF1 表示当一个目标被遮挡或消失时,更多的 ID 被分配。高的 MOTA 表示跟踪准确率高。所以这表示 unified model 能生成更准确的跟踪结果。
5. 总结
UUT 能够完成不同的跟踪任务。模型可以使用 SOT 和 MOT 数据集进行端到端训练。从实验中可以得出,一个模型足以同时完成 SOT 和 MOT 任务。