多目标跟踪算法SORT

多目标跟踪(Multi Object Tracking)

多目标跟踪问题可以被视为数据关联的问题,目的是关联视频序列中不同帧之间的检测结果,为每个目标分配一个独有的ID。为了解决目标关联的问题,一般使用多种方法对目标的外观和运动特性进行建模。
MOT算法的工作流程:
1、给定视频序列
2、运行目标检测器,获得对象的边界框
3、对于检测到的对象,进行特征计算和运动预测
4、相似度计算,即计算两个对象属于同一目标的概率
5、目标关联,为每个对象分配ID

Detection
Feature Extraction
Motion Prediction
Affinity Computation
Data Association

SORT这篇论文主要研究了用于MOT的数据关联问题,通过引入卡尔曼滤波(Kalman Filter)和匈牙利算法(Hungarian algorithm
),可以实现实时和优秀的跟踪性能。这种方法没有考虑目标的外观特征,在运动估计和数据关联中仅仅使用到了边界框的位置和大小。跟踪过程中的短期及长期的遮挡的问题被忽略,因为解决这个问题会为模型带来较大的复杂度,这往往会限制跟踪器的实时运行。

运动模型

为目标建立运动模型,该模型用于推算出目标在下一帧图像中的状态。论文将相邻帧之间的目标运动近似为恒速运动,独立于其他的目标和相机的运动。每一个目标的状态使用一个7维的向量来描述:x=[u,v,s,r,u˙,v˙,s˙]Tx = [u, v, s, r, \dot{u}, \dot{v}, \dot{s}]^T其中uuvv分别是目标中心的水平和垂直像素坐标,ss代表目标的大小,rr代表目标的边界框的比例,需要注意的是目标边界框的比例rr被认为是常量。当一个detection与target成功关联之后,就使用该detection的边界框去取更新target的状态,target的速度信息可由卡尔曼滤波解算出来。如果一个target没有detection与之关联,仅仅使用该线性恒速模型预测target的状态。卡尔曼滤波的转移方程和测量方程如下:
多目标跟踪算法SORT其中状态转移矩阵和测量矩阵分别为:
多目标跟踪算法SORT

状态转移矩阵

目标关联

通过卡尔曼滤波器的预测方程可以根据上一帧的结果预测目标在当前帧的状态,预测的结果需要与当前帧的检测结果进行目标关联。下图中,左边蓝色的点代表预测值,右边绿色的点代检测的结果,两点之间的连线代表可能存在的匹配,这里的连线是有权重的,通过计算IOU距离(intersection-over-union distance)得到。IOU距离反映了两个边界框的重叠程度。目标关联问题可以通过匈牙利算法(Hungarian algorithm)求解得到。
多目标跟踪算法SORT

SORT流程图

多目标跟踪算法SORT

算法示意图

多目标跟踪算法SORT
参考文献:
[1]: https://zhuanlan.zhihu.com/p/97449724
[2]: https://zhuanlan.zhihu.com/p/36745755
[3]:https://zhuanlan.zhihu.com/p/62981901