BoT-SORT: Robust Associations Multi-Pedestrian Tracking
BoT-SORT论文链接
参考文章
最近新出的霸榜的多目标跟踪BoT-SORT论文在MOTChallenge数据集上得出的结果排名第一(state-of-the-art),其中指标实现了 80.5% MOTA、80.2% IDF1 和 65.0% HOTA。
MOT指标参考
论文秉持一贯的风格使用 Tracking-by-detection 作为MOT任务,使用当前最先进的检测器YOLOX作为检测任务,在ByteTrack的基础上更新很多作者自己的想法。
一、修改卡尔曼滤波(KF)中的状态向量及其他矩阵参数
起初SORT中KF状态向量为7元组组成:,其中x,y为中心值,s为边界框比例(面积),a为边界框的纵横比(w/h)。
而DeepSort中KF状态向量改为8元组:,a依然为边界框的纵横比,只是将第四维改成的边界框的高度h预测。
论文中修改KF状态向量为如下形式:,将宽高比改成了预测宽度w,是因为作者发现在真实预测的过程中预测框总是不将行人完全包括进去,而正确的预测宽高能更好的匹配行人框,对跟踪匹配中的IOU也有很大的改善。
论文中截取的图
另外根据状态向量修改初始化的矩阵参数(过程噪声、测量噪声)以满足总体修改预测。
二、相机运动补偿(Camera Motion Compensation)
由于KF是匀速线性运动模型,对于跟踪非线性来说会产生不适配的问题,作者提出使用传统的方法Global motion compensation (GMC),使用OpenCV中的提取图像关键点技术对背景提取特征描述子(类似ORG、SIFT、SURF),并且通过特征点进行稀疏光流跟踪来使用RANSAC计算并获取背景运动的仿射变换矩阵,以此通过前后帧的运动信息生成仿射变换矩阵来预测行人边界框,称为运动补偿,仿射变换矩阵平移部分只会影响中心点位置,而其它的影响状态向量和噪声矩阵。由此作者给出了运动校正的等式方程:
对于在跟踪中加入运动补偿后的效果其实是可想而知的,作者实验也贴了图,实际过程中,KF在预测的时候,假如目标运动过快或者过慢的情况可能会出现预测的滞后与提前,而在运动匹配的过程中iou匹配其实会显得比较困难,因为不管预测框是滞后或提前总是会造成与检测框的重合度不高的情况,这就给MOT带来了极大的挑战,况且不说运动模糊的情况。
三、IOU+ReID的融合机制
使用FastReID库中ResNest50作为backbone,BoT(SBS)作为基线训练reid网络,网络训练使用默认的参数,从FastReID项目中可以找到,使用的分辨率为128x384的输入分辨率,损失函数使用了经典的TripletLoss,总共迭代60个epoch训练出强有力的ReID网络提取特征。并且采用指数移动平均(EMA)来更新第k帧中第i个预测框的轨迹状态,在拥挤以及遮挡的场景中检测得分低的表示特征不可靠,并不会用来做特征匹配。
并且有提出使用IOU+ReID融合机制的策略来进行匹配,使用下面公式作为匹配输出:
作者使用设置iou阈值为0.5,余弦相似度阈值为0.2作为匹配的限制。
作者最后提到可能对于使用场景的不同,对于GMC来说大图会产生耗时较大的问题,可以采用多线程的方式来抵消平衡这一部分耗时,不过博主觉得在嵌入式端的话使用的分辨率一般不会太大,毕竟板端的耗时太大会影响整个跟踪的性能。
另外作者也使用到了一些匹配小技巧,在跟踪中经常发生,由于目标的遮挡以及未匹配会导致预测的梯度弥散效应,导致预测框的形变发生,而这里可以做一些基础的策略来保持,作者未提出只是给了相关文献,大概能知道为了保持此预测框在目标出现是尽可能的匹配上连接之前的轨迹,类似ByteTrack策略,在低得分的检测框出现的时候依然使用IOU去做匹配,以保持轨迹的连续性。
而且作者说自己其实也不清楚是为什么使得MOT的一些指标有提升的,猜想可能是因为KF的状态向量W参数的预测修改使得预测框与检测框拟合,匹配更好导致的。这一点我觉得还是很有用的,对于预测框大小的拟合能做到与检测框类似相差不大的情况下,iou匹配是可以起到很鲁棒的作用。
实用性:
个人认为这篇论文还是有很多实用参考价值的,因为其中的运动过程中丢失目标是跟踪过程中时常发生的,对于KF中的状态修改可以直接影响预测的匹配,对于运动补偿对于实践可能会稍微困难点,但值得一试!!!