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

目录
相关文章
|
6月前
|
缓存 算法 自动驾驶
百度Cyber框架面试总结
百度Cyber框架面试总结
144 0
|
6月前
|
JavaScript 搜索推荐 定位技术
【百度地图2.5D、3D在Vue项目中的使用】嵌入二维百度地图、三维百度地图、多种显示模式风格样式颜色的百度地图
【百度地图2.5D、3D在Vue项目中的使用】嵌入二维百度地图、三维百度地图、多种显示模式风格样式颜色的百度地图
|
6月前
|
人工智能 自然语言处理 Python
Scrapy框架 -- 结合百度AI实现文本处理
Scrapy框架 -- 结合百度AI实现文本处理
52 0
|
6月前
|
NoSQL MongoDB Docker
百度搜索:蓝易云【Scrapy框架之Docker安装MongoDB教程。】
现在,你已经成功在Scrapy框架中使用Docker安装并配置了MongoDB。你可以在Scrapy爬虫中使用MongoDB进行数据存储和处理。
243 0
|
人工智能 自然语言处理 Python
Scrapy框架 -- 结合百度AI实现文本处理
Scrapy框架 -- 结合百度AI实现文本处理
59 0
|
存储 监控 安全
DeeTune:基于 eBPF 的百度网络框架设计与应用
随着云计算的技术的不断迭代演进,百度内部服务逐渐搬迁到云环境中,部署成本和效率取得明显收益,但一些可观测能力的短板和缺失逐渐显露,传统的方式往往通过植入代码进行修改来实现,但在业务形态和技术栈多样性的背景下,面临业务被侵入、沟通协调、性能、稳定性等方面的诸多问题。本文中我们介绍百度基于 eBPF 实现的网络框架:DeeTune,包含构建服务拓扑、流量录制、无侵入指标监控等能力,进一步提升了 SRE 和质量保障的工作效率。
114 0
|
NoSQL 网络协议 Java
面面俱到!百度出品2023版Java面试指南,囊括面试所有硬核技能
“铜三铁四”接近尾声,身边被迫“毕业”或者主动在这个时间点跳槽的大佬基本该找到工作的都找到工作了,找不到的也大多数都已经躺平了(手动狗头),只剩一群“45度人”(卷不动,躺不平的人)还不停在我后台私信希望我能写一些关于面试的知识,出一些相对来说有一点技术深度的面试知识点,或者整理一些Java面试高频的八股文。所以,这篇文章来了~
|
移动开发 前端开发 JavaScript
360浏览器开启webGL硬件加速解决百度地图3D视角正常展示的解决方案
360浏览器开启webGL硬件加速解决百度地图3D视角正常展示的解决方案
335 0
|
机器学习/深度学习 人工智能 PyTorch
百度马艳军:实现AI技术自立自强,国产深度学习框架面临三大难题
百度马艳军:实现AI技术自立自强,国产深度学习框架面临三大难题
179 0
百度马艳军:实现AI技术自立自强,国产深度学习框架面临三大难题
uniapp多端百度网盘(1)整体框架搭建
uniapp多端百度网盘(1)整体框架搭建
484 0
uniapp多端百度网盘(1)整体框架搭建