来自系列:了解传感器融合和跟踪
布莱恩道格拉斯
该视频描述了如何通过使用交互多模型滤波器来改进通过估计状态来改进单个对象。我们将建立一些关于IMM滤波器的直觉,并显示比单个型号Kalman滤波器更好的跟踪算法。
我们涵盖了跟踪比定位和定位更难的问题,因为跟踪过滤器可用的信息较少。我们解释了IMM如何弥补缺乏信息,并显示一些模拟结果。
在这个视频中,我们将把我们的注意力从估计我们自己系统的状态转移到估计一个远程物体的状态。所以我们从定位和定位的概念转换到单目标跟踪。弄清楚另一个物体在哪里和弄清楚你在哪里并没有什么不同。我们只是试图通过融合传感器和模型的结果来确定状态,比如位置或速度。让追踪变得更加困难的部分是,我们通常在信息较少的情况下进行追踪。但为了解决一些信息的缺乏我们可以升级一个单一的模型估计滤波器,就像我们在上个视频中使用的标准卡尔曼滤波器,升级为一个交互的多模型滤波器。在这个视频中,我们将建立一些关于IMM的直觉通过展示它如何在跟踪一个不确定物体时实现状态估计。如果您以前没有听说过IMM,我希望您能继续使用,因为我认为这是解决跟踪问题的一个非常棒的方法。我是Brian,欢迎来到MATLAB技术讲座。
在整个视频中,我将显示一些模拟结果,以便在我们建立IMM滤波器时,您可以看到改变如何影响估计的质量。我使用该示例生成了结果,跟踪来自MathWorks的传感器融合和跟踪工具箱随附的机动目标。基本思想是,该示例模拟跟踪通过三个不同的操纵器的对象:它在开始时处于恒定速度,然后是常量转弯,并且它以持续加速度的对象结束。在脚本中,我们可以设置不同的单个和多个模型过滤器以跟踪此对象。
并让你一瞥我们正在努力的东西,我会告诉你最终结果。左侧是典型的单模滤波器的结果,右侧是交互多模型滤波器的结果。底图显示了对象的真实位置和估计位置之间的归一化距离。正如您所看到的,imm会更好地跟踪此机动对象;所有三种机动的归一化距离远低于单一模型解决方案。所以问题是为什么?是什么让imm如此特别?要回答这个问题,我们需要一点背景信息。
估计过滤器,如Kalman滤波器,通过预测系统的未来状态,然后用测量纠正该状态的工作。所以我们预测,然后我们测量和纠正。为了预测,我们必须给过滤器的系统模型,它可以用来估计系统在未来某个时间的地方。然后,在该未来时间,使用一个或多个传感器进行系统状态的测量。并且我们使用测量状态基于对其的相对置信度和预测来校正预测状态。这种混合结果是过滤器的输出。
这个两步的过程,预测和正确,无论我们是在估计我们自己系统的状态还是在估计我们正在跟踪的远程对象的状态,都是一样的。然而,对于跟踪的对象,其中一个步骤并不像另一个步骤那么简单。
让我们从测量步骤中的差异开始。在最后一个视频中,我们使用了GPS和IMU来测量状态。这些是嵌入系统内的传感器,我们可以访问。通过跟踪,我们经常无法访问系统内的传感器,因此测量需要来自像雷达跟踪站或相机视觉系统的远程传感器。但您使用的确切传感器集不会改变测量步骤的性质。这个想法是,我们希望通过组合各自的优势来融合在一起相互补充的传感器,以便您获得良好的整体测量。因此,您可以想象只要您拥有远程或本地 - 然后测量系统的正确组合,您可以控制的系统的状态几乎与测量远程对象的状态完全相同。然而,存在至少一个主要区别,这是假阳性结果的想法。你得到一个测量,但它不是你跟踪的对象;它是附近的其他一些物体。 This gets into a data association problem that we’ll talk more about in the next video. For now, assume that we know that we are measuring the object we’re tracking and there’s no confusion there.
那么预测步骤怎么样?好吧,这就是差异谎言的地方。预测您没有控制超过的对象的未来状态更难,它是你所做的一个。
让我们用一个例子来演示这个预测问题。想象一架飞机飞过一个每隔几秒钟更新一次的雷达站,你想预测下一个探测到它的位置。假设你是这里的过滤器。你猜猜看?大概就在这里,对吧?在此之前是一致的,所以它会沿着这个轨迹继续。现在,如果最后几个测量结果是这样的呢?你可能会假设飞机现在正在转弯,你会对持续这个趋势的预测更有信心。那么我们如何将这种直觉编码到过滤器中呢?
好吧,考虑一下:动议来自三件事。首先是携带当前状态的系统的动态和运动学,因此飞机已经具有一些速度,因此它将基于穿过空气的平面的物理来以相当可预测的方式向前移动。二,运动也来自命令和已知的输入到系统中添加或消除能量并改变状态;这将是调整发动机或控制表面的东西。如果导频将控制轮旋转到右侧,则您将正确地假设飞机的状态也移动到右侧,并且,三个,动作来自输入到未知或随机的输入,像风阵风和空气密度变化的东西。所以这些是预测未来状态时需要考虑的三件事。
那么估计过滤器是如何做到的呢?我们用数学模型的形式让过滤器接触到动力学。如果这是一个你可以控制的系统,那么过滤器也可以访问控制输入。也就是说,你可以告诉过滤器,当你命令系统,它可以播放这些命令通过模型,以更好的预测。现在,系统中的未知输入,以及模型中的不确定性,从定义上讲是无法被知道的,因此它们只能降低预测。我们考虑这种退化与滤波过程噪声。过程噪声越高,你对预测的不确定性就越大。
如果你飞行的飞机,你知道你没有命令调整飞机,无法控制输入,然后你可以预期合理确定飞机将保持目前的速度和方向,所以红色的X的预测可能是相当接近。
但如果你不是在驾驶飞机,而是远程跟踪它呢?在这种情况下,我们如何解释控制输入?这取决于我们讨论的是合作跟踪还是非合作跟踪。合作对象与跟踪滤波器共享信息。所以飞机会分享它发送给引擎和控制表面的命令,因此跟踪一个合作的物体就像自己驾驶它一样。
然而,不合作的对象不会共享它们的控制输入,因此我们必须将它们视为额外的未知干扰。
让我们重新审视我们对飞机的预测,但这一次是不合作的。现在,我们如何处理这个?好吧,当我们早先做出预测的时候,我们假设飞机从事的任何动作都是持续到未来的最有可能的动作。当然,飞行员可能会改变课程,但至少在短时间内,可能会保持相同的运动。因此,我们给过滤器的模型应该考虑我们期待的动作。如果我们认为飞机直接行驶,该模型应该预测向前的状态。如果我们认为飞机正在转动,则该模型应该预测旋转一个方向或另一个方向的状态。选择合适的单一模型是一项预测决定,我们会说。
让我们回到Matlab示例,看看这个单一模型过滤器如何使用机动对象。该滤波器使用的模型是恒定的速度模型,因此在假设对象以固定速度前进的假设下预测未来状态。如果我们查看归一化距离,您可以看到当物体以恒定速度移动时,它可以看到它的工作很大,但可能约为5个错误左右,但在恒定转弯部分期间误差会显着增加。我甚至不知道它有多糟糕;它离图表。它在恒定加速度部分期间大约30个错误。因此,通过单一模型,如果对象实际执行该运动,则我们的预测很大,但如果模型与现实不匹配,则会崩溃。
然而,我们可能会说,我们太相信自己的预测了。我们增加了系统中未知数的数量,因此对我们的预测的信心就会降低。飞机可以转弯、减速或加速。我们只是不知道。所以我们应该通过在滤波器中增加过程噪声来解决这个问题。对预测的信任越少,对修正测量的信任就越多。这是有道理的。如果我们很难预测飞机的位置,为什么不直接相信雷达测量结果而忽略大部分无用的预测呢?让我们回到MATLAB仿真看看这个想法是如何实现的。
在这次运行中,我保留了恒定速度模型,但增加了过程噪声,你可以清楚地看到差异。当物体转动时,误差现在是30个单位左右,加速度部分也得到了改善。但这是有代价的:匀速部分,也就是我们最初建立模型的部分,变得更糟了。
这部分变得更糟,因为我们更多地依赖噪声测量。所以如果我们不能相信预测而我们主要依赖传感器测量,那么这个估计滤波器有什么用呢?整个要点是使用预测来解释一些测量噪声,降低整体的不确定性。
好吧,这是我们留下的问题。我们如何估计机动对象的状态,而不是单独的传感器能够测量的更好?
答案是:运行多个模型。基本上,我们可以把它想象成运行几个同时进行的估计滤波器,每个滤波器都有不同的预测模型和处理噪声。这个想法是为你希望被跟踪的物体进行的每一种运动都有一个模型。你知道,物体以恒定的速度运动,或恒定的加速度或恒定的转弯,等等。只要能涵盖所有可能的运动就行。
每个模型都能预测物体在遵循特定运动时的位置。然后,当我们得到一个测量值时,将它与每一个预测进行比较。由此,我们可以断言哪个模型最有可能代表真实的运动,我们可以在下一个预测周期中更相信那个模型。这就像人类做预测一样。如果飞机看起来是直线飞行,假设它会一直直线飞行。如果你看到它开始转向,假设这个转向将持续一段时间。用这种方法,当物体过渡到一个新的运动时,会有一些瞬态误差,但滤波器会很快意识到一个新的模型有更好的预测,并开始增加它的可能性。
这是多模型算法背后的一般想法,但仍然还有一个步骤来交互多模型。
我们将使用当前设置过滤器的问题是每个人都是自己运行的,从其他方面孤立。这意味着对于一个不代表真实运动的模型,它将保持其自身对系统状态和州协方差的估计。然后,当物体改变运动时,并且存在转换到该模型,凭借其不良状态估计和协方差,过滤器将花一些时间再融合。因此,通过这种方式,每次过渡到新运动时,瞬态时段都会比滤波器试图赶上所需的时间。
因此解决此问题,我们允许模型进行交互。测量后,整个过滤器基于最可能模型的混合获取更新状态和状态协方差。此时,根据其“切换到”或“与”彼此混合的概率,每个过滤器重新初始化状态和协方差。这是不断改进每个单独的过滤器,以减少其自身的残差错误,即使它不代表对象的真实运动。以这种方式,IMM滤波器可以切换到各个模型,而无需等待它首先会聚。
现在我们终于能理解IMM的结果了我在视频开始时给你们看的。这个IMM是由三个模型建立的:匀速、转弯和加速度,以匹配这个物体的三个预期运动。左边是我们讨论过的不同模型的归一化距离或误差。这样你就可以同时看到这三种方法的结果。右上方显示了物体的机动轮廓,右下方有一个新图表显示了IMM中每个模型代表真实运动的可能性。彩色叠加只是为了给你一个物体当前运动的视觉参考。
让我们开始吧。查看IMM结果。你可以看到总的归一化距离对于所有三种机动来说都很低。另外,当物体正在做它所预测的运动时,每个模型的可能性是如何飙升的,并且运动之间的瞬态时间非常低。因此,只要物体不是不断地、快速地改变运动,那么这个瞬态误差就不会对估计的整体质量产生太大的影响。
因此,这就是我们在跟踪不合作对象时缺少控制输入信息的弥补。我们为每个预期运动构建一个模型,然后根据它们代表真实运动的可能性建立一个IMM以混合在一起。
现在在我结束这个视频之前,我要再次解决了一件事。您可能会试图刚刚使用一百万个模型,可以涵盖每种可能的运动场景的东西,对吧?好吧,这个问题是,对于你运行的每个模型,你必须支付价格。即,运行一堆预测的计算成本。如果它是一个高速实时跟踪情况,您可能只有毫秒才能运行完整过滤器。此外,还有必须突出所有这些过滤器并获得过程噪声右。让我们说计算速度不是问题;你只关心性能。好吧,即使那么有太多的模型也会伤害性能。对于一个,它增加了模型之间的转换次数,并且如果存在很多代表非常相似的动作的模型,则更难确定转换何时发生转换。 Both of these contribute to a less optimal estimation.
所以,不幸的是,您仍然必须以智能方式接近此过滤器,并尝试找到最小的模型,可以充分预测所谓的对象的可能运动。实际上,这往往少于10个型号,通常只有三到四个。
而且,要记住的其他事情是我刚刚解释的一切都只是跟踪一个对象的必要条件。当我们立即将其扩展到跟踪多个对象时,我们的问题甚至更难。这就是我们将在下一个视频中涵盖的内容。
所以,如果您不想错过未来的技术谈话视频,请不要忘记订阅此频道。此外,如果您想查看我的频道,控制系统讲座,我也涵盖了更多的控制主题。下次我会见到你。
您还可以从以下列表中选择一个网站:
选择中国网站(中文或英文)以获得最佳网站性能。其他MathWorks国家站点没有针对您所在位置的访问进行优化。