QDTrack
论文标题:Quasi-Dense Similarity Learning for Multiple Object Tracking
论文地址:https://arxiv.org/pdf/2006.06664.pdf
论文源码:https://github.com/SysCV/qdtrack
收录于2021CVPR
Motivation
过去工作,相似度学习知识是作为一个检测后的事后阶段,并且只是用稀疏GT框作为训练样本。事实上,如果目标的表示被尽可能的学到,那么就使用embedding的最近邻方法也可以关联和区别实例。
除了GT框,其实密集的检测框也是有监督价值的,接近GT框的检测框,可以提供类似正样本的参考。相反接近背景的可以作为负样本的参考。
作者提出的QDTrack密集匹配一对图片上的上百个感兴趣区域,通过对比损失进行学习参数,密集采样会覆盖图片上大多数的信息区域。通过对比学习,一个样本会被训练同时区分所有的Proposal,相较于只使用GT标签来训练监督,更加的强大且增强了实例的相似度学习。对于消失轨迹的处理,会将背景作为一类,从而进行双向softmax增强一致性。实验采用使用轻量级embedding提取器和残差网络的Faster R-CNN来构建QDTrack模型。
并且不同于其他工作依赖运动模型和位移预测,将外貌相似度作为第二补充,QDTrack直接从密集连接对比对中学习实例相似度,且最终关联步骤只是简单的最近邻搜索。
Methodology
作者定义了数据关联时三种匹配:
- 密集匹配:匹配所有像素点的候选边界框
- 拟密集匹配:考虑信息丰富区域的可能目标候选间的匹配
- 稀疏匹配:只考虑GT标签作为匹配候选
利用准密集匹配进行多目标跟踪的主要成分是目标检测、实例相似性学习和对象关联。
Object detection
论文中使用带有FPN的Faster R-CNN作为检测器。整个任务可以优化为一个多任务损失函数:
L
d
e
t
=
L
r
p
n
+
λ
1
L
c
l
s
+
λ
2
L
r
e
g
\mathcal{L}_{det}=\mathcal{L}_{rpn}+\lambda_{1}\mathcal{L}_{cls}+\lambda_{2}\mathcal{L}_{reg}
Ldet=Lrpn+λ1Lcls+λ2Lreg
其中RPN损失
L
d
e
t
\mathcal{L}_{det}
Ldet、分类损失
L
c
l
s
\mathcal{L}_{cls}
Lcls、回归损失
L
r
e
g
\mathcal{L}_{reg}
Lreg与原论文相同。损失权重λ1和λ2默认设置为1.0
Quasi-dense similarity learning
如上图,一张关键图 I 1 I_{1} I1用于训练,随机选择一个时序邻域作为推理图片 I 2 I_{2} I2,邻域距离限制为 k ∈ [ − 3 , 3 ] k\in [-3,3] k∈[−3,3]个时间间隔。使用RPN从两张图片产生RoI,通过RoI Align从FPN来获得不同尺度的相应特征图。增加了一个轻量的embedding head,平行于原始的bounding box head,用于提取RoI的特征embedding。若RoI和某个GT的IoU大 α 1 = 0.7 \alpha_1=0.7 α1=0.7,则定义为该ID的正样本。若小于 α 2 = 0.3 \alpha_2=0.3 α2=0.3则定义为负样本。不同帧上的RoI关联相同的ID则互相为正样本,否则互为负样本。
假设关键图上有
V
V
V个样本用来训练,推理图上有
K
K
K个样本用作对比目标。对于每个训练样本,使用非参数softmax和交叉熵来优化特征embedding:
L
e
m
b
e
d
=
−
log
exp
(
v
⋅
k
+
)
exp
(
v
⋅
k
+
)
+
∑
k
−
exp
(
v
⋅
k
−
)
\mathcal {L}_{embed}=-\log \frac {\exp(\mathbf {v}\cdot\mathbf {k}^{+})}{\exp(\mathbf {v}\cdot \mathbf{k}^{+})+\sum_{k^{-}}\exp(\mathbf{v}\cdot\mathbf{k}^{-})}
Lembed=−logexp(v⋅k+)+∑k−exp(v⋅k−)exp(v⋅k+)
v
,
k
+
,
k
−
v,k^{+},k^{-}
v,k+,k−为训练样本,正目标样本,负样本的特征embedding。总体损失为所有训练样本的损失的均值,上面只显示了一个样本的一般情况。即只有一个相关的正样本情况下的损失。
不同于于过去方法中的只用GT框来进行稀疏匹配学习不同对象的相似性,这里需要匹配图上所有的ROI,即
I
1
I_{1}
I1上的每一个样本都要匹配
I
2
I_{2}
I2上的样本,所以这里的关键图上的训练样本在推理帧上就不一定只有一个正目标,所以需要将公式改写为:
L
e
m
b
e
d
=
−
∑
k
+
log
exp
(
v
⋅
k
+
)
exp
(
v
⋅
k
+
)
+
∑
k
−
exp
(
v
⋅
k
−
)
\mathcal {L}_{embed}=-\sum_{k^{+}}\log \frac {\exp(\mathbf {v}\cdot\mathbf {k}^{+})}{\exp(\mathbf {v}\cdot \mathbf{k}^{+})+\sum_{k^{-}}\exp(\mathbf{v}\cdot\mathbf{k}^{-})}
Lembed=−k+∑logexp(v⋅k+)+∑k−exp(v⋅k−)exp(v⋅k+)
但是上述公式,负样本依旧被使用了多次,而正样本只考虑了一次,所以需要重写改写公式:
L
e
m
b
e
d
=
l
o
g
[
1
+
∑
k
+
∑
k
−
exp
(
v
⋅
k
−
−
v
⋅
k
+
)
]
\mathcal {L}_{embed}=log[1+\sum_{k^{+}}\sum_{k_{-}}\exp(\mathbf {v}\cdot \mathbf{k}^{-}-\mathbf{v}\cdot\mathbf{k}^{+})]
Lembed=log[1+k+∑k−∑exp(v⋅k−−v⋅k+)]
进一步定义辅助L2损失:
L
a
u
x
=
(
v
⋅
k
∣
∣
v
∣
∣
⋅
∣
∣
k
∣
∣
−
c
)
2
\mathcal {L}_{aux}=(\frac {\mathbf{v}\cdot{k}}{||\mathbf{v}||\cdot||\mathbf{k}||}-c)^{2}
Laux=(∣∣v∣∣⋅∣∣k∣∣v⋅k−c)2
整个网络的联合优化为:
L
=
L
d
e
t
+
γ
1
L
e
m
b
e
d
+
γ
2
L
a
u
x
\mathcal{L}=\mathcal{L}_{det}+\gamma_{1}\mathcal{L}_{embed}+\gamma_{2}\mathcal{L}_{aux}
L=Ldet+γ1Lembed+γ2Laux
实验中
γ
1
\gamma_{1}
γ1设为0.25,
γ
2
\gamma_{2}
γ2设为1.0.采样的所有正样本和三次的负样本计算辅助损失。
Object association
例如,如果一个对象在匹配过程中没有目标或有多个目标,那么最近搜索将是不明确的。换句话说,一个对象在匹配的候选对象中应该只有一个目标。我们观察到,我们的推理策略,包括维护匹配的候选对象和测量实例相似性的方法,可以减轻这些问题。
Bi-directional softmax
假设
t
t
t帧中有
N
N
N个的检测对象,特征embedding为
n
n
n,以及过去
x
x
x帧中存在
M
M
M的候选对象,特征embedding为
m
m
m,则通过双向softmax得到对象与匹配候选对象之间的相似性
f
\mathbf{f}
f:
f
(
i
,
j
)
=
[
exp
(
n
i
⋅
m
j
)
∑
k
=
0
M
−
1
exp
(
n
i
⋅
m
k
)
+
exp
(
n
i
⋅
m
j
)
∑
k
=
0
N
−
1
exp
(
n
k
⋅
m
j
)
]
\mathbf{f}(i,j)=[\frac {\exp(\mathbf{n_{i}\cdot\mathbf{m}_{j}})}{\sum_{k=0}^{M-1}\exp(\mathbf{n}_{i}\cdot\mathbf{m}_{k})}+\frac {\exp(\mathbf{n_{i}\cdot\mathbf{m}_{j}})}{\sum_{k=0}^{N-1}\exp(\mathbf{n}_{k}\cdot\mathbf{m}_{j})}]
f(i,j)=[∑k=0M−1exp(ni⋅mk)exp(ni⋅mj)+∑k=0N−1exp(nk⋅mj)exp(ni⋅mj)]
由这个
f
\mathbf{f}
f直接通过最简单的最近邻搜索获得最终匹配。
No target cases
若特征空间无目标对象,则不应和任何候选进行匹配。包括新出现的目标,消失的轨迹,以及一些假正性情况。通过双向softmax,这类目标和任何匹配候选最终都会获得很低的相似度得分。
当检测置信度很高时,那就是新目标,作为新的轨迹开端。实验过程中,对于得分很低的目标,以往操作会直接丢弃,不参与匹配轨迹,这里作者认为尽管大多是都是假正性的,但是任然是有用的,因为可能会有未来的目标会和他们相匹配,因此会保留。实验表明这样的操作会减少假正的数量。
Multi-targets cases
为了避免一个目标匹配上多个候选,会采用一个内间NMS进行去除后处理重复,对于检测置信度高于0.5的目标IoU上阈值设置为0.7保留,对应的,检测置信度低于0.5的,NMS下阈值设置为0.3直接丢弃。
Experiment