[论文阅读] BoT-SORT: Robust Associations Multi-Pedestrian Tracking

这篇文章是今年6月底发布的一篇多目标跟踪(MOT)的屠榜方法,命名为BoT-SORT。作者来自以色列的特拉维夫大学(Tel-Aviv University)。本文简单谈谈我对这个算法的理解,因为也是MOT领域的初学者,如有错误希望各位读者修正,也欢迎大家一起探讨。
PS:文章内部分图片是原创,如需转载请注明出处。

paper: https://arxiv.org/abs/2206.14651
code: https://github.com/NirAharon/BOT-SORT

算法在IDF1和MOTA两个指标上都做到了SOTA:
[论文阅读] BoT-SORT: Robust Associations Multi-Pedestrian Tracking_第1张图片
在MOT的诸多算法中,可以将其分成两类——即TBD(Tracking by Detection)范式和JDE范式。TBD范式是two-shot的算法,即在保证检测结果准确的基础上实现跟踪算法(比较经典的算法有SORT/DeepSORT/ByteTrack/OC-SORT等等)。JDE范式则是one-shot的算法,旨在一步到位,使用检测的方法同步实现跟踪。这篇文章提出的算法应属于TBD范式,下面是TBD范式的一般流程:
[论文阅读] BoT-SORT: Robust Associations Multi-Pedestrian Tracking_第2张图片文章首先简单阐述了“SORT-LIKE”系列方法的缺陷,其贡献点也是旨在解决这些问题:
[论文阅读] BoT-SORT: Robust Associations Multi-Pedestrian Tracking_第3张图片现存主要问题有两个:

  • 由于卡尔曼滤波相机运动两个因素,导致的Bounding box预测不准确;
  • Re-ID任务和检测任务的平衡问题(在跟踪任务中加入Re-ID)

解决方式主要有三个:

  1. 改进KF的状态向量
  2. 使用相机运动补偿方式改进bounding box的预测;
  3. 加入Re-ID的度量,提高跟踪的准确度。

下面分别简单介绍这三个贡献:

1.卡尔曼滤波的改进

[论文阅读] BoT-SORT: Robust Associations Multi-Pedestrian Tracking_第4张图片改进后的效果:
[论文阅读] BoT-SORT: Robust Associations Multi-Pedestrian Tracking_第5张图片
这部分的有效性文章通过后面的消融实验来证实,具体KF的推导比较繁琐,我的理解就是把之前使用的宽高比变成了使用宽和高

2. 相机运动补偿

作者认为相机的运动会导致检测框的漂移,即便是静止的相机,目标中人物也可能会因为不规则运动导致目标的振动。
这部分使用opencv中的全局运动估计(GMC)技术来表示背景运动。首先提取图像关键点,再利用稀疏光流进行基于平移的局部异常点抑制的特征跟踪。然后使用RANSAC计算放射变换矩阵,在将预测的边界框从k-1帧坐标变换到其下一阵第k帧的坐标。

效果:
[论文阅读] BoT-SORT: Robust Associations Multi-Pedestrian Tracking_第6张图片
题外话:这部分相机运动补偿的工作其实StrongSORT(DeepSORT的改进)也有做过,在StrongSORT中使用的是ECC方法

3. IoU&ReID Fusion

为了提取Re-ID特征,采用了FastReID库中BoT 之上的更强的baseline——SBS(2020年提出)+ ResNeSt50作为骨干网络。这部分在StrongSORT中也用了相同的backbone。

在外观分支,具体实现:
[论文阅读] BoT-SORT: Robust Associations Multi-Pedestrian Tracking_第7张图片余弦相似度和用于匈牙利算法的代价矩阵计算:
[论文阅读] BoT-SORT: Robust Associations Multi-Pedestrian Tracking_第8张图片

最后我们回顾下这个方法的pipeline,上面描述的三部分就对应pipeline中的以下三部分:
[论文阅读] BoT-SORT: Robust Associations Multi-Pedestrian Tracking_第9张图片

熟悉MOT算法的朋友肯定一眼就看得出来,整体的流程和ByteTrack是一样的:

  • 第一次联合高分置信度的目标,并作Re-ID和IOU的匹配;
  • 第二次联合低分置信度的目标。

这里借用 ByteTrack的图,看得更明显一些:
[论文阅读] BoT-SORT: Robust Associations Multi-Pedestrian Tracking_第10张图片第一次关联(关联1)中,ByteTrack的作者也表示过,使用过Re-ID分支作匹配,但效果一般。其中使用的是DeepSort的策略,使用简单的CNN提取RE-ID特征:
[论文阅读] BoT-SORT: Robust Associations Multi-Pedestrian Tracking_第11张图片
其实在看过文章和一些源码以后,发现BoT-SORT貌似是把ByteTrack中认为无效的工作捡起来重做了。具体一些,是把之前的DeepSORT更换为其更强大的变体——StrongSORT:

[论文阅读] BoT-SORT: Robust Associations Multi-Pedestrian Tracking_第12张图片

无论是提取re-id特征的backbone部分还是后续使用的相机运动补偿和EMA策略,基本流程都和StrongSORT一致。

最后是实验部分:
[论文阅读] BoT-SORT: Robust Associations Multi-Pedestrian Tracking_第13张图片
[论文阅读] BoT-SORT: Robust Associations Multi-Pedestrian Tracking_第14张图片
加入相机运动补偿(CMC)的效果:
[论文阅读] BoT-SORT: Robust Associations Multi-Pedestrian Tracking_第15张图片

[论文阅读] BoT-SORT: Robust Associations Multi-Pedestrian Tracking_第16张图片
[论文阅读] BoT-SORT: Robust Associations Multi-Pedestrian Tracking_第17张图片
总体来说,在我看来其实这篇文章的创新点,或者说能够work的亮点主要在RE-ID上。但在limitation部分作者也说了,加入RE-ID之后速度非常慢,这个我也有进行一些测试,fps只能达到5以内,没办法实时。但是在短时遮挡的情况下,算法可以很好地跟住目标,这点要比ByteTrack/oc-sort这些方法要好。

很多地方语焉不详,文章的翻译和一些解析也可以参考 https://blog.csdn.net/jacke121/article/details/125568958…

你可能感兴趣的:(cv,深度学习,目标跟踪)