我正在研究计算机视觉(跟踪行人)中多目标跟踪中的卡尔曼滤波器和粒子滤波器。阅读科学论文我遇到了很多句子,例如:
卡尔曼滤波器的线性和高斯假设无法管理复杂的场景。
现在..我想找到一些超出这些假设的真实示例。因为我真的不明白我应该在哪里使用卡尔曼滤波器。谁能给我一些例子?
真实视频(如 youtube 或类似视频)就是很好的例子。
我正在研究计算机视觉(跟踪行人)中多目标跟踪中的卡尔曼滤波器和粒子滤波器。阅读科学论文我遇到了很多句子,例如:
卡尔曼滤波器的线性和高斯假设无法管理复杂的场景。
现在..我想找到一些超出这些假设的真实示例。因为我真的不明白我应该在哪里使用卡尔曼滤波器。谁能给我一些例子?
真实视频(如 youtube 或类似视频)就是很好的例子。
好吧,让我们看两个问题:1)线性和2)高斯。
线性度
如果您使用单个相机对移动的 3D 对象(人)进行成像,那么您正在使用这些 3D 对象的 2D 投影。降维会导致出现非线性。
以 2D 到 1D 为例:一个物体在 2D 中做圆周运动。物体以恒定的速度和恒定的加速度运动。一切都很好而且线性。将该对象投影到一维曲面(一条线)上,速度和加速度现在是(共)正弦曲线。
卡尔曼滤波(好吧,通常呈现的那种)的基本假设之一是您正在建模的系统是线性的。当降维(3D2D) 涉及,这可能不是真的。
高斯性
当一个系统是线性的时,任何噪声往往是相加的。当高斯噪声被添加到高斯噪声(或者,对于足够多的样本,几乎任何分布的噪声被添加到几乎任何分布的噪声中),结果也是高斯的。
如果系统是非线性的,那么所涉及的操作会导致高斯噪声转换为潜在的非高斯噪声。
例如,如果您将一个高斯变量与另一个变量相除,则结果的分布为 Cauchy。
这有什么不好?不存在柯西随机变量的平均值。不存在柯西随机变量的方差。
卡尔曼滤波器是关于跟踪系统中变量的均值和方差。如果系统是非线性的,则可能不存在相关量的均值和方差,因此卡尔曼滤波器的应用是没有意义的。
除了彼得的回答之外,如果您有一个表现良好的非线性系统,即只是轻微非线性或至少没有不连续性,则仍然可以应用卡尔曼滤波器的特殊变体。
该滤波器使用一阶泰勒级数逼近在系统的当前状态下对系统进行线性化。然而,这对于强非线性系统来说是失败的。
扩展卡尔曼滤波器的问题是后验分布(如果系统中存在非线性)不再是高斯分布,并且不能仅通过均值和方差来准确描述。EKF 现在线性化了完全已知的非线性系统并引入了进一步的误差。
Unscented Kalman Filter (UKF) 使用了一种不同的方法,它的核心元素是 unscented 变换。在这里,构建了一个离散分布,该分布表现出当前卡尔曼滤波器状态的相同均值和方差。这种分布很容易用精确的非线性系统转换。然后计算得到的离散分布的均值和方差,并再次假设卡尔曼滤波器的其余部分源自高斯分布(因此,仍然存在不准确性)。
然而,如果你有一个具有不连续性的强非线性系统(想想一个导航算法,它的地图上有障碍物,允许区域和阻塞区域之间的过渡是不连续的),所有这些算法很可能都会失败。
在这里您可以使用粒子过滤器。每个粒子代表您状态空间中的一个点,并且通常与一个权重相关联,该权重代表该粒子有多少相信(尽管 PF 有很多不同的变体)。在预测步骤中,粒子会根据您的系统模型“移动”,只要您可以从分布中采样,它们可以是任意复杂的。因此,您实际上不是跟踪均值和方差,而是通过可能的实现或系统模型来移动粒子。这就是为什么需要这么多粒子才能很好地覆盖完整分布的原因。在更新步骤中,粒子的权重通过将其状态与测量值和其他信息(再次考虑机器人示例中的平面图)进行比较来更新,这些信息也可能是高度非线性的。最后,不太可能的粒子通常会被更可能的区域中的粒子擦除并替换。然后粒子代表您的后验分布。具有许多粒子的区域更有可能包含实际状态,而没有粒子的区域则极不可能。
看看这个室内/室外导航系统的视频:
它显示了卡尔曼滤波器和粒子滤波器的比较。只要用户在外面并且有 GPS 导航,两个系统的性能都差不多。然而,当用户进入建筑物内部并且 GPS 定位丢失时,卡尔曼滤波器失去了所有绝对参考,需要完全依赖 IMU。IMU 的测量误差最终会加起来,卡尔曼估计会慢慢偏离,最终甚至移到屏幕外。它不能使用平面图作为信息,因为这会导致高度非高斯分布,不能仅根据均值和方差有效地表示。另一方面,粒子过滤器在这种情况下没有问题,并且可以很好地跟踪位置。
当然,粒子过滤器也有缺点。从复杂分布中采样可能是一项昂贵的操作。由于可能性低,决定粒子的数量或何时消灭粒子通常并非易事。因此,通常需要进行相当多的调整。跟踪所有这些粒子需要大量内存,并且需要大量粒子,尤其是对于高维问题。最后,对于涉及高斯分布的线性系统,它们的性能不会更好,因为在这种情况下,卡尔曼滤波器是最佳的。