Chained-Tracker详细心得
一、 创新
- 提出了一个在线的端到端MOT模型,同时优化目标检测,特征提取和数据关联。这个网络是第一个将数据关联问题转化为成对目标检测问题。
- 设计了一个联合注意模块来为框对特征进行强化,进一步提高了CTracker的性能。
二、 介绍
以往的任务大多将MOT分类三个部分,难以同时优化,从而会导致次优化,并且分离的三部分相较于端到端的MOT网络,计算量太大。并且最后数据关联的阶段也会受到前面的检测的阶段的影响(传统的检测没有考虑相邻帧之间的时间关系)。
后来为了提升精度,部分网络加入了ReID分支和注意力机制,ReID更有利于提取强壮的外貌特征来进行数据关联,注意力机制有助于集中关注那些主要特征,从而区别于复杂的背景。尽管有效,但是耗费算例大,增加模型复杂度。
为了解决以上问题,本论文提出了一个新颖的Online方法:Chained-Tracker(CTracker),联合MOT三步骤形成一个端到端的模型。它以两个相邻帧对为输入,在一个单一的回归模型中进行联合检测和跟踪,同时对相邻两帧对中同时出现的成对边界框进行回归。
为了进一步提高CTracker的性能,引入一个联合注意力模块来预测置信度映射。它使用两个分支模型来指导成对边界框回归分支关注空间区域信息。一个是目标分类分支,用于预测边界框对中的第一个框的是否为前景的置信度得分。另一个是ID验证分支,其评估边界框对中的目标是否为相同目标,从而促进回归分支的精度。最后边界框对根据分类分支置信度进行过滤,然后在两个相邻帧对中的公共帧中生成的边界框对使用IoU进行匹配关联。如此,追踪过程就可以通过链接所有的相邻帧对实现。
三、 相关工作
不同于基于检测的追踪(TBD)模式,我们的方法只需要一个简单且高效的整合模型来实现检测和追踪。
也不同于一般的one-shot方法(局部端到端),我们的方法完全的联合了检测和追踪,将目标检测,特征提取和数据关联整合进一个简单的模型。
在使用注意力辅助方法方面,不同于其他网络使用复杂的注意力模型进行局部的边界框的数据关联优化,本网络使用一个更高效的简单的全图层次的目标注意力和身份注意力来同时提升检测和追踪表现。
四、 方法
1. 问题设置
给予一个
N
N
N帧的图片序列
{
F
t
}
t
=
1
N
\{F_t\}_{t=1}^N
{Ft}t=1N,MOT任务是要输出所有的在序列中出现的目标的边界框
{
G
t
}
t
=
1
N
\{G_t\}_{t=1}^N
{Gt}t=1N和对应的身份标签
{
Y
t
G
T
}
t
=
1
N
\{Y_t^{GT}\}_{t=1}^{N}
{YtGT}t=1N。
其中
F
t
∈
R
c
×
w
×
h
F_t \in R^{c×w×h}
Ft∈Rc×w×h代表第
t
t
t帧,
G
t
∈
R
4
G_t \in R^4
Gt∈R4代表第
t
t
t帧中的
K
t
K_t
Kt个目标的真实边界框。
Y
t
G
T
∈
Z
Y_t^{GT} \in Z
YtGT∈Z代表他们的身份ID标签。
之前的模型都是将MOT任务分为多个部分,数据关联的可信程度依赖于检测的结果的准确性。为了更好的使用数据关联,我们提出了一个新颖的CTracker,使用一个单一的网络来同时获得目标检测、特征提取和数据关联。
2. Pipeline
基本框架
使用两个相邻帧对作为输入,每一对相邻帧称之为节点。第一个节点 ( F 1 , F 2 ) (F_1, F_2) (F1,F2)最后一个(第 N N N个)节点是 ( F N , F N + 1 ) (F_N, F_{N+1}) (FN,FN+1)。 F N F_N FN是最后一帧,所以 F ( N + 1 ) F_(N+1) F(N+1)直接使用 F N F_N FN信息。
输入节点 ( F t − 1 , F t ) (F_{t-1}, F_t) (Ft−1,Ft), CTracker可以对两帧中都出现的相同的目标生成边界框对 { D t − 1 i , D ^ t i } i = 1 n t − 1 \{D_{t-1}^i,\hat D_t^i \}_{i=1}^{n_{t-1}} {Dt−1i,D^ti}i=1nt−1。 n t − 1 n_{t-1} nt−1代表一共存在的相同目标对数, D t − 1 i ∈ D t − 1 ∈ R 4 D_{t-1}^i∈D_{t-1}\in R^4 Dt−1i∈Dt−1∈R4, D ^ t i ∈ D t ∈ R 4 \hat D_t^i∈D_t∈R^4 D^ti∈Dt∈R4代表这个节点的前后帧中对应的边界框。类似地获得下一节点 ( F t , F t + 1 ) (F_t, F_{t+1}) (Ft,Ft+1)中的边界框信息 { D t j , D ^ t + 1 j } j = 1 n t \{D_t^j,\hat D_{t+1}^j \}_{j=1}^{n_t } {Dtj,D^t+1j}j=1nt(见上图2)。
D ^ t i \hat D_t^i D^ti和 D t j D_t^j Dtj代表在这两个节点的共同帧上的检测结果,这两个框应该只有微小的差别。然后使用一个简单的匹配策略去连接着两个框(并非使用复杂的外貌特征策略)。通过在给定的序列上串联所有节点,我们可以得到所有被检测目标的长轨迹。
节点链接
下面简单使用 { D t − 1 , D ^ t } \{D_{t-1},\hat D_t\} {Dt−1,D^t}代替 { D t − 1 i , D ^ t i } i = 1 n t − 1 \{D_{t-1}^i,\hat D_t^i\}_{i=1}^{n_{t-1}} {Dt−1i,D^ti}i=1nt−1。
首先,在节点内, D 1 D_1 D1中的检测的边界框 D 1 i D_1^i D1i会直接初始化一个轨迹,并随机分配一个ID。
然后,对于其他节点 t t t,通过计算 D ^ t \hat D_t D^t和 D t D_t Dt中边界框的IoU来实现链接 ( F t − 1 , F t ) (F_{t-1}, F_t) (Ft−1,Ft)和 ( F t , F t + 1 ) (F_t, F_{t+1}) (Ft,Ft+1), D ^ t \hat D_t D^t是前一节点的后帧检测, D t D_t Dt是当前节点的前帧检测。获得的IoU关系后, D ^ t \hat D_t D^t和 D t D_t Dt通过KM算法(匈牙利匹配算法)相互匹配。对于每个匹配上的 D ^ t i \hat D_t^i D^ti和 D t j D_t^j Dtj, D ^ t i \hat D_t^i D^ti所在的轨迹通过直接增加 D t j D_t^j Dtj来进行拓展更新。任何未匹配到的 D t k D_t^k Dtk初始化为新的轨迹,分配新的身份。通过连续链接所有的相邻结点,建立每个目标的轨迹。
鲁棒性增强(尤其遮挡对抗)
为了增强模型对各种遮挡(可能会导致中间帧的检测失败)和短期消失(后快速出现)鲁棒性,我们保留终止的轨迹和对应的ID σ σ σ 帧,在这 σ σ σ帧中持续使用一个简单的持续速度预测模型来进行运动估计,寻找他们的匹配目标。
例如:假设目标 ( D t − 1 l , D ^ t l ) (D_{t-1}^l,\hat D_t^l) (Dt−1l,D^tl)在 t t t节点无法找到他的匹配目标(即在 t t t节点的前帧检测中,目标 l l l的边界框不存在)。我们根据 D t − 1 l D_{t-1}^l Dt−1l( D ^ t l \hat D_t^l D^tl可能存在遮挡或者其他原因不可靠),使用持续速度预测模型来预测他在 t + τ t + τ t+τ帧上的边界框 P t + τ l ( 1 < = τ < = σ ) P_{t + τ}^l{(1 <= τ <= σ)} Pt+τl(1<=τ<=σ)。当我们使用 { D t + τ − 1 , D ^ t + τ } \{D_{t + τ-1},\hat D_{t + τ}\} {Dt+τ−1,D^t+τ}和 { D t + τ , D ^ t + τ + 1 } \{D_{t + τ},\hat D_{t + τ+1}\} {Dt+τ,D^t+τ+1}链接节点 t + τ − 1 t + τ-1 t+τ−1和 t + τ t + τ t+τ时,将当前所有的保留的所有目标的预测框 P t + τ P_{t + τ} Pt+τ加入到 D ^ t + τ \hat D_{t + τ} D^t+τ中,和 D t + τ D_{t + τ} Dt+τ进行匹配,如果 P t + τ i P_{t + τ}^i Pt+τi匹配成功,则轨迹就会连接到这个新的目标框上进行拓展。
有效性和局限性
有效性:
目标在
t
t
t帧出现,但是在
t
−
1
t-1
t−1帧未出现,那么链节点
(
F
t
−
1
,
F
t
)
(F_{t-1},F_t)
(Ft−1,Ft)中可能不存在这个节点的边界框对,但是只要目标在
t
+
1
t+1
t+1帧中出现了,那么他在下一个链节点
(
F
t
,
F
t
+
1
)
(F_{t},F_{t+1})
(Ft,Ft+1)就会存在边界框对,那么就会给他分配一个新的轨迹和ID。同理目标在
t
−
1
t-1
t−1帧出现,但是在
t
t
t帧未出现,那么他在节点
(
F
t
,
F
t
+
1
)
(F_t,F_{t+1})
(Ft,Ft+1)上也不会存在边界框对,则他的轨迹就会终结。
局限性:
由于链接过程中并非完全参数化的,使用了IoU,所以无法整体进行回归优化,但是回归模型占据了主要的任务,也不需要从链接操作中获得反馈,所以我们仍然认为他是端到端。当然,如果是纯粹的端到端,那么IoU操作需要做出改变。
3. 网络结构
总览
网络使用两个相邻帧(一个节点)作为输入,回归相同目标的边界框。使用ResNet-50 作为backbone提取高层语义特征。然后集成FPN生成多尺度特征表征,用于后续的预测。为了相邻帧的目标关联,每个独立帧的不同尺度级特征图应该首先连接到一起,然后喂入预测网络对边界框对进行回归。见图3,成对边界框回归分支为每个目标返回一个边界框对, 目标分类分支预测一个目标是前景的置信度得分。目标分类和ID确认分支都是用来引导注意力的,从而避免无关混乱信息的干扰。
补充:
如下图1,使用ResNet50和FPN构建5个等级的多尺度特征表征,记为{P2, P3, P4, P5, P6},然后我们在每个尺度上结合两个相邻帧的特征来进行后续的预测,图下2。(代码中直接将两个图片同时通过上面共享的backbone训练,提取不同尺寸的特征,每种尺度的特征都会进行预测,然后通过soft-nms进行后处理)。
组合的特征使用两个平行的分支来进行目标分类和ID确认。两分支使用4个连续的3x3卷积和relu激活层交错进行特征学习,最后使用一个3x3的卷积加sigmoid激活函数进行预测置信度。
最后,我们将上述两种预测相乘得到联合注意映射。注意力映射和组合特征空间大小相同,但是只有一个通道,所以首先在注意映射上使用广播机制,以便获得可适应的形状。然后使用元素相乘来作为注意力指导获得注意力特征,然后使用带有四个卷积层的成对框回归分支来为感兴趣的目标生成成对的边界框。从5种不同尺度特征生成的边界框都使用soft-nms进行后处理。
成对边界框回归
我们为成对框回归分支提出链锚,以同时回归两个框。链锚作为一种目标检测方向锚的新颖推广,密集的放在空间网格中,每个链锚需要预测统一目标实体在一个相邻帧(节点)的两个边界框。(我看代码中他的锚是在根据物种FPN特征大小存在物种不同的尺度的锚框,然后一口气将这五种锚框全部找到,一锚框位置,这一个联合特征图中两张特征图共享,然后锚用于后面的focal loss 计算)。
在数据集上的所有真实框上使用K-means聚类来解决和现实场景的大尺度变化,从而获得链锚的尺度。每个聚类被分配到相应的FPN级别,以便以后进行尺度的具体预测。检测到的边界框对中,首先对每对框中的第一个框进行soft-NMS进行后处理,然后基于分类分支的置信度得分进行过滤。最终,配对剩余的检测框对按照之前说的处理,给予新ID和轨迹还是终止。分类分支和成对边界框回归分支只堆积了四个3X3卷积层+relu激活层,保证模型轻量。
补充:
为了确定链锚的尺度,我们对数据集中所有的真实边界框运行k-means聚类,然后选取5个聚类中心作为FPN不同级别下链锚点的尺度。在我们的实验中,对于{P2, P3, P4, P5, P6},我们分别使用{38,86,112,156,328}像素区域块,所有尺度的链锚采用相同的2.9的比例扫描。
联合注意力模型(JAM)
用于在回归分支前的组合特征中来强调局部信息区域。见上图3的右边,ID 确认分支引入获得检测对中两个框是同一目标的置信度得分。ID确认分支和目标分类分支预测的置信度得分用作注意力映射,这两个是互补的。
特征重利用(MSM机制)
输入的是两个相邻帧,他们包括一个共同的中间帧,被使用了两次,为了推导时避免双倍的计算和存储,提出一个存储共享机制(MSM),直到下帧处理完毕前,用于暂时保存当前帧提取的特征以便重利用(下图4)。 对于最后的推导,
N
+
1
N+1
N+1帧特征直接复制N帧。使用MSM大概节省了一般的计算量和时间消耗。
4. 标签分配和损失设计
对于任意节点
(
F
t
,
F
t
+
1
)
(F_t, F_{t+1})
(Ft,Ft+1),让
A
t
i
=
(
x
a
t
,
i
,
y
a
t
,
i
,
w
a
t
,
i
,
h
a
t
,
i
)
A_t^i=(x_a^{t,i},y_a^{t,i},w_a^{t,i},h_a^{t,i})
Ati=(xat,i,yat,i,wat,i,hat,i)表示他第i个链锚(
x
a
t
,
i
x_a^{t,i}
xat,i,
y
a
t
,
i
y_a^{t,i}
yat,i表示其中心坐标,
w
a
t
,
i
w_a^{t,i}
wat,i,
h
a
t
,
i
h_a^{t,i}
hat,i表示相应的锚宽高)。使用类似于SSD的真实框匹配策略,使用一个额外的矩阵
M
M
M表示匹配的结果。
G
t
j
G_t^j
Gtj是
A
t
i
A_t^i
Ati在
F
t
F_t
Ft帧中相应的真实框(通过IoU高于阈值
T
p
T_p
Tp来判断),则
M
i
j
=
1
M_{ij}=1
Mij=1,相反低于小的阈值
T
n
T_n
Tn,则
M
i
j
=
0
M_{ij}=0
Mij=0。基于
M
M
M,为
A
t
i
A_t^i
Ati,将真实标签
c
c
l
s
i
c_{cls}^i
cclsi分配给Ctracker的分类分支:
c
c
l
s
i
=
{
1
,
if
Σ
j
=
1
K
t
M
i
j
=
1
0
,
if
Σ
j
=
1
K
t
M
i
j
=
0
(1)
c_{\mathrm{cls}}^{i}=\left\{\begin{array}{l} 1, \text { if } \Sigma_{j=1}^{K_{t}} M_{i j}=1 \\ 0, \text { if } \Sigma_{j=1}^{K_{t}} M_{i j}=0 \end{array}\right. \tag{1}
cclsi={1, if Σj=1KtMij=10, if Σj=1KtMij=0(1)
K
t
K_t
Kt表示
F
t
F_t
Ft帧总共的真实边界框数。公式表示,如果链锚和真实框IoU大于
T
p
T_p
Tp,则存在前景目标进行匹配,即为前景,标签为1。反之为0。
对于
A
t
i
A_t^i
Ati,假设预测的边界框
(
D
t
i
,
D
^
t
+
1
i
)
(D_t^i,\hat D_{t+1}^i)
(Dti,D^t+1i),相应的真实边界框为
(
G
t
j
,
G
t
+
1
k
)
(G_t^j,G_{t+1}^k)
(Gtj,Gt+1k),若为同一目标即都存在且为前景,则ID确认分支的真实标记记为1:
c
i
d
i
=
{
1
,
if
c
c
l
s
i
=
1
and
I
[
G
t
j
]
=
I
[
G
t
+
1
k
]
0
,
otherwise
(2)
c_{\mathrm{id}}^{i}=\left\{\begin{array}{l} 1, \text { if } c_{\mathrm{cls}}^{i}=1 \text { and } \mathcal{I}\left[G_{t}^{j}\right]=\mathcal{I}\left[G_{t+1}^{k}\right] \\ 0, & \text { otherwise } \end{array}\right.\tag{2}
cidi={1, if cclsi=1 and I[Gtj]=I[Gt+1k]0, otherwise (2)
I
[
G
t
j
]
\mathcal{I}[G_t^j ]
I[Gtj]代表边界框
G
t
j
G_t^j
Gtj对应的ID标签。
依据Faster R-CNN思想来回归
(
D
t
i
,
D
^
t
+
1
i
)
(D_t^i,\hat D_{t+1}^i)
(Dti,D^t+1i)相对于
A
t
i
A_t^i
Ati的偏移,其中
D
t
i
=
(
x
d
t
,
i
,
y
d
t
,
i
,
w
d
t
,
i
,
h
d
t
,
i
)
D_t^i=(x_d^{t,i},y_d^{t,i},w_d^{t,i},h_d^{t,i})
Dti=(xdt,i,ydt,i,wdt,i,hdt,i),使用
(
Δ
d
t
,
i
,
Δ
d
^
t
+
1
,
i
)
(Δ_d^{t,i},Δ_{\hat d}^{t+1,i})
(Δdt,i,Δd^t+1,i)代表偏移量,
(
Δ
g
t
,
j
,
Δ
g
t
+
1
,
k
)
(Δ_g^{t,j},Δ_{g}^{t+1,k})
(Δgt,j,Δgt+1,k)代表真实偏移量。则
Δ
d
t
,
i
=
(
Δ
d
,
x
t
,
i
,
Δ
d
,
y
t
,
i
,
Δ
d
,
w
t
,
i
,
Δ
d
,
h
t
,
i
)
Δ_d^{t,i}=(Δ_{d,x}^{t,i},Δ_{d,y}^{t,i},Δ_{d,w}^{t,i},Δ_{d,h}^{t,i})
Δdt,i=(Δd,xt,i,Δd,yt,i,Δd,wt,i,Δd,ht,i),其中:
Δ
d
,
x
t
,
i
=
(
x
d
t
,
i
−
x
a
t
,
i
)
/
w
a
t
,
i
,
Δ
d
,
y
t
,
i
=
(
y
d
t
,
i
−
y
a
t
,
i
)
/
h
a
t
,
i
\begin{aligned} \Delta_{d, x}^{t, i}=\left(x_{d}^{t, i}-x_{a}^{t, i}\right) / w_{a}^{t, i}, & \Delta_{d, y}^{t, i}=\left(y_{d}^{t, i}-y_{a}^{t, i}\right) / h_{a}^{t, i} \end{aligned}
Δd,xt,i=(xdt,i−xat,i)/wat,i,Δd,yt,i=(ydt,i−yat,i)/hat,i
Δ
d
,
w
t
,
i
=
log
(
w
d
t
,
i
/
w
a
t
,
i
)
,
Δ
d
,
h
t
,
i
=
log
(
h
d
t
,
i
/
h
a
t
,
i
)
\begin{aligned} \Delta_{d, w}^{t, i} &=\log \left(w_{d}^{t, i} / w_{a}^{t, i}\right), \Delta_{d, h}^{t, i}=\log \left(h_{d}^{t, i} / h_{a}^{t, i}\right) \end{aligned}
Δd,wt,i=log(wdt,i/wat,i),Δd,ht,i=log(hdt,i/hat,i)
其余偏移类似计算。
则成对边界框回归分支的损失函数定义为两个检测偏移量的损失合:
L
r
e
g
(
Δ
d
t
,
i
,
Δ
d
^
t
+
1
,
i
,
Δ
g
t
,
j
,
Δ
g
t
+
1
,
k
)
=
∑
l
∈
{
x
,
y
,
w
,
h
}
[
smooth
L
1
(
Δ
d
,
l
t
,
i
−
Δ
g
,
l
t
,
j
)
+
smooth
L
1
(
Δ
d
^
,
l
t
+
1
,
i
−
Δ
g
,
l
t
+
1
,
k
)
]
/
8
(3)
\begin{array}{l} L_{r e g}\left(\Delta_{d}^{t, i}, \Delta_{\hat{d}}^{t+1, i}, \Delta_{g}^{t, j}, \Delta_{g}^{t+1, k}\right) \\ =\sum_{l \in\{x, y, w, h\}}\left[\operatorname{smooth}_{L_{1}}\left(\Delta_{d, l}^{t, i}-\Delta_{g, l}^{t, j}\right)+\operatorname{smooth}_{L_{1}}\left(\Delta_{\hat{d}, l}^{t+1, i}-\Delta_{g, l}^{t+1, k}\right)\right] / 8 \end{array}\tag{3}
Lreg(Δdt,i,Δd^t+1,i,Δgt,j,Δgt+1,k)=∑l∈{x,y,w,h}[smoothL1(Δd,lt,i−Δg,lt,j)+smoothL1(Δd^,lt+1,i−Δg,lt+1,k)]/8(3)
s
m
o
o
t
h
L
1
smooth_{L_1 }
smoothL1是
L
1
L_1
L1 loss。
CTracker的总共损失为:
L
a
l
l
=
∑
t
,
i
[
L
r
e
g
(
Δ
d
t
,
i
,
Δ
d
^
t
+
1
,
i
,
Δ
g
t
,
j
,
Δ
g
t
+
1
,
k
)
+
α
F
(
p
c
l
s
i
,
c
c
l
s
i
)
+
β
F
(
p
i
d
i
,
c
i
d
i
)
]
(4)
L_{a l l}=\sum_{t, i}\left[L_{r e g}\left(\Delta_{d}^{t, i}, \Delta_{\hat{d}}^{t+1, i}, \Delta_{g}^{t, j}, \Delta_{g}^{t+1, k}\right)+\alpha \mathcal{F}\left(p_{c l s}^{i}, c_{c l s}^{i}\right)+\beta \mathcal{F}\left(p_{i d}^{i}, c_{i d}^{i}\right)\right]\tag{4}
Lall=t,i∑[Lreg(Δdt,i,Δd^t+1,i,Δgt,j,Δgt+1,k)+αF(pclsi,cclsi)+βF(pidi,cidi)](4)
F
(
p
c
l
s
i
,
c
c
l
s
i
)
F(p_{cls}^i,c_{cls}^i )
F(pclsi,cclsi)和
F
(
p
i
d
i
,
c
i
d
i
)
F(p_{id}^i,c_{id}^i )
F(pidi,cidi)为分类分支和ID确认分支的focal loss,
p
c
l
s
i
p_{cls}^i
pclsi和
p
i
d
i
p_{id}^i
pidi代表分支的预测(置信度得分),α和β为权重参数。
五、 实验对比
六、 总结
设计了一个新颖的联合多目标检测和追踪框架Chained-Tracker,第一个端到端的模型。不同于其他的网络使用单帧图片进行输入,我们直接使用相邻帧对进行输入。使用一个联合注意力模块对相邻两帧中同一目标的一对边界框进行回归。使用简单的IoU信息,将两个连续帧通过共同帧上的点进行迭代链接。通过实验证明了本模型的可行性以及高效。
七、 补充
数据增强
- 随机应用一些SSD中引入的光度畸变。
- 通过在[0.3,0.8]区间内随机裁剪一个乘以一个随机因子大小的patch。只保留那些与裁剪斑块的IoMs(最小面积上的交集)大于0.2的真实框。
- 以20%的概率,使用一个范围为[1,3]的随机因子,通过填充ImageNet的平均像素值来扩展裁剪后的patch。
- 将扩展后的patch随机翻转,并将其调整为一个正方形的patch,其大小相当于原始图像短边的一半。
外貌特征实验
本实验抛弃了使用检测框的补丁级ReID特征来增强帧间的数据关联。但是后面又做了一个加入外貌特征的实验,在点链接的模型中,除了IoU,还通过增加一个外貌特征来计算外貌相似度,在MOT16上MOTA从67.6涨到68.5,IDF1从57.2涨到61.8,IDS从1897下降到983,追踪速度也从34.4fps下降到29.2fps。虽然速度下降了但是追踪表现更好了,证明本网络具有很好的扩展性。