冠军方案开源 | MOTRv2:YOLOX与MOTR合力打造最强多目标跟踪! 原创

自动驾驶之心
发布于 2022-12-4 09:10
浏览
0收藏

欢迎关注国内首个以自动驾驶技术栈为主线的交流学习社区!
原文出处:微信公众号【自动驾驶之心】

代码开源:https://github.com/megvii-research/MOTRv2

摘要

在本文中,作者提出了MOTRv2,一个简单而有效的pipline,通过预训练的目标检测器引导端到端的多目标跟踪。现有的端到端方法,如MOTR[43]和TrackFormer[20],主要由于其检测性能较差而不如其它tracking-by-detection的方法。作者旨在通过优雅地加入一个额外的目标检测器来改进MOTR。作者首先采用queries的anchor点方式,然后使用一个额外的目标检测器来生成proposal作为anchor点,在MOTR之前提供检测。这个简单的修改大大缓解了MOTR中联合学习检测和关联任务之间的冲突。MOTRv2保持了端到端的特征,并在大规模的基准测试中具有良好的扩展性。MOTRv2在第一届 Multiple People Tracking in Group Dance挑战赛中排名第一(73.4% HOTA on DanceTrack)。此外,MOTRv2在BDD100K数据集上实现了SOTA的性能。作者希望这个简单而有效的pipline能够为端到端MOT社区提供一些新的见解。

介绍

多目标跟踪(MOT)的目的是预测视频流中所有目标的轨迹。它可以分为两个部分: 检测和关联。长期以来,MOT 的SOTA性能一直被tracking-by-detection方法所主导[36,44,45] ,具有良好的检测性能以应对各种外观分布。这些跟踪器[44]首先使用目标检测器(例如 YOLOX [11])来定位每个帧中的目标,并通过 ReID 特征或 IoU 匹配关联跟踪。这些方法的优越性能部分来自于偏向于检测性能的数据集和指标。然而,正如舞蹈轨迹数据集[27]所揭示的,它们的关联策略在复杂运动中仍有待改进。

最近,MOTR [43] ,一个完全的端到端框架被引入到 MOT 任务中。关联过程通过更新跟踪queries来执行,而新生目标则通过检测queries来检测。它在 DanceTrack 上的关联性能令人印象深刻,但检测结果不如那些tracking-by-detection的方法,特别是在 MOT17数据集上。联合检测和关联过程之间的冲突是导致检测性能差的主要原因。由于SOTA跟踪器倾向于使用额外的目标检测器,一个自然而然的问题就是如何将 MOTR 与额外的目标检测器结合起来以获得更好的检测性能。一种直接的方法是在跟踪queries的预测和额外的目标检测器之间执行 IoU 匹配(类似于 TransTrack [28])。在作者的实践中,它只带来了微小的目标检测改善,同时违背了MOTR的端到端特性。

受到以检测结果为输入的tracking-by-detection方法的启发,作者想知道是否可以将检测结果作为输入,减少 MOTR 对关联的学习。最近DETR 中基于anchor建模的一些进展[18,35]。例如,DAB-DETR 使用anchor框的中心点、高度和宽度初始化目标queries。与它们类似,作者在 MOTR 中修改检测和跟踪queries的初始化。将 MOTR 中检测queries的可学习位置embeddings(PE)改为anchor的正余弦 PE [30] ,生成了一个基于anchor的 MOTR 跟踪器。利用这种基于anchor的建模方法,通过一个额外的目标检测器生成的proposal可以作为 MOTR 的anchor初始化,提供局部先验信息。利用transformer解码器对anchor点的相对偏移量进行预测,使检测任务的优化更加容易。

作者提出的 MOTRv2与原 MOTR 相比具有许多优点。由于额外目标检测器引入了良好的检测性能,因而大大提高了检测性能。检测任务与 MOTR 框架隐式解耦,缓解了共享transformer解码器中检测任务与关联任务之间的冲突。MOTRv2学会跨帧跟踪来自额外检测器的检测结果。与最初的 MOTR 相比,MOTRv2在 DanceTrack、 BDD100K 和 MOT17数据集上实现了很大的性能改进(见下图1)。

