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