【问题标题】:Question on tracking a moving ball using Kalman filter关于使用卡尔曼滤波器跟踪运动球的问题
【发布时间】:2011-06-10 10:44:01
【问题描述】:
我想学习使用卡尔曼滤波器跟踪移动的球。虽然有很多教程,但我仍然有一些问题。
如果我们能在视频序列的每一帧中提取球,我们就知道球的位置。那么,为什么我们还需要使用卡尔曼滤波器呢?卡尔曼滤波器在这里的作用是什么?
-
卡尔曼滤波器:x(k+1) = A.x(k) + B.u(k) + 噪声
y(k) = C.x(k) + noise
那么,我们如何定义 A、B、C 呢?假设我们要跟踪移动的球?
3 .如果我们知道先前状态 x(k-1) 和当前状态 y(k) 的测量值,我们可以计算估计状态。追踪移动球时的“测量”是什么?
【问题讨论】:
标签:
filter
tracking
computer-vision
kalman-filter
【解决方案1】:
基本上,您使用跟踪方法来跟踪场景中的球。您仍然需要在每个时间步中检测球。
(1)
假设您到达一个点,另一个球进入场景。所以你需要找到一种方法来识别每个球。让情况变得更糟,甚至让他们相互交叉或在路上设置障碍物,这可能会暂时隐藏球。
然后,您的跟踪方法(即卡尔曼滤波器)将根据球之前的移动方式继续在估计的轨迹上移动。
因此,如果您只想知道球在每一帧中的位置,则不需要跟踪方法,但如果您想识别并跟踪一个球,则需要一个跟踪器,即卡尔曼滤波器或多- 对象跟踪我更喜欢粒子过滤器 (http://en.wikipedia.org/wiki/Particle_Filter)。
(2)
现在无法帮助您,因为我现在对卡尔曼滤波器还不太了解。
但基本上 A 应该是从步骤 x(t-1) 到 x(t) 的转移矩阵,B 应该是参考模型。但正如我所说,如果你可能得到多个球,你可能想看看粒子过滤器。
(3)
测量值将是您在图像上测量的位置。基本上是你的球的中点。您将使用此测量来校正估计的路径。所以基本上你将球在当前时间步长(取决于它之前的运动)应该在的位置与它的实际位置进行比较。
希望对您有所帮助...如果没有,请继续询问...
【解决方案2】:
我会一一回答你的问题。
卡尔曼滤波器仅用于估计,意味着减少错误。当你只是跟踪单个目标时,比如一个球,如果你能确定球在每一帧图像中的位置,我认为没有必要使用卡尔曼滤波器。但是,在多目标跟踪中,如果需要在连续两帧中匹配同一个目标,使用卡尔曼滤波器可以减少错误。
关于卡尔曼滤波的原理,我不是很清楚。
我认为“测量”是对当前帧中移动目标的检测。检测到的参数包括目标的质心位置和轮廓大小。
这是我个人的看法。如有错误,望指正。