屠榜多目标跟踪!BoT-SORT:稳健的关联多行人跟踪

2024-01-15 09:40

本文主要是介绍屠榜多目标跟踪!BoT-SORT:稳健的关联多行人跟踪,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

点击下方卡片,关注“CVer”公众号

AI/CV重磅干货,第一时间送达

点击进入—> CV 微信技术交流群

转载自:集智书童

8c8e16649d4a570f9ec29bee3e10da54.png

BoT-SORT: Robust Associations Multi-Pedestrian Tracking

论文:https://arxiv.org/abs/2206.14651

代码:https://github.com/NirAharon/BOT-SORT

多目标跟踪 (MOT) 的目标是检测和跟踪场景中的所有目标,同时为每个目标保留一个唯一标识符。在本文中提出了一种新的鲁棒跟踪器,它可以结合运动和外观信息的优点,以及相机运动补偿和更准确的卡尔曼滤波器状态向量。新跟踪器 BoT-SORTBoT-SORT-ReIDMOT17MOT20 测试集的 MOTChallenge 数据集中排名第一,就所有主要的 MOT 指标而言:MOTAIDF1HOTA。对于 MOT17:实现了 80.5% MOTA、80.2% IDF1 和 65.0% HOTA。

1简介

多目标跟踪 (MOT) 旨在检测和估计视频流中多个目标的时空轨迹。MOT 是许多应用的基本问题,例如自动驾驶、视频监控等。

目前,Tracking-by-detection成为 MOT 任务中最有效的范式。Tracking-by-detection包含一个步骤检测步骤,然后是一个跟踪步骤。跟踪步骤通常由2个主要部分组成:

  1. 运动模型和状态估计,用于预测后续帧中轨迹的边界框。卡尔曼滤波器 (KF) 是此任务的主流选择。

  2. 将新帧检测与当前轨迹集相关联。

对于步骤2:有2种主要的方法用于处理关联任务:

  1. 目标的定位,主要是预测轨迹边界框和检测边界框之间的IoU。

  2. 目标的外观模型和解决Re-ID任务。

这2种方法都被量化为距离,并用于将关联任务作为全局分配问题来解决。

最近的许多Tracking-by-detection工作都基于对 SORTDeepSORTJDE 方法的研究。作者认识到这些SORT-like算法存在一些局限性,将在下面进行描述。

大多数SORT-like算法采用卡尔曼滤波器恒速模型假设作为运动模型。KF 用于预测下一帧中的 tracklet 边界框,以与检测边界框相关联,并用于在遮挡或未检测到的情况下预测 tracklet 状态。

与目标检测器驱动的检测相比,使用 KF 状态估计作为跟踪器的输出会导致边界框形状次优。最近的大多数方法都使用了经典跟踪器 DeepSORT 中提出的 KF 状态表征,它试图估计框的纵横比而不是宽度,这导致宽度大小估计不准确。

SORT-like IoU-based 方法主要取决于 tracklet 的预测边界框的质量。因此,在许多复杂的场景中,预测边界框的正确位置可能会由于相机运动而失败,这导致2个相关边界框之间的重叠率低,最终导致跟踪器性能低下。作者通过采用传统的图像配准来估计相机运动,通过适当地校正卡尔曼滤波器来克服这个问题。这里将此称为相机运动补偿CMC)。

在许多情况下,SORT-like 算法中的定位和外观信息(即重识别)会导致跟踪器的检测能力 (MOTA) 和跟踪器随时间保持正确身份的能力 (IDF1) 之间的权衡。使用 IoU 通常可以实现更好的 MOTA,而 Re-ID 可以实现更高的 IDF1。

0688ca8bafe8b89ec3724f54e0b79d5f.png

在这项工作中,我们提出了新的跟踪器,通过解决上述 SORT-like 的跟踪器的限制并将它们集成到 ByteTrack 中,新的跟踪器在 MOT17MOT20 挑战的所有主要 MOT 指标(图 1)中都优于所有领先的跟踪器。

工作的主要贡献可以总结如下:

• 通过添加改进,例如基于相机运动补偿的特征跟踪器和合适的卡尔曼滤波器状态向量以实现更好的边界框定位,Tracking-by-detection跟踪器的性能也可以得到显著的改进。

• 为 IoUReID余弦距离融合提出了一种简单有效的方法,以便在检测和轨迹之间建立更强大的关联。

2BoT-SORT

