【论文翻译】Multiple Object Tracking by Flowing and Fusing(CVPR2020)

Multiple Object Tracking by Flowing and Fusing

通过光流和融合实现多目标跟踪


摘要:

大多数的多目标跟踪(MOT)方法都是为两个子任务计算单独的目标特征:目标方向的运动估计和成对的再识别(Re-ID)。由于视频帧之间的目标数目不确定,这两个子任务在端到端深度神经网络(DNNs)中都很难有效地扩展。针对上述问题,本文设计了一种端到端DNN跟踪方法——流动融合跟踪器(Flow-Fuse-Tracker, FFT)。具体来说,在目标流动中,FlowTracker DNN模块从像素级的光流中联合学习目标运动的不确定数目。在目标融合中,一个FuseTracker DNN模块对FlowTracker和frame-wise object detection提出的目标进行细化和融合,而不是信任两种不准确的目标融合源。因为FlowTracker可以探索复杂的目标运动模式,而FuseTracker可以从FlowTracker和检测器中对目标进行细化和融合,所以我们的方法可以在多个MOT基准测试上获得最先进的结果。作为一种在线MOT方法,FFT在2DMOT15中得出了最高的MOTA(46.3),在MOT16中得出了最高的MOTA(56.5),在MOT17跟踪基准中得出了最高的MOTA(56.5),超过了现有出版物中所有的在线和离线方法。
【论文翻译】Multiple Object Tracking by Flowing and Fusing(CVPR2020)

1. 介绍

多目标跟踪(MOT)[69,42]是许多计算机视觉应用中需要的关键感知技术,如自动驾驶[8]、现场机器人[50]和视频监控[71]。最流行的MOT设置之一是逐帧跟踪[70],其中基于图像的目标检测结果可以在每一帧中获得,MOT算法基本上在帧之间关联相同的目标。由于运动模式的遮挡性、多样性和跟踪训练数据的缺乏,运动目标的检测跟踪仍然是计算机视觉中一个非常具有挑战性的任务。

最近的MOT方法[25,3]使用深度神经网络(Deep Neural Networks, DNNs)对单个目标的运动进行建模,并比较目标关联的两两表象。得益于DNNs强大的表达能力,运动的目标方向特征和外观的成对特征都得到了显著的改善,从而提高了MOT的性能。然而,在视频帧之间不确定目标数目的情况下,这两种特征的计算都很难有效地进行扩展。例如,要在数目不定的目标之间比较成对出现的现象,就需要使用固定结构的dnn迭代地处理数目不定的目标。

在实际应用中,大多数的MOT问题解决方法都分为两个步骤:
1)在输入帧上分别运行一个运动模型和一个外观模型,分别生成运动和外观特征;
2)根据运动和外观特征在帧之间进行目标关联。
通常,目标关联步骤使用匈牙利算法[32]找到一对一的匹配。然而,由于这两个步骤在端到端框架中没有得到优化,因此通常需要一个较大的DNN来学习高度区分的动作和外观特征。由于没有近乎完美的特征,在目标关联步骤中需要处理大量的候选目标对和启发式技巧。因此,将特征提取和数据关联作为两个独立的模块,很难开发出高效的MOT系统。

针对上述问题,本文设计了一种端到端DNN跟踪方法——流动融合跟踪器(Flow-Fuse-Tracker, FFT)。FFT的端到端特性显著地提高了MOT性能,甚至不需要使用时间开销和两两外观比较。如图1所示,FFT应用FlowTracker DNN模块target flow,从pixellevel光流中提取多个目标方向的运动。而在目标融合中,一个FuseTracker DNN模块对FlowTracker和frame-wise object detection提出的目标进行细化和融合,而不是信任两种不准确的目标融合源。在训练过程中,我们简单地取两个回归损失和一个分类损失来更新FlowTracker和FuseTracker DNN模块的权值。因此,FlowTracker从简单的像素级运动线索中学习复杂的目标方向运动模式,而FuseTracker从FlowTracker和对象检测器中获得进一步细化和融合不准确目标的能力。给定成对的帧作为输入,FFT将在跟踪过程中直接输出目标关联结果。

