虽然卡尔曼(KF算法)和二分图(KM算法)在目标跟踪任务中完全可以当黑盒用。但是在发论文时(比如小目标跟踪需要在卡尔曼滤波中做平滑)则需要对原始代码进行必要的修改。首先,为什么我们要用卡尔曼滤波器?如果直接用detector的结果进行跟踪行不行?假设我的detector检测到了前一帧的结果,也检测到了当前帧的结果,直接拿它们俩做匹配实现跟踪不可以吗?我们举这样一个例子:假设我们用高德地图进行导航,在有GPS信号时定位是很精准的,但在隧道中GPS信号弱,有很多噪声的时候,定位就不精准了,但我们又希望定位准确,这个时候该怎么办。就要用到卡尔曼滤波了。对应到视觉跟踪任务:观测值为前面所有帧的检测结果(卡尔曼滤波会不断的根据前一帧进行更新迭代),卡尔曼滤波会根据观测值预测出当前帧可能出现的目标位置,再拿这些可能的位置和当前帧的检测结果做匹配。 其中,在视觉跟踪任务中,卡尔曼滤波的强假设为线性运动。本质上说,卡尔曼滤波就是一个最优估计。我们来看代码:
接着上节,我们说mmtracking-1.0.0rc1\mmtrack\models\mot\by