TransCenter
论文标题:TransCenter: Transformers with Dense Queries for Multiple-Object Tracking
论文地址:http://arxiv.org/abs/2103.15145
论文源码: https://github.com/yihongxu/transcenter.
出自MIT,收录于CVPR2021.
Introduction
TransTrack和TrackFormer均采用边界框(bounding box,bbox),bbox表示法是非常直观的,它可以很好地和概率学方法和深度卷积神经网络相结合,因而在MOT中也广泛使用。在处理非常拥挤的场景时,因为GT框经常相互重叠,所以遮挡问题很难处理。因为这些bbox会在训练中使用,它不仅返回每个人的位置、宽度和高度,而且区分与每个轨迹相关的视觉外观。然而,在这种情况下,重叠bbox意味着训练一个视觉外观表示,该表示结合了两个甚至更多的人的外观信息,这就会造成关联的歧义。 当然,联合处理跟踪和分割任务(即进行MOTS任务)可以部分解决遮挡问题。然而,这需要有额外的像素级标注,这是非常繁琐和昂贵的。目前MOT的几个比较公认的基准数据集并没有分割标注。
受FairMOT和CenterTrack的启发,以及transformer在MOT领域的成功应用,作者设计了TransCenter,首次将transformer用于点跟踪之中。作者在文中说道,TransCenter是用来解决bbox跟踪中固有的遮挡问题,且并不需要分割级别的gt标注。TransCenter遇到的第一个难点便是密集点表示(比如中心热度图)的生成。作者提出了,在transformer中使用密集(像素级别)多尺度的query。整体结构上与TransTrack类似,TransCenter拥有两个解码器,一个用于检测任务,一个用于跟踪任务。解码器的query均是来源于当前帧,通过不同的学习层得到。不过当前帧的memory(encoder结构的输出)输入到检测解码器中,之前帧的memory输入到跟踪解码器之中。
Methodology
文中认为需要解决的问题
1、相对于bbox这种稀疏表示,中心热力图是一种密集型表示,但是引入输入图像大小缩放的密集query特征图,但是会产生巨大的内存消耗。
2、query是可能是高度重叠的,简单地增加非位置相关查询的数量可能会有许多错误检测和假阳性。
解决的方法
1、query大概由14k个产生巨大的内存计算消耗,收到DCN的影响,作者提出采用可变形的decoder。
2、TransCenter将多目标跟踪问题分为两个独立的子任务,将中心热图与双解码器架构结合,沿着时间的目标关联不仅取决于几何特征(如IoU),还取决于来自解码器的视觉特征(即外观特征)。
Structure
整个TransCenter的架构如图所示,第
t
t
t帧和第
t
−
1
t-1
t−1帧的图像被送入提取特征的backbone中来产生多尺度特征并捕获更细粒度的细节信息,然后,这些特征进入可变自注意力encoder中,获得多尺度memory特征图
M
t
M_t
Mt和
M
t
−
1
M_{t-1}
Mt−1 ,它们分别对应第
t
t
t帧图像和第$ t-1
帧
图
像
。
接
着
,
帧图像。接着,
帧图像。接着,M_t$被送入一个query学习网络,这是一个像素级的全连接网络,它输出一个包含密集多尺度检测query的特征图
D
Q
t
DQ_t
DQt,
D
Q
t
DQ_t
DQt 被送入另一个query学习网络产生密集多尺度跟踪query特征图
T
Q
t
TQ_t
TQt。接着,后面是两个可变decoder结构,图上从上向下分别是可变跟踪解码器(Deformable Tracking Decoder)和可变检测解码器(Deformable Detection Decoder)。先看检测解码器,它通过检测query
D
Q
t
D Q_t
DQt 从memory
M
t
M_t
Mt中查询当前帧信息从而输出多尺度检测特征$ DF_t$,跟踪解码器则利用跟踪query $ TQ_t$从memory
M
t
−
1
M_{t-1}
Mt−1中查询得到多尺度跟踪特征
T
F
t
TF_{t}
TFt。接着,检测多尺度特征
D
F
t
DF_t
DFt被用来进行中心热力图$ C_t$ 的估计和边框尺寸
S
t
S_t
St 估计。另一个分支上*,跟踪多尺度特征
F
t
F_t
Ft 和上一帧的中心热力图
C
t
−
1
C_{t-1}
Ct−1以及多尺度检测特征图
D
F
t
DF_t
DFt用来进行跟踪位移
T
t
T_t
Tt 的估计。
Pixel-Level Dense Multi-scale Queries
传统的transformer结构中,输出的元素数目和decoder输入的query数目相同,而且,每个输出对应一个寻找的实体(如行人检测框)。当推断中心热力图时,密集型的query符合热力图的表示,目标的中心坐标作为热力图预测的基础。这些query可以通过多尺度encoder生成的memory来生成,一个query learning network(QLN)通过像素级的前馈操作获得 D Q t DQ_t DQt,使用不同的query用于;两个不同的decoder,因此 D Q t DQ_t DQt通过另一个QLN通过生成 T Q t TQ_t TQt,这两个query会送入两个不同的decoder中。
事实上,密集query特征图的分辨率与输入图像的分辨率成正比有两个突出的优点。
- query可以是多尺度的,并利用encoder的多分辨率结构,允许非常小的目标被这些query捕获。
- 密集query也使网络更加灵活,能够适应任意大小的图像。更普遍而言,QLN的使用避免了以前的视觉transformer架构中所做的那样进行手工调整query大小和预先选择最大检测数量。
Fully Deformable Dual Decoder
TransCenter提出了一个全可变双解码器结构,这两个解码器并行处理检测和跟踪两个子任务。detection decoder利用注意力关联 D Q t DQ_t DQt到 M t M_t Mt上对第 t t t帧的图像 I t I_t It进行目标检测,tracking decoder关联 T Q t TQ_t TQt与 M t − 1 M_{t-1} Mt−1来将检测到的目标根据它们在前一帧图像$ I_{t-1}$的位置来进行数据关联。
具体来看,detection decoder利用多尺度 D Q t DQ_t DQt在多尺度特征图 M t M_t Mt 上进行搜索,得到多尺度检测特征 D F t DF_t DFt,它被后续head用于目标中心点定位和边框尺寸回归。tracking decoder在 M t − 1 M_{t-1} Mt−1特征图上寻找目标,并和帧 t t t上的目标进行关联,tracking decoder中的多头可变注意力其实是一个时序互相关模块,它寻找多尺度query T Q t TQ_t TQt 和 M t − 1 M_{t-1} Mt−1特征图之间的互相关系,并输出多尺度跟踪特征 T F t TF_t TFt,这个特征包含了跟踪分支进行 t t t到 t − 1 t-1 t−1的偏移预测需要的时序信息。
The Center, the Size and the Tracking Branches
两个解码器的输出是两个多尺度特征集,分别为检测特征
D
F
t
DF_t
DFt和跟踪特征
T
F
t
TF_t
TFt,它们包含四个分辨率的特征图,分别是原图尺寸的$1 / 64 , 1 / 32 , 1 / 16
和
和
和 1 / 8
,
对
于
中
心
点
定
位
和
尺
寸
回
归
两
个
分
支
,
不
同
分
辨
率
的
特
征
图
通
过
可
变
形
卷
积
核
双
线
性
插
值
组
合
到
一
起
,
结
构
如
下
图
所
示
,
可
以
看
到
,
四
个
尺
度
的
特
征
图
输
出
进
去
通
过
逐
渐
上
采
样
融
合
到
一
起
,
得
到
最
大
的
特
征
图
,对于中心点定位和尺寸回归两个分支,不同分辨率的特征图通过可变形卷积核双线性插值组合到一起,结构如下图所示,可以看到,四个尺度的特征图输出进去通过逐渐上采样融合到一起,得到最大的特征图
,对于中心点定位和尺寸回归两个分支,不同分辨率的特征图通过可变形卷积核双线性插值组合到一起,结构如下图所示,可以看到,四个尺度的特征图输出进去通过逐渐上采样融合到一起,得到最大的特征图 \mathbf{C}{t} \in[0,1]^{H / 4 \times W / 4}
,
它
用
于
中
心
热
力
图
的
生
成
。
类
似
下
图
,
尺
寸
回
归
也
会
产
生
一
个
类
似
的
最
终
特
征
图
,它用于中心热力图的生成。类似下图,尺寸回归也会产生一个类似的最终特征图
,它用于中心热力图的生成。类似下图,尺寸回归也会产生一个类似的最终特征图\mathbf{S}{t} \in \mathbb{R}^{H / 4 \times W / 4 \times 2} $,它拥有两个通道,分别表示宽度核高度两个方向的尺寸。
接着考虑跟踪分支,和上面两个分支的处理思路一样(参数不同)得到两个多尺度特征图,尺寸也为 1 / 4 1/ 4 1/4的原图分辨率。接着这两个特征图和上一帧中心热力图缩放后的结构联结到一起,依据这个特征图,类似其他分支,通过卷积操作计算最终输出即目标的位移$ \mathbf{T}_{t} \in \mathbb{R}^{H / 4 \times W / 4 \times 2}$,它也是两个通道的,表示水平方向和垂直方向的位移预测。
Training TransCenter
TransCenter的训练是中心热力图分类、目标尺寸回归和跟踪位移回归三个任务联合训练的。
Center Focal Loss
首先是中心预测分支,为了训练这个分支首先需要构建GT热力图
C
∗
∈
[
0
,
1
]
H
/
4
×
W
/
4
\mathbf{C}^{*} \in[0,1]^{H / 4 \times W / 4}
C∗∈[0,1]H/4×W/4,这里的思路和CenterTrack一致,通过考虑以每
K
K
K个GT目标为中心的高斯核的最大响应来构建
C
∗
\mathbf{C}^{*}
C∗。公式层面看,对每个像素位置
(
x
,
y
)
(x,y)
(x,y)而言,它的GT热力图通过下式计算,这里的
(
x
k
,
y
k
)
(x_k,y_k)
(xk,yk)为GT目标中心,
G
(
⋅
,
⋅
;
σ
)
G(\cdot, \cdot ; \sigma)
G(⋅,⋅;σ)是扩展为
σ
\sigma
σ的高斯核函数,在该工作中,
σ
\sigma
σ与目标的大小成比例。
C
x
y
∗
=
max
k
=
1
,
.
.
.
,
K
G
(
(
x
,
y
)
,
(
x
k
,
y
k
)
;
σ
)
\mathbf {C}_{xy}^{*} = \max_{k=1,...,K}G((x,y),(x_{k},y_{k});\sigma)
Cxy∗=k=1,...,KmaxG((x,y),(xk,yk);σ)
计算出GT热力图
C
∗
\mathbf{C}^{*}
C∗和预测的热力图就可以计算Focal loss。超参数
α
=
2
,
β
=
4
\alpha=2,\beta=4
α=2,β=4
L
c
=
1
K
∑
x
y
{
(
1
−
C
x
y
)
α
log
(
C
x
y
)
,
C
x
y
∗
=
1
(
1
−
C
x
y
∗
)
β
(
C
x
y
)
α
log
(
1
−
C
x
y
)
,
o
t
h
e
r
w
i
s
e
L_{c}= \frac {1}{K} \sum_{xy} \begin{cases} (1-C_{xy})^{\alpha}\log(\mathbf {C}_{xy}) ,&& \mathbf {C}_{xy}^{*}=1 \\ (1-C_{xy}^{*})^{\beta}(\mathbf {C}_{xy})^{\alpha}\log(1-\mathbf {C}_{xy}), &&otherwise \end{cases}\\
Lc=K1xy∑{(1−Cxy)αlog(Cxy),(1−Cxy∗)β(Cxy)αlog(1−Cxy),Cxy∗=1otherwise
Sparse Regression Loss
从整个pipeline那个图上看,其实尺寸回归和位移回归分别对应
S
t
\mathbf{S}_t
St 和
T
t
\mathbf{T}_t
Tt,下面为了叙述方便简称为$ \mathbf{S}
和
和
和\mathbf{T}
。
对
。对
。对\mathbf{S}
和
和
和 \mathbf{T}$的监督只发生在目标中心点上,即
C
x
y
∗
=
1
C_{x y}^{*}=1
Cxy∗=1处,对尺寸的回归采用
L
1
L_1
L1损失,公式如下
L
S
=
1
K
∑
x
y
{
∣
∣
S
x
y
−
S
x
y
∗
∣
∣
1
,
C
x
y
∗
=
1
0
,
o
t
h
e
r
w
i
s
e
L_{S}= \frac {1}{K} \sum_{xy} \begin{cases} ||\mathbf {S}_{xy}-\mathbf {S}_{xy}^{*}||_{1} ,&& \mathbf {C}_{xy}^{*}=1 \\ 0, &&otherwise \end{cases}\\
LS=K1xy∑{∣∣Sxy−Sxy∗∣∣1,0,Cxy∗=1otherwise
跟踪分支的损失计算
L
T
L_{T}
LT和
L
S
L_{S}
LS是类似的,但是它作用于跟踪输出和相应的GT而不是目标的尺寸。同时,为了保证
L
T
L_{T}
LT和
L
S
L_{S}
LS的稀疏性,额外加上了一给L1损失,记作
L
R
L_{R}
LR,它是一个边框损失,边框来源于尺寸特征图
S
t
S_{t}
St和GT中心点。
所以整个训练损失定义为下。
L
=
L
C
+
λ
S
L
S
+
λ
T
L
T
+
λ
R
L
R
L = L_{C}+\lambda_{S}L_{S}+\lambda_{T}L_{T}+\lambda_{R}L_{R}
L=LC+λSLS+λTLT+λRLR
Experiment