多摄像头跟踪在各种实际应用中起着关键作用。尽管端到端方法在单摄像头跟踪方面获得了显著的关注,但多摄像头跟踪仍主要依赖于启发式技术。 为了弥补这一差距,本文提出了一种新颖的端到端方法 - 多摄像头跟踪 Transformer (MCTR),该方法适用于在多个摄像机拍摄多目标检测和跟踪的场景。MCTR采用端到端检测器,如DETector TRansformer(DETR),为每个摄像机视图独立生成检测和检测嵌入。 框架维护一组跟踪嵌入,以包含关于跟踪物体的全局信息,并在每帧通过整合特定视图的检测嵌入的局部信息来更新它们。 跟踪嵌入与每个摄像机视图和帧中的检测一起概率相关联,以生成一致的目标轨迹。这种软概率关联方便设计可微分的损失,从而使整个系统的端到端训练成为可能。 为了验证作者的方法,作者在MMPTrack和AI City Challenge这两个最近推出的大规模多摄像头多目标跟踪数据集上进行了实验。
1 Introduction
计算机视觉中的目标跟踪长期以来一直是研究领域的核心挑战,因为它在许多实际应用中具有广泛的应用价值。尽管大多数研究努力集中在单摄像头视频流的多目标跟踪上,但由于在多样应用(如安全、监测或体育分析)中部署的多摄像头系统日益普及,因此多摄像头多目标跟踪的需求也在增加。在这些应用中,多摄像头系统相对于单目摄像机具有多种优势,如增加覆盖范围、减少盲区和提高跟踪鲁棒性,尤其是在涉及检测失败或持续遮挡的场景中。
迄今为止,多摄像头跟踪的主导方法主要是启发式技术,包括行人重识别、单目跟踪、透视图估计和聚类等组件的融合。这些技术在性能上具有可观的表现,但它们本质上具有启发式性,其性能通常取决于定制的规则和使用的启发式质量。近日,将基于 Transformer 的算法应用于跟踪获得了显著的关注,因为它们能够将跟踪过程的所有方面封装在一个统一的全端到端框架中。然而,这种向端到端跟踪的转变主要适用于单目场景。在多摄像头跟踪领域,尤其是在处理高度重叠的摄像机视图时,几乎没有工作在这个方向。
在这篇论文中,作者提出了一种名为Multi Camera Tracking tRansformer (MCTR)的新颖方法,用于多摄像头多目标跟踪,该方法采用端到端架构跟踪多个物体在不同摄像机视图之间。MCTR基于最近的端到端目标检测模型,如DETR(DEtections TRansformer)[7],额外添加了两个组件以促进多摄像头跟踪:一个跟踪模块和一个关联模块。MCTR的流程概念上很简单:目标检测器在每一个摄像机视图上独立应用,以生成视图特定的检测和检测嵌入;跟踪模块维护一组跟踪嵌入,并使用视图特定的检测嵌入来更新它们;关联模块根据各自的检测和跟踪嵌入为检测生成至跟踪的分配。整个系统使用新的损失函数进行端到端训练。这种新颖的方法提供了一种更原则性得多摄像头跟踪解决方案,通过减少对启发式组件的依赖并将其整个跟踪过程集成到一个连贯的数据驱动框架中。
多摄像头跟踪引入了单摄像头跟踪所没有的额外复杂性,因为跟踪一致性需要在时间上和摄像机视点上保持一致。这使得直接扩展单摄像头技术变得困难,这些技术通常依赖于在每个时间步仅与单个检测相关联的假设,例如MOTR[50]所采用的技术,该技术使用轨迹嵌入作为检测 Query ,由DETR迭代更新。MCTR维护了一组独立的轨迹嵌入,它们包含跨所有视图的跟踪目标的全球化信息,与DETR目标嵌入,这些嵌入包含局部、视点特定信息,是不同的。
像所有基于Transformer的模型一样,轨迹嵌入以及检测嵌入也没有特定的顺序,因此它们与真实标签之间没有固定关系。这使得设计一个用于训练模型的损失颇具挑战。DETR通过首先使用匈牙利算法[23]找到最佳地将检测嵌入分配到真实标签,然后根据这个分配计算分类和检测损失。MOTR和其他方法通过强制每个之前与真实物体相关联的跟踪 Query 在未来帧中继续检测同一物体来将此想法扩展到单摄像头跟踪。然而,要将此程序扩展到在时间上和摄像机视点上保持跟踪分配的一致性,还存在问题。此外,这种方法强烈依赖于第一帧中检测和真实值之间有良好关联,因为在随后的帧中无法更改。在这篇论文中,作者采用不同的方法来设计一个训练损失,以避免这些问题。为了计算每个帧和摄像机视点的特定分类和检测损失,作者遵循DETR的方法,并在每个帧和摄像机视点上独立使用匈牙利算法将检测与真实值本地关联。为了保持全局跟踪一致性,作者使用类似于缩放点积关注的注意机制来生成对局部检测与全局轨迹嵌入的似然性分配。对于不同摄像机或不同帧中的检测对,作者根据在轨迹分配中积分来计算在模型下检测属于同一跟踪的概率,以及属于不同真实轨道概率的总和。然后,作者使用负对数似然损失来训练模型以预测与真实值相关联的检测对的高概率,以及与不同真实轨道相关的低概率。
总之,作者的贡献如下:
1)用于在多个摄像机中同时跟踪多个物体的端到端框架;
2)与输入RGB帧完全可微的用于将检测与轨道进行概率关联的方法;
3)旨在指导模型在时间上和摄像机视角上保持一致目标身份的专有损失函数的定义。
论文的主要目标是测试在多摄像头多目标跟踪问题上采用基于 Transformer 端到端架构的可行性。作者的目标是展示这些技术和它们在这些复杂场景下的应用潜力。作者预计,作者的发现将激发进一步探索和研究这些方向,可能在将来解锁这些模型的全部潜力。
2 Related Works
Single Camera Tracking
单目多目标跟踪在单摄像头设置中已经被广泛研究。通过检测方法进行跟踪,利用目标检测器在单个帧中识别目标,并通过卡尔曼滤波器[43]预测状态并将匈牙利匹配用于帧之间的跟踪关联。近年来,端到端跟踪方法如出现,扩展了基于 Query 的目标检测用于跟踪[7]。例如,MOTR[50],MOTRv2[53]和TrackFormer [29]传播跟踪 Query 跨帧,迭代更新它们与图像特征进行长期检测和跟踪。TransTrack [40]和P3Aformer [54]利用基于位置的成本矩阵进行二分匹配[23]。与检测方法相比,端到端跟踪方法是数据驱动的,并且避免依赖于手工制作的启发式。尽管它们有效,但单摄像头跟踪遇到挑战,尤其是在复杂环境中遇到遮挡。依赖于单个视点的限制使得系统在复杂场景中的鲁棒性受到限制。为了缓解这个问题,作者将基于 Query 的跟踪传播范式扩展到更复杂的任务,即多摄像头多目标跟踪。
Multi-Camera Tracking
多摄像头跟踪(MCT)领域已经见证了多种应对复杂监控环境下挑战的方法。一种常见的策略涉及分布式方法,其中单个摄像机跟踪先于层次聚类 [30],非负矩阵分解(NMF)[42],或其他用于合并与关联跟踪项的算法。另一种方法则全局或中心化地跳过单个摄像机跟踪,专注于在各个摄像机视图中共享检测并提供全局关联到跟踪项 [47; 27]。来自多摄像头视图的占用映射已经得到了探索 [12; 48],并且在某些工作中使用轨迹预测,其中关于多视图关联的全局或分布式方法有所变化 [47; 19]。Iguernaissi等人[18]对MCT的论文进行了深入调查。
MCT领域的重要贡献包括TRACTA [17],使用RNMF进行跨摄像机跟踪匹配,以及DMCT [48],整合了视角感知地面点网络、占用 Heatmap 估计和行人检测与跟踪的瞥瞥网络。最近,ReST [9]提出了一个使用可配置图模型进行的两阶段关联方法。在视觉自动驾驶系统领域,研究工作主要集中在多视图3D目标跟踪,这是基于端到端的多视图3D目标检测方法论的扩展。例如,MUTR3D [51],PF-Track [32],ViP3D [15]和DQTrack 都使用了基于3D跟踪项的 Query 进行跨摄像头和帧的连贯目标跟踪。DQTrack [26]引入了一个独立于相机的分布式 Query 范式,同时ViP3D [15]创新了一种完全可微分轨迹预测方法。PF-Track [32]强调了时空连续性。
在作者的方法中,作者对每个单独视图中的检测进行全局跟踪关联,这与单个摄像机跟踪项到跟踪项的关联有所不同。作者完全采用端到端可训练的基于 Transformer 的框架,避开启发式或手工艺流程进行数据驱动学习。与3D目标跟踪方法一致,作者的跟踪关联损失完全可微,并端到端进行训练。与自动驾驶领域中的3D目标跟踪相比,作者的工作专注于在重叠摄像机上的2D行人跟踪。
3 Method
在本节中,作者详细描述了所提模型的架构。图2给出了作者模型的概述,突出了其关键组件及其相互作用。
图1:来自MMPTrack数据集的示例多相机帧,包含6个相机角度
该系统包括检测模块、跟踪模块和关联模块。检测模块独立地工作在单个视图上,生成一组检测表示。这些表示概括了单个视图内部目标的必要信息,用于生成边界框预测、类别预测,并告知下游模块。跟踪模块维护一组跟踪表示。跟踪表示包含关于每个目标的全局信息,在摄像机视图之间用于保持一致和连贯的物体身份。跟踪表示在每个帧上使用所有摄像机视图中检测表示的信息进行更新。关联模块的任务是根据各自的跟踪和检测表示,基于信息产生检测到身份的拟合分配。
Detection Module
在本文中,作者使用了一个简单的DETR(DETection TRansfomer)用于检测模块,但可以使用任何其他端到端检测器架构。DETR模型在各自的摄像机视图上独立运行。简而言之,DETR模型的结构包括一个提取图像特征的 Backbone 网络,以及一个transformer编码器和解码器。 Backbone 网络的输出特征与位置编码相加,并输入到编码器transformer中,该transformer执行self-attention并输出一组空间特征。DETR Transformer 解码器以一组检测 Query 嵌入作为输入,并输出一组检测嵌入。然后,每个输出嵌入都会经过MLP以预测目标类别(或“无目标”类别)及其边界框。DETR的概述如图3所示。有关更多详细信息,请参阅[7]。
Tracking Module
跟踪模块的任务是更新当前帧中来自所有摄像头视点的跟踪嵌入。跟踪嵌入的目的是维持关于跟踪物体的全局信息。跟踪模块的结构如图4所示。
跟踪嵌入在第一帧时被初始化为学习" track Query 嵌入"。与 DETR 的" Query 输入"类似,一些嵌入将扮演表示同一身份随时间演变的角色,而其他嵌入将保持未分配。当一个跟踪嵌入在一定时间后未被分配给检测时,会将其重置为初始嵌入。为了用检测信息更新每个摄像头的跟踪嵌入,交叉注意力部分有一个特定于每个摄像机视点的多头交叉注意力模块,每个模块计算当前跟踪嵌入和对应视点检测嵌入之间的交叉注意力。跟踪嵌入扮演" Query "角色,检测信息充当键和值。由于物体和跟踪之间的关系取决于相机的姿态,每个交叉注意力模块都有自己的独特参数(也就是说,不同视点的交叉注意力模块之间没有参数共享)。所有视点特定交叉注意力的输出都被平均化,并通过自注意力和前馈层来获得更新的跟踪嵌入。
跟踪模块中的自注意机制旨在引入跟踪嵌入之间的竞争。如果一个跟踪 Query 强烈地"声称"一个特定的身份,其他跟踪 Query 可以"观察"这一点,并受到注意机制的鼓励,不要通过这种方式承担相同的身份。
这类似于DETR解码器中自注意力的工作方式,以防止2个 Query 嵌入争夺同一个输出检测。
Association Module
如图5所示的关联模块,会对检测结果进行轨道分配。这种分配是针对每个摄像机视图独立进行的,通过与缩放点积关注相似的机制进行实现,其中检测结果作为 Query ,轨道结果作为键。检测嵌入和轨道嵌入会经历线性变换,然后将结果矩阵相乘。与缩放关注类似,在应用嵌入维度平方根进行缩放之前,结果矩阵将被乘以根号。然后,对每一列应用行向softmax运算。最终得到一个矩阵 ,其中每个元素的表示在视图中检测结果与轨道相关联的概率。是检测 Query 的数量,是轨道 Query 的数量。
Training Loss
为了训练模型,作者使用了几种损失函数,作者将这些损失函数归类为检测损失、跟踪损失和辅助跟踪损失。
Training Protocol
训练基于从训练数据中随机采样的连续视频分段。视频分段被分割成不重叠的四帧片段,每个片段作为一个训练实例。在视频分段开始时,跟踪嵌入(通过学习获得)被设置为初始嵌入。对于每个随后的片段,跟踪嵌入与前一个片段的最终嵌入进行初始化。
多摄像机跟踪应用通常需要系统持续运行,并跟踪跨越数分钟或数十分钟的连续目标。这对于端到端系统训练带来了挑战:如果只在短视频片段上进行训练,训练和部署条件之间的不匹配可能导致域迁移,从而降低性能。另一方面,如果训练目标是长时间视频片段,模型将看到非常相关且缺乏多样性的数据,并倾向于过度拟合。为解决此问题,作者提出了以下训练协议。
在前30个epoch中,视频片段较短,每个片段为四帧。这个阶段的训练用于确保模型看到多样化的数据,这在检测器模型中尤为重要。在初始阶段之后,检测器模型的参数被冻结,跟踪和关联模块的训练在逐渐变长的视频片段上继续。视频片段的长度是从几何分布中随机选择,期望值随训练过程线性增加。
图6显示了这种训练协议的优势。随着训练视频片段长度的增加,测试数据上的性能得到提高,尤其是在强调长期跟踪精度和实时检测精度(通过IDF1和HOTA指标衡量)的指标。对于强调检测精度(通过MOTA指标衡量)的表现,性能保持相对稳定。与其他比较情况(保持训练视频片段较短)相比,IDF1和HOTA指标显著提高,表明性能的提升归因于所设计的训练协议,而不仅仅是额外的训练。
Inference
在线推理采用帧到帧的方式进行。在每个视图v中,将预测置信度高于阈值(本文中的0.9)的检测结果保留,其余的则丢弃。然后,使用带有预测关联矩阵 作为权重函数的匈牙利算法,在未被丢弃的检测和跟踪之间查找二分匹配。这样做的目的是以最大化的总关联概率方式将检测结果与跟踪关联。如果一个跟踪在连续四帧未被任何检测关联,其嵌入将被重置为初始嵌入。其他跟踪嵌入保持不变。
图7展示了MCTR推理过程中内存和时间MCTR使用的数量作为摄像机数量函数。时间和内存都与摄像机数量成线性比例。在只有一个摄像机时,模型约有4400万个参数,内存占用约233MB,可以在单个GeForce RTX 2080 Ti GPU上以21 FPS运行。每次增加一个额外摄像机,就会添加100万个参数,内存占用68MB,并将FPS降低约2。因此,MCTR非常适合实时多摄像机跟踪应用。
4 Experimental Results
作者对比MCTR与单目端到端跟踪器MOTR [50],后者应用于每个相机视角独立。作者还尝试与最近的multi-stage multi-camera跟踪方法ReST [9]进行比较。
然而,尽管作者付出了巨大的努力,但无法让ReST在作者的评估数据集上运行。这突显了需要大量投入来确保多阶段方法的所有启发式组件都对齐到数据集的不足之处。另一方面,端到端方法需要较少的手动调优,学习适应每个数据集的特点。MOTR使用作者建议的默认参数在每张相机视图和场景中进行训练。
在测试过程中,作者发现了MOTR的一个有趣的故障模式。它倾向于产生大量高度重叠的重复检测和跟踪。这严重影响了检测精度,导致在所有指标上得分降低,尤其是在MOTA [3]上。
为了修复这个问题,作者使用非极大值抑制(NMS)和IoU阈值0.95对重叠框进行过滤。
参考
[1].MCTR: Multi Camera Tracking Transformer.