我非常感谢使用卡尔曼滤波器对(视觉)跟踪的直观解释。
我所知道的:

预测步骤:


动态系统状态$ \ mathbf x_t $:时间$ t $的目标位置
测量$ \ mathbf z_t $:时间索引$ t $的图像(??)

基于图像/测量$ 1 \ rightarrow(t-1)$我想预测状态$ \ mathbf x_t $? (使用动态方程式)正确吗?

如何将校正步骤解释为这些术语(图像,目标位置)?

评论

cs.unc.edu/~welch/media/pdf/kalman_intro.pdf

#1 楼

首先,您必须假设一个运动模型。假设您希望跟踪一个空中飞行的球。由于重力,球的向下加速度为9.8m / s ^ 2。因此,在这种情况下,恒定加速度运动模型是合适的。

在此模型下,您的状态为位置,速度和加速度。给定上一个状态,您可以轻松预测下一个状态。

您还具有检测的概念。您有一个关于球运动的视频,并且您不得不以某种方式检测每个视频帧中的球(例如,通过使用背景减法)。

您的检测结果很嘈杂。同样,由于空气阻力,风,宇宙射线等的影响,球的运动也不完全适合恒定加速度模型。卡尔曼滤波器需要两个矩阵来描述:一个是测量噪声的协方差(您的检测误差);一个用于过程噪声的协方差(球的运动如何偏离您指定的模型)。

如果要跟踪单个对象,则使用卡尔曼滤波器可以平滑一些噪声,并在缺少检测时预测对象在哪里(例如,是否遮挡了对象)。这是一个使用MATLAB的计算机视觉系统工具箱使用Kalman滤波器跟踪单个对象的示例。

如果要跟踪多个对象,则Kalman滤波器预测可让您决定哪个检测与哪个对象一起进行目的。一个好的方法是在给定预测误差协方差的情况下使用检测的对数似然。这是一个使用卡尔曼滤波器跟踪多个对象的示例。

评论


$ \ begingroup $
好的答案。一张便条。状态仅是位置和速度
$ \ endgroup $
–ao
13年7月6日在8:22



$ \ begingroup $
@aiao,对于恒定加速度运动模型,加速度是状态的一部分。对于恒速模型则不是。
$ \ endgroup $
–迪马
13年7月7日在1:22

#2 楼

该在线课程非常容易且易于理解,对我来说,它很好地解释了卡尔曼滤波器。

它被称为“对机器人汽车编程”,其中涉及三种本地化方法:蒙特卡洛本地化,卡尔曼滤波器和粒子滤波器。它确实以声纳信息为例,但是解释很简单,您只需将“声纳”替换为“视觉信息”,这一切仍然有意义。

本课程完全免费(现在已经完成,因此您不能积极参加,但仍然可以观看我假设的讲座),由斯坦福大学教授教授。

评论


$ \ begingroup $
它仍然活跃。您仍然会获得完成课程的证书。您仍然可以积极参与并在论坛上回答您的问题。
$ \ endgroup $
–那雷什
2012-12-14 9:51

#3 楼

进行视觉跟踪时,需要一个模型,该模型是现实过程的数学表示。该模型将使从测量中获得的任何数据有意义,将连接我们输入的数字和从系统中取出的数字。

但是模型是现实的简化,因为您将使用减少的数字参数。您对系统不了解的东西称为噪声或不确定性。它与您所知道的一样重要。由于我们无法完美地描述一个系统,因此我们需要对现实世界进行测量,以告诉我们正在建模的系统正在发生什么。

卡尔曼(Kalman)是一种工具,用于通过加权相结合的方式将我们的估计值与模型,以及我们从世界上测得的值进行组合。

您将计算出一个陈述每一步。这就是您目前对系统所了解的。状态受过程方程式和测量方程式的影响。这两个方程具有不同的噪声协方差。卡尔曼将通过调整卡尔曼增益来决定哪一个步骤的影响力都更大。

当我不想深入公式时,这就是我的思考方式。

#4 楼

卡尔曼滤波器递归提供对AWGN干扰的信号的最佳线性估计。在您的情况下,状态(您要估算的状态)将由目标位置给出。测量值将由您的算法确定。

如果您已阅读Wikipedia文章,则可能希望通过视觉跟踪查看此演示文稿。你有书吗?