我非常感谢使用卡尔曼滤波器进行(视觉)跟踪的直观解释。我知道的:
预测步骤:
- 动态系统状态 : 时间
- 测量:时间索引处的图像(??)
基于图像/测量我想预测状态?(使用动态方程)正确吗?
如何将校正步骤解释为这些术语(图像、目标位置)?
我非常感谢使用卡尔曼滤波器进行(视觉)跟踪的直观解释。我知道的:
预测步骤:
基于图像/测量我想预测状态?(使用动态方程)正确吗?
如何将校正步骤解释为这些术语(图像、目标位置)?
首先,您必须假设一个运动模型。假设您希望跟踪一个在空中飞行的球。由于重力 9.8m/s^2,球具有向下的加速度。所以在这种情况下,恒加速度运动模型是合适的。
在此模型下,您的状态是位置、速度和加速度。给定前一个状态,您可以轻松预测下一个状态。
你也有检测的概念。您有一个球移动的视频,并且您必须以某种方式在每个视频帧中检测球(例如,通过使用背景减法)。
你的检测很嘈杂。此外,由于空气阻力、风、宇宙射线等,球的运动并不完全符合恒定加速度模型。卡尔曼滤波器需要两个矩阵来描述这一点:一个是测量噪声的协方差(你的检测不准确),一个用于过程噪声的协方差(球的运动如何偏离您指定的模型)。
如果您正在跟踪单个对象,那么卡尔曼滤波器可以让您消除一些噪声,并在检测丢失时预测对象的位置(例如,如果对象被遮挡)。这是一个使用 MATLAB 计算机视觉系统工具箱使用卡尔曼滤波器跟踪单个对象的示例。
如果您正在跟踪多个对象,那么卡尔曼滤波器预测可以让您决定哪个检测与哪个对象一起使用。一个好的方法是在给定预测的误差协方差的情况下使用检测的对数似然。这是使用卡尔曼滤波器跟踪多个对象的示例。
这个在线课程非常容易理解,对我来说它很好地解释了卡尔曼滤波器。
它被称为“编程机器人汽车”,它谈到了三种定位方法:蒙特卡洛定位、卡尔曼滤波器和粒子滤波器。它确实以声纳信息为例,但解释很简单,您可以简单地将“声纳”替换为“视觉信息”,这仍然是有意义的。
该课程完全免费(现已结束,因此您无法积极参与,但您仍然可以观看我认为的讲座),由斯坦福教授教授。
卡尔曼滤波器递归地提供受 AWGN 扰动的信号的最佳线性估计。在您的情况下,状态(您想要估计的)将由目标位置给出。测量值将由您的算法确定。
如果您已阅读 Wikipedia 文章,您可能希望查看此关于视觉跟踪的演示文稿。你有书吗?
当您进行视觉跟踪时,您需要一个模型,它是真实世界过程的数学表示。该模型将对从测量中获得的任何数据有意义,将连接我们输入和退出系统的数字。
但是模型是对现实的简化,因为您将使用较少数量的参数。您对系统的不了解称为噪声或不确定性。它和你所知道的一样重要。由于我们无法完美地描述一个系统,我们需要来自现实世界的测量来告诉我们正在建模的系统正在发生什么。
Kalman 是一种工具,可以将我们估计的内容与我们的模型以及我们从世界上测量的内容相结合,通过将两者在加权意义上结合起来。
您将计算每一步的状态。这就是您目前对系统的了解。状态受过程方程和测量方程的影响。两个方程具有不同的噪声协方差。卡尔曼将通过调整卡尔曼增益来决定两者中哪一个对每一步的影响更大。
当我不想深入研究公式时,这就是我思考这个问题的方式。