论文链接:https://arxiv.org/abs/2105.03247
文章侧重点
- 受到DERT启发,将目标检测中的
O
b
j
e
c
t
Object
Object
Q
u
e
r
y
Query
Query迁移到多目标追踪中,构造了
T
r
a
c
k
Track
Track
Q
u
e
r
y
Query
Query。这个出发点也决定MOTR也是一个基于检测的追踪。
- 当前许多基于检测的追踪方法是外观建模+运动建模 (后置处理,如卡尔曼滤波等),而MOTR提出了时序融合网络,利用
T
r
a
c
k
Track
Track
Q
u
e
r
y
Query
Query的逐帧更新,同时对外观和运动建模。
- MOTR为了保证时序建模的有效性,提出了基于轨迹的标签构造【tracklet-aware label assignment】训练策略+联合平均损失【collective average loss】增强模型的时序建模。
将
O
b
j
e
c
t
Object
Object
Q
u
e
r
y
Query
Query 变成
T
r
a
c
k
Track
Track
Q
u
e
r
y
Query
Query需要解决的问题
通常来讲,虽然目标检测与目标跟踪都是CV领域,但由于下端的根本任务不同,所以直接套用肯定有问题,所以要仔细设计。
- 用一个
T
r
a
c
k
Track
Track
Q
u
e
r
y
Query
Query追踪同一个目标。 因为DERT中的
O
b
j
e
c
t
Object
Object
Q
u
e
r
y
Query
Query是基于每一帧识别,每一个目标和
O
b
j
e
c
t
Object
Object
Q
u
e
r
y
Query
Query并不存在对应关系,如下图(a)。但多目标追踪需要对序列中每个目标生成追踪轨迹,这必然要求目标轨迹的一致性,不能发生ID Switch的问题。 这就意味着目标检测+目标轨迹匹配都要用
T
r
a
c
k
Track
Track
Q
u
e
r
y
Query
Query来实现,这也是端到端的精髓了,取消后置处理。本文引入基于轨迹的标签构造【tracklet-aware label assignment】训练策略,使得用同一个ID的边界框去监督训练检测+匹配的过程。
- 对新出现目标和消失目标的处理。 因为多目标追踪中会面临某个目标突然消失或突然出现等情况,所以固定长度的
T
r
a
c
k
Track
Track
Q
u
e
r
y
Query
Query并无法满足实际的需求。故本文提出了两个变量集合——
T
r
a
c
k
Track
Track
Q
u
e
r
y
Query
Query(可变长度)和
D
e
t
e
c
t
Detect
Detect
Q
u
e
r
y
Query
Query(固定长度)来处理目标出现和消失等情况。 如上图(b),对于每一帧都要迭代式更新
T
r
a
c
k
Track
Track
Q
u
e
r
y
Query
Query,将消失的目标将其对应的
T
r
a
c
k
Track
Track
Q
u
e
r
y
Query
Query删去,并且每一帧用
D
e
t
e
c
t
Detect
Detect
Q
u
e
r
y
Query
Query检测该帧有多少目标,新目标通过
D
e
t
e
c
t
Detect
Detect
Q
u
e
r
y
Query
Query检测出来加入
T
r
a
c
k
Track
Track
Q
u
e
r
y
Query
Query的集合中。具体过程如下图所示:
总体网络结构——时序融合网络
可以看到,上图的结构解析如下:
- Enc 表示特征提取阶段:Backbone网络+Deformable DERT的Encoder;
- Dec 表示Deformable DERT的Decoder。
- 在第一帧由于追踪目标还未出现,故输入是固定长度的
q
d
q_d
qd?和为空集的
q
t
r
q_{tr}
qtr?,而后续帧的输入就是
q
d
q_d
qd?和上一帧传递的
q
t
r
q_{tr}
qtr?。
- 输出是中间态特征,用于生成追踪预测结果和QIM的输入。
QIM——Query交互模块
此模块的作用是处理目标的出现和消失等情况。图中的分数表示Head预测追踪目标的分类得分。
- 输入:Decoder输出的中间态特征,如上图最左侧输入。黄色部分表示
q
d
q_d
qd?,橙色为
q
t
r
q_{tr}
qtr?。
- 第一步:将其和Head预测追踪目标的分类得分,分别输入到处理(a)目标出现、(b)目标消失两个分支中。这里分别设定了两个阈值作为filter,筛选有效的query。
- 第二步:对于 (a)目标出现分支中,将分类分数大于阈值的检测目标视为新增目标。
- 第三步:对于 (b)目标消失分支中,当筛选出新的
T
r
a
c
k
Track
Track
Q
u
e
r
y
Query
Query之前,要经过 【时序增强网络】TAN ,该网络本质是一个self-attention机制。输入是本帧的目标query
q
t
r
i
q_{tr}^i
qtri?、第一步(b)分支输出的中间态特征。该输出是下一帧的追踪目标。
- 输出:第二步与第三步的输出拼接起来为下一帧的追踪目标
q
t
r
i
+
1
q_{tr}^{i+1}
qtri+1?。
训练逻辑
Tracklet-Aware Label Assignment
【目的是为
T
r
a
c
k
Track
Track
Q
u
e
r
y
Query
Query 对轨迹与目标的一对一关系建模。】 TALA 有两种策略,分别对应着
D
e
t
e
c
t
Detect
Detect
Q
u
e
r
y
Query
Query和
T
r
a
c
k
Track
Track
Q
u
e
r
y
Query
Query的训练策略
-
针对
D
e
t
e
c
t
Detect
Detect
Q
u
e
r
y
Query
Query :沿用DERT中的检测策略专门来检测追踪序列中每一帧出现的新目标。训练策略是对于
D
e
t
e
c
t
Detect
Detect
Q
u
e
r
y
Query
Query与新增目标的GroundTruth进行双向匹配。 -
针对
T
r
a
c
k
Track
Track
Q
u
e
r
y
Query
Query :本文设计一个目标一致的训练策略。本帧的
T
r
a
c
k
Track
Track
Q
u
e
r
y
Query
Query由上一帧的
T
r
a
c
k
Track
Track
Q
u
e
r
y
Query
Query+
D
e
t
e
c
t
Detect
Detect
Q
u
e
r
y
Query
Query。对于第一帧,
T
r
a
c
k
Track
Track
Q
u
e
r
y
Query
Query为空集。
Collective Average Loss
【目的是为
T
r
a
c
k
Track
Track
Q
u
e
r
y
Query
Query 对时序信息的传递进行前后帧建模。】 通常的训练策略是计算帧的loss,如此策略忽略了序列中存在的关于目标的运动信息。故本文设计了一个联合平均损失预测以video clip为基本单位的损失。联合平均损失=(单帧的追踪损失+单帧的检测损失)之和 / 帧数。
与强同学。
|