优点:该deep sort算法基于sort算法进行改进,利用一个re-id 模型为目标生成一个外观特征,同时结合了运动(motion)和外观(appearance)信息能够追踪更长遮挡时间的同一目标,减少目标ID 跳变次数,也有效降低了 目标ID丢失的次数。
论文链接:https://arxiv.org/abs/1703.07402
代码链接:https://github.com/nwojke/deep_sort
摘要
简单的在线和实时跟踪(SORT)是一种实用的方法,主要针对简单的多目标跟踪是一个有效的算法。 在本文中,我们集成了外观信息以提高SORT的性能。 由于这一扩展,我们能够在更长的遮挡情况下来跟踪目标,从而有效地减少了id switch的次数。 本着原始框架的精神,我们将许多计算复杂性置于离线预训练阶段,在此阶段中,我们在大规模行人重识别数据集上学习深度关联metric。 在线应用时,我们使用视觉外观空间中的最近邻居查询来建立测量与轨道的关联。 实验评估表明,我们的扩展将id switch的数量减少了45%,从而在高帧速率下实现了总体竞争性能。
图1:在频繁遮挡的常见跟踪情况下,我们的方法在MOT挑战数据集上的示例输出[15]。
1, 引言
由于目标检测的最新进展,tracking-by-detection已成为多目标象跟踪的主要范例。在这种范例中,通常在一次处理整个视频批次的全局优化问题中找到目标轨迹(trajectories)。例如,流动网络公式[1、2、3]和概率图形模型[4、5、6、7]已成为这种类型的流行框架。但是,由于进行批处理,因此这些方法不适用于在线方案, 因为其必须在每个时间step均提供目标 id。更传统的方法是多重假设跟踪(MHT)[8]和联合概率数据关联过滤器(JPDAF)[9]。这些方法逐帧执行数据关联。在JPDAF中,通过根据各个度量的关联可能性对各个度量进行加权来生成单一状态假设。在MHT中,会跟踪所有可能的假设,但是必须将修剪方案应用于计算的可处理性。两种方法最近都在按tracking-by-detection场景中被重新研究[10,11],并显示出可喜的结果。但是,这些方法的性能带来了更高的计算和实现复杂性。
简单的在线和实时跟踪(SORT)[12]是一种更为简单的框架,该框架使用测量边界框重叠的关联度量(association metric)的匈牙利算法,在图像空间中执行卡尔曼滤波和逐帧数据关联。 这种简单的方法可以在高帧速率下实现良好的性能。 在MOT挑战数据集[13]上,SORT结合SOTA的行人检测器[14]在标准检测上的平均排名高于MHT。 这不仅强调了目标检测器性能对整体跟踪结果的影响,而且从从业人员的角度来看也是重要的见解。
尽管在跟踪精度和准确性方面总体上取得了良好的性能,但SORT返回了相对大量的identity sweitchs(id 跳变)。 这是因为所采用的关联度量(association metric)仅在状态估计不确定性较低时才是准确的。 因此,SORT在跟踪遮挡方面存在缺陷,因为遮挡通常会出现在前视摄像头场景中。 我们通过将结合度量(association metric)替换为结合了运动(motion)和外观信息(appearance infomation)的更全面的度量来解决此问题。 特别是,我们应用了经过训练的卷积神经网络(CNN),以区分大规模行人重识别数据集上的行人。 通过该网络的集成,我们提高了针对丢失(misses)和遮挡(occlusions)的鲁棒性,同时使系统易于实施,高效并适用于在线方案。 我们的代码和经过预先训练的CNN模型已公开提供,以促进研究实验和实际应用开发。
2,具有深度关联度量的SORT
我们采用具有递归卡尔曼滤波和逐帧数据关联的常规单一假设跟踪方法。 在以下部分中,我们将更详细地描述此系统的核心组件
2.1 Track 处理和状态估计
track 处理和卡尔曼滤波框架与SORT[12]中的原始公式基本相同。 我们假设一个非常普通的跟踪场景,其中相机没有标定,并且我们没有可用的自我运动信息。 尽管这些情况对过滤框架构成了挑战,但它是最近的多目标跟踪基准测试中最常用的设置[15]。 因此,我们的跟踪场景是在包含边界框中心位置,纵横比,高度 h 及其在图像坐标中的各自速度的八维状态空间 上定义的 。 我们使用带有匀速运动和线性观测模型的标准卡尔曼滤波器,其中我们将边界坐标作为对物体状态的直接观测。
对于每个track k,我们计算自上一次成功的测量关联 以来的帧数。 在卡尔曼滤波器预测期间,此计数器会增加,并且在轨迹(track)与测量(measurement)相关联时会重置为0。 超过预定义的最大age 的轨道(track)被视为已离开场景,并从轨道集(track set)中删除。 对于无法与现有轨道相关联的每次检测,都会启动新的轨道假设(track hypotheses)。 这些新tracks在前三帧中被分类为暂定。 在这段时间内,我们希望每个时间步都能成功进行测量关联。 在前三帧中未成功与测量关联的轨道(track)将被删除。
2.2 分配问题
解决预测的卡尔曼状态与新到达的测量值之间的关联的常规方法是建立可以使用匈牙利算法解决的分配问题。 在这个问题表述中,我们通过结合两个适当的指标来整合运动和外观信息。
为了整合运动信息,我们使用预测的卡尔曼状态与新到达的测量值之间的(平方)马氏距离:
其中,我们用表示第 i 个轨道分布到测量空间的投影,用表示第 j 个bbox检测。 马氏距离通过测量检测距离平均轨道位置有多少标准偏差来考虑状态估计的不确定性。 另外,使用该度量,可以通过根据从逆分布计算出的95%置信区间对马氏距离进行阈值化来排除不太可能的关联。 我们用一个指标来表示这个决定
如果第 i 个track和第 j 个检测之间的关联是允许的,则结果为1。 对于我们的四维测量空间,对应的Mahalanobis阈值为 。
当运动不确定性较低时,马氏距离是合适的关联度量,但在我们的图像空间问题公式中,从卡尔曼滤波框架获得的预测状态分布仅提供了目标位置的粗略估计。 尤其是,无法解释的摄像机运动会在图像平面中引入快速位移,从而使马氏距离成为用于跟踪遮挡的相当不明智的指标。 因此,我们将第二个指标集成到分配问题中。 对于每个边界框检测 ,我们计算的外观描述符。此外,对于每个轨道 k,我们保留最后 的关联外观描述符的gallery 。 然后,我们的第二个度量(metric)将测量外观空间中第 i 个track和第 j 个检测之间的最小余弦距离:
同样,根据这个metric,我们引入一个二进制变量来判断是否允许一个关联。
我们在单独的训练数据集上为此指标找到了合适的阈值。 在实践中,我们应用预训练的CNN来计算边界框外观描述符。 该网络的体系结构在2.4节中描述。
通过结合使用分配问题的不同方面,两个指标可以相互补充。 一方面,马氏距离基于运动提供有关可能的目标位置的信息,这对于短期预测特别有用。 另一方面,当运动的判别力较弱时,余弦距离会考虑外观信息,这些信息对于长时间遮挡后恢复身份(identity)特别有用。 为了建立关联问题,我们使用加权总和将两个指标结合起来。
如果它在两个指标的门控区间之内,我们称其为可接受的关联:
可以通过超参数 λ 来控制每个度量对合并关联成本的影响。 在我们的实验过程中,我们发现,当摄像机大量运动时,设置λ= 0是一个合理的选择。 在此设置中,关联代价项中仅使用外观信息。 然而,基于卡尔曼滤波器推断出的可能的目标位置,马氏门仍然被用来忽略不可行的分配。
2.3 匹配级联
而不是解决全局分配问题中的测量与跟踪关联,我们引入了一个级联来解决一系列子问题。为了激发这种方法,请考虑以下情况:当物体被长时间遮挡时,后续的卡尔曼滤波器预测会增加与物体位置相关的不确定性。因此,概率质量在状态空间中扩散,观察似然性变得不那么尖锐。直观地,关联度量应通过增加测量到轨道的距离来考虑概率质量的这种扩展。与直觉相反,当两个track竞争同一检测时,马氏距离有利于更大的不确定性,因为它有效地减小了任何检测的标准偏差与投影track均值之间的距离。这是不希望的行为,因为它可能导致 track 碎片增加和 track 不稳定。因此,我们引入了一个匹配级联,该级联将优先出现在较常见的目标上,以对关联可能性中的概率散布概念进行编码。
Listing 1概述了我们的匹配算法。 作为输入,我们提供track T 和检测 D 索引以及最大age 的集合。 在第 1 行和第 2 行中,我们计算关联成本矩阵和可允许关联的矩阵。 然后,我们对轨道 age n进行迭代,以解决随着 age 增长的 track 的线性分配问题。 在第6行中,我们选择在最近 n 帧中未与检测关联的 track 的子集。 在第7行中,我们解决了 中的track 与不匹配的检测 之间的线性分配。
在第8行和第9行中,我们更新了匹配项和未匹配的检测项集,我们将在第11行中完成后返回。请注意,此匹配级联将优先考虑age较小的轨道,即最近发现的轨道。
在最后的匹配阶段,我们按照原始SORT算法[12]中提出的方法,对age n = 1的未确认和未匹配的轨迹集运行iou关联。这有助于解决突然出现的外观变化,例如,由于具有静态场景几何体的部分遮挡,并提高了针对错误初始化的鲁棒性。
2.4 深度外观描述器
通过使用简单的最近邻查询而不进行额外的度量学习,我们方法的成功应用要求在实际的在线跟踪应用之前,将具有良好区分性的feature embedding 进行离线训练。 为此,我们采用了经过大规模行人重识别数据集[21]训练的CNN,该数据集包含1,261位行人的1,100,000多张图像,使其非常适合在行人跟踪环境中进行深度度量学习。
表1 给出了我们网络的CNN体系结构。总之,我们使用了一个宽残差网络[22],该网络具有两个卷积层和六个残差块。 在全连接层10中计算维度为128的全局特征图。最后一个batch和L2归一化项将特征投影到单位超球面上,以与我们的余弦外观度量兼容。 该网络总共具有2,800,864个参数,在Nvidia GeForce GTX 1050移动GPU上,forward 32个边界框的传递大约需要30毫秒。 因此,只要有可用的现代GPU,此网络非常适合在线跟踪。 尽管我们的训练过程的详细信息不在本文讨论范围之内,但我们在GitHub仓库 1 中提供了一个预训练的模型以及一个可用于生成features的脚本。
表1:CNN架构概述。 最后一个batch和 L2标准化将特征投影到单位超球面上。
3,实验
我们根据MOT16基准[15]评估跟踪器的性能。 该基准评估了七个挑战性测试序列的跟踪性能,包括具有移动摄像机的前视场景以及自上而下的监视设置。 作为对跟踪器的输入,我们依靠Yu等人提供的检测结果[16]。 他们已经在一组公共和私有数据集上训练了Faster RCNN,以提供出色的性能。 为了公平起见,我们对相同的检测重新运行了SORT。
使用 λ= 0 和 age Amax = 30 帧对测试序列进行评估。 如[16]中所述,检测阈值的置信度为0.3。 我们的方法的其余参数已在基准提供的单独训练序列中找到。 评估是根据以下指标进行的:
?多目标跟踪准确率(MOTA):以FP,FN和 id switchs为依据的总体跟踪精度摘要[23]。
?多目标跟踪精度(MOTP):根据ground truth与报告location之间的边界框重叠情况,总体跟踪精度摘要[23]。
?最多的跟踪(MT):在至少80%的使用寿命中具有相同标签的ground truth tracks的百分比。
?最多的丢失(ML):被跟踪到最长寿命20%的ground truth 轨道的百分比。
?ID跳变(ID):报告的ground truth 轨道身份跳变的次数。
?碎片(FM):由于缺少检测使得track中断的次数。
我们的评估结果显示在表2中。我们的调整成功地减少了id switchs的数量。 与SORT相比,ID switch从1423减少到781。这减少了大约45%。 同时,由于通过遮挡和丢失来保持目标的 id,因此tracks碎片会稍微增加。 我们还看到,大多数跟踪目标的数量显着增加,而大多数丢失目标的数量则减少了。 总体而言,由于外观信息的整合,我们通过更长的遮挡成功地保持了ID。 通过对补充材料中提供的跟踪输出进行定性分析,也可以看出这一点。 我们的跟踪器的示例输出如图1所示。
表2:关于MOT16 [15]挑战的跟踪结果。 我们将其与其他非标准检测方法进行了比较。 完整的结果表可在挑战网站上找到。 标有 * 的方法 使用[16]提供的检测。
我们的方法也是其他在线跟踪框架的有力竞争者。特别是,我们的方法返回了所有在线方法中最少的id switch次数,同时保持了竞争性的 MOTA分数,跟踪碎片和假阴性。大量的FP会大大削弱所报告的跟踪准确性。考虑到它们对MOTA分数的总体影响,对检测结果应用较大的置信度阈值可能会大大提高我们算法的报告性能。但是,对跟踪输出的视觉检查表明,这些误报主要是由静态场景几何结构上的零星检测器响应产生的。由于我们的最大允许跟踪 age 比较大,这些通常会与目标轨迹结合在一起。同时,我们没有观察到在错误警报之间频繁跳跃的轨迹。相反,跟踪器通常在报告的目标位置生成相对稳定的固定tracks。
我们的实现以大约20 Hz的频率运行,其中大约一半的时间花在了特征生成上。 因此,在使用现代GPU的情况下,系统保持了计算效率,并可以实时运行。
4,总结
我们已经介绍了SORT的扩展,该扩展通过预训练的关联度量结合了外观信息。 由于此扩展,我们能够跟踪更长的遮挡时间,使SORT成为最先进的在线跟踪算法的强大竞争者。 但是,该算法仍然易于实现并且可以实时运行。