在部分中,介绍了基于多目标跟踪的Tracking-by-detection方法的3个主要修改和改进。通过将它们集成到著名的 ByteTrack 中,作者展示了2个新的最先进的跟踪器,BoT-SORTBoT-SORT-ReIDBoT-SORT-ReID 是包含ReID模块的 BoT-SORT 扩展。算法的流程如图 2 所示。

b81b36710be2aa7c7905807f9a964db9.png
图 2

2.1 Kalman Filter

为了对图像平面中的物体运动进行建模,通常使用具有恒定速度模型的离散卡尔曼滤波器。在 SORT 中,状态向量被选择为7元组,

402 Payment Required

,其中 是在图像平面目标中心的二维坐标。s是边界框比例(面积),a 是边界框纵横比。在最近的跟踪器中,状态向量变为8元组, 。

然而,作者通过实验发现,直接估计边界框的宽度和高度会可以得到更好的性能。因此,作者选择将 KF 的状态向量定义为 Eq(1),并且测量向量如方程(2)。在 SORT 中选择的度量 Q、R 与时间无关,因此在 DeepSORT 中也建议选择 Q、R 作为一些估计元素和一些测量元素的度量函数。因此,使用 Q 和 R 的这种选择与时间相关的 和 相关。在改变 KF 的状态向量之后,过程噪声协方差 和测量噪声协方差 矩阵也被修改,可以参见方程(3)(4)。因此有:

26e9551a82e362c3206ab9d230c2fc64.png

这里选择噪声因子为 、 和 ,因为帧速率也是 30FPS。请注意,根据稍微不同的状态向量 x 修改了 Q 和 R。在轨迹丢失的情况下,长时间预测可能会导致 box shape 变形,因此实现了一个类似 ByteTrack 的逻辑。

67e80db927b8dd2e45d51d9fb2397a91.png

在消融研究部分,通过实验表明,这些改进带来了更高的HOTA。严格来说,对HOTA整体改善的原因并不清楚。这里假设对KF的修改有助于提高边界框宽度对目标的拟合,如图3所示。

2.2 Camera Motion Compensation (CMC)

Tracking-by-detection 跟踪器严重依赖于预测轨迹的边界框和检测到的边界框之间的重叠。在动态相机情况下,图像平面中的边界框位置可能会发生显著变化,这可能会导致 ID 切换或假阴性增加,如图4所示。

4e9f9a9baefb1a44b6c49ce0c056d958.png
图4

静态相机场景中的跟踪器也可能因振动或漂移引起的运动而受到影响,就像在 MOT20 中一样,在非常拥挤的场景中,ID 切换可能是一个真正的问题。视频中的运动模式可以概括为刚体运动,来自相机姿态的变化,以及物体的非刚体运动。由于缺乏关于相机运动的额外数据(例如导航、IMU 等)或相机内参,2个相邻帧之间的图像配准是相机刚性运动在图像平面上投影的良好近似。

作者使用OpenCV的全局运动估计 (GMC) 技术来表示背景运动。首先提取图像关键点,然后利用稀疏光流进行基于平移的局部异常点抑制的特征跟踪。这里先使用RANSAC计算出仿射变换矩阵 。然后使用仿射变换矩阵将预测边界框从k-1帧的坐标系变换到下一帧k的坐标,如下所述。

仿射变换矩阵的平移部分只影响边界框的中心位置,而另一部分影响所有的状态向量和噪声矩阵。相机运动校正步骤可以通过以下等式执行:

06c05ae2a480d7d603ecf4e42c2327ff.png

当 # 是包含仿射矩阵 A 的尺度和旋转部分的矩阵时,T 包含平移部分。通过定义和 来使用数学技巧。此外,、 分别是相机运动补偿前后 KF 时间 k 的预测状态向量。, 分别是校正前后KF的预测协方差矩阵。之后,在卡尔曼滤波器更新步骤中使用 , 如下:

a87f870910c186f4dedd9c223a81083a.png

在高速的情况下,状态向量的完全修正,包括速度项是必要的。当相机与帧率相比变化缓慢时,校正值为等式8可以省略。通过应用这种方法,跟踪器对相机的运动具有较好鲁棒性。

在对刚性相机运动进行补偿之后,并在一个物体的位置从一帧到下一帧仅略有变化的假设下。在在线高帧率应用中,当出现漏检情况时,可以使用KF的预测步骤进行轨迹外推。这可能会导致更高的MOTA轨道更连续的关注。

2.3 IoU-Re-ID Fusion

