文章目录
一、卡尔曼滤波
什么是卡尔曼滤波?------状态估计器
- 卡尔曼滤波用于在包含不确定信息的系统中做出预测,对系统下一步要做什么进行推测,且会结合推测值和观测值来得到修正后的最优值
- 卡尔曼滤波就是利用 t-1 状态的最优值预测 t 时刻的预测值,同时利用 t 时刻的观测值来修正 t 时刻的预测值,得到 t 时刻的最优值
- 这里的几个值可能有些难以理解:
- 观测值:真实的位置
- 预测值:预测的位置
- 最优值:根据预测值和观测值结合起来修正后的值
- 以行人追踪为例,卡尔曼滤波可以根据行人当前的位置来预测下一时刻行人运动的最优位置,不仅可以滤除检测带来的虚警,也可以弥补偶发的漏警,使得目标运动的过程更加平滑
- 卡尔曼滤波的前提是线性系统,那么为何还能广泛应用呢,虽然目标的移动轨迹很难拟合,但是如果把每次预测的时间间隔都缩小的很小,那么就可以将轨迹近似成线性的
二、匈牙利匹配
匈牙利匹配:
- 假设有 3 个任务和 3 个工人,要把每个任务分配给不同的人,已知每个人完成每个任务的花费和代价是不同的,所以如何分配让总的代价最小,就是匈牙利匹配要得到的分配方式,即最优匹配
- 在目标追踪来说,就是对当前帧的预测结果和前一帧的预测结果进行匹配,目标是使得匹配后的代价矩阵最小,该方法不是最优匹配,而是尽可能的让每个目标都匹配上,总的代价最小
单目标跟踪和多目标跟踪的差别:
- 对于单目标跟踪来说,不需要匈牙利匹配,只需要卡尔曼滤波即可
- 对于多目标跟踪来说,两个都需要:
- 先进行匈牙利匹配,确定当前帧的某个目标是否和前一帧的某个目标匹配上了
- 再进行卡尔曼滤波矫正,也就是基于上一帧的位置来预测当前时刻的位置