综上所述,我们工作的主要贡献如下:

  • 一种被称为FFT的端到端DNN跟踪方法,它可以为MOT联合学习目标运动和关联。
  • 一个FlowTracker DNN模块,它从像素级的光流中联合学习无限个目标方向的运动。
  • 一种FuseTracker DNN模块,它可以从跟踪和检测两个方面直接关联不确定的目标数目。
  • 作为一种在线MOT方法,FFT在所有现有的在线和离线方法中都取得了最先进的效果。

2. 相关工作

由于现有的MOT方法大多由运动模型和外观模型组成,因此我们分别对每种模型的变体进行了研究。

运动模型。运动模型试图描述每个目标如何从一帧移动到另一帧,这是为下一帧中的每个目标选择最佳搜索区域的关键。现有的运动模型大致可以分为两类:一类是单目标模型,另一类是多目标模型。特别是单对象模型通常采用线性方法[28,43,45,72]或非线性方法[15,67]来估计每个对象在相邻帧间的运动模式。在早期的工作中,卡尔曼滤波[28]在许多MOT方法中被广泛应用于运动估计[1,2,61]。近年来,人们设计了大量基于深度学习的方法来模拟给定目标位置序列的运动模式。例如,长短时记忆(LSTM)网络[42,52,31]描述和预测了多个帧中每个目标的复杂运动模式。与单目标方法不同,多目标模型的目标是同时估计每一帧中所有目标的运动模式。有代表性的方法以光流[65,22,30]、激光雷达点云[62,29]或立体点云[44,4]为输入来估计不同的运动模式。所有这些方法都使用帧向点/像素级运动来匹配单个对象。它们的匹配过程本质上是集群的,这利用了多个特性,如轨迹和外观。相比之下,我们的FlowTracker是一个简单的回归模块,它可以直接从不确定类别的光流中估计目标方向的运动。

外观模型。外观模型的目的是学习目标的鉴别特征,使相同目标的跨帧特征比不同目标的特征更相似。在早期的跟踪方法中,颜色直方图[12,36,33]和基于像素的模板表示[64,46]是用于描述移动对象外观的标准手工特征。除了使用欧几里德距离来度量外观相似性外,还使用协方差矩阵表示来比较像素方面的相似性,如SIFT-like特征[23,38]和pose特征[51,47]。近年来,随着DNNs的兴起,基于深度特征学习的方法得到了广泛的应用。例如,探索多个卷积层的特征,以增强结果特征[10]的识别能力。在[3]中,设计了一个在线特征学习模型,将检测结果和短轨联系起来。此外,不同的网络结构,如siamese网络[34]、triplet网络[49]和four plet网络[56],被广泛用于学习从检测到的对象边界盒中裁剪出的鉴别特征。得益于DNNs强大的表达能力,这一系列的方法[59,57,21]在公共基准数据集上取得了非常有前途的结果。然而,这些方法中的大多数都是独立地为每个对象边界框提取识别特征,这在MOT设置中扩展到无限个对象时是非常昂贵的。

3. 方法

实现端到端运动神经网络的基本要求是在运动估计和目标关联中联合处理不确定的目标数目。

我们通过两种技术来满足这些需求:1)目标流动。我们的FlowTracker不是从图像中提取目标方向的特征,而是首先通过光流估计所有像素的运动,然后细化每个目标的运动。该技术具有光流在所有目标上的像素级外观匹配。2)目标融合。我们的FuseTracker不是比较目标之间的特征,而是通过细化它们的边界框和合并细化的目标来融合目标。这些操作是由一个单独的DNN模块FuseTracker执行的,这样来自不同来源(跟踪和检测)的目标就可以基于改进的边界框和可信度评分进行关联。与标准目标检测器的后处理类似,FuseTracker使用高效的非maxsuppression (NMS)算法来生成融合的目标。

【论文翻译】Multiple Object Tracking by Flowing and Fusing(CVPR2020)

图2显示了封装了FlowTracker和FuseTracker的FFT架构。下面详细介绍了流跟踪器和融合跟踪器。