冠军方案开源 | MOTRv2:YOLOX与MOTR合力打造最强多目标跟踪!-鸿蒙开发者社区

在 DanceTrack 数据集上,MOTRv2大大超过了 tracking-by-detection对比方法(与 OC-SORT 相比,HOTA 为14.8% [6]) ,AssA 指标比第二好的方法高18.8% 。在大规模多级 BDD100K 数据集[42]上,作者实现了43.6% 的 mMOTA,比以前的最佳解决方案 Unicorn [41]好2.4% 。MOTRv2还在 MOT17数据集上实现了SOTA性能[15,21]。作者希望简单而优雅的设计可以作为未来端到端多目标跟踪研究提供一个强有力的基准。

相关工作

tracking-by-detection方法[6,44]主要遵循tracking-by-detection pipline: 目标检测器首先预测每个帧的目标边界框,然后使用单独的算法来关联相邻帧的实例边界框。这些方法的性能在很大程度上取决于目标检测的质量。有多种尝试使用匈牙利算法[14]进行关联: SORT [4]对每个跟踪实例应用 Kalman filter [37] ,并在 Kalman 滤波器的预测框和检测框之间使用IoU矩阵进行匹配。Deep-SORT [38]引入了一个单独的网络来提取实例的外观特征,并在 SORT 之上使用成对余弦距离。JDE [36] ,Track-rCNN [25] ,FairMOT [45]和 Unicorn [41]进一步探讨了目标检测和外观embeddings的联合训练。ByteTrack [44]利用了一个强大的基于 YOLOX 的[11]检测器,实现了SOTA性能。它引入了一种增强的 SORT 算法来关联低分检测框,而不是仅仅关联高分检测框。进一步设计了较好的卡尔曼滤波状态、相机运动补偿和 ReID 特征融合算法。TransMOT [10]和 GTR [48]在计算指派矩阵时使用时空transformers进行实例特征交互和历史信息聚合。OC-SORT [6]放松了线性运动假设,以更好地恢复丢失的轨迹。

作者的方法也受益于一个鲁棒的检测器,作者不计算相似性矩阵,但使用跟踪queries与anchor联合建模运动和外观。

Tracking by Query Propagation MOT 的另一个范例将基于query的目标检测器[7,29,49]扩展到了跟踪。这些方法强制每个query跨不同的帧召回相同的实例。query和图像特征之间的交互可以并行或串行实现。

并行方法以一个简短的视频作为输入,使用一组queries与所有帧交互,预测实例的轨迹。VisTR [34]和随后的工作[9,40]扩展了 DETR [7] ,以检测短视频剪辑中的轨迹。并行方法需要将整个视频作为输入,因此它们需要消耗内存,并且仅限于几十帧的短视频剪辑。

串行方法执行逐帧query与图像特征交互,并迭代更新与实例相关的跟踪queries。Tracktor++[2]利用 R-CNN [12]回归头跨帧迭代实例重定位。TrackFormer[20]和MOTR[43]从可变形的DETR [49]延伸出来。它们预测目标边界框,并更新跟踪queries以检测后续帧中的相同实例。MeMOT[5]构建短期和长期实例特性内存库来生成跟踪queries。TransTrack [28]传播跟踪queries一次,以在下一帧中找到目标位置。P3AFormer[46]采用流引导图像特征传播。与 MOTR 不同,TransTrack 和 P3AFormer 在历史轨迹和当前检测中仍然使用基于位置的匈牙利匹配,而不是在整个视频中传播queries。

作者的方法继承了用于长期端到端跟踪的queries传播方法,同时也利用了一个强大的目标检测器来提供目标位置先验。该方法在复杂运动中的跟踪性能明显优于现有的基于匹配和query的方法。

方法

作者提出的MOTRv2基于proposal query生成和proposal传播。

动机

