华中科大、百度&港大联合出品 | 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 来了。这是一种与模态无关的统一2D3D场景的多目标跟踪方法

检测框是 2D3D 多目标跟踪 (multi-object tracking, MOT) 的基础,然而检测分数的不断变化会导致跟踪丢失。针对这一老大难问题,本文提出了一种分层数据关联策略,以挖掘低分检测框中的真实物体,从而缓解目标丢失和轨迹碎片化的问题。

3D 场景中,跟踪器更容易预测世界坐标系下的物体速度。本文提出了一种补充运动预测策略,将检测到的速度与卡尔曼滤波器结合,以解决突然运动和短期消失的问题。

ByteTrackV2 在相机 (56.4% AMOTA) 和 LiDAR (70.1% AMOTA) 模态下均领先于 nuScenes 3D MOT 排行榜,而且是非参数化的,可以轻松集成于各种检测器,在实际应用中十分具有吸引力。

创作背景

图2. 2D/3D MOT 示意图

2D3D MOT 一直是计算机视觉领域中长期存在的任务。这个任务的目标是估计感兴趣目标在 2D 图像平面或 3D 世界坐标系中的轨迹。解决这个问题对自动驾驶和智能交通等应用会有很大帮助。

MOT2D 场景 和 3D 场景是紧密相关的。这两个场景中都必须对目标进行定位,并在不同帧之间获取目标的对应关系。但是,由于输入数据来自不同的模态,研究人员通常独立地解决二维和三维多目标跟踪问题。2D MOT 是在图像平面上进行的,图像信息是对象对应关系的重要线索。基于外观的跟踪器从图像中提取对象外观特征,然后计算特征距离作为对应关系。3D MOT 通常在包含深度信息的世界坐标系中执行。通过空间相似度 (例如 3D 交并比或点距离) 更容易区分不同的目标。

为了解决此问题,ByteTrackV2 使用了三个模块,即检测、运动预测和数据关联。首先,一个目标检测器生成 2D/3D 检测框和分数。在开始帧中,检测到的对象被初始化为轨迹(或轨迹片段)。然后,运动预测器(如卡尔曼滤波器)预测轨迹片段在下一帧中的位置。运动预测在图像平面和 3D 世界空间上都很容易实现。最后,根据空间相似度,检测框与轨迹片段的预测位置进行关联。

图3. 每一帧目标框之间联系

除此之外,由于视频中存在复杂的场景,检测器往往会做出不完美的预测。高分数的检测框通常比低分数的包含更多的真正正例。然而,仅仅消除所有低分数的检测框是次优的,因为低分数的检测框有时指示着目标的存在,例如遮挡的目标。过滤掉这些对象会导致不可逆的 MOT 错误,并带来非常明显的漏检和轨迹分割,如图3(b)所示。

因此,ByteTrackV2 提出了一种检测驱动的分层数据关联策略,充分利用高分数到低分数的检测框。通过使用检测框和轨迹之间的运动相似性,我们可以区分低分数的检测框中的物体和背景。首先,基于运动相似性将高分数检测框与轨迹关联起来。然后,使用相同的运动相似性将未匹配的轨迹与低分数检测框进行第二次关联,以消除背景并恢复真实物体。

总而言之,ByteTrackV2 的主要贡献如下:

  • 提出了一种互补的 3D 运动预测策略,以应对对象的突然运动和短暂消失等问题。通过将检测到的对象速度和卡尔曼滤波器相结合,实现了较为精确的运动预测,从而提高了关联的准确性和跟踪的性能。该方法在处理突发运动或低帧率视频时能够更加鲁棒地预测对象的位置。
  • 统一的 2D3D 数据关联策略,能够从低分检测框中挖掘出真实的目标,解决了目标漏检和轨迹碎片化等问题。此外,该方法是非参数的,可以与各种检测器相结合,具有广泛的应用前景。
  • 在大规模 nuScenes 数据集上进行了详细实验,检测驱动的分层数据关联和整合的 3D 运动预测策略在3D场景中得到了验证。ByteTrackV2 在相机和 LiDAR 设置下的 nuScenes 跟踪任务中均取得了最先进的性能。

方法

概述

图4. ByteTrackV2

如图4所示,ByteTrackV2 是一个统一的 2D3D MOT 框架,可以用于处理图像、多视图图像或点云数据。该框架首先采用 2D/3D 目标检测器获取检测框。在第一帧中,所有高分检测框都被初始化为轨迹。在随后的帧中,先将高分检测框与所有轨迹相关联,然后将低分检测框与未匹配的轨迹相关联。关联是在运动预测之后的检测框和轨迹之间进行的。最终输出是每帧中更新后的轨迹。

其中,本文使用了 YOLOX 最为 2D 目标检测器, PETRv2 作为基于图像的 3D 目标检测器, CenterPointTransFusion-L 作为 基于 LiDAR3D 目标检测器,卡尔曼滤波器作为基础运动模型。

互补的 3D 运动预测

图5. 互补的运动预测策略

