[论文阅读] BoT-SORT: Robust Associations Multi-Pedestrian Tracking
时间:2023-04-20 22:37:00
本文是今年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:
在MOT在许多算法中,它可以分为两类——TBD(Tracking by Detection)范式和JDE范式。TBD范式是two-shot在保证检测结果准确性的基础上实现跟踪算法(经典算法有SORT/DeepSORT/ByteTrack/OC-SORT等等)。JDE范式则是one-shot该算法旨在一步到位,采用检测方法同步跟踪。本文提出的算法应属于TBD范式,以下是TBD范式的一般流程:
文章首先简要阐述了SORT-LIKE该系列方法的缺陷也旨在解决这些问题:
有两个主要的现有问题:
- 由于卡尔曼滤波和相机运动由两个因素引起的Bounding box预测不准确;
- Re-ID平衡任务和检测任务(添加跟踪任务Re-ID)
主要有三种解决方案:
- 改进KF的状态向量;
- 使用相机运动补偿方式改进bounding box的预测;
- 加入Re-ID的度量,提高跟踪的准确度。
这三个贡献分别简要介绍:
1.改进卡尔曼滤波器
改进后的效果:
本文通过以下消融实验证实了这部分的有效性KF推导比较繁琐,我的理解是之前用过。宽高比变成了使用宽和高。
2. 相机运动补偿
作者认为,相机的运动会导致检测框的漂移。即使是静止的相机,目标中的角色也可能因不规则的运动而振动目标。
这部分使用opencv中的全局运动估计(GMC)技术表示背景运动。首先提取图像关键点,然后利用稀疏光流跟踪基于平移的局部异常抑制的特征。然后使用它RANSAC计算放射转换矩阵,将预测的边界框从k-1帧坐标转换为下一阵第k帧坐标。
效果:
题外话:事实上,这部分相机运动补偿工作StrongSORT(DeepSORT也做过,在StrongSORT中使用的是ECC方法。
3. IoU&ReID Fusion
为了提取Re-ID特征,采用FastReID库中BoT 以上更强baseline——SBS(2020年提出) ResNeSt50作为骨干网络。这部分在StrongSORT也用同样的backbone。
具体实现外观分支:
匈牙利算法中使用的余弦相似度和成本矩阵计算:
最后,让我们回顾一下这个方法pipeline,上述三部分对应pipeline以下三部分:
熟悉MOT算法的朋友一眼就能看出整个过程和ByteTrack是一样的:
- 第一次联合高分置信度的目标,并做出Re-ID和IOU的匹配;
- 第二个联合低分置信度的目标。
这里借用 ByteTrack图,看得更明显:
在第一次关联(关联1)中,ByteTrack作者也表示使用过Re-ID但是效果一般。用的是DeepSort使用简单的策略CNN提取RE-ID特征:
其实看完文章和一些源码,发现了BoT-SORT貌似是把ByteTrack认为无效的工作被捡起来重做了。具体来说,就是把之前的工作捡起来重做。DeepSORT更换为更强大的变体——StrongSORT:
无论是提取re-id特征的backbone部分还是后续使用的相机运动补偿和EMA战略,基本流程和StrongSORT一致。
最后是实验部分:
加入相机运动补偿(CMC)的效果:
总的来说,在我看来,这篇文章的创新点,或者可以work亮点主要在RE-ID上。但在limitation一些作者还说,加入RE-ID之后速度非常慢,我也做了一些测试,fps只能在5以内,不能实时。但在短时间内,算法可以很好地跟上目标,这比ByteTrack/oc-sort这些方法比较好。
许多地方模糊不清,文章的翻译和一些分析也可以参考 https://blog.csdn.net/jacke121/article/details/125568958…