3.1 FlowTracker模块

FlowTracker DNN模块的目标是通过像素级特征联合估计目标方向运动的不确定数量,即光流。我们的FlowTracker的网络架构如图3所示,其中我们只使用了几个卷积层和一个全连接(FC)层来估计从上一帧到当前帧的目标运动。一旦我们的FlowTracker被训练好了,它就会以两帧作为输入,并在两帧之间输出多个目标运动。
【论文翻译】Multiple Object Tracking by Flowing and Fusing(CVPR2020)

前一帧表示为It1R3x(w)x(h)I_{t-1}\in R^{3x \mathcal(w) x \mathcal(h)},当前帧表示为ItR3x(w)x(h)I_t\in R^{3x \mathcal(w) x \mathcal(h)},其中t > 1表示时间指标。首先,我们将两帧图像输入到FlowNet中,在输出层得到一个像素级的光流FtR2x(w)x(h)F_t \in R^{2x(w)x(h)}。其次,我们将得到的光流输入到我们的流跟踪器中,并使用地面真值运动矢量对其进行训练。在实践中,前一帧通常有多个目标要在当前帧中跟踪。为简单起见,我们将前一帧中的目标表示为Bt1={bt1k1,bt1k2,...,bt1kn1k1,k2,...,knN}B_{t-1} = \{ b_{t-1}^{k1},b_{t-1}^{k2},...,b_{t-1}^{kn} | 1 \leq k_1,k_2,...,k_n \leq N \},其中bt1k=(xt1k,yt1k,wt1k,ht1k)b_{t-1}^k = (x_{t-1}^k,y_{t-1}^k,w_{t-1}^k, h_{t-1}^k)表示k{k1,k2,..,kn}k \in \lbrace k_1,k_2,..,k_n \rbrace目标在It1I_{t-1}帧中的位置。当前帧中对应的目标用Bt={btk1,btk2,...,btkn1k1,k2,...,knN}B_t = \lbrace b_t^{k1}, b_t^{k2},...,b_t^{kn} | 1 \leq k_1,k_2,...,k_n \leq N \rbrace,其中btk=(xtk,ytk,wtk,htk)b_t^k = (x_t^k,y_t^k,w_t^k,h_t^k)表示k{k1,k2,...,kn}k \in \lbrace k_1,k_2,...,k_n \rbrace目标在ItI_t帧中的位置。因此,通过测量Bt1B_{t-1}BtB_t之间的差异,可以很容易地学习目标运动。

【论文翻译】Multiple Object Tracking by Flowing and Fusing(CVPR2020)

目标运动的损失函数为:

L1(ΔBt,ΔBt)=ΔBtΔBtF2L_1(\Delta B_t, \Delta B_t^*) = \vert\vert \Delta B_t - \Delta B_t^* \vert\vert_F^2      (1)

这里ΔBt=BtBt1\Delta B_t^* = B_t - B_{t-1}表示在It1I_{t-1}ItI_t帧之间所有目标的 ground truth 运动向量,ΔBt\Delta B_t表示我们FlowTracker DNN模块输出的运动向量。在训练过程中通过优化这个目标函数来更新FlowTracker DNN模块的参数,我们的Flow Tracker从It1I_{t-1}帧到ItI_t帧获得预测目标运动ΔBt={[Δxtk,Δytk,Δwtk,Δhtk]}\Delta B_t = \lbrace [\Delta x_t^k, \Delta y_t^k, \Delta w_t^k, \Delta h_t^k] \rbrace的能力。因此,我们可以很容易地估计出当前帧中的目标位置,Bt=Bt1+ΔBtB_t = B_{t-1}+\Delta B_t。当训练过程中不断学习到越来越多的目标运动时,我们的FlowTracker变得更加强大,可以将目标关联到相邻帧中。

3.2 FuseTracker模块