如前所述,检测和关联之间的冲突导致了 MOTR 中较差的检测性能[43]。在tracking-by-detection方法的启发下,作者以额外目标检测器的检测结果作为输入,通过 MOTR 输出跟踪结果。YOLOX [11]是 MOT [6,44]的一个流行的目标检测器,作者计划应用它为 MOTR 产生高质量的proposal。然而,在保持端到端特性的同时,以一种优雅的方式将 YOLOX 知识集成到 MOTR 框架中并不那么容易。受到基于anchor的 DETRs 发展的启发[18,35] ,作者对 MOTR 进行了一些修改,使其能够接收来自 YOLOX 的检测作为输入。作者引入了proposal query来代替 MOTR 中的检测query。proposal query是通过给定 YOLOX 检测之前的共享queryembeddings生成的。具体来说,检测结果用于执行共享query的位置编码。此外,作者还提出了所谓的proposal传播,即逐帧传播跟踪queries的proposal边界框。这样,优化难度大大降低,MOTR 主要集中在关联过程的学习上。

总体架构

如下图2所示,所提出的方法相当简单,主要包括两个部分: 一个用于准确生成目标proposal的SOTA目标检测器和一个改进的基于anchor的 MOTR 跟踪器来学习跟踪关联。

冠军方案开源 | MOTRv2:YOLOX与MOTR合力打造最强多目标跟踪!-鸿蒙开发者社区

具体地说,给定$t^{th}$帧,作者通过预先训练好的 YOLOX 检测器生成一组用于训练和推理的proposal。每个proposal包括中心坐标,宽度,高度和置信度。proposal query生成从 YOLOX 中读取proposal框,并生成一组proposal query以替换 MOTR 中的检测queries。MOTR采用跟踪query和proposal query的连接作为输入。连接的queries与图像特征进行交互,以通过proposal传播更新被跟踪目标的边界框。

Proposal query生成

proposal query生成模块将 YOLOX 中的proposal框作为输入,并为修改后的 MOTR 生成一组proposal query。需要注意的是,与 DETR [7]和 MOTR 应用一组可学习的目标检测queries不同,作者框架中的proposal queries数量是由 YOLOX 生成的选定proposal动态确定的。

假设框 t 处 YOLOX 方案的个数为 Nt,预测方案主要包括方案框 $P_t = (x_t,y_t,w_t,h_t)^ T ∈ R^{N_T×4},其置信度分数 $s_t ∈ R^{N_T×1}$。这里,(x,y)是中心点的坐标。h,w是proposal的高度和宽度。如下图3中的橙色部分所示,作者引入了一个共享query:qs 来生成一组proposal queries。

冠军方案开源 | MOTRv2:YOLOX与MOTR合力打造最强多目标跟踪!-鸿蒙开发者社区

共享query是一种可学习的大小为1 × D 的embeddings式query,首先广播到 $N_t × D$ 的大小。$N_t$ proposal框的预测分数序列通过正弦位置编码产生大小为 $N_t$ × D 的分数embeddings。然后将广播queries与分数embeddings一起添加,以生成proposal query。YOLOX proposal框作为proposal query的anchor。在实践中,作者还使用了10个可学习的anchor(类似于 DAB-DETR [18]) ,并将它们与 YOLOX proposal连接起来,以召回 YOLOX 检测器错过的目标。

Proposal传播

在 MOTR [43]中,跟踪query和检测query是连接在一起的,并输入到transformer解码器,以便同时进行目标检测和跟踪关联。由前一帧生成的跟踪queries表示被跟踪目标,用于预测当前帧的边界框。检测queries是一组固定的可学习embeddings,用于检测新生目标。与 MOTR 方法不同的是,该方法使用proposal queries来检测新生目标,并在前一帧预测的基础上对轨迹queries进行预测。

对于第一帧(t = 0) ,只有新生的目标,这些目标由 YOLOX 检测到。如上所述,proposal query是根据共享queries $q_s$ 和 YOLOX proposal的预测分数生成的。在 YOLOX proposal $P_0$进行位置编码后,proposal query通过自注意力进一步更新,并通过可变形注意力与图像特征相互作用,产生跟踪queries $q_{tr,0}$和相对偏移量($\Delta x,\Delta y,\Delta w,\Delta h$)。预测 $Y_0$是proposal $P_0$和预测偏移量之和。对于其他帧(t > 0) ,类似于 MOTR,跟踪queries $q_tr$,从前一帧生成的 t-1将与当前帧的proposal query $qp,t$ 连接。前一帧的方框预测 $Y_{t-1}$也将与 YOLOX proposal $P_t$ 连接起来,作为当前帧的anchor。anchor的正余弦编码用作级联queries的位置embeddings,然后由transformer解码器产生预测和更新轨迹序列。边界框预测由置信度得分和相对偏移量 w.r.t. anchor组成,更新后的跟踪queries $q_{tr,t}$ 被进一步转移到下一帧以检测被跟踪目标。

