Answers:
首先,您必须假设一个运动模型。假设您希望跟踪一个空中飞舞的球。由于重力,球的向下加速度为9.8m / s ^ 2。因此,在这种情况下,恒定加速度运动模型是合适的。
在此模型下,您的状态为位置,速度和加速度。给定上一个状态,您可以轻松预测下一个状态。
您也有检测的概念。您有一个关于球运动的视频,并且您必须以某种方式检测每个视频帧中的球(例如,通过使用背景减法)。
您的检测很吵。同样,由于空气阻力,风,宇宙射线等的影响,球的运动也不能完全符合恒定加速度模型。卡尔曼滤波器需要两个矩阵来描述:一个是测量噪声的协方差(您的检测误差);一个用于过程噪声的协方差(球的运动如何偏离您指定的模型)。
如果要跟踪单个对象,则可以使用卡尔曼滤波器消除一些噪声,并在缺少检测时预测对象在哪里(例如,如果对象被遮挡了)。这是一个使用MATLAB的计算机视觉系统工具箱使用卡尔曼滤波器跟踪单个对象的示例。
如果要跟踪多个对象,则可以使用卡尔曼滤波器预测来决定哪个对象进行哪个检测。一个好的方法是在给定预测误差协方差的情况下使用检测的对数似然。这是一个使用卡尔曼滤波器跟踪多个对象的示例。
这个在线课程非常容易理解,对我来说,它很好地解释了卡尔曼滤波器。
它被称为“对机器人汽车编程”,它讨论了三种定位方法:蒙特卡洛定位,卡尔曼滤波器和粒子滤波器。它确实以声纳信息为例,但是解释很简单,您可以用“视觉信息”简单地替换“声纳”,并且仍然有意义。
由斯坦福大学教授教授的课程完全免费(目前已结束,因此您不能积极参加,但仍然可以观看我假设的讲座)。
在进行视觉跟踪时,您需要一个模型,它是现实过程的数学表示。该模型将使从测量获得的任何数据有意义,将连接我们输入的数字和退出系统的数字。
但是模型是现实的简化,因为您将使用数量减少的参数。您对系统不了解的东西称为噪声或不确定性。它与您所知道的一样重要。由于我们无法完美地描述一个系统,因此我们需要对现实世界进行测量,以告诉我们正在建模的系统正在发生什么。
卡尔曼(Kalman)是一种通过加权结合将我们的估计值与模型以及从世界上衡量的结果进行组合的工具。
您将在每个步骤中计算状态。这就是您目前对系统所了解的。状态受过程方程式和测量方程式的影响。这两个方程具有不同的噪声协方差。卡尔曼将通过调整卡尔曼增益来决定两者中哪一个在每个步骤中都具有更大的影响力。
当我不想深入公式时,这就是我的思考方式。