《Towards Real-Time Multi-Object Tracking》 翻译学习
Abstract
现在的MOT系统通常使用tracking-by-detection的方式。这种方式有以下两个部件:1)用于目标定位的检测模型,2)用于数据关联(data association)的外观嵌入模型(appearance embedding model)。两个模型分开执行可能会导致效率问题,其运行时间只是简单的将两个结构的运行时间加起来,而没有去探究它们之间可能某些结构可以共享的潜在可能性。现有的实时MOT的方法主要研究association step,所以这些方法事实上只是实时association model而不是实时MOT系统。在本文中,我们提出了一个将目标检测和外观嵌入共享结构学习的MOT模型。具体而言,我们将外观嵌入模型合并到single-shot detector中,以便该模型可以同时输出检测结果和相应的嵌入。因此,该系统被转化为一个多任务的学习问题:存在多个学习目标,即,anchor classification,bbox regression,embedding learning,以及各个损失的自动权重。据我们所知,我们这个工作是第一个(近)实时MOT系统,它的运行速度取决于输入图像分辨率,大致在18.8到24.1帧间波动。同时,其跟踪精度可与采用独立检测与嵌入学习的SOTA模型相媲美(64.4%MOTA vs 66.1%MOTA在MOT-16 challenge)。代码和模型已开源。
Introduction
MOT旨在预测视频序列中多个目标的轨迹,对无论是自动驾驶还是智能视频分析的应用都意义重大。
该问题的主流方法,即tracking-by-detection ,将MOT问题分解成两步:1)detection step,该步骤对视频单帧中的目标进行定位。2)association step,将检测出的目标指派、链接给已经存在的轨迹。这意味着系统至少需要两个计算密集型组件:detector model、embedding(re-ID) model。为了方便起见,我们将这种方法称为Separate Detection and Embedding (SDE)方法。该方法的总体推测时间大致为两个部件之和,且随着检测数量的增加而增加。这一特性会在SDE方法构建一个实时的MOT系统时带来严重挑战,而实时是实践中的基本要求。
为了节省计算量,一个可行的想法是将检测器和嵌入模型集成到单个网络中。因此,这两个任务可以共享同一组低级功能,并且避免了重新计算。联合检测器和嵌入学习的一种选择是采用Faster R-CNN框架(Ren等人,2015),这是一种two-stage检测器。具体来说,第一阶段,区域提议网络(RPN)与Faster R-CNN保持相同,并输出检测到的边界框。第二阶段,Fast R-CNN(Girshick,2015年)可以通过用度量学习监督代替分类监督来转化为嵌入学习模型(Xiao等,2017; Voigtlaender等,2019)。尽管节省了一些计算,但由于采用了两阶段设计,该方法的速度仍然受到限制,并且通常以低于10帧每秒(FPS)的速度运行,这远远超出了实时要求。此外,Two-stage方法的运行时间也像SDE方法一样随着目标数量的增加而增加。
本论文专门提高MOT系统的效率。我们引入了一个早期的尝试,即通过单个深度网络联合学习Detector和Embedding模型(JDE)。换句话说,提出的JDE使用单个网络来同时输出检测结果和检测盒的相应外观嵌入。相比之下,SDE方法和two-stage方法分别以重新采样的像素(边界框)和特征图为特征。边界框和特征图都被馈入单独的re-ID模型中以提取外观特征。图1简要说明了SDE方法、两阶段方法和建议的JDE之间的区别。我们的方法几乎是实时的,且准确率几乎与SDE方法一样。例如,我们在MOT-16 test 数据集上获得MOTA=64.4%的精度下,帧率达到18.8帧,作为比较,Faster R-CNN+QAN embedding在获得MOTA=66.1%的精度下,帧率只有不到6帧。
为了构建一个高效,准确的联合学习框架,我们探索并有意设计以下几个基础方面:训练数据,网络结构,学习目标,优化策略和验证指标。首先,我们收集了六个关于行人检测和人员搜索的公开可用数据集,以形成统一的大规模多标签数据集。在这个统一的数据集中,所有行人边界框都被标记,并且一部分行人身份被标记。其次,选择特征金字塔网络(FPN)作为基础框架,并讨论哪种损失函数是网络学习最佳的嵌入方法。然后,我们将训练过程建模为具有anchor分类,框回归和嵌入学习的多任务学习问题。为了平衡每个任务的重要性,我们采用了与任务相关的不确定性(Kendall,Gal和Cipolla 2018)来动态加权异构损失。最后,我们采用以下评估指标。平均精度(AP)用于评估检测器的性能。采用一定误报率(FAR)下的正样本通过率(TAR)来评估嵌入的质量。总体MOT准确性由CLEAR指标(Bernardin和Stiefel-hagen 2008)评估,尤其是MOTA指标。本文还为联合学习检测和嵌入任务提供了一系列新的设置和基准,我们认为这将促进对实时MOT的研究。
我们的工作贡献总结如下:
1) 我们介绍了JDE,这是用于联合检测和嵌入学习的单一框架。作为在线MOT系统,它可以(近)实时运行,并且在准确度上与单独的检测+嵌入(SDE)SOTA结果相当。
2) 我们从训练数据、网络结构、学习目标和优化策略等多个方面对如何构建这样一个联合学习框架进行了深入的分析和实验。
3) 用相同的训练数据进行的实验表明,提出的JDE性能和一系列优秀的SDE模型组合一样好,并且达到了最快的速度。
4) 在MOT-16上的实验表明,考虑到训练数据量、准确性和速度,我们的方法优于最先进的MOT系统。
Related Work
多目标跟踪的最新进展可以大致分为以下几个方面:
1) 将关联问题建模为图优化问题的模型(Wen等,2014; Zamir,Dehghan和Shah 2012; Kim等,2015)。
2) 通过端到端神经网络对关联过程进行建模(Sun等人2019; Zhu等人2018)。
3) 寻求除tracking by detection之外的新颖跟踪范式的人(Bergmann,Meinhardt和LealTaixe 2019)。
其中,前两类是过去十年来MOT的主流解决方案。 在这些按检测跟踪的方法中,将检测结果和外观嵌入作为输入,唯一要解决的问题是数据关联。 尽管某些方法声称能够达到实时速度,但排除了检测器的运行时间和外观特征提取,因此整个系统仍与要求保持一定距离。 相反,在这项工作中,我们只考虑整个MOT系统的运行时,而不是仅考虑关联步骤。 在整个系统上实现效率实际上更为重要。
第三类尝试探索新颖的MOT范例,例如,通过预测空间偏移将单个对象跟踪器合并到检测器中(Bergmann,Meinhardt和Leal-Taixe 2019)。 这些方法的简单性吸引人,但是除非引入了额外的嵌入模型,否则跟踪精度将无法令人满意。 因此,性能和速度之间的权衡仍然需要改进。
我们的方法还与人员搜索任务有关,该任务旨在从大量数据库框架中定位和识别查询人员。 该任务的一些解决方案是共同学习人体检测器和嵌入模型(Xiao等人2017)。 然而,MOT和人员搜索系统之间的主要区别在于MOT对运行时的要求更加严格,因此不能直接借用人员搜索方法。
另一系列相关成果是用于人体姿势估计(Newell,Huang和Deng 2017)和检测(Law and Deng 2018)的关联嵌入。 学习了称为关联嵌入的低维密集矢量图,以对人的关节或框角进行分组。 但是,关联仅适用于单个图像,而在MOT中,需要跨不同帧进行关联,因此要求嵌入更具区分性。
注意:
markdown 公式编辑太麻烦,以下很多部分都是word编辑好,直接放截图。
Joint Learning of Detection and Embedding Problem Settings
Architecture Overview
我们使用的架构是特征金字塔(FPN)。FPN使得可以从多尺度预测,从而改善了目标尺度变化很大的行人检测效果。Figure 2 简单的展示了神经网络框架在JDE中的使用。首先,输入视频帧会经过backbone进行正向传递,以获得三个比例的特征图,即分别具有1 / 32、1 / 16和1/8下采样率的比例。然后,将最小尺寸的特征图(语义上的最强特征图)上采样(变得和上一级一样大),与第二小的特征图通过skip connection进行融合,对其他比例的特征图也是同样操作。最后,在所有三个尺度上将预测头加到融合特征图上。预测头由几个堆叠的卷积层组成,并输出大小为(6A + D)×H×W的密集预测图,其中A是分配给该尺度的anchor模板的数量,D是嵌入的维数。密集预测图分为三个部分(任务):
1) the box classification results of size 2A×H ×W;
2) the box regression coefficients of size 4A×H ×W;
3) the dense embedding map of size D×H ×W;
在以下各节中,我们将详细介绍如何训练这些任务。
Learning to Detect
大体上检测分支与标准的RPN是相似的,仅有两处修改。第一,我们重新设计了anchor的numbers、scales、aspect ratios来适应被检测目标(例如我们案例中的行人)。根据普遍的先验,将所有anchor的纵横比设置为1:3。anchor模板的数量设置为12,以使每个比例A = 4,并且anchor的比例(宽度)从11≈8×2(1⁄2)到512=8×2(12⁄2)。其次,我们注意到为前景/背景分配使用的双重阈值选择合适的值很重要。通过可视化,我们确定IOU> 0.5 基本事实大致确保了前景,这与通用目标检测中的通用设置一致。另一方面,IOU <0.4 groundtruth的那些bbox在我们的案例中应被视为背景,而不是一般情况下的0.3。 我们的初步实验表明,这些阈值可有效抑制虚假警报(这种警报通常发生在重度遮挡下)。
检测的学习目标具有两个损失函数,即前景/背景分类损失Lα和边界框回归损失Lβ。Lα表示为交叉熵损失,Lβ表示为smooth-L1损失。 回归目标的编码方式与(Ren et al.2015)相同。
Learning Appearance Embeddings
Automatic Loss Balancing
Online Association
尽管关联算法不是本文的重点,但在此我们介绍一种简单快速的在线关联策略,以与JDE结合使用。
对于给定的视频,JDE模型处理每个帧并输出bboxes和相应的appearance embeddings。 因此,我们在观测值的嵌入和先前已有tracklets池的嵌入之间计算affinity矩阵。 使用匈牙利算法将观测值分配给tracklets。 卡尔曼滤波器用于平滑轨迹并预测先前轨迹在当前帧中的位置。 如果分配的观测值在空间上与预测位置相距太远,则该分配将被拒绝。然后,tracklest的嵌入如下更新:
Experimental Results
Datasets and Evaluation Metrics
对外观嵌入学习的三种损失函数的比较。 我们首先比较了用交叉熵损失和triplet loss以及它的变体训练下,外观嵌入的描述能力,如上一节所述。 对于使用L_triplet和L_upper训练的模型,对B / 2对时间连续帧进行采样以形成大小为B的mini-batch。这确保了始终存在正样本。 对于使用L_CE训练的模型,此采样策略不是必需的,并且可以对图像进行随机采样以形成mini-batch。 表2列出了三种损失函数的比较。
不出所料,L_CE优于L_triplet和L_upper。 令人惊讶的是,性能差距很大(+ 46.0 / + 43.9 [email protected]=0.1)。 性能差距较大的可能原因是,交叉熵损失要求一个实例与其正类别之间的相似度高于此实例与所有负类别之间的相似度。 该目标比triplet loss家族更为严格,后者仅在采样的mini-batch中施加约束。 考虑到它的有效性和简单性,我们将交叉熵损失用于在JDE中嵌入学习。
不同损失加权策略的比较。 损失加权策略对于学习JDE的良好联合表示至关重要。 本文采用了三种损失加权策略。 第一种是损失归一化方法(称为“Loss.Norm”),其中,损失以其移动平均幅度的倒数加权。 第二个是(Sener and Koltun 2018)中提出的“ MGDA-UB”算法,最后一个是上一节中介绍的权重不确定性策略(weight-by uncertainty strategy)。此外,我们有两个基准。 首先训练所有具有相同损失权重的任务,称为“Uniform”。 第二种方法称为“ App.Opt”,通过在上一节所述的两个独立变量假设下进行搜索,使用了一组近似的最佳损失权重。表2总结了这些策略的比较。有两个发现。
首先,统一基线产生较差的检测结果,因此跟踪精度不好。 这是因为嵌入损失的规模比其他两个损失要大得多,并且支配了训练过程。 一旦我们设置了适当的损失权重以使所有任务都能以“ App.Opt”基准中的相似速率学习,则检测任务和嵌入任务都会产生良好的性能。
其次,结果表明,“Loss.Norm”策略优于“Uniform”基线,但不如“ App.Opt”基线。 MGDA-UB算法尽管在理论上是最合理的方法,但在我们的案例中失败了,因为它为嵌入损耗分配了太大的权重,因此其性能类似于均匀基准。 唯一优于App.Opt基准的方法是不确定性权重策略。在图3中,我们使用不确定性方法来可视化损失曲线和学习的权重。 我们观察到,尽管损失权重被统一初始化,但是不确定性方法迅速将嵌入损失的权重降低到10-1左右,并将其他两个任务的损失权重提高到102的数量级。 可以在App.Opt基准(64:0.1)中确定权重,但是由于可以自动学习损失权重,因此“不确定性”策略可以提高跟踪精度。
与SDE方法的比较为了证明JDE相对于单独检测和嵌入(SDE)方法的优越性,我们实施了几种最先进的检测器和人员身份证模型,并在准确性(MOTA)和运行时间(FPS)将其组合与JDE进行了比较。 检测器包括以ResNet50和ResNet-101(He et al.2016)为骨干的JDE,以ResNet-50和ResNet-101为骨干的Faster R-CNN(Ren et al.2015)和Cascade R-CNN(Cai and Vasconcelos 2018)以ResNet-50和ResNet-101为骨干。 人员重新识别模型包括IDE(Zheng,Yang和Hauptmann 2016),Triplet(Hermans,Beyer和Leibe 2017)和PCB(Sun等人2018)。 在关联步骤中,我们对所有SDE模型使用上一节中介绍的相同的在线关联方法。 为了公平比较,这些SDE模型使用的训练数据与JDE相同。
在图4中,我们针对上述检测器和人员身份模型的SDE组合的运行时(每幅图像)绘制了MOTA度量。 所有模型的运行时都在单个Nvidia Titan xp GPU上进行了测试。 图4(a)显示的是MOT-15 训练集在行人密度较低的情况下的对比,而图4(b)显示的是包含高密度人群的视频序列的比较(CVPR19中的CVPR19-01 MOTchallenge dataset)。 可以得出几个观察结果。
首先,提出的JDE运行速度非常快,同时产生了具有竞争力的跟踪精度,从而在精度和速度之间达到了最佳平衡。 具体来说,带有DarkNet-53的JDE(JDE-DN53)的运行速度为22 FPS,产生的跟踪精度几乎与Cascade RCNN检测器与ResNet-101(Cascade-R101)+ PCB嵌入的组合一样好,而后者速度仅以约6 FPS。
其次,JDE的跟踪精度非常接近JDE + IDE,JDE + Triplet和JDE + PCB的组合(参见图4中的交叉标记),这表明共同学习的嵌入几乎与单独学习的嵌入一样具有区别性。
最后,通过比较图4(a)和(b)中相同模型的运行时间,可以观察到,在拥挤的情况下,所有SDE模型的速度都会显着下降。 这是因为嵌入模型的运行时间随检测到的目标数量的增加而增加。 在JDE中不存在此缺点,因为计算嵌入是为了获得检测结果。 因此,通常情况下和拥挤情况下的JDE运行时差异要小得多(请参见红色标记)。实际上,JDE的速度下降是由于关联步骤中时间的增加,与目标数正相关。
与SOTA的MOT系统进行比较。由于我们使用其他数据而不是MOT-16训练集来训练JDE,因此我们在MOT-16基准测试的“私有数据”协议下比较JDE。比较了私有协议下的最新在线MOT方法,包括DeepSORT 2(Wojke,Bewley和Paulus 2017),RAR16wVGG(Fang等人2018),TAP(Zhou等人2018),CNNMTT( Mahmoudi,Ahadi和Rahmati(2019)和POI(Yu等人,2016)。所有这些方法都使用相同的检测器,即以VGG-16为骨干的Faster-RCNN,在大型私人行人检测数据集上进行训练。这些方法之间的主要区别在于它们的嵌入模型和关联策略。例如,DeepSORT 2使用广域残差网络(WRN)(Zagoruyko和Komodakis 2016)作为嵌入模型,并使用MARS(Zheng et al.2016)数据集训练外观嵌入。具有VGG,TAP,CNNMTT和POI的RAR16使用Inception(Szegedy等人,2015),Mask-RCNN(He等人,2017),5层CNN和QAN(Liu,Yan和Ouyang,2017)作为嵌入模型,分别。这些嵌入模型的训练数据也互不相同。为了便于比较,我们在表3中列出了所有这些方法的检测器,嵌入模型和训练数据的数量,并给出了精度和速度指标。
考虑到总体跟踪精度,例如MOTA度量,JDE通常是可比较的。我们的结果比DeepSort 2高3.0%,比POI低1.7%。就运行速度而言,直接比较这些方法是不可行的,因为它们的运行时间并未全部报告。因此,我们重新实现了基于VGG-16的Faster R-CNN检测器,并对其运行速度进行了基准测试,然后针对这些方法估算了整个MOT系统的运行速度上限。请注意,对于某些方法,没有考虑嵌入模型的运行时,因此速度上限远远不够严格。即使在这样宽松的上限下,所提出的JDE仍比现有方法快至少2到3倍,以接近1088×608的图像分辨率达到接近实时的速度,即18.8 FPS。当我们将输入帧降采样为864×408的较低分辨率时,JDE的运行时间可以进一步提高到24.1 FPS,而性能只有很小的下降(∆ = -2.6%MOTA)。
分析和讨论。 可能会注意到,与现有方法相比,JDE的IDF1得分更低,ID切换更多。 首先,我们怀疑原因是共同学习的嵌入可能比单独学习的嵌入要弱。 但是,当我们用单独学习的嵌入替换共同学习的嵌入时,IDF1分数和ID切换的数量几乎保持不变。 最后,我们发现,主要原因是当多名行人彼此重叠时,检测不准确。 图5显示了这种JDE失败案例。 这样不准确的boxes会引入很多ID切换,不幸的是,这样的ID切换经常出现在轨迹的中间,因此IDF1得分较低。 在我们未来的工作中,当行人重叠很明显时,如何改进JDE以做出更准确的boxes预测仍有待解决。
Conclusion
在本文中,我们介绍了MDE系统JDE,该系统允许在共享模型中学习目标检测和外观特征。 我们的设计显着减少了MOT系统的运行时间,从而可以(接近)实时速度运行。 同时,我们系统的跟踪精度可与最新的在线MOT方法相媲美。 此外,我们在建立这样的联合学习框架方面提供了有关良好实践和见解的详尽分析,讨论和实验。将来,我们将更深入地研究时间准确性的权衡问题。