在上述设计中,proposal queries仅限于检测新生或缺失的目标,跟踪queries负责重定位被跟踪的目标。proposal queries需要聚合来自跟踪queries的信息以避免被跟踪目标的重复检测,而跟踪queries可以利用 YOLOX proposal来改进目标定位。这是通过transformer解码器中的自注意力层的queries交互来实现的。为了更好地理解proposal query和跟踪queries之间的交互,作者在下图4中可视化queries自关注图。对于同一个实例,proposal query和相应的跟踪queries具有很高的相似性,并且它们之间有明显的信息交换,这与作者的假设是一致的。

冠军方案开源 | MOTRv2:YOLOX与MOTR合力打造最强多目标跟踪!-鸿蒙开发者社区

实验

数据集和度量

数据集 作者使用 DanceTrack [27] ,MOT17[15,21]和 BDD100K [42]数据集来评估作者的方法。

DanceTrack [27]是一个用于多人跟踪舞蹈场景的大规模数据集。它具有统一的外观和不同的动作,这是具有挑战性的跨帧实例关联。DanceTrack 包括100个视频: 40个用于训练,25个用于验证,35个用于测试。视频的平均长度为52.9s。

MOT17 [15,21]是一个广泛使用的数据集,包含7个用于训练的序列和7个用于测试的序列。它主要包含相对拥挤的街景,行人简单直线的移动。

BDD100K [42]是一个自动驾驶场景数据集。它包含一个多目标跟踪子集,其中1400个序列用于训练,200个序列用于验证。序列长度约为40秒,目标类的数量为8。作者用它来测试多类多目标跟踪性能。度量 作者使用多目标跟踪的高阶度量(高阶跟踪精度; HOTA)[19]来评估作者的方法,并分析分解为检测精度(DetA)和关联精度(AssA)的贡献。对于 MOT17和 BDD100K 数据集,作者列出 MOTA [3]和 IDF1[23]指标。

实现细节

proposal生成 作者使用 YOLOX [11]检测器和ByteTrack[44]和 Dance-Track [27]提供的权重来生成目标proposal。超参数,例如输入图像大小,与 ByteTrack 一致。为了最大限度地提高proposal召回率,作者保留所有 YOLOX 预测框的置信度分数超过0.05作为proposal。对于 DanceTrack [27] ,作者使用来自 DanceTrack 官方的 YOLOX 权重。对于 CrowdHuman [24]和 MOT17,作者使用来自 ByteTrack [44]的 MOT17测试集的公开权重。作者不在这两个数据集上训练 YOLOX,只是在训练 MOTR 之前使用它为所有图像生成proposal。对于 BDD100K [42] ,作者使用其 MOT 设置与100K 图像设置一起进行训练。YOLOX 检测器在8台Tesla V100 GPUs上训练了16个epoch。作者遵循 ByteTrack [44]的其他训练超参数。

MOTR 作者的实现是基于官方的repo和一个用于特征提取的 ResNet50[13]骨干。所有 MOTR 模型都是在8个GPUs上进行训练的,每个GPU的batch size大小为1。对于 DanceTrack [27] ,作者遵循 YOLOX [11]并采用 HSV 增强来训练 MOTR。与在训练期间传播与真值跟踪匹配的跟踪queries的原始实现相反,传播置信度得分高于 0.5 的跟踪queries,这自然会产生误报(FP,高分但没有真值实例)和漏报( FN, 实例未检到) 跟踪queries以增强推理过程中对 FPs 和 FNs 的处理通过这种方式,作者不需要按照 MOTR 手动插入反例或删除正例的跟踪queries,即 $p_drop$ = 0和 $p_insert$ = 0。作者训练了5个epoch的消融研究和SOTA比较模型,固定clip大小为5。剪辑中帧的采样步长是从1到10随机选择的。在第4个epoch,初始学习率2 × 10-4下降了10倍。对于 MOT17[15,21] ,训练epoch的数量被调整为50,学习率在第40个epoch下降。对于 BDD100K [42] ,作者使用clip大小为4的随机采样步长从1到4训练2.5epoch。学习率在第2个epoch结束时下降。对于多类 MOT 的扩展,每个 YOLOX proposal还包括一个类标签,作者对每个类使用不同的可学习embeddings(共享queries)。不更改其他设置。