为了利用深度视觉表示的最新发展,将外观特征集成到的跟踪器中。为了提取这些 Re-ID 特征,在来自 FastReID 库的 BoT (SBS) 之上采用了更强的基线,FastReIDResNeSt50 作为主干。采用指数移动平均 (EMA) 机制来更新第 k 帧处第 i 个 tracklet 的匹配 tracklet 外观状态 ,

b046dff37a4cf79aa19ba2805d478cef.png

其中 是当前匹配检测的外观嵌入,α=0.9 是动量项。因为外观特征可能容易受到人群、遮挡和模糊对象的影响,为了保持正确的特征向量,只考虑高置信度检测。为了在平均轨迹外观状态 和新的检测嵌入向量 之间进行匹配,测量余弦相似度。作者决定放弃外观成本 和运动成本 之间的共同加权和来计算成本矩阵C:

fbc3cd293dfc7b6ef1fdb35310298f91.png

其中权重因子λ通常设置为0.98。

作者开发了一种结合运动和外观信息的新方法,即 IoU 距离矩阵和余弦距离矩阵。首先,就 IoU 的分数而言,低余弦相似度或距离较远的候选者会被拒绝。然后,使用矩阵的每个元素中的最小值作为Cost矩阵 C 的最终值。IoU-ReID 融合管道可以表述如下:

bc5131c131812ebb86cf0011dd864f9f.png

其中 是Cost矩阵C的(i,j)元素。 是 tracklet 第 i 个预测边界框和第 j 个检测边界框之间的 IoU 距离,表示运动成本。$d^{cos}_{i,j} 是平均 tracklet 外观描述符 i 和新检测描述符 j 之间的余弦距离。 是新设计的Cost。 是接近阈值,设置为 0.5,用于丢弃不太可能的轨迹和检测对。 是外观阈值,用于将 tracklets 外观状态和检测嵌入向量的正关联与负数分离。

在图 5 之后将 设置为 0.2。基于匈牙利匹配和前面提到的Cost矩阵解决了高置信度检测(即第1个关联步骤)的线性分配问题。

db2aa82a78c722f07293b1f99ca31188.png

3实验

3.1 消融实验

92a7ce714d9b6da73189d56355485c31.png 19ff5cba89b0940914dc3ab3628c6551.png

3.2 SOTA对比

e75743c3b1b90fc8e996009e3244eeb5.png

58fde0e123b27847e0f1a560c25200db.png

点击进入—> CV 微信技术交流群

 
 
 

ICCV和CVPR 2021论文和代码下载

后台回复:CVPR2021,即可下载CVPR 2021论文和代码开源的论文合集

后台回复:ICCV2021,即可下载ICCV 2021论文和代码开源的论文合集

后台回复:Transformer综述,即可下载最新的3篇Transformer综述PDF

目标检测和Transformer交流群成立
扫描下方二维码,或者添加微信:CVer6666,即可添加CVer小助手微信,便可申请加入CVer-目标检测或者Transformer 微信交流群。另外其他垂直方向已涵盖:目标检测、图像分割、目标跟踪、人脸检测&识别、OCR、姿态估计、超分辨率、SLAM、医疗影像、Re-ID、GAN、NAS、深度估计、自动驾驶、强化学习、车道线检测、模型剪枝&压缩、去噪、去雾、去雨、风格迁移、遥感图像、行为识别、视频理解、图像融合、图像检索、论文投稿&交流、PyTorch、TensorFlow和Transformer等。
一定要备注:研究方向+地点+学校/公司+昵称(如目标检测或者Transformer+上海+上交+卡卡),根据格式备注,可更快被通过且邀请进群▲扫码或加微信: CVer6666,进交流群
CVer学术交流群(知识星球)来了!想要了解最新最快最好的CV/DL/ML论文速递、优质开源项目、学习教程和实战训练等资料,欢迎扫描下方二维码,加入CVer学术交流群,已汇集数千人!▲扫码进群
▲点击上方卡片,关注CVer公众号
整理不易,请点赞和在看

这篇关于屠榜多目标跟踪!BoT-SORT:稳健的关联多行人跟踪的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/608462

相关文章

如何用Java结合经纬度位置计算目标点的日出日落时间详解

《如何用Java结合经纬度位置计算目标点的日出日落时间详解》这篇文章主详细讲解了如何基于目标点的经纬度计算日出日落时间,提供了在线API和Java库两种计算方法,并通过实际案例展示了其应用,需要的朋友... 目录前言一、应用示例1、天安门升旗时间2、湖南省日出日落信息二、Java日出日落计算1、在线API2

usaco 1.3 Mixing Milk (结构体排序 qsort) and hdu 2020(sort)