FuseTracker DNN模块的作用是对FlowTracker Bt={btk1,btk2,...,btkn1k1,k2,...,knN}B_t = \lbrace b_t^{k_1},b_t^{k_2},...,b_t^{k_n} | 1\leq k_1,k_2,...,k_n \leq N \rbrace,目标检测Dt={dti}i=1,...,mD_t = \lbrace d_t^i \rbrace |_{i=1,...,m} 来自基于图像的对象检测器。FuseTracker的网络架构如图4所示。我们的机身是修改从著名的Fater-RCNN[48]。具体地,我们加入了特征金字塔网络(FPN)[37]来提取不同尺度的特征。在测试中,我们去掉了区域建议网络(RPN),使用FlowTracker目标和公共检测盒作为建议。

无论是来自FlowTracker的目标还是来自基于图像的检测器的目标都不能直接作为目标传递到下一帧。一方面,来自我们的FlowTracker的目标包含标识(ID)索引{k1,k2,...,kn1k1,k2,...,knN}\lbrace k_1,k_2,...,k_n | 1 \leq k_1, k_2, ..., k_n \leq N\rbrace继承自It1I_{t-1},但在帧t中可能存在不准确的bbox。另一方面,基于图像的检测器中的对象需要分配ID,要么获取FlowTracker目标的ID,要么生成新的ID。此外,即使一些FlowTracker目标和被检测到的目标可以匹配,在帧t中哪些bboxes应该被用于目标仍然是不清楚的。

FuseTracker解决了这一问题,处理两个FlowTracker目标Bt和检测对象Dt同等作为建议。形式上,FuseTracker接受来自Bt和Dt的bbox提案,并将其当前帧ItI_t作为输入。对于每一个提案,FuseTracker都会估计它的偏移量(cx, cy, w, h)和置信度(confidence score) c。给定两个细化的bbox集合BtrefB_t^{ref}DtrefD_t^{ref}, FuseTracker首先通过杀死置信度较低的bbox来处理消失的对象。然后应用两个级别的NMS(如图4中的“NMS*”所示)来合并bboxes。特别地,在细化的FlowTracker目标和检测到的对象中应用第一层NMS来处理对象的相互遮挡。第二级NMS采用基于IoU的bbox匹配和最大分数选择。此级别的NMS将从FlowTracker目标分配id给检测到的对象,并为融合的目标生成更精确的bbox。所有检测到的不继承目标id的对象都被视为新目标。

在训练FuseTracker时,与faster - rcnn[48]类似,RPN生成多个尺度的边界框建议,并根据每个建议裁剪特征图。然后将感兴趣区域(RoI)池应用于裁剪后的特征图,并将其分别传递给bbox分类头和回归头,得到目标分类分数和bbox位置偏移量。根据预测的分类分数、位置偏移量和地面真实边界框,我们最小化了多任务loss[24]的目标函数。检测头的损失函数定义为:

L2(c,c,b,b)=Lcls(c,c)+λ[c1]Lreg(b,b)L_2(c,c^*,b,b^*) = L_{cls}(c,c^*)+\lambda [c^* \geq 1]L_{reg}(b,b^*),     (2)

这里c和b=(x, y, w, h)分别是预测的分类分数和边界框的位置。cc^*bb^*是对应的地面真值。分类损失LclsL_{cls}为对数损失,回归损失LregL_{reg}为平滑L1损失。特别地,RPN部分的权值在训练期间是固定的,因为我们只是想用RPN产生模仿FlowTracker输出和公共检测结果的bbox提案。

在测试阶段,我们去掉了RPN,使用FlowTracker的目标Bt和来自公共探测器的边界框Dt作为建议。

3.3 推断算法