联合CrowdHuman训练 为了提高检测性能,作者还利用了大量的 CrowdHuman 静态图像。对于 danceTrack 数据集,类似于 MOTR 的 MOT17和 CrowdHuman 的联合训练,作者为 CrowdHuman 生成伪视频clip,并与 danceTrack 进行联合训练。伪视频clip的长度也被设置为5。作者使用来自 DanceTrack [27]数据集的训练集的41,796个样本和来自 CrowdHuman [24]数据集的训练和验证集的19,370个样本进行联合训练。对于 MOT17数据集,作者将原始设置保留在 MOTR 中,将 CrowdHuman 的验证集和 MOT17的训练集连接起来。

DanceTrack 上与SOTA比较

作者比较了 MOTRv2与 DanceTrack [27]测试集上的最新方法,结果如下表1所示。

冠军方案开源 | MOTRv2:YOLOX与MOTR合力打造最强多目标跟踪!-鸿蒙开发者社区

在没有trick的情况下,作者的方法可以达到69.9 HOTA,并且在所有高阶指标上显示出最佳性能,远远超过其他SOTA方法。与那些基于匹配的方法(例如 ByteTrack [44]和 OC-SORT [6])相比,作者的方法显示了更好的关联准确率(59.0% 比38.3%) ,同时也达到了不错的检测准确率(83.0% 比80.3%)。MOTRv2的跟踪精度比 HOTA 高69.9% ,比 HOTA 高14.8%以前最好的方法。IDF1度量在以前的方法和 MOTRv2之间的巨大差距也表明了作者的方法在复杂运动中的优越性。为了获得更好的性能,作者在后处理中应用了额外的关联以获得更好的性能: 如果在20到100帧内只有一条跟踪退出,而另一条跟踪出现,作者认为它们是同一个实例的跟踪。通过额外的关联,添加用于训练的验证集,并使用4个模型的集合,作者在 DanceTrack 测试集上进一步实现了73.4% 的 HOTA。

BDD100K上与SOTA比较

下表2显示了 BDD100k [42]跟踪验证集上的结果。

冠军方案开源 | MOTRv2:YOLOX与MOTR合力打造最强多目标跟踪!-鸿蒙开发者社区

在所有方法中,MOTRv2获得了最高的 mMOTA 和 mIDF1。为了进行公平的比较,作者在 MOTR 上装备了10万像集的联合训练和box传播,表示为 MOTR * 。通过使用 YOLOX 方案,MOTRv2的性能优于 MOTR * 8.1% mMOTA 和8.3% mIDF1,表明 YOLOX 方案大大提高了多级检测和跟踪性能。与其他SOTA方法相比,MOTRv2的性能优于最好的跟踪器 Unicorn 的2.4% mMOTA 和1.1% mIDF1。较高的 mMOTA 和 mIDF1(在所有类中平均)表明 MOTRv2能够更好地处理多类场景。整体 MOTA (-1.0%)和 IDF1(+ 1.4%)的差异表明,作者的方法在关联方面更好。

MOT17上与SOTA比较

作者进一步比较了 MOTRv2与 MOT17数据集上的最新方法的性能[15,21]。与原来的 MOTR [43]相比,YOLOX proposal的引入使检测(DetA)和关联(AssA)的准确性相应地提高了3.5% 和4.9% 。提出的方法将基于queries的跟踪器在拥挤场景中的性能提高到了SOTA水平。作者将剩余的性能差距归因于 MOT17数据集的规模太小(总共215秒) ,不足以训练基于queries的跟踪器。下表3展示了比较情况。

冠军方案开源 | MOTRv2:YOLOX与MOTR合力打造最强多目标跟踪!-鸿蒙开发者社区

消融研究

在这一部分,作者研究了方法中的几个组成部分,如 YOLOX proposal、proposal传播和与 CrowdHuman 的联合训练。

