Title: ByteTrackV2: 2D and 3D Multi-Object Tracking by Associating Every Detection Box
导读
图1. ByteTrack 与其他跟踪器性能对比
2021年10月 ByteTrack
腾空出世,以一种简单的设计方式击败了当时各路“魔改”跟踪器。该算法在单张 V100
中推理速度高达 30 FPS
,并且首次在 MOT17
数据上突破了 80 MOTA
。速度与精度双管齐下,可谓目标跟踪领域中的“大杀器”。
如今,ByteTrackV2
来了。这是一种与模态无关的,统一2D
和 3D
场景的多目标跟踪方法!
检测框是 2D
和 3D
多目标跟踪 (multi-object tracking, MOT
) 的基础,然而检测分数的不断变化会导致跟踪丢失。针对这一老大难问题,本文提出了一种分层数据关联策略,以挖掘低分检测框中的真实物体,从而缓解目标丢失和轨迹碎片化的问题。
在 3D
场景中,跟踪器更容易预测世界坐标系下的物体速度。本文提出了一种补充运动预测策略,将检测到的速度与卡尔曼滤波器结合,以解决突然运动和短期消失的问题。
ByteTrackV2
在相机 (56.4
% AMOTA
) 和 LiDAR
(70.1
% AMOTA
) 模态下均领先于 nuScenes 3D MOT
排行榜,而且是非参数化的,可以轻松集成于各种检测器,在实际应用中十分具有吸引力。
创作背景
图2. 2D/3D MOT 示意图
2D
和 3D MOT
一直是计算机视觉领域中长期存在的任务。这个任务的目标是估计感兴趣目标在 2D
图像平面或 3D
世界坐标系中的轨迹。解决这个问题对自动驾驶和智能交通等应用会有很大帮助。
MOT
的 2D
场景 和 3D
场景是紧密相关的。这两个场景中都必须对目标进行定位,并在不同帧之间获取目标的对应关系。但是,由于输入数据来自不同的模态,研究人员通常独立地解决二维和三维多目标跟踪问题。2D MOT
是在图像平面上进行的,图像信息是对象对应关系的重要线索。基于外观的跟踪器从图像中提取对象外观特征,然后计算特征距离作为对应关系。3D MOT
通常在包含深度信息的世界坐标系中执行。通过空间相似度 (例如 3D
交并比或点距离) 更容易区分不同的目标。
为了解决此问题,ByteTrackV2
使用了三个模块,即检测、运动预测和数据关联。首先,一个目标检测器生成 2D/3D
检测框和分数。在开始帧中,检测到的对象被初始化为轨迹(或轨迹片段)。然后,运动预测器(如卡尔曼滤波器)预测轨迹片段在下一帧中的位置。运动预测在图像平面和 3D 世界空间上都很容易实现。最后,根据空间相似度,检测框与轨迹片段的预测位置进行关联。
图3. 每一帧目标框之间联系
除此之外,由于视频中存在复杂的场景,检测器往往会做出不完美的预测。高分数的检测框通常比低分数的包含更多的真正正例。然而,仅仅消除所有低分数的检测框是次优的,因为低分数的检测框有时指示着目标的存在,例如遮挡的目标。过滤掉这些对象会导致不可逆的 MOT
错误,并带来非常明显的漏检和轨迹分割,如图3(b)所示。
因此,ByteTrackV2
提出了一种检测驱动的分层数据关联策略,充分利用高分数到低分数的检测框。通过使用检测框和轨迹之间的运动相似性,我们可以区分低分数的检测框中的物体和背景。首先,基于运动相似性将高分数检测框与轨迹关联起来。然后,使用相同的运动相似性将未匹配的轨迹与低分数检测框进行第二次关联,以消除背景并恢复真实物体。
总而言之,ByteTrackV2
的主要贡献如下:
- 提出了一种互补的
3D
运动预测策略,以应对对象的突然运动和短暂消失等问题。通过将检测到的对象速度和卡尔曼滤波器相结合,实现了较为精确的运动预测,从而提高了关联的准确性和跟踪的性能。该方法在处理突发运动或低帧率视频时能够更加鲁棒地预测对象的位置。 - 统一的
2D
和3D
数据关联策略,能够从低分检测框中挖掘出真实的目标,解决了目标漏检和轨迹碎片化等问题。此外,该方法是非参数的,可以与各种检测器相结合,具有广泛的应用前景。 - 在大规模
nuScenes
数据集上进行了详细实验,检测驱动的分层数据关联和整合的3D
运动预测策略在3D场景中得到了验证。ByteTrackV2
在相机和LiDAR
设置下的nuScenes
跟踪任务中均取得了最先进的性能。
方法
概述
图4. ByteTrackV2
如图4所示,ByteTrackV2
是一个统一的 2D
和 3D MOT
框架,可以用于处理图像、多视图图像或点云数据。该框架首先采用 2D/3D
目标检测器获取检测框。在第一帧中,所有高分检测框都被初始化为轨迹。在随后的帧中,先将高分检测框与所有轨迹相关联,然后将低分检测框与未匹配的轨迹相关联。关联是在运动预测之后的检测框和轨迹之间进行的。最终输出是每帧中更新后的轨迹。
其中,本文使用了 YOLOX
最为 2D
目标检测器, PETRv2
作为基于图像的 3D
目标检测器, CenterPoint
和 TransFusion-L
作为 基于 LiDAR
的 3D
目标检测器,卡尔曼滤波器作为基础运动模型。
互补的 3D 运动预测
图5. 互补的运动预测策略
在驾驶场景中,物体的运动轨迹通常是不规则的,包括突然的运动和短期消失等问题。因此,本文提出了一种互补的 3D
运动预测策略,以提高物体跟踪的精度和鲁棒性。
具体而言,本文使用了两种运动模型,即检测速度和卡尔曼滤波器。在短期关联中,采用检测速度来预测物体的短期运动轨迹。在长期关联中,采用卡尔曼滤波器来预测物体的长期运动轨迹。通过这种方式,可以最大化两种运动模型的优势,提高物体跟踪的准确性和鲁棒性。如图5所示,目标消失时,利用卡尔曼滤波器向前预测;目标出现后,利用检测速度向后预测,校验卡尔曼滤波的预测准确性。
在双边预测之后,本文采用了统一的二维和三维数据关联策略。通过计算检测结果和跟踪结果之间的相似度来完成身份分配。此外,为了解决检测框和跟踪框之间的偶发性不重叠问题,本文采用了三维广义交并比 (GIoU
) 作为相似度度量。
为了进一步提高物体跟踪的鲁棒性,本文还利用了检测得分来自适应地更新测量不确定性矩阵。通过将检测得分插入到不确定性矩阵中来控制不确定性的大小,从而使卡尔曼滤波器更具鲁棒性。
统一的 2D 和 3D 数据关联
本文提出了一种简单、有效且统一的数据关联方法,适用于 2D
和 3D
多目标跟踪。与以前的方法不同,该方法不仅保留高分检测框,还将每个检测框分为高分和低分两类。整个检测驱动的分层数据关联策略 pipeline
如图3所示。
图6. ByteTrackV2 伪代码
在第一帧中,将所有检测框初始化为轨迹。在随后的帧中,首先将高分检测框与轨迹相关联。一些轨迹因未找到合适的高分检测框而未能匹配,通常是由于遮挡、运动模糊或尺寸变化导致的。然后将低分检测框和这些未匹配的轨迹相关联,以恢复低分检测框中的对象并同时过滤掉背景。ByteTrackV2
的伪代码如图6所示。
伪代码主要分为以下几个步骤:
输入
一个视频序列 和一个物体检测器 ,还设置了一个检测得分阈值 τ。输出是视频的轨迹 ,每个轨迹包含每帧中物体的边界框和身份信息。
检测框处理
对于视频中的每一帧,使用检测器 预测检测框和得分,然后根据检测得分阈值 τ,将所有检测框分为两部分 和。得分高于 τ 的检测框放入高得分检测框 ,得分低于 τ 的检测框放入低得分检测框 。
运动预测
分离出低得分检测框和高得分检测框后,预测 中每个轨迹在当前帧的新位置。对于 2D MOT,采用卡尔曼滤波进行运动预测。对于 3D MOT,采用互补运动预测策略。
高得分检测框关联
首先在高得分检测框 和所有轨迹 (包括失去的轨迹 ) 之间进行关联。接着利用 IOU 计算两者相似度,然后再用匈牙利算法进行匹配。将未匹配的检测放入,未匹配的轨迹放入 。
低得分检测框关联
第二次关联是在第一次关联之后,将低得分检测框 和第一次关联后剩余的轨迹 之间进行。对于未匹配的轨迹,将它们放入 中。对于每个轨迹,在存在超过一定数量的帧 (例如30帧) 时,我们将它从轨迹 中删除。只有未匹配的高得分检测框 才会成为新的轨迹。
实验
本文提出的
BYTE
数据关联策略比以往的策略在多个关键指标上都有显著的提升。
在多目标跟踪任务的主流数据集
MOT17
中,ByteTrack
在多项关键指标上,不管是精度还是速度,都比其他算法优势明显。
对于 3D 场景的两种输入模态(相机和点云),
ByteTrakV2
均获得最优精度。
尽管在密集人群场景,
ByteTrack
依然能够对被遮挡或运动模糊目标保持着有效跟踪。
通过逐步增加不同的组件,
ByteTrackV2
性能都获得了进一步的提升。
总结
本文提出了一个简单而统一的多目标追踪框架 ByteTrackV2
,旨在解决 2D
和 3D MOT
问题。ByteTrackV2
包含物体检测、运动预测和基于检测的分层数据关联,是 MOT
任务的全面解决方案。分层数据关联策略利用检测分数作为强大的先验知识来识别低分检测中的正确物体,减少漏检和轨迹分段的问题。此外,针对 3D MOT
,本文集成的运动预测策略有效解决了突然运动和物体丢失的问题。ByteTrackV2
在 2D
和 3D MOT
基准测试中实现了最先进的性能。此外,它具有很强的泛化能力,可以轻松地与不同的 2D
和 3D
检测器结合使用,不需要任何可学习参数。我们相信这个简单而统一的多目标追踪框架在实际应用中可以产生很大的作用。