FFT推理算法联合运行FlowTracker和FuseTracker产生MOT输出(详见算法1)。综上所述,FFT推理算法共有7个步骤:

  • 步骤1。第一帧D0的检测由 Fuse Tracker 进行细化。检测到的bboxes作为提案传递给FuseTracker。在这些 Fuse Tracker 的输出的bboxes中,那些置信分数小于阈值分数的框被杀死,并应用帧化(frame-wised)的NMS。微调的检测D0refD_0^{ref}备用来初始化跟踪集合T。(Line 2-7)
  • 步骤2。当前帧的检测DtD_t被 Fuse Tracker 使用与步骤1中相同的方法进行微调。
  • 步骤3。前一帧It1I_{t-1}中所有被跟踪到的bboxes Bt1B_{t-1}(带有轨迹id的bboxes)都在T中被找到。Flow Tracker 把图像对{It1,It}\{ I_{t-1}, I_t \}Bt1B_{t-1}作为输入,并在当前帧中产生相应的跟踪到的bboxes BtB_t
  • 步骤4。Fuse Tracker 融合BtB_tDtrefD_t^{ref}中的bboxes。我们首先像步骤1中那样微调BtB_t,然后,对于每个在BtrefB_t^{ref}中的跟踪到的bbox btkb_t^k,我们找出与DtrefD_t^{ref}有着最大IoU的bbox。如果这个IoU比阈值iou大,我们认为这个被检测到的bbox是与btkb_t^k匹配的。如果这个匹配的检测到的bbox的置信分数比btkb_t^k的分数高,那么我们用检测到的bbox来代替btkb_t^k。另外,NMS被应用到融合的bbox集合中来得到跟踪结果BttrkB_t^{trk}。Fuse Tracker 返回NMS的输出BttrkB_t^{trk}和不匹配的检测DtumtD_t^{umt}。(Line 12)
  • 步骤5BttrkB_t^{trk}中的bboxes被添加到集合T中相应的轨迹中。
  • 步骤6。对于不匹配的检测DtumtD_t^{umt},我们进行回溯(更多细节看下面)到和它们匹配的轨迹TnasT_{nas}(在当前帧中没有被步骤2-5成功关联的轨迹)。(Line 14-19)
  • 步骤7。回溯也不能被匹配的检测DtumtD_t^{umt^\prime}被初始化为新轨迹。

回溯。在跟踪过程中,一些目标在前一帧中被遮挡或脱离场景,在当前帧中重新出现。为了处理这些情况,需要在当前帧和之前的几个帧之间重复跟踪。我们称这个过程为回溯(BT)。具体来说,对于轨迹TnasT_{nas},我们试图找到这些轨迹BnasB_{nas}的盒子为较早的帧。我们使用FlowTracker将BnasB_{nas}中的bbox从之前的帧移动到当前帧的BtB_t^\prime。然后,使用Fuse Tracker 融合未匹配的 DtumtD_t^{umt}BtB_t^\prime。这里,我们仅仅考虑能被匹配的轨迹。最后,我们将跟踪到的bboxesBttrkB_t^{trk^\prime}添加到相应的轨迹中。在BT中使用的帧数越多,就越有可能在遮挡的情况下跟踪到所有目标。我们在下面的消融研究部分研究BT帧数的影响。但是,随着BT帧数的增加,推理开销也随之增加。为了有效地实现,我们在不同的帧上自适应地应用不同数量的BTs,并在一个批处理中处理多个BTs。
【论文翻译】Multiple Object Tracking by Flowing and Fusing(CVPR2020)

4. 实验

FFT是用Python和PyTorch框架实现的。在MOT基准上进行了大量的实验,包括2DMOT2015[35]、MOT16[41]和MOT17[41]。特别地,我们将FFT与最新发表的MOT方法进行了比较,对FuseTracker、FlowTracker和BackTracking frame的有效性进行了消融研究,并分析了目标尺寸和遮挡百分比对FFT性能的影响。

4.1 实验设置

训练。Flow Tracker 由一个 FlowNet2 组件和一个回归组件组成。FlowNet2 是在MPI-Sintel数据集上预训练并且在回归组件训练过程中权重固定。在FlowTracker训练过程中,我们使用Adam优化器,初始学习率设为1e-4,分别在第80轮,160轮,210轮和260轮减半。我们在batch size设为24的情况下将模型训练了300轮。
【论文翻译】Multiple Object Tracking by Flowing and Fusing(CVPR2020)

FuseTracker 是从 Faster-RCNN 改过来的,其中,我们把ResNet101+FPN 作为 backbone。backbone 网络使用在ImageNet上预训练的权重初始化,整个模型使用MOT数据集中的地面真实边界框训练。在我们的FuseTracker的训练过程中,我们使用了随机梯度下降(SGD)优化器,并将初始学习率设置为1e-4,每5个epoch除以10。我们对模型进行了20个epoch的训练,批大小为16。

