DeepSort论文翻译
摘要
SORT(Simple Online and Realtime Tracking)是一种实用的多目标跟踪方法,它聚焦在简单、有效的算法上。在本中,我们整合了appearance信息来提高SORT算法的性能。因此,我们能够在更长时间遮挡的情况下跟踪目标,并且有效地减少了ID切换的次数。在保持原始架构的思想前提下,我们将大量计算复杂的部分放在了离线预训练阶段,在这个阶段利用大规模人员重识别数据集可以得到一个深度关联度量。在线运行期间,我们在视觉外观(appearance)空间使用最近邻居查询(nearest neighbor)建立了测量到跟踪(measurement-to-track)的关联。实验评估表明,我们的改进降低了45%的ID切换次数,总体上在高帧频下也达到了比较高的性能。
索引-计算机视觉,多目标跟踪,数据关联
1 介绍
由于目标检测上的最新进展,使用检测跟踪(tracking-by-detection)已经成为多目标跟踪的主导模式。在这种模式之中,通常一次处理完整个视频批次来解决全局优化问题进而获得对象的轨迹。例如,flow network formulations[1,2,3]和probabilistic graphical models[4,5,6,7]已经成为这种类型的流行框架。然而,由于批处理的制约这些方法并不适用于那种每个时间步(逐帧地)目标标识都是可用的在线场景。更多传统的方法是Multiple Hypothesis Tracking (MHT)和Joint Probabilistic Data Association Filter (JPDAF)。这些方法逐帧地执行数据关联。在JPDAF中,通过使用关联可能性来加权各个测量值( measurement)从而产生单一状态假设。在MHT中,所有可能的假设会被跟踪,但为了计算容易处理修剪方案必须使用。这两种方法最近在使用检测跟踪(tracking-by-detection的)场景中被重新研究,并显示了令人欣喜的结果。然而,这些方法的性能的提升也伴随着计算和实现复杂性的增加。
SORT(Simple online and realtime tracking)是一个更简单的框架,这个框架在图像空间执行卡尔曼滤波(Kalman filtering),利用用于测量边界框重合度的关联度量使用匈牙利算法(Hungarian method)进行逐帧的数据关联。这种简单的方式在高帧频下达到了不错的效果。对MOT挑战数据集,从标准检测结果来看,使用了顶级人员检测器的SORT平均得分高于MHT。这不仅凸显了目标检测器性能对整体跟踪结果的影响,而且也是一个从从业者的角度来看重要的见解。
尽管在跟踪精度和准确度方面总的来说性能良好,但SORT返回了相对多的ID标识切换。这是因为所使用的关联度量只有在状态估计的不确定性很低的时候是准确的。因此,SORT在通过遮挡跟踪方面是存在缺陷,而这通常出现在前视摄像镜头场景中。我们通过将关联度量替换为一个结合了motion and appearance信息更有依据的度量来解决这个问题。特别的,我们应用了一个CNN(convolutional neural network),它在大规模人员重识别数据集上训练用来区分行人。由于这个网络的引入,我们提升了处理丢失和遮挡的鲁棒性,同时也保持了系统容易执行、有效和在线场景的适用性。我们的代码和经过预处理的CNN模型已经开源,以促进试验研究和实际应用程序的开发。
2. 使用深度关联度量的SORT
我们采取了一种常见的单假设跟踪方法,这种方法使用了递归的卡尔曼滤波和逐帧的数据关联。在下面的章节中,我们会更详细地描述这个系统的核心组成。
2.1 轨迹处理和状态估计
航迹处理和卡尔曼滤波框架与SORT文章中的原始思路是基本相同的。我们假设一个非常常规的跟踪场景,在这个场景中相机是未校准的,帧间信息也无从得到。尽管这些情况对滤波框架是一个挑战,但它依然在最近的多目标跟踪基准里认为是最通用的设置。因此,我们的跟踪场景定义在8维的状态空间
(u, v, γ, h, x,˙ y,˙ γ, ˙ h˙)其中边界框(bbox)中心位置(u,v),长宽比γ,高度h,以及他们各自在图像坐标系中的速度。我们使用利用恒定速度运动和线性观察模型的标准卡尔曼滤波,其中我们将边界坐标(u,v,γ,h)作为物体状态的直接观察。
对于每个轨迹k,我们记录从最后一次成功进行了measurement关联a_k以来的帧数。这个计数在Kalman filter预测阶段增加,当track使用measurement关联后重置为0。超过了预定最大生命值A_max的track会被认为是离开了场景,并从track集合中去除。对于每一个没有同现有的track关联上的detection,都会为其初始化新的track假设。这些新的track在前三帧里都会分类为tentative。在这段时间,我们期待每一个时间步都能成功的进行measurement关联。那些在前三帧里没有成功的进行measurement关联的track会被删除。
2.2 指派问题
用来解决在Kalman预测状态和新到达的measurement之间关联的常规方式是建立指派问题,这个问题能够通过使用Hungarian算法来解决。深入这个问题机理,我们通过对motion和appearance两种信息的适当的组合将二者合而为一。
为了合并motion信息,我们使用Kalman预测状态和新到达的measurement之间的马氏距离(Mahalanobis distance)(平方)
其中,我们用(y_i,S_i )来表示第i个track的分布到measurement空间的投射,用d_j来表示第j个边界框检测值。Mahalanobis distance考虑到了状态估计的不确定性,所以它测量了detection离track平均位置的标准偏差的大小。进一步地,使用(标准偏差)这个度量可以排除不太可能的关联,方法是通过逆X^2分布计算得到的95%的置信区间来对Mahalanobis distance进行过滤。我们使用一个标志来表示选通的结果,如果第i个track和第j个detection之间是关联的,就将其置为1。对于我们四维的measurement空间,相应的Mahalanobis阈值是?1=9.4877
然而当运动的不确定性低时,马氏距离是个合适的关联度量。但在图像空间的问题规划中,从Kalman filtering框架获取的预测状态分布仅仅提供了物体位置的粗略估计。特别的,未考虑到的相机运动在图像上能导致快速位移,这会使得Mahalanobis distance在跟踪遮挡时变得没有意义。因此,我们引入了第二个度量来处理分配问题。对于每个边界框检测d_j我们计算一个appearance描述r_j并且其||r_j ||=1。对于每个track k记录了与其关联的最近的L_k=100个appearance描述。然后,这第二个度量测量的是appearance空间第i个track和第j个detection之间的最小余弦距离(cosine distance)
再一次来介绍一个二进制变量用于指出一个关联依据这个度量标准是否是允许的,同时在一个独立的训练数据集上发现了对这个指标而言适合的阈值。
在实践中,我们应用预训练的CNN来计算边界框的appearance描述。这个网络的结构描述详见2.4节。
在结合中,两种度量满足了分配问题的不同方面从而实现相互补充。一方面,基于运动的Mahalanobis distance提供了目标的可能位置,这对于短期的预测特别有用。另一方面,cosine distance考虑了appearance信息,这在长期遮挡后,运动信息已难以明确,对于恢复标识是特别有效的。我们使用加权和来结合两个度量进而建立指派问题
在此我们称一个关联是允许的就是看它是否都处在两个度量的门限内。
每个度量在结合的关联代价上的影响通过超参λ来控制。在我们试验中发现当存在大量的相机运动时设置λ=0是合理。在这种设置下,在关联代价项中仅仅使用appearance信息。然而,那些基于Kalman filter 推导的可能物体位置的分配依然可以使用Mahalanobis门限将其滤除。
2.3 级联匹配
我们引入了一个级联,不是为了在全局分配问题中解决measurement-to-track的关联,而是为了解决一系列的子问题。为了演化这个方法,考虑如下的情形:当一个物体长期被遮挡,随后Kalman filter对位置预测的不确定性会增加。因此,probability mass会在状态空间扩散,并且观察的似然将变得不那么突出。直觉上来讲,通过增加measurement-to-track的距离,关联度量会导致probability mass的扩散。但相反的,当两个track竞争同一个detection时,马氏距离更倾向于选择具有更大不确定性的,因为它有效地减少了任何detection到映射track的均值的标准差。这并不是一个被期望的结果,由于它会导致track碎片的增加和不稳定的track。因此,我们引入了级联匹配,给予那些更常更新的目标权限,以在关联似然性方面实现我们理想的可能性传播。
清单1概述了我们的匹配算法。我们提供了track和detection索引的集合还有最大生命周期值A_max作为输入。在第1、2行,我们计算关联代价矩阵和容许关联的矩阵。然后我们对track的生命标识n进行迭代,为增长年龄的track来解决线性分配问题。在第7行我们解决在T_n中的track和未匹配的detection U之间的线性分配。在第8、9行更新匹配和未匹配的detection集合,在第11行这些将会在完成时作为返回值。注意到这个级联匹配把优先级给予更小生命标识的track,例如,那些刚刚观察的到航迹。
在最终的匹配阶段,会在原始SORT算法中提及的联合关联上进行交集处理,这个联合关联是对生命标识值n=1的未确认的和未匹配的track集合上进行的。这将有助于解决突发的appearance变化,例如,由于静态场景结构造成的部分遮挡所引起的。而且有助于提高针对错误初始化的鲁棒性。
2.4 深度外观描述
通过使用简单的最近邻居查询而不包含额外的度量学习,在实际在线跟踪之前,方法的成功应用需要嵌入一个通过离线训练得到的具有良好区分性的特征。为了这个目的,我们采用了已经在大规模的人员重定位数据集上成功训练的CNN,这个数据集包含了1261名行人的超过1100000幅图像,使得它非常适合在人员追踪环境进行深度度量的学习。
我们网络的CNN结构在Table 1中展示。总之,我们使用了具有两个卷积层并紧跟着六个残差块的宽残余网络。128维的全局特征映射在密实层10中计算。最终的批次和l2正规化项目将特征化在单元球面之上,以此来兼容余弦外观度量。总的来说,这个网络有2,800,864个参数并且32个边界框向前传递在Nvidia GeForce GTX 1050 mobile GPU上大约需要花费30ms。因此,这个网络对于GPU没有特殊的要求,非常适合在线跟踪。然而我们训练过程的细节并不属于这篇论文的范围,我们提供了一个预训练模型在我们的GitHub仓库中,并附带了能够用来产生特征的脚本文件。
3. 实验
使用MOT16基准评估了我们跟踪器的性能。这个基准通过7个挑战测试序列来评价跟踪的性能,包括移动相机的前视场景以及自上而下的监视设置。作为跟踪器的输入,我们依赖于Yu等人提供的检测结果。他们采集了公共的和私有的数据集训练了一个更快的RCNN,这提供了卓越的性能。为了比对的公平,我们用同样的检测结果重新跑了SORT算法。
在测试序列上的评估使用λ = 0 和Amax = 30的帧来执行。在[16]中,检测被置信在0.3的分数。我们方法的其余的参数在由基准所提供的独立的训练序列中找到。评估通过下列的度量来执行:
? 多目标跟踪准确性(MOTA):在误报、漏检和标识切换方面统计总体的跟踪准确度。
? 多目标跟踪精度(MOTP):在真值和报道位置之间的边界框重叠部分方面统计总体的跟踪精确度。
? 主要的跟踪(MT):那些拥有相同标签在其生命周期至少保持了80%的地面真实轨迹的百分比。
? 主要丢失(ML):那些在其生命周期中至多只被跟踪了20%的地面真实轨迹的百分比
? 标识切换(ID):一个地面真实值轨迹报告的标识变化次数
? 分裂(FM):一个轨迹由于丢失检测被打断的次数
评价的结果在Table2中显示。我们的改进成功的减少了标识切换的次数。与SORT相比较,标识切换从1423减少到781。这大约是45%的下降。同时,跟踪分段略微增长是由于遮挡和丢失要维持目标标识。我们也看到了在主要的跟踪目标数量上有明显的增长,同时在丢失目标数量上是下降的。总的来讲,由于appearance信息的引入,成功地在长时间遮挡的情况下保持了标识。这也能够通过对我们在补充材料里提供的跟踪输出的定性分析看出来。我们跟踪器的典型输出在Figure1中显示。
我们的方法对于其他在线跟踪框架也是很棒的。特别是,保证MOTA分数竞争性、跟踪分段性和漏检比例的情况下,在所有的在线方法中我们的方法返回了最少的标识切换的次数。大量的误报会大大削弱报告track的准确性。考虑到对MOTA分数的整体影响,对detection应用更大的置信度阈值将很可能会大幅增长我们算法报告的性能。然而,跟踪输出的视觉检查显示了这些误报大部分产生自于静态场景几何结构上不定时发生的检测器响应。由于我们允许跟踪年龄值相对大,这些会更普遍的融入到对象轨迹之中。与此同时,我们并没有观察在错误报警之间track的频繁跳跃。反而,跟踪器通常在报告的物体位置上产生相对稳定,静止的track。
实际运行大约20Hz,其中大概有一半的时间花费在特征产生上。因此,考虑到现代GPU性能,系统在计算性上保持了高效,实时性上保证了可行。
4. 结论
我们阐述了一种SORT算法的扩展,通过预训练的关联度量合并了appearance 信息。由此,长时间的遮挡也能够跟踪,这使得SORT算法相对于最先进的在线跟踪算法而言也是很棒的。算法依然容易实现且运行实时。