论文地址:Simple online and realtime tracking with a deep association metric
Simple online and realtime tracking with a deep association metric
一、 摘要
在原始的SORT的基础上,加入外貌特征,能够实现在长时间遮挡的情况下进行追踪目标,有效减少IDSW。基于原始框架的基础上,将大量的算力花在一个离线的预训练上,使用一个大规模的行人ReID数据集来进行一个深度关联矩阵的学习。在在线应用中,我们利用视觉外观空间中的最近邻居查询建立跟踪关联的测量。
二、 介绍
随着检测器的强大,检测后追踪的范式逐渐变成主流。这种模式下,目标轨迹通常在一次处理整批视频的全局优化问题中被发现。但是这种批处理的方法很难适用于目标的身份在每个时间都需要被获得的在线环境。
SORT在高帧率的视频上取得了很好的结果,强调了检测器对于整体追踪的重要性,但是同样的它也存在较高的IDSW,这是因为所采用的关联度量只有在状态估计不确定性较低时才是准确的,因此他在处理前景遮挡方面存在缺陷。
我们使用一个组合了运动和外貌的更加有信息的矩阵来代替关系矩阵。实践中使用一个在一个大规模ReID数据集上来预训练好的辨别行人的卷积神经网络。通过加入这个网络,增强对丢失和遮挡的鲁棒性,并且保持模型的实用高效。
三、 DeepSORT
我们采用结合递归卡尔曼滤波的传统单假设跟踪方法,逐帧进行数据关联。
1. 追踪处理和状态估计
我们假设了一个非常一般的跟踪场景,摄像机没有校准,我们也没有可用的自我运动信息。定义追踪环境: ( u , v , γ , h , x ˙ , y ˙ , γ ˙ , h ˙ ) (u,v,γ,h,\dot x,\dot y,\dot γ,\dot h) (u,v,γ,h,x˙,y˙,γ˙,h˙), ( u , v ) (u,v) (u,v)是边界框的中心位置, γ γ γ长宽比, h h h表示高度, 以及它们在图像坐标中的速度。
使用一个匀速运动的标准卡尔曼滤波观察模型,其中我们以边界坐标 ( u , v , γ , h ) (u,v,γ,h) (u,v,γ,h)作为对物体状态的直接观测。对于每个轨迹 k k k,在他们最后一次匹配成功后开始计数 a k a_k ak,计数从 0 0 0开始,期间使用匀速卡尔曼滤波预测位置。当丢失计数大于阈值 A m a x A_{max} Amax的时候,删除轨迹。对于未匹配上已有轨迹的新检测生成新的假设轨迹,这些轨迹前三帧被分类为暂时的,在此期间,我们期望在每个时间步骤中都有一个成功的度量关联。在前三帧中没有成功地与测量相关联的轨迹将被删除。
2. 分配问题
为了将卡尔曼滤波预测状态和新抵达的测量状态建立一个分配任务,我们通过组合两个相似矩阵来整合运动和外貌信息。
计算卡尔曼预测状态和新抵达的测量状态之间的马氏距离来加入运动信息:
d
(
1
)
(
i
,
j
)
=
(
d
j
−
y
i
)
T
S
i
−
1
(
d
j
−
y
i
)
(1)
d^{(1)}(i, j)=\left(\boldsymbol{d}_{j}-\boldsymbol{y}_{i}\right)^{\mathrm{T}} \boldsymbol{S}_{i}^{-1}\left(\boldsymbol{d}_{j}-\boldsymbol{y}_{i}\right) \tag{1}
d(1)(i,j)=(dj−yi)TSi−1(dj−yi)(1)
(
y
i
,
S
i
)
(y_i,S_i)
(yi,Si)表示第
i
i
i条轨迹分布在测量空间中的投影,
d
j
d_j
dj表示第
j
j
j个检测框。使用这个矩阵,通过设置马氏距离阈值95%置信区间来排除不可能的关联。
我们用一个指示器来表示:
b
i
,
j
(
1
)
=
1
[
d
(
1
)
(
i
,
j
)
≤
t
(
1
)
]
(2)
b_{i, j}^{(1)}=\mathbb{1}\left[d^{(1)}(i, j) \leq t^{(1)}\right] \tag{2}
bi,j(1)=1[d(1)(i,j)≤t(1)](2)
如果第
i
i
i个轨迹和第
j
j
j个检测是可容许的则置1,四个维度测量空间的相应马氏阈值为
t
(
1
)
=
9.4877
t^{(1)} = 9.4877
t(1)=9.4877。
当运动不确定性较低是,引入马氏距离是一个合适的关联矩阵。但是卡尔曼滤波对于目标位置的预测是粗糙的,且摄像头的可以引入高速的位移,因此我们需要第二个矩阵来解决分配问题。
对于每个检测边界框
d
j
d_j
dj,计算外貌描述符
r
j
r_j
rj,
∣
∣
r
j
∣
∣
=
1
||r_j ||=1
∣∣rj∣∣=1。设置
R
k
=
{
r
k
(
i
)
}
k
=
1
L
k
R_k = \{ r_k^{(i)}\}_{k=1}^{L_k}
Rk={rk(i)}k=1Lk,
L
k
=
100
L_k = 100
Lk=100 ,表示每个轨迹
k
k
k的 个关联外貌。第二个矩阵测量第
i
i
i个轨迹和第
j
j
j个检测在外貌特征的最小余弦距离:
d
(
2
)
(
i
,
j
)
=
min
{
1
−
r
j
T
r
k
(
i
)
∣
r
k
(
i
)
∈
R
i
}
(3)
d^{(2)}(i, j)=\min \left\{1-\boldsymbol{r}_{j}{ }^{\mathrm{T}} \boldsymbol{r}_{k}^{(i)} \mid \boldsymbol{r}_{k}^{(i)} \in \mathcal{R}_{i}\right\} \tag{3}
d(2)(i,j)=min{1−rjTrk(i)∣rk(i)∈Ri}(3)
根据此度量,我们引入一个二元变量表示关联是否可进行:
b
i
,
j
(
2
)
=
1
[
d
(
2
)
(
i
,
j
)
≤
t
(
2
)
]
(4)
b_{i, j}^{(2)}=\mathbb{1}\left[d^{(2)}(i, j) \leq t^{(2)}\right] \tag{4}
bi,j(2)=1[d(2)(i,j)≤t(2)](4)
阈值容易确定,在实践中,我们使用一个预先训练好的CNN来计算边界框的外观描述符。
将两个特征进行组合:
c
i
,
j
=
λ
d
(
1
)
(
i
,
j
)
+
(
1
−
λ
)
d
(
2
)
(
i
,
j
)
(5)
c_{i, j}=\lambda d^{(1)}(i, j)+(1-\lambda) d^{(2)}(i, j) \tag{5}
ci,j=λd(1)(i,j)+(1−λ)d(2)(i,j)(5)
当摄像机高速运动的情况下,可以设置
λ
=
0
λ=0
λ=0来控制损失值关注外貌特征。
还有个关联可容许矩阵,用于两个矩阵的门控:
b
i
,
j
=
∏
m
=
1
2
b
i
,
j
(
m
)
(6)
b_{i, j}=\prod_{m=1}^{2} b_{i, j}^{(m)} \tag{6}
bi,j=m=1∏2bi,j(m)(6)
3. 级联匹配
没有使用全局分配,而是采用级联匹配,解决使用马氏距离在匹配时存在的一些问题。注意,这个匹配级联优先于年龄较小的轨迹,也就是最近看到的轨迹。
在最后的匹配阶段,我们按照原始SORT中提出的方法,对年龄
n
=
1
n = 1
n=1的未确定和未匹配的轨迹集进行交集的联合关联运算,这有助于解释突然的外观变化,例如,由于部分遮挡与静态场景几何,并增加抗错误初始化的鲁棒性。
4. 深度外貌描述符
使用一个CNN在一个包括1100000个图片包括1261个行人的大规模的ReID数据集进行预训练,使他适用于一个行人轨迹上下文的深度矩阵学习。结构如下:
四、 总结
提出了一个SORT的拓展版本,通过使用一个预训练的关联矩阵整合外貌信息。因为这个拓展,使得网络能够应对长程遮挡。并且算法部署任然简单且实时工作。