YOLOX proposal 为了更彻底地研究使用 YOLOX proposal的好处,作者在两种情况下测试 YOLOX proposal的效果: 有和没有 CrowdHuman 联合训练。下表4显示,不管是否使用 CrowdHuman 数据集,将 YOLOX 预测作为proposal query始终改进了所有三个指标(HOTA、 DetA 和 AssA)。

冠军方案开源 | MOTRv2:YOLOX与MOTR合力打造最强多目标跟踪!-鸿蒙开发者社区

当与 CrowdHuman 数据集联合训练时,YOLOX proposal显著提高了关联精度(AssA)9.3% 。单独使用经过预训练的目标检测器 YOLOX 比使用 CrowdHuman 数据集进行联合训练的效果要好(HOTA 56.7 vs. 60.7)。使用 YOLOX proposal和 CrowdHuman 联合训练都可以提高检测的准确性。然而,使用 CrowdHuman 伪视频似乎对联想训练产生了负面影响,AssA 下降了5.6% 就说明了这一点。这可能是由于两个数据集之间的差距造成的: CrowdHuman 伪视频将训练倾向于使可学习的检测queries能够处理更难的检测,以及人体运动。

通过仿射变换创建的伪视频与 DanceTrack 不同。值得注意的是,使用 YOLOX proposal反过来有助于 CrowdHuman 联合训练。作者使用 YOLOX 方案的方法使得 MOTR 的检测更加容易,从而减少了对检测的偏见以及检测和关联任务之间的冲突。因此,根据 YOLOX 的proposal,与 CrowdHuman 的联合训练可以进一步提高而不是损害跟踪性能。

proposal传播 作者展示了支撑proposal(中心点以及宽度和高度)从当前帧到后续帧的影响。比较的基线是应用于 MOTR [43]和 TransTrack [28]的参考点的传播。这意味着只使用前一帧的中心点作为queries参考点。此外,作者还探讨了用anchor(或参考点)的正弦余弦位置编码替代queries的可学习位置embeddings的效果。从下表5中,作者可以很容易地发现,传播四维proposal(框)而不是中心点产生更好的关联性能。

冠军方案开源 | MOTRv2:YOLOX与MOTR合力打造最强多目标跟踪!-鸿蒙开发者社区

这表明 MOTRv2受益于宽度和高度信息,这些信息来自关联实例的前一帧的边界框预测。相比使用可学习的位置embeddings变形 DETR 的原始设计[49],正余弦位置编码对关联几乎没有帮助。因此,使用anchor框代替点不仅对于引入 YOLOX 检测结果是至关重要的,而且对于为 MOTR 解码器提供定位信息也是足够的。

Score Encoding proposal query是两部分的总和: 置信度得分; (2)共享可学习query embedding。作者探讨了两种方法来编码 YOLOX proposal的置信度得分,即线性投影和正弦-余弦位置编码。对于线性投影,作者使用一个大小为1 × D 的简单权矩阵将得分标量展开为一个 D 维得分embeddings。此外,作者根本不使用置信度评分进行测试,也就是说,只对proposal query使用embeddings的共享queries。下表6显示不使用分数embeddings表现最差,这意味着置信度分数为 MOTR 提供了重要信息。

冠军方案开源 | MOTRv2:YOLOX与MOTR合力打造最强多目标跟踪!-鸿蒙开发者社区

此外,可学习embeddings和正余弦编码都能很好地工作,使用正余弦编码能更好地进行关联。

query去噪 为了快速收敛,作者引入了query去噪[16]作为 DanceTrack 和 MOT17的辅助任务。下表7显示,使用默认噪声等级(0.4)的query去噪会损害关联性能。

冠军方案开源 | MOTRv2:YOLOX与MOTR合力打造最强多目标跟踪!-鸿蒙开发者社区

作者将其归因于检测和跟踪之间的差距,因为人工噪声通常比实例的跨帧运动在尺度上更大。作者选择的噪声范围实现了2.1% 的改善,同时几乎保留了 AssA 的性能。queries去噪提高了检测性能,进一步提高了 HOTA 度量的0.8% 。

