Kalman滤波器是多目标跟踪任务中一个经典的运动模型,本次主要以经典应用为主。其中应用算法主要介绍Sort和Deepsort算法。
分别表示目标中心位置的x,y坐标,相对原始目标框大小的尺度s和当前目标框的纵横比,最后三个则是横向,纵向,尺度的变化速率,其中速度部分初始化为0;
可以看到,作者主要是基于速度状态不确定性大于位置形状状态不确定性的依据,以及观测行人框的检测位置比形状置信度高的先验;
(4)运动形式和转换矩阵的确定,无论是Sort还是Deepsort都是基于匀速运动的假设,即:
(5)然而对于Kalman滤波器的更新环节而言,观测量如何选择也是一个很重要的部分,即对于n条跟踪轨迹而言,如果存在m个观测,如果分配的问题。通常我们采用匈牙利算法/KM算法先对Klaman滤波器预测阶段得到的运动估计和观测进行关联,代价矩阵为二者之间的IOU。匹配成功的则进行Kalman滤波器的更新,匹配失败的跟踪轨迹则视为丢失,匹配失败的观测量则视为新增轨迹;
(6)综上就可以实现各个目标的运动估计和更新。其中对于丢失的轨迹,考虑到跟踪对象或者检测质量的影响,目标经常容易短暂消失,一般情况下我们是允许他参与到后续帧的匹配关联以继续跟踪的。然而Sort跟踪器主要依据的是运动信息,也比较简单,所以实际实现过程中只允许丢失一帧。
同样地,DeepSort对于Sort算法进行了改进,改进方向有:状态量的调整、协方差参数的调整、代价矩阵的确定方式。
分别表示目标中心位置的x,y坐标,当前目标框的纵横比和高,以及上述四个状态的速度变量.
(2)对于Detection based Tracking框架,由于提供了检测结果,因此相较于Kalman滤波器预测的状态,检测结果就充当了观测量的角色;
(3)各个协方差参数的设定,从DeepSort提供的代码来看,可以看到,对于Kalman的各个协方差,初始状态为:可以看到,作者引入了位置和速度的标准差这两个额外的参数,整体的设计来看,依旧是速度相对于位置形状不确定性要高,长宽比尽可能变化幅度小.
(4)运动形式和转换矩阵的确定,无论是Sort还是Deepsort都是基于匀速运动的假设,不过Deepsort新增了运动的步长即:
(5)对于预测估计和观测量的关联,DeepSort引入了更多的设定,其中IOU的判定作为初筛标准,将不符合要求的关联删除,实际采用的是马氏距离和余弦距离的加权值。其中马氏距离,利用的是Kalman滤波器更新阶段的系统协方差:
其中作者对于特征向量的处理采用了比较简陋的特征融合方式,即保存轨迹的历史特征,最多100个,每次计算余弦距离之前先将历史特征平均。最后由于轨迹丢失会暂时保留,因此针对不同时效性的轨迹,采用了级联匹配的方式:
工程实现部分参考链接:https://zhuanlan.zhihu.com/p/110163693
作者:黄飘
链接:https://zhuanlan.zhihu.com/p/110107365
来源:知乎