推理。如3.3所述,FFT推理算法由三个参数指定:置信度阈值thresh score、IoU阈值thres IoU、NMS阈值thresh NMS和回溯帧数。特别地,我们对实验中的所有基准数据集使用thresh score = 0.5、thresh iou = 0.5和thresh nms = 0.5。由于数据集的帧速率不同,我们对不同的数据集使用不同的回溯帧。设置在4.2中指定。在4.3中还研究了BT框架的影响。

4.2 主要结果

数据集。我们使用三个基准数据集,包括2DMOT2015[35]、MOT16[41]和MOT17[41]来进行我们的实验。它们都包含由静态摄像机和移动摄像机在无约束环境下(例如在复杂的光照变化、不同的视点和天气条件下)捕获的视频序列。2DMOT2015基准包含22个视频序列,其中11个视频序列用来测试。2DMOT2015基准测试提供了ACF[16]检测结果。2DMOT2015中每个视频每秒的帧数(FPS)从2.5到30不等。因此我们根据FPS来设置BT帧。我们使用BT帧3来处理2.5帧的low-FPS视频,BT帧10来处理7和10帧的中medium-FPS视频,BT帧30来处理14、25和30帧的high-FPS视频。MOT16基准包括7个完全注释的训练视频和7个测试视频。公共检测结果由DPM[19]获得。我们所有的测试视频都使用BT frame 30。MOT17 benchmark由7个全注释训练视频和7个测试视频组成,其中公共检测结果由3个基于图像的对象检测器:DPM[19]、FRCNN[48]和SDP[17]获得。所有测试视频的BT帧设置为30。

增强。我们应用两种类型的增强方法来训练流跟踪器。为了处理多目标物体不同的运动速度和不同的BT帧,我们使用不同的采样率来获得图像对。特别是每个视频序列都经过8种不同的采样率处理,共8组。8组图像中每组图像帧数之间的间隔分别为1、3、5、10、15、20、25、30。此外,当我们想要从像素方向的光流中获得目标运动时,如果当前帧中的bbox位置不准确,裁剪后的流特征将是不完整的,但我们仍然希望在下一帧中回归到准确的bbox位置。因此,如图5所示,我们将抖动应用到用于回归的bboxes中。我们将bbox的高度和宽度按0和0.15之间的随机比例放大或缩小。此外,我们还将bbox的中心垂直和水平移动了-0.15和0.15的宽度和高度的随机比率。我们保证抖动后原bbox和bbox之间的IoU大于0.8。为了训练FuseTracker,我们只使用水平翻转作为增强。

结果。为了评估我们提出的方法的性能,我们遵循了清晰的MOT度量[6]。我们报告了多目标跟踪精度(MOTP)和多目标跟踪精度(MOTA),它们结合了三个错误来源:假阳性(FP)、假阴性(FN)和身份开关(IDS)。此外,我们还报告了IDF1分数(IDF1)、ID精度(IDP)、ID召回(IDR)、跟踪碎片的数量(Frag.)、主要跟踪目标的百分比(MT)和主要丢失目标的百分比(ML)。
【论文翻译】Multiple Object Tracking by Flowing and Fusing(CVPR2020)
【论文翻译】Multiple Object Tracking by Flowing and Fusing(CVPR2020)

图6。对象可见性和对象大小对FFT (MOT17训练集)的影响。
其中,MOTA评分是主要标准2。

我们将FFT方法与最新的MOT方法进行了比较,这些MOT方法都是基于已发表的论文(对于MOT排行榜上不包含已发表论文或Arxiv论文的提交,我们无法分析它们的方法并验证它们的有效性)得出的。表3、4和5列出了两类主要的MOT结果:离线跟踪器和在线跟踪器。请注意,离线跟踪器在跟踪当前帧中的目标时,通常使用以前帧和将来帧的信息,而在线跟踪器仅使用以前帧的信息。因此,就MOT的主要度量指标MOTA而言,离线跟踪器的性能通常要优于在线跟踪器。然而,FFT是一种在线方法,其MOTA的表现优于2DMOT15、MOT16和MOT17基准中所有的MOT方法,如表3、4和5所示。此外,FFT在最常跟踪的目标(MT)、最常丢失的目标(ML)和假阴性(FN)指标上也取得了最好的性能。这说明FFT可以正确地跟踪最多的位置。