在驾驶场景中,物体的运动轨迹通常是不规则的,包括突然的运动和短期消失等问题。因此,本文提出了一种互补的 3D 运动预测策略,以提高物体跟踪的精度和鲁棒性。

具体而言,本文使用了两种运动模型,即检测速度和卡尔曼滤波器。在短期关联中,采用检测速度来预测物体的短期运动轨迹。在长期关联中,采用卡尔曼滤波器来预测物体的长期运动轨迹。通过这种方式,可以最大化两种运动模型的优势,提高物体跟踪的准确性和鲁棒性。如图5所示,目标消失时,利用卡尔曼滤波器向前预测;目标出现后,利用检测速度向后预测,校验卡尔曼滤波的预测准确性。

在双边预测之后,本文采用了统一的二维和三维数据关联策略。通过计算检测结果和跟踪结果之间的相似度来完成身份分配。此外,为了解决检测框和跟踪框之间的偶发性不重叠问题,本文采用了三维广义交并比 (GIoU) 作为相似度度量。

为了进一步提高物体跟踪的鲁棒性,本文还利用了检测得分来自适应地更新测量不确定性矩阵。通过将检测得分插入到不确定性矩阵中来控制不确定性的大小,从而使卡尔曼滤波器更具鲁棒性。

统一的 2D 和 3D 数据关联

本文提出了一种简单、有效且统一的数据关联方法,适用于 2D3D 多目标跟踪。与以前的方法不同,该方法不仅保留高分检测框,还将每个检测框分为高分和低分两类。整个检测驱动的分层数据关联策略 pipeline 如图3所示。

图6. ByteTrackV2 伪代码

在第一帧中,将所有检测框初始化为轨迹。在随后的帧中,首先将高分检测框与轨迹相关联。一些轨迹因未找到合适的高分检测框而未能匹配,通常是由于遮挡、运动模糊或尺寸变化导致的。然后将低分检测框和这些未匹配的轨迹相关联,以恢复低分检测框中的对象并同时过滤掉背景。ByteTrackV2 的伪代码如图6所示。

伪代码主要分为以下几个步骤:

输入

一个视频序列  和一个物体检测器 ,还设置了一个检测得分阈值 τ。输出是视频的轨迹 ,每个轨迹包含每帧中物体的边界框和身份信息。

检测框处理

对于视频中的每一帧,使用检测器  预测检测框和得分,然后根据检测得分阈值 τ,将所有检测框分为两部分 和。得分高于 τ 的检测框放入高得分检测框 ,得分低于 τ 的检测框放入低得分检测框 。

运动预测

分离出低得分检测框和高得分检测框后,预测  中每个轨迹在当前帧的新位置。对于 2D MOT,采用卡尔曼滤波进行运动预测。对于 3D MOT,采用互补运动预测策略。

高得分检测框关联

首先在高得分检测框 和所有轨迹  (包括失去的轨迹 ) 之间进行关联。接着利用 IOU 计算两者相似度,然后再用匈牙利算法进行匹配。将未匹配的检测放入,未匹配的轨迹放入 。

低得分检测框关联

第二次关联是在第一次关联之后,将低得分检测框  和第一次关联后剩余的轨迹  之间进行。对于未匹配的轨迹,将它们放入  中。对于每个轨迹,在存在超过一定数量的帧 (例如30帧) 时,我们将它从轨迹  中删除。只有未匹配的高得分检测框 才会成为新的轨迹。

实验

本文提出的 BYTE 数据关联策略比以往的策略在多个关键指标上都有显著的提升。

在多目标跟踪任务的主流数据集 MOT17 中,ByteTrack 在多项关键指标上,不管是精度还是速度,都比其他算法优势明显。

对于 3D 场景的两种输入模态(相机和点云),ByteTrakV2 均获得最优精度。

尽管在密集人群场景,ByteTrack 依然能够对被遮挡或运动模糊目标保持着有效跟踪。

通过逐步增加不同的组件,ByteTrackV2 性能都获得了进一步的提升。

总结

本文提出了一个简单而统一的多目标追踪框架 ByteTrackV2,旨在解决 2D3D MOT 问题。ByteTrackV2 包含物体检测、运动预测和基于检测的分层数据关联,是 MOT 任务的全面解决方案。分层数据关联策略利用检测分数作为强大的先验知识来识别低分检测中的正确物体,减少漏检和轨迹分段的问题。此外,针对 3D MOT,本文集成的运动预测策略有效解决了突然运动和物体丢失的问题。ByteTrackV22D3D MOT 基准测试中实现了最先进的性能。此外,它具有很强的泛化能力,可以轻松地与不同的 2D3D 检测器结合使用,不需要任何可学习参数。我们相信这个简单而统一的多目标追踪框架在实际应用中可以产生很大的作用。

