SORT中使用卡尔曼滤波存在大量ID切换的问题,也就是在遮挡后KF的检测信息就会无法和之前的信息匹配,而创建一个新的跟踪。所以需要尽量用之前已经检测到的外观特征并进行“保存”DeepSORT中采用了一个简单(运算量不大)的CNN来提取被检测物体(检测框物体中)的外观特征(低维向量表示),在每次(每帧)检测+追踪后,进行一次物体外观特征的提取并保存。
在本文中,我们通过整合外观信息来提高SORT的性能。由于这一特性,我们能够在更长的遮挡周期来跟踪对象,从而有效地减少了身份切换的数量。本着原有框架的精神,我们将大部分计算复杂性放在离线的预训练阶段,在那里我们在大规模的人重新识别数据集上学习深度关联度量。在在线应用过程中,我们使用视觉外观空间中的最近邻查询来建立测量到跟踪(measurement-to-track associations )的关联。实验评估表明,我们的改进减少了45%的ID切换,在高帧率下获得了极佳的性能。
由于目标检测的最新进展,基于检测的跟踪已经成为多目标跟踪的主导范式。在这个范例中,对象跟踪通常是在一次处理整个视频批次的全局优化问题中找到的。例如,流网络公式[1,2,3]和概率图模型[4,5,6,7]已经成为这类模型的流行框架。然而,由于批处理的原因,这些方法不适用于每个时间步都必须有目标身份的在线场景。更传统的方法是多假设跟踪(MHT)[8]和联合概率数据协会过滤(JPDAF)[9]。这些方法在逐帧的基础上执行数据关联。在JPDAF中,单态假设是通过根据个体测量的关联可能性对它们进行加权而产生的。在MHT中,所有可能的假设都被跟踪,但是为了便于计算,必须应用剪枝方案。这两种方法最近都在通过检测进行跟踪的情况下进行了重新审查[10,11],并显示了令人振奋的结果。然而,这些方法的性能是以增加计算和实现复杂度为代价的。SORT这种简单的方法在高帧率下实现了令人满意的性能。在MOT ChallengeDataSet[13]上,使用最先进的人检测器的排序[14]在标准检测上的平均排名高于MHT,这不仅强调了对象检测器的性能对整体跟踪结果的影响,而且从从业者的角度来看,这也是一个重要的见解。
虽然在跟踪精确度和精确度方面取得了总体良好的性能,但SORT返回的标识选择数量相对较多。这是因为采用的关联度量只有在状态估计不确定性较低时才是准确的。因此,SORT在跟踪遮挡方面存在缺陷,因为它们通常出现在前视图摄影机场景中。我们通过将关联度量替换为结合了运动和外观信息的更具信息量的度量来克服这个问题。具体地说,我们应用一个经过训练的卷积神经网络(CNN)在一个大规模的人重新识别数据集上进行行人识别。通过集成该网络,我们提高了对遗漏和阻塞的鲁棒性,同时保持了系统易于实现、高效和适用于在线场景。我们的代码和一个预先训练的CNN模型是公开提供的,以便于研究、实验和实际应用开发。
我们采用传统的单假设跟踪方法,结合递归卡尔曼滤波和逐帧数据关联。
跟踪处理和卡尔曼滤波框架与[12]中的原始公式基本相同。我们假设一个非常普遍的跟踪场景,摄像机没有校准,我们没有可用的自我运动(ego-motion)信息。虽然这些情况对滤波框架构成了挑战,但它是最近的多个目标跟踪基准测试中考虑的最常见的设置[15]。因此,跟踪环境可以用八维状态空间表示
( u , v , γ , h , x ˙ , y ˙ , γ ˙ , h ˙ ) (u, v, \gamma, h, \dot{x}, \dot{y}, \dot{\gamma}, \dot{h}) (u,v,γ,h,x˙,y˙,γ˙,h˙),其中包括包围盒的中心位置 ( u , v ) (u,v) (u,v),纵横比 γ \gamma γ,高度 h h h,以及在图像坐标中对应的速度。我们使用标准的卡尔曼过滤,具有恒速运动和线性观测模型,取边界坐标 ( u , v , γ , h ) (u,v,\gamma,h) (u,v,γ,h)作为对物体状态的直接观测。
消失:对于每个跟踪 k k k都需要对从上一次成功测量的 a k a _k ak后的关联帧数进行进行计数。此计数器在卡尔曼过滤预测期间递增,并在跟踪与测量成功关联时重置为0。超过预定义的最大时间 A m a x A_{max} Amax的跟踪被视为已离开场景并从跟踪集中删除。
初始化:对于不能与现有跟踪相关联的每个跟踪发起新的跟踪假设
新生:这些新跟踪在它们的前三帧中被归类为试探性的。在此期间,我们希望在每个时间步长都能成功进行测量关联。未成功关联到其前三帧内的测量的跟踪将被删除。
解决预测卡尔曼状态和新测量之间关联的传统方法是建立一个可以使用匈牙利算法解决的分配问题。在这个问题的描述中,我们通过结合两个合适的度量来整合运动和外观信息。
无遮挡,运动特征:为了合并运动信息,用**(平方)马氏距离衡量预测到的卡尔曼滤波状态和新获得的测量值(检测框)之间的距离:
d ( 1 ) ( i , j ) = ( d j − y i ) T S i − 1 ( d j − y i ) d^{(1)}(i, j)=\left(d_{j}-\boldsymbol{y}_{i}\right)^{\mathrm{T}} S_{i}{ }^{-1}\left(d_{j}-\boldsymbol{y}_{i}\right) d(1)(i,j)=(dj−yi)TSi−1(dj−yi)
这里我们用 ( y i , S i ) (y_i,S_i) (yi,Si)表示第i个(追踪的序号)追踪分布(卡尔曼滤波分布)在测量空间上的投影,用 D j D_j Dj表示第 j j j(检测框的序号)个包围盒检测。马氏距离通过测量标准差检测偏离平均跟踪位置的多少,考虑了状态估计的不确定性。此外,使用该度量,可以通过将马氏距离阈值化为从逆 χ 2 χ^2 χ2分布计算的95%置信区间,来排除不太可能的关联。可以使用一个indicator来表示这个过程:
b i , j ( 1 ) = I [ d ( 1 ) ( i , j ) ≤ t ( 1 ) ] b_{i, j}^{(1)}=\mathbb{I}\left[d^{(1)}(i, j) \leq t^{(1)}\right] bi,j(1)=I[d(1)(i,j)≤t(1)]
如果第i个轨道和第j个检测之间的关联是可接受的,则该值评估为1。对于我们的四维测量空间,相应的马氏阈值为 t ( 1 ) = 9.4877 t^{(1)}=9.4877 t(1)=9.4877。
显然当目标运动过程中的不确定度比较低(马氏距离小)的时候(也就是满足卡尔曼滤波算法的假设,即所有物体的运动具有一定规律,且没有什么遮挡**),那么基于motion特征的方法,即上面提到的方法(可是视为改进的SORT)自然有效。
(有遮挡,外观特征:)特别值得一提的是,未计入的相机运动可能会在成像平面上引入快速位移,使得马氏距离成为通过遮挡进行跟踪的一个相当不均匀的度量。因此,我们将第二个度量集成到分配问题中。对于每个边界框检测 d j d_j dj,我们计算一个 ‖ r j ‖ = 1 ‖r_j‖=1 ‖rj‖=1的外观描述符 r j r_j rj。此外,我们为每个轨迹 k k k保留一个库 R k = ( r k ( i ) ) k = 1 L k R_k=({r^{(i)}_k})^{L_k}_{k=1} Rk=(rk(i))k=1Lk,最后一个 L k = 100 {L_k=100} Lk=100个关联的外观描述符。然后,我们的第二个度量表示为外观空间中第i个轨迹和第j个检测之间的最小余弦距离:
d ( 2 ) ( i , j ) = min { 1 − r j T r k ( i ) ∣ r k ( i ) ∈ R i } d^{(2)}(i, j)=\min \left\{1-r_{j}{ }^{\mathrm{T}} r_{k}^{(i)} \mid r_{k}^{(i)} \in \mathcal{R}_{i}\right\} d(2)(i,j)=min{1−rjTrk(i)∣rk(i)∈Ri}
再一次,我们引入一个二元变量来指示根据该度量是否允许关联:
b i , j ( 2 ) = I [ d ( 2 ) ( i , j ) ≤ t ( 2 ) ] b_{i, j}^{(2)}=\mathbb{I}\left[d^{(2)}(i, j) \leq t^{(2)}\right] bi,j(2)=I[d(2)(i,j)≤t(2)]
我们在SEPA-RATE训练数据集上为该指标找到了一个合适的阈值。在实际应用中,我们使用预先训练好的CNN来计算包围盒外观描述符。该网络的体系结构在第2.4节中描述。
特征融合:结合起来,这两个度量通过服务于分配问题的不同方面而相辅相成。一方面,马氏距离提供了基于运动的可能物体位置的信息,这对于短期预测特别有用。另一方面,余弦距离考虑了外观信息,这些信息对于在长期遮挡后恢复身份特别有用,特别当运动的辨别力较弱时。为了构建关联问题,我们使用加权和将这两个度量组合在一起
c i , j = λ d ( 1 ) ( i , j ) + ( 1 − λ ) d ( 2 ) ( i , j ) c_{i, j}=\lambda d^{(1)}(i, j)+(1-\lambda) d^{(2)}(i, j) ci,j=λd(1)(i,j)+(1−λ)d(2)(i,j)
其中,如果一个关联在这两个度量的关口区域内,则我们称该关联为可接受的:
b i , j = ∏ m = 1 2 b i , j ( m ) b_{i, j}=\prod_{m=1}^{2} b_{i, j}^{(m)} bi,j=m=1∏2bi,j(m)
每个度量对组合关联代价的影响可以通过超参数 λ λ λ来控制。在我们的实验中,我们发现当相机有很大的运动时,设置 λ = 0 λ=0 λ=0是一个合理的选择。在这种情况下,关联代价项中只使用了外观信息,但是马氏门仍然被用来忽略基于卡尔曼过滤推断的可能的对象位置的可行分配。在这种情况下,关联代价项中只使用了外观信息,但是马氏门仍然被用来忽略基于卡尔曼过滤推断的可能的对象位置的可行分配。
我们没有解决全局分配问题中的量测到航迹关联问题,而是引入了一个级联来解决一系列的子问题。为了激励这种方法,考虑以下情况:当一个对象被较长时间遮挡时,随后的卡尔曼滤波预测增加了与该对象定位相关的不确定性。因此,概率质量在状态空间中分散,并且观测可能性变得不那么peaked。通常,关联度量应该通过增加测量到跟踪距离(measurement-to-track distance)来说明概率质量的这种分布。与直觉相反的是,当两个跟踪竞争相同的检测时,马氏距离更倾向于较大的不确定度,因为它有效地减小了任何检测相对于投影跟踪平均值的标准偏差的距离。这是不受欢迎的行为,因为它可能导致跟踪碎片增加和跟踪不稳定。因此,我们引入一种优先于较频繁看到的对象的匹配级联,将我们的概率扩散的概念编码在关联似然中。
如下是匹配算法:
作为输入,我们提供一组跟踪 T T T和检测 D D D指标以及最大时长 A m a x A_{max} Amax。在第1行和第2行中,我们计算关联成本矩阵和允许关联矩阵。然后在跟踪时间 n n n上迭代以解决针对不断增长的跟踪的线性分配问题。在第6行中,我们选择在最后 n n n帧中尚未与检测相关联的跟踪 T n T_n Tn的子集。在第7行中,我们求解 T N T_N TN和不匹配检测 U U U中的跟踪之间的线性分配。在第8行和第9行,我们更新匹配和不匹配检测的集合,在第11行完成后返回它们。请注意,该匹配级联优先考虑小尺寸的磁道,即最近看到的磁道。
在最终匹配阶段,我们如原始排序算法[12]中所提出的那样,在时间n=1的未确认和未匹配的轨道集合上对联合关联运行交集。这有助于解决外观突然更改(例如,由于静电场景几何体的部分遮挡),并增强针对错误初始化的稳健性。
通过使用简单的最近邻查询(不需要额外的度量学习),我们的方法的成功应用,需要在实际的在线跟踪应用之前,先离线训练一个很好区分的特征嵌入。为此,我们使用了一个CNN,它已经在一个大规模的人物识别数据集[21]上进行了训练,该数据集包含了1,261名行人的1,100,000多张图像,使得它非常适合于在人物跟踪环境中进行深度的数学学习。我们的网络的CNN架构如表1所示。总之,我们采用了一个宽的残差网络[22],具有两个卷积层和六个残差块。
在密度层10中计算维度128的全局特征图。最后一批和 l 2 l_2 l2个归一化投影到单位超球面上,以与我们的余弦外观度量兼容。该网络总共有2,800,864个参数,在NVIDIA GeForce GTX 1050移动GPU上,32个边界框的一次前向传递大约需要30毫秒。这个网络非常适合在线跟踪,只要有现代的GPU可用。