额外检测queries的数量 作者将一小组可学习的检测queries连接到 YOLOX proposal query,并跟踪queries,以召回那些被 YOLOX 检测器错过的目标,避免根本没有queries的边界情况。作者发现,添加10个额外的可学习anchor点可以最大限度地提高检测和跟踪性能(见下表8)。在所有 MOTR 预测中,额外的检测queries占最小的比例。大多数预测来自跟踪queries,因为大多数目标在整个视频中都被跟踪。

冠军方案开源 | MOTRv2:YOLOX与MOTR合力打造最强多目标跟踪!-鸿蒙开发者社区

跟踪query对齐 为了充分利用 YOLOX 在人群场景中的准确目标检测,作者进一步引入了跟踪query对齐,以增强 MOTRv2在 MOT17[15,21]数据集上的性能。作者首先计算了 MOTR 预测框和 YOLOX 方案之间的IoU矩阵。然后,对IoU矩阵进行匈牙利匹配,找到最佳匹配对,并保留所有IoU大于0.5的框的匹配对。然后,作者提出了三种独立的对齐策略: 匹配的 YOLOX 框可以取代(1)该帧的 MOTR 框预测和(2)用于检测下一帧中相应实例的跟踪query anchor。此外,(3)不匹配的 MOTR 预测可以从预测中删除,因为它们很可能是假阳性。下图5说明了这些比对的效果。注意,这些对齐只应用于anchor或预测框,并不改变query embeddings的传播方式,这保留了方法的端到端特性。

冠军方案开源 | MOTRv2:YOLOX与MOTR合力打造最强多目标跟踪!-鸿蒙开发者社区

作者在 MOT17上测试了这三种方法的所有组合。作者使用每个训练序列的前半部分进行训练,剩下的一半进行验证。所有的对齐都是在训练期间应用的,对齐方法的消融研究是在推断期间进行的。结果如下表9所示。

冠军方案开源 | MOTRv2:YOLOX与MOTR合力打造最强多目标跟踪!-鸿蒙开发者社区

在这三种方法中,对齐anchor对于检测和跟踪性能是最有益的,因为它单独使用时将 MOTA 提高8.4% ,IDF1提高3.9% (第1行比第3行)。将anchor与相应的 YOLOX proposal对齐可以减少anchor传播过程中定位误差的积累,从而提高检测和关联的准确性(见图5-a)。删除 MOTR 中不匹配任何 YOLOX 框的预测在所有设置可以提高检测性能。除了anchor对齐(第2行对第4行) 外,它还进一步提高了 MOTA 2.0% (参见图5(b))。最后,逐帧预测对齐效果最差。然而,作为一种直观的方法,它可以用来进一步改善 MOTA 和 IDF1。

讨论

本文讨论的是 MOTRv2,它是 MOTR 跟踪器和 YOLOX 检测器的完美结合。由 YOLOX 提出的高质量目标proposal,为MOTR检测新生目标提供了先决条件。目标检测的优化难度大大降低,使得 MOTR 更加关注关联过程。MOTRv2打破了端到端框架不适合高性能 MOT 的普遍看法。它还解释了端到端 MOT 框架失败的原因。作者希望它能为社区提供一些端到端 MOT 的新见解。

局限性 虽然使用 YOLOX 方案极大地缓解了 MOTR 的最佳化问题,但是这个方案仍然需要大量的数据,并且在小型数据集上表现得不够好,比如 MOT17[8]。当 MOTR 超出了拥挤场景中的小数据集时,作者观察到一些重复的跟踪queries。例如,当两个人相互穿越时,其中一个跟踪queries可能丢失并跟随错误的实例,从而导致同一实例的两个跟踪queries。上面的图5(b)显示了一个示例。这种效应在大型数据集上没有观察到,例如 DanceTrack [27]和 BDD100K [42] ,但它可能是未来改进的一个提示。另一个限制是 YOLOX 检测器引入的计算开销,这可能会阻碍作者的 MOTRv2在边缘设备上的部署。

参考

[1] MOTRv2: Bootstrapping End-to-End Multi-Object Tracking by Pretrained Object Detectors

©著作权归作者所有,如需转载,请注明出处,否则将追究法律责任
已于2022-12-4 09:10:48修改
3
收藏
回复
举报
回复
    相关推荐