目录
相关文章
|
11月前
|
网络协议 Java Linux
PyAV学习笔记(一):PyAV简介、安装、基础操作、python获取RTSP(海康)的各种时间戳(rtp、dts、pts)
本文介绍了PyAV库,它是FFmpeg的Python绑定,提供了底层库的全部功能和控制。文章详细讲解了PyAV的安装过程,包括在Windows、Linux和ARM平台上的安装步骤,以及安装中可能遇到的错误和解决方法。此外,还解释了时间戳的概念,包括RTP、NTP、PTS和DTS,并提供了Python代码示例,展示如何获取RTSP流中的各种时间戳。最后,文章还提供了一些附录,包括Python通过NTP同步获取时间的方法和使用PyAV访问网络视频流的技巧。
2560 4
PyAV学习笔记(一):PyAV简介、安装、基础操作、python获取RTSP(海康)的各种时间戳(rtp、dts、pts)
|
人工智能 C++ 计算机视觉
AI计算机视觉笔记四:行人属性识别
本文分享了一个行人属性分析系统,能够识别并标注行人的多种属性。该项目代码源自公众号“渡码”的项目,作者在Win10环境下成功复现了整个项目,并详细记录了过程。系统通过YOLOv5识别行人,用ByteTrack跟踪同一行人,并训练一个多标签图像分类网络来识别行人的26种属性。文中详细介绍了环境搭建和测试步骤,包括安装Anaconda、创建虚拟环境、安装所需库以及测试代码等。如需完整代码或有任何问题,请联系博主。源码已上传至GitHub。
|
机器学习/深度学习 算法 计算机视觉
基于YOLOv8与ByteTrack的车辆检测追踪与流量计数系统【python源码+Pyqt5界面+数据集+训练代码】深度学习实战、目标追踪、车辆检测追踪、过线计数、流量统计(3)
基于YOLOv8与ByteTrack的车辆检测追踪与流量计数系统【python源码+Pyqt5界面+数据集+训练代码】深度学习实战、目标追踪、车辆检测追踪、过线计数、流量统计
|
数据挖掘 计算机视觉
YOLOv5改进 | 损失篇 | VarifocalLoss密集检测专用损失函数 (VFLoss,论文一比一复现)
YOLOv5改进 | 损失篇 | VarifocalLoss密集检测专用损失函数 (VFLoss,论文一比一复现)
1002 1
|
应用服务中间件 Linux nginx
FFmpeg开发笔记(四十)Nginx集成rtmp模块实现RTMP推拉流
《FFmpeg开发实战》书中介绍了如何使用FFmpeg向网络推流,简单流媒体服务器MediaMTX不适用于复杂业务。nginx-rtmp是Nginx的RTMP模块,提供基本流媒体服务。要在Linux上集成rtmp,需从官方下载nginx和nginx-rtmp-module源码,解压后在nginx目录配置并添加rtmp模块,编译安装。配置nginx.conf启用RTMP服务,监听1935端口。使用ffmpeg推流测试,如能通过VLC播放,表明nginx-rtmp运行正常。更多详情见书本。
386 0
FFmpeg开发笔记(四十)Nginx集成rtmp模块实现RTMP推拉流
|
机器学习/深度学习 存储 算法
基于YOLOv8与ByteTrack的车辆行人多目标检测与追踪系统【python源码+Pyqt5界面+数据集+训练代码】深度学习实战、目标追踪、运动物体追踪
基于YOLOv8与ByteTrack的车辆行人多目标检测与追踪系统【python源码+Pyqt5界面+数据集+训练代码】深度学习实战、目标追踪、运动物体追踪
|
机器学习/深度学习 传感器 编解码
万字长文 | 多目标跟踪最新综述(基于Transformer/图模型/检测和关联/孪生网络)(上)
随着自动驾驶技术的发展,多目标跟踪已成为计算机视觉领域研究的热点问题之一。MOT 是一项关键的视觉任务,可以解决不同的问题,例如拥挤场景中的遮挡、相似外观、小目标检测困难、ID切换等。为了应对这些挑战,研究人员尝试利用transformer的注意力机制、利用图卷积神经网络获得轨迹的相关性、不同帧中目标与siamese网络的外观相似性,还尝试了基于简单 IOU 匹配的 CNN 网络、运动预测的 LSTM。为了把这些分散的技术综合起来,作者研究了过去三年中的一百多篇论文,试图提取出近年来研究者们更加关注的解决 MOT 问题的技术。
万字长文 | 多目标跟踪最新综述(基于Transformer/图模型/检测和关联/孪生网络)(上)
|
机器学习/深度学习 异构计算
【保姆级教程|YOLOv8改进】【5】精度与速度双提升,使用FasterNet替换主干网络
【保姆级教程|YOLOv8改进】【5】精度与速度双提升,使用FasterNet替换主干网络
|
机器学习/深度学习 数据可视化 Linux
深度学习模型可视化工具——Netron使用介绍
深度学习模型可视化工具——Netron使用介绍
2803 2
|
编解码 Shell
在jetson中实现ffmpeg调用硬件编解码加速处理
在jetson中实现ffmpeg调用硬件编解码加速处理
2889 1