到了这题学会了结构体排序 于是回去修改了 1.2 milking cows 的算法~ 结构体排序核心: 1.结构体定义 struct Milk{int price;int milks;}milk[5000]; 2.自定义的比较函数,若返回值为正,qsort 函数判定a>b ;为负,a<b;为0,a==b; int milkcmp(const void *va,c

烟火目标检测数据集 7800张 烟火检测 带标注 voc yolo

一个包含7800张带标注图像的数据集,专门用于烟火目标检测,是一个非常有价值的资源,尤其对于那些致力于公共安全、事件管理和烟花表演监控等领域的人士而言。下面是对此数据集的一个详细介绍: 数据集名称:烟火目标检测数据集 数据集规模: 图片数量:7800张类别:主要包含烟火类目标,可能还包括其他相关类别,如烟火发射装置、背景等。格式:图像文件通常为JPEG或PNG格式;标注文件可能为X

Verybot之OpenCV应用三:色标跟踪

下面的这个应用主要完成的是Verybot跟踪色标的功能,识别部分还是居于OpenCV编写,色标跟踪一般需要将图像的颜色模式进行转换,将RGB转换为HSV,因为对HSV格式下的图像进行识别时受光线的影响比较小,但是也有采用RGB模式来进行识别的情况,这种情况一般光线条件比较固定,背景跟识别物在颜色上很容易区分出来。         下面这个程序的流程大致是这样的:

[数据集][目标检测]血细胞检测数据集VOC+YOLO格式2757张4类别

数据集格式:Pascal VOC格式+YOLO格式(不包含分割路径的txt文件,仅仅包含jpg图片以及对应的VOC格式xml文件和yolo格式txt文件) 图片数量(jpg文件个数):2757 标注数量(xml文件个数):2757 标注数量(txt文件个数):2757 标注类别数:4 标注类别名称:["Platelets","RBC","WBC","sickle cell"] 每个类别标注的框数:

Linux内置的审计跟踪工具:last命令

如果你是一个服务器管理员,你或许知道你要保护你的服务器的话,不仅是从外部,还要从内部保护。Linux有一个内置工具来看到最后登陆服务器的用户,可以帮助你保护服务器。   这个命令是last。它对于追踪非常有用。让我们来看一下last可以为你做些什么。   last命令的功能是什么   last显示的是自/var/log/wtmp文件创建起所有登录(和登出)的用户。这个文件是二进制

C++ STL关联容器Set与集合论入门

1. 简介 Set(集合)属于关联式容器,也是STL中最实用的容器,关联式容器依据特定的排序准则,自动为其元素排序。Set集合的底层使用一颗红黑树,其属于一种非线性的数据结构,每一次插入数据都会自动进行排序,注意,不是需要排序时再排序,而是每一次插入数据的时候其都会自动进行排序。因此,Set中的元素总是顺序的。 Set的性质有:数据自动进行排序且数据唯一,是一种集合元素,允许进行数学上的集合相

YOLOv8/v10+DeepSORT多目标车辆跟踪(车辆检测/跟踪/车辆计数/测速/禁停区域/绘制进出线/绘制禁停区域/车道车辆统计)

01:YOLOv8 + DeepSort 车辆跟踪 该项目利用YOLOv8作为目标检测模型,DeepSort用于多目标跟踪。YOLOv8负责从视频帧中检测出车辆的位置,而DeepSort则负责关联这些检测结果,从而实现车辆的持续跟踪。这种组合使得系统能够在视频流中准确地识别并跟随特定车辆。 02:YOLOv8 + DeepSort 车辆跟踪 + 任意绘制进出线 在此基础上增加了用户

stl的sort和手写快排的运行效率哪个比较高?

STL的sort必然要比你自己写的快排要快,因为你自己手写一个这么复杂的sort,那就太闲了。STL的sort是尽量让复杂度维持在O(N log N)的,因此就有了各种的Hybrid sort algorithm。 题主你提到的先quicksort到一定深度之后就转为heapsort,这种是introsort。 每种STL实现使用的算法各有不同,GNU Standard C++ Lib

[数据集][目标检测]智慧农业草莓叶子病虫害检测数据集VOC+YOLO格式4040张9类别

数据集格式:Pascal VOC格式+YOLO格式(不包含分割路径的txt文件,仅仅包含jpg图片以及对应的VOC格式xml文件和yolo格式txt文件) 图片数量(jpg文件个数):4040 标注数量(xml文件个数):4040 标注数量(txt文件个数):4040 标注类别数:9 标注类别名称:["acalcerosis","fertilizer","flower","fruit","grey