JLA
论文标题:Joint Learning Architecture for Multiple Object Tracking and Trajectory Forecasting
论文地址:https://arxiv.org/abs/2108.10543
论文源码:未开源
Introduction
本文介绍了一种用于多目标跟踪(MOT)和轨迹预测的联合学习架构(JLA),**其目标是同时预测物体当前和未来的轨迹。**基于卡尔曼滤波的方法不能预测非线性轨迹。我们提出联合训练一个跟踪和轨迹预测模型,并使用预测的轨迹预测来进行短期运动估计,以代替线性运动预测方法。
本文贡献可以总结如下:
- 介绍了MOTF,一个新的多目标跟踪和轨迹预测的任务。
- 提出了一种新的架构,可以联合执行多目标跟踪和轨迹预测。
- 使用轨迹预测来细化物体的位置,以代替卡尔曼滤波器。轨迹预测模型减少了对象对象位置的搜索空间,从而减少了ID开关导致的通过类似的外观嵌入。
- 引入了一种新的算法,用于在遮挡期间对对象的数据关联,通过使用之前的轨迹预测来估计被遮挡对象在后续帧中的位置。
- 在基准来评估我们的模型。与FairMOT相比,我们提出的方法减少了MOT20基准测试上的ID开关47%的ID switch。
Multiple Object Tracking and Forecasting
Problem Formulation
假设一个视频有 n n n个帧 f 0 , f 1 , . . . f n − 1 f_{0},f_{1},...f_{n-1} f0,f1,...fn−1。在时刻 s s s中视频帧 f s f_{s} fs。
- 视频帧中可识别的目标 I I I。
- 在视频帧中 f s f_{s} fs每个目标 i i i组成的bounding box集合 b s = { b s i i = 1 I } b_{s}=\lbrace {b_{s}^{i}}_{i=1}^{I} \rbrace bs={bsii=1I},每个bounding box都包含了四个值 b s i = ( x , y , w , h ) b_{s}^{i}=(x,y,w,h) bsi=(x,y,w,h)表示位置。
MOT的目标是关联所有帧中检测出来的bounding box { b 0 i } , { b 1 i } , . . . { b n − 1 i } , \lbrace b_{0}^{i} \rbrace,\lbrace b_{1}^{i} \rbrace,...\lbrace b_{n-1}^{i} \rbrace, {b0i},{b1i},...{bn−1i},。每个bounding box对应唯一的目标 K ∈ 1 , 2 , . . . K K\in 1,2,...K K∈1,2,...K,其中 K K K是所有帧中的所有目标的数量。定义 T = { t k } k = 1 K \mathcal {T} = \lbrace t_{k} \rbrace_{k=1}^{K} T={tk}k=1K为整个视频序列中的轨迹集。 t k t^{k} tk代表第 k t h k^{th} kth个唯一轨迹。关联任务可以使用二分图匹配
相同的MOF的目标定义为,给定一序列帧 f s − p , f s − p + 1 , . . . f s f_{s-p},f_{s-p+1},...f_{s} fs−p,fs−p+1,...fs,代表过去的视频帧,它们的轨迹集合为 { t s − p k } , . . . { t s k } \lbrace t_{s-p}^{k} \rbrace,...\lbrace t_{s}^{k} \rbrace {ts−pk},...{tsk}。MOF任务就是在过去的视频帧中预测出未来帧的bounding box { b s + 1 k } , . . . { b s + q k } \lbrace b_{s+1}^{k} \rbrace,...\lbrace b_{s+q}^{k} \rbrace {bs+1k},...{bs+qk},对应未来q个帧,这里的 p p p表示过去帧的输入数量, q q q表示预测未来帧的个数。在MOF中,轨迹是在预测之前定义好的。
那么联合MOTF任务就是给定视频帧 f s f_{s} fs和过去 p p p个bounding box集合. { b s − p k } , . . . { b s − 1 k } \lbrace b_{s-p}^{k} \rbrace,...\lbrace b_{s-1}^{k} \rbrace {bs−pk},...{bs−1k}.通过训练器计算 f s f_s fs轨迹 { t s k } \lbrace t_{s}^{k}\rbrace {tsk}和预测未来的帧中的bounding box, b s k , . . . . b s + q k b_{s}^{k},....b_{s+q}^{k} bsk,....bs+qk。和MOF任务不同的是,这里的预测的bounding box的结果需要参与损失的计算,来评估边界框的预测准确度。在这项工作中,使用 p = 10 p=10 p=10和 q = 60 q=60 q=60来预测,它们对应着利用过去帧1秒来预测未来2帧
Evaluation Metrics
MOTF是一个跟踪和预测的联合任务。我们同时采用了跟踪和预测的评价指标。我们使用明确的指标和IDF1值来评估轨迹跟踪性能。我们使用ADE/FDE和AIOU/FIOU指标来评估轨迹预测的性能。
Proposed JLA
JLA从现有的架构中提取数据,用于跟踪和预测。使用FairMOT作为基础模型,因为这个架构已经集成了检测和跟踪。**FairMOT网络中添加一个预测分支,并端到端训练体系结构。**FairMOT由一个叫做DLA-34的骨干网络、一个目标检测头和一个reID头组成。
轨迹预测网络由递归神经网络(RNN)组成,用于对过去的边界进行编码和解码,并预测未来的边界框。该网络的组成部分如下:
- 一个RNN编码器来对过去的bounding boxes和向量进行编码。
- 一个全连接层对backbone提取后的特征图进行特征嵌入。
- 一个RNN解码器对bounding boxes和向量解码
- 一个RNN decoder预测未来帧中的向量。
- 一个将预测的未来帧向量转换为边界盒的轨迹连接层。
Past Bounding Box and Velocity Encoder
一个RNN用于从过去的边界框中提取特征。这个编码器通过迭代历史信息来捕获每个对象的特征向量。
给定帧
f
s
f_s
fs和过去的边界框
{
b
s
−
p
k
}
,
.
.
.
{
b
s
−
1
k
}
\lbrace b_{s-p}^{k} \rbrace,...\lbrace b_{s-1}^{k} \rbrace
{bs−pk},...{bs−1k},构造了一个8维向量
B
∈
R
p
×
8
B\in R^{p \times 8}
B∈Rp×8的
p
p
p序列。
B
j
k
=
(
x
j
k
,
y
j
k
,
w
j
k
,
h
j
k
,
Δ
x
j
k
,
Δ
y
j
k
,
Δ
w
j
k
,
Δ
h
j
k
)
B_{j}^{k}=(x_{j}^{k},y_{j}^{k},w_{j}^{k},h_{j}^{k},\Delta x_{j}^{k},\Delta y_{j}^{k},\Delta w_{j}^{k},\Delta h_{j}^{k})
Bjk=(xjk,yjk,wjk,hjk,Δxjk,Δyjk,Δwjk,Δhjk)代表的质心的位置相应的边界框,
w
j
k
,
h
j
k
w_{j}^{k},h_{j}^{k}
wjk,hjk表示边界框的宽度和高度,
Δ
x
j
k
,
Δ
y
j
k
,
Δ
w
j
k
,
Δ
h
j
k
\Delta x_{j}^{k},\Delta y_{j}^{k},\Delta w_{j}^{k},\Delta h_{j}^{k}
Δxjk,Δyjk,Δwjk,Δhjk表示速度,∆表示连续时间步之间的变化计算为:
一个RNN获取过去的边界框和向量序列 B B B,并生成一个最终的隐藏状态向量 h p e h_{p}^{e} hpe,以总结该序列。最后的隐藏状态向量是通过使用 p p p个时间步长的输入 { B j k } \lbrace B_{j}^{k} \rbrace {Bjk}重复更新之前的隐藏状态向量来实现的。隐藏状态向量被初始化为零。然后将得到的最终隐藏状态向量通过一个具有ReLU激活的全连接层,生成一个256维的特征向量 ϕ B e \phi_{B}^{e} ϕBe。
Embedding Encoder
该嵌入编码器用于捕获DLA-34backbone的特征。DLA-34网络为当前帧中预测对象的边界框提供了视觉上下文。在轨迹预测模型中使用视觉特征,提高了边界盒估计的精度。DLA-34特性在detection、RE-ID和预测分支*享。
给定一个维数为 H s × W s H_{s}\times W_{s} Hs×Ws的输入帧,向DLA-34网络附加一个预测头,生成一个特征图 D ∈ R 256 × H × W D\in R^{256 \times H \times W} D∈R256×H×W,其中 H = H s / 4 H=H_s/4 H=Hs/4和 W = W s / 4 W=W_s/4 W=Ws/4。选择 D D D的前 N N N个特征,得到 256 × N 256\times N 256×N的特征嵌入,其中 N N N是多尺度学习的最大对象数,并设置为默认值N=500。这使我们能够学习预测网络中输入帧的高维向量表示。
然后,我们将特征映射 D D D传递到全连接层,以生成一个256维的向量 ϕ E e \phi_{E}^{e} ϕEe。所得到的编码被连接到过去的边界框和向量编码 ϕ B e \phi_{B}^{e} ϕBe。
Past Bounding Box and Velocity Decoder
另一个RNN用于重现过去的边界框和向量。使用decoder来再现输入,目的是为了确保模型学习到正确的输表征。因此,我们可以定义一个目标函数来惩罚解码器偏离表征输入时。
在每个timestep,decoder首先使用编码 ϕ B e \phi_{B}^{e} ϕBe来更新之前的隐藏状态向量,然后将更新后的隐藏状态向量通过一个全连接层来生成一个8维向量。隐藏状态向量由 h p e h_{p}^{e} hpe初始化。decoder的输出是一组预测的过去边界框和向量。
使用一个L1的损失来惩罚解码器:
Future Velocity Decoder
第三个RNN用于预测已识别的 K K K个对象的 q q q个未来向量。过去encoder ϕ B e \phi_{B}^{e} ϕBe的边界框与嵌入的 ϕ E e \phi_{E}^{e} ϕEe连接起来,得到一个512维的向量 ϕ C \phi_{C} ϕC。。φC通过一个全连接ReLU层 q q q次,同时在每个层上更新之前的隐藏状态向量。隐藏状态向量由 h p e h_{p}^{e} hpe初始化。预测的未来帧向量表示。
Trajectory Concatenation Layer
利用轨迹连接层将未来帧预测的向量转换为bounding box,这一层将过去帧的bounding box { b s − 1 k } k = 1 K \lbrace b_{s-1}^{k} \rbrace_{k=1}^{K} {bs−1k}k=1K作为额外输入去计算未来帧的bounding box集合 F ^ ∈ R q × 4 \hat F \in R^{q \times 4} F^∈Rq×4。向量的累积之和是用公式计算出来的。向量的累积和用于计算预测的未来边界框:
因此,定义一个目标函数来惩罚预测的未来位置。使用一个L1损失函数,定义为:
计算预测损失为
Training JLA
整个网络使用多任务不确定性损失进行端到端训练。多任务不确定性损失对每个任务的损失进行加权线性和,并从数据中自动学习权重。根据检测损失 L d e t L_{det} Ldet、Re-ID损失 L i d L_{id} Lid和预测损失 L f o r L_{for} Lfor,总损失函数定义为:
其中, s d e t s_{det} sdet、 s i d s_{id} sid和 s f o r s_{for} sfor分别为检测、reID和预测的权重。将权重初始化为-2.0到5.0之间的值,然后由模型自动更新。 L d e t L_{det} Ldet和 L i d L_{id} Lid的方程在FairMOt中定义。
模型的输入是当前帧和以前帧中观察到的对象的过去边界框。使用GRU来实现PastEncoder,PastDecoder 和FutureDecoder的实现。然而,任何其他类型的RNN都可以用于实现编码器和解码器。虽然过去的边界框被提供给轨迹预测分支,但其他两个分支,即检测和re-ID分支的性能,由于共享图像的嵌入而得到了很大的提高。
与现有的轨迹预测方法不同,我们提出在训练过程中使用可变长度的过去和未来的bounding box和固定长度的边界进行评估。这意味着每个对象可以有任意数量的过去和未来的边界框,分别小于或等于 p p p和 q q q的固定值。这允许网络在训练的早期学习物体的历史信息,而无需等待一套完整的过去或未来的边界框。基于这个想法,我们将过去和未来的损失重新形式化为:
其中,
p
s
k
<
=
p
p_{s}^{k}<=p
psk<=p和
q
s
k
<
=
q
q_{s}^{k}<=q
qsk<=q分别表示每个被跟踪对象
k
k
k在
f
s
f_{s}
fs帧处可用的过去和未来的GT边界框的数量。在训练过程中,我们只使用
p
s
k
p_{s}^{k}
psk过去和
q
s
k
q_{s}^{k}
qsk未来的边界框来计算损失。
Online Inference
介绍JLA的网络推理和数据关联。在线关联类似于FairMOT使用的关联,但是,我们用轨迹预测代替卡尔曼滤波估计,并添加了一个额外的步骤来估计遮挡期间物体的位置。
JLA网络除了可以预测热图、由基本模型生成的边界框偏移量和边界框大小外,还可以预测轨迹预测。输入帧的大小为1088×608。在前三帧中将过去的边界框和速度信息初始化为零。当检测和跟踪新对象时,存储它们以前的位置。需要至少两个之前的位置来预测一个对象的未来位置。
Data Association
使用检测和轨迹预测的数据关联。在推理时,轨迹预测有两个目的:
- 生成短期估计,以代替卡尔曼滤波器,以防止检测与大运动的关联;
- 在物体被遮挡时生成边界盒估计。
**在第一帧中,所有超过置信度阈值的检测都被初始化为新的轨迹。**接着经过下面三个步骤的匹配。
1、Re-ID Features and Motion Fusion:
该步骤的目的是**使用reid特性和边界框重叠将跟踪对象与新的检测进行匹配。**将基于reid特征计算的轨迹与检测之间的余弦距离矩阵与基于轨迹预测计算的短期运动距离进行了融合。选择IOU距离最小的轨迹预测,用于细化reid距离矩阵。
如果每个检测和预测的轨迹预测之间的最小IOU距离太大,将其re-ID余弦距离增加两倍。这有助于减少由不正确的reid特性导致的ID SWITCH。通过计算reID余弦距离和最小IOU距离的加权和来计算的代价矩阵。在算法1中,λ是正则化reID和IOU距离的权重,l是用于计算IOU距离的轨迹预测数。我们设置了λ=0.75和l=10
通过将代价矩阵传递给匈牙利方法进行线性分配来找到匹配。
2、IOU Association
在re-ID特征和短期预测不足以关联数据的情况下,使用IOU距离来关联不匹配的轨迹和不匹配的检测。(类似于byteTrack中的二次匹配,在第一次匹配失败的unmatched集合中再次匹配)
3、Forecast Association
引入了一个新的数据关联步骤,其中轨迹预测被用于估计对象的位置在遮挡期间。在这个阶段,不匹配的轨迹要么是假阳性的,要么是被遮挡的。当对象被遮挡时,reid的视觉信息将不可用。轨迹预测可以提供时空信息,以估计物体在遮挡期间的位置。我们假设在帧中心的一个不匹配的轨迹很可能被遮挡。当跟踪没有与新检测没有关联时,轨道丢失时间会增加。丢失的时间阻止了一个未被发现的对象无限活动。算法2中设置了λ=0.5,maxTime=20和刷新=0.55。
将三步后不匹配的轨道的状态设置为丢失.如果一个轨道丢失了预定的时间,我们将该轨道删除。将最大丢失时间设置为30帧。
addition
:本文中的数据关联与byteTrack大致一样,都是分步骤匹配的思想,往往这样的匹配规则才能够更少的丢失有用的信息。
Experiments