因为想做目标追踪,所以还是用最经典卡尔曼滤波和匈牙利算法进行预测估计
卡尔曼滤波
大名鼎鼎的卡尔曼滤波实际就是利用上一时刻目标的位置和这一时刻由传感器或者其他方法测量得到的目标位置估计实际目标的算法。
当前时刻测量得到的目标位置因为存在误差或者噪声也不能直接使用,而预测量由于当事人不是神棍不能预言所以也不能直接用,那怎么样才能最有效地利用这两个有偏差的结果得到最接近实际的结果呢?因此不同的滤波算法应运而生…
数学原理
前提:所有的位置变化都是线性的
卡尔曼滤波不要求信号和噪声都是平稳过程的假设条件。对于每个时刻的系统扰动和观测误差(即噪声),只要对它们的统计性质作某些适当的假定,通过对含有噪声的观测信号进行处理,就能在平均的意义上,求得误差为最小的真实信号的估计值。
形式描述
X(k)=A X(k-1)+B U(k)+W(k)
Z(k)=H X(k)+V(k)
上述等式看起来很像离散系统的状态空间模型
X(k)、X(k-1)代表k及k-1时刻系统的状态变量
A, B为系统参数
U(k)是k时刻对系统的控制量
Z(k)是k时刻的测量值
H是测量系统的参数
W(k)和V(k)分别表示过程和测量的噪声
以例理解:
狙击手狙击目标,瞄准镜里的是目标的当前位置,而开枪射击的必须是目标下一时刻的位置,所以第一个等式相当于我在上一时刻从瞄准镜看到了目标,并估计得到这一时刻它的位置。第二个等式相当于我的眼睛近视,当前时刻看到的位置也不准,存在噪声。
由上述例子可知,如果用线性的思想,我们可以在