4.3 消融实验

本节介绍MOT17基准的消融研究。我们在表1中展示了我们的FuseTracker和FlowTracker的有效性。我们首先移除了FuseTracker,以证明它是有效的。但是,如果不使用FuseTracker,我们没有任何提示来生成bboxes的分数。为了保持算法逻辑的完整性,我们对一个小型的带ResNet18骨干网的类rpc网络进行再训练,生成bboxes的分数。此外,我们选择在这里更信任公共检测,因为我们没有细化模块了。表1中的FFT w/o FuseTracker显示,使用FuseTracker后,MOTA提高了6.4,IDF1提高了6.8。通过在FFT中加入FuseTracker,所有其他指标也得到了改进。然后,我们证明了FlowTracker是有效的。通过移除FlowTracker,我们直接使用前一帧的bboxes作为当前帧中FuseTracker的被跟踪的目标提案。表1中的FFT w/o FlowTracker表明,使用FlowTracker, MOTA提高了0.7,IDF1提高了1.7。通过在FFT中包含FlowTracker,几乎所有其他指标都得到了改进。

【论文翻译】Multiple Object Tracking by Flowing and Fusing(CVPR2020)
【论文翻译】Multiple Object Tracking by Flowing and Fusing(CVPR2020)

我们还研究了回溯的有效性。如表2所示,BT对两个主要指标MOTA和IDF1的影响较大。我们运行固定的BT帧数为1、10、20和30的FFT。随着BT帧数的增加,MOTA增加0.6至56.5,IDF1增加10.8至51.0。性能在BT30左右达到饱和。结果表明,在BT帧数目较大的情况下,FFT可以观察到较长的时间剪辑,并且更有可能跟踪被遮挡的、场景外的和有噪声的物体。

4.4 分析

最后详细分析了FFT的具体性能。由于我们的FlowTracker在帧基上计算像素运动(光流),它的性能可能会受到遮挡和对象大小的影响。当一个物体被当前帧遮挡时,光流可能不匹配帧之间的所有像素。此外,在帧级的光流计算试图对所有像素的误差进行平均,因此较小物体(较少像素)的光流更有可能出现误差,这将进一步影响目标方向的运动估计。在接下来的实验中,我们展示了对象可见性和对象大小的影响。

因为地面实况非常贴切的测试集不公开,我们执行分析MOT17训练集。图6报告了被正确跟踪的对象和丢失的对象的总数,它们分别与MOT17的三个公共对象检测器的可见性和大小相关。目标bbox的对象可见性计算为非重叠区域与bbox区域之比。如子图对象可见性所示,在低可见性下,会丢失更多的对象。正确跟踪目标的百分比随着可见性的增加而增加。当目标可见度达到0.8时,正确跟踪的目标比率变得稳定。

对于对象大小分析,我们只收集可见性大于0.8的对象,以减少实验中的变量。一个物体的大小是由它的盒高来衡量的。在子图对象大小中,正确跟踪的对象的百分比随着对象大小的增加而增加。当目标尺寸(bbox高度)达到150时,跟踪性能近乎完美。

5. 结论

Flow-Fuse-Tracker(FFT)通过解决现有方法中的两个基本问题,达到了MOT的最新水平:

1)如何在不确定数量的目标上共享运动计算。
2)如何融合被跟踪目标和被检测目标。我们的方法为这两个问题提供了一个端到端的DNN解决方案,并避免了基于成对外观的重新识别,这是大多数现有MOT方法中昂贵且不可缺少的部分。FFT是一个非常普遍的MOT框架。在FlowTracker中使用更好的光流网络和在FuseTracker中使用更先进的目标探测器结构,可以进一步改进所提出的方案。