华中科大、百度&港大联合出品 | ByteTrackV2: 一种简单且强大的 2D/3D 多目标跟踪框架,横扫多项任务SOTA!

简介: 华中科大、百度&港大联合出品 | ByteTrackV2: 一种简单且强大的 2D/3D 多目标跟踪框架,横扫多项任务SOTA!

640.png


Title: ByteTrackV2: 2D and 3D Multi-Object Tracking by Associating Every Detection Box

Paper: https://arxiv.org/pdf/2303.15334.pdf

Code: https://github.com/ifzhang/ByteTrack-V2

导读

图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 检测器结合使用,不需要任何可学习参数。我们相信这个简单而统一的多目标追踪框架在实际应用中可以产生很大的作用。

目录
相关文章
|
机器学习/深度学习 PyTorch TensorFlow
TensorRT 模型加速——输入、输出、部署流程
本文首先简要介绍 Tensor RT 的输入、输出以及部署流程,了解 Tensor RT 在部署模型中起到的作用。然后介绍 Tensor RT 模型导入流程,针对不同的深度学习框架,使用不同的方法导入模型。
4185 1
|
数据挖掘 PyTorch 算法框架/工具
人脸识别中的损失函数ArcFace及其实现过程代码(pytorch)--理解softmax损失函数及Arcface
人脸识别中的损失函数ArcFace及其实现过程代码(pytorch)--理解softmax损失函数及Arcface
2450 0
|
传感器 算法 数据可视化
【卡尔曼滤波跟踪】跟踪目标的轨迹,并将滤波器输出与原始轨迹进行比较(Matlab实现)
【卡尔曼滤波跟踪】跟踪目标的轨迹,并将滤波器输出与原始轨迹进行比较(Matlab实现)
701 4
|
机器学习/深度学习 算法 计算机视觉
基于YOLOv8与ByteTrack的车辆检测追踪与流量计数系统【python源码+Pyqt5界面+数据集+训练代码】深度学习实战、目标追踪、车辆检测追踪、过线计数、流量统计(3)
基于YOLOv8与ByteTrack的车辆检测追踪与流量计数系统【python源码+Pyqt5界面+数据集+训练代码】深度学习实战、目标追踪、车辆检测追踪、过线计数、流量统计
|
机器学习/深度学习 计算机视觉
YOLOv11改进策略【注意力机制篇】| 添加SE、CBAM、ECA、CA、Swin Transformer等注意力和多头注意力机制
YOLOv11改进策略【注意力机制篇】| 添加SE、CBAM、ECA、CA、Swin Transformer等注意力和多头注意力机制
5047 2
YOLOv11改进策略【注意力机制篇】| 添加SE、CBAM、ECA、CA、Swin Transformer等注意力和多头注意力机制
|
存储 算法 机器人
卡尔曼滤波 KF | 扩展卡尔曼滤波 EKF (思路流程和计算公式)
本文分析卡尔曼滤波和扩展卡尔曼滤波,包括:思路流程、计算公式、简单案例等。滤波算法,在很多场景都有应用,感觉理解其思路和计算过程比较重要。
5132 0
|
机器学习/深度学习 计算机视觉 异构计算
YOLOv8优改系列一:YOLOv8融合BiFPN网络,实现网络快速涨点
本文介绍了将BiFPN网络应用于YOLOv8以增强网络性能的方法。通过双向跨尺度连接和加权特征融合,BiFPN能有效捕获多尺度特征,提高目标检测效果。文章还提供了详细的代码修改步骤,包括修改配置文件、创建模块文件、修改训练代码等,以实现YOLOv8与BiFPN的融合。
3612 0
YOLOv8优改系列一:YOLOv8融合BiFPN网络,实现网络快速涨点
|
文字识别 自然语言处理 数据可视化
Qwen2.5 全链路模型体验、下载、推理、微调、部署实战!
在 Qwen2 发布后的过去三个月里,许多开发者基于 Qwen2 语言模型构建了新的模型,并提供了宝贵的反馈。在这段时间里,通义千问团队专注于创建更智能、更博学的语言模型。今天,Qwen 家族的最新成员:Qwen2.5系列正式开源
Qwen2.5 全链路模型体验、下载、推理、微调、部署实战!
|
人工智能 C++ 计算机视觉
AI计算机视觉笔记四:行人属性识别
本文分享了一个行人属性分析系统,能够识别并标注行人的多种属性。该项目代码源自公众号“渡码”的项目,作者在Win10环境下成功复现了整个项目,并详细记录了过程。系统通过YOLOv5识别行人,用ByteTrack跟踪同一行人,并训练一个多标签图像分类网络来识别行人的26种属性。文中详细介绍了环境搭建和测试步骤,包括安装Anaconda、创建虚拟环境、安装所需库以及测试代码等。如需完整代码或有任何问题,请联系博主。源码已上传至GitHub。
1180 3

热门文章

最新文章