从系列:理解传感器融合和跟踪
布莱恩道格拉斯
该视频描述了在跟踪多个对象时出现的两个常见问题:数据关联和跟踪维护。我们涵盖了一些方法来解决这些问题,并提供一种方法来接近所有多目标跟踪问题。
我们将介绍数据关联算法,如全球最近邻(GNN)和联合概率数据关联(JPDA),并查看删除和创建轨道的标准。我们谈论门控观察,这样我们就不会浪费计算资源。在视频的最后,我们展示了GNN和JPDA算法在两个物体上操作的一个例子。
在这个视频中,我们将把我们所学到的关于跟踪单个对象的知识扩展到同时跟踪多个对象。乍一看,这个问题似乎并不比追踪单个物体难多少。例如,我们能不能把跟踪算法像上个视频中的IMM一样应用到每个对象上,然后就完成了?根据我问这个问题的方式,你可能会认为答案是否定的。至少,对于多目标跟踪我们还需要考虑一些额外的东西这就是我们在这个视频中要讲的。所以我希望你能留下来。我是Brian,欢迎来到MATLAB技术讲座。
现在,我要强调一个大概的大纲,这样你们就会知道这些问题是如何解决的,但我绝不希望你们认为只有一种方法或一种算法可以解决问题。每个问题都是不同的,因为他们有不同数量的对象,或者你可以访问不同的测量数据和信息,或不同的期望如何彼此亲密的对象,你会有不同的计算资源可以使用,或不同的需求准确的需要,等等。在某种程度上,找出解决特定问题的方法更像是一门艺术,而不是一门硬科学。我希望你们从这个视频中学到的是理解在选择或开发自己的多目标跟踪算法时应该注意的类型而不是如何解决具体问题。好了,免责声明说得够多了。让我们开始吧。
首先,让我们谈谈什么让多目标跟踪困难,然后我们将圈回来谈谈我们如何解决这些问题。
我们将面临的所有问题都源于我们的不确定性。这是观察或探测物体时的不确定性以及我们对物体运行路径的预测时的不确定性。记得上个视频中估计滤波器就像卡尔曼滤波器一样它的工作原理是将不确定的测量和不确定的预测混合在一起。我们用雷达站追踪一架飞机。我们预测了飞机未来的位置,然后用雷达测量数据进行了校正。但不是一个单一的物体,我们有很多物体,每一个都有自己不确定的预测,我们需要用相应的不确定的测量来纠正。
现在,我们来看看第一个问题。我们不想用对另一个物体的测量来纠正对一个物体的预测。但如果探测到的物体没有识别信息,比如飞机尾号或其他独特的信号,我们怎么知道探测到的是哪个物体呢?例如,如果我们跟踪的所有飞机都有相似的雷达截面,而这是我们能获得的所有信息,我们如何将任意的ping信号与合适的跟踪目标匹配起来?
如果所有的对象都是稀疏分布的,而且观测结果相对可靠,那么这并不是一个太大的问题。声称观察到的是最接近的物体,这很简单。在这种情况下,我们只需将测量值分配给最近的对象,并像跟踪单个对象时那样运行估计过滤器。
然而,棘手的部分是,当物体彼此足够接近,或者我们的不确定性足够大,可以测量不止一个物体时。现在我们要做一些计算。这就是数据关联问题。我们必须把探测结果和正确的物体联系起来。
好的,这就是一个问题。我们需要考虑的另一件事是被跟踪的对象数不是修复的。有时,需要根据我们观察到的内容创建或删除曲目。当飞机飞到雷达范围时,我们可以添加一个新曲目,并且类似地,我们可以在一个脱离时删除轨道。现在,这种创建和删除并不沿着传感器的FOV边缘发生。我们可能必须在任何地方创建和删除曲目。例如,飞机可以在雷达范围内落地或起飞。或者,作为另一个例子,如果一个自驾驶汽车在繁忙的街道上驱动行人时,它必须意识到新的人并在汽车前面观察时追踪他们的行走方向,而不是更长时间必须关心它已经通过的行人。
我们需要考虑创建和删除对象轨道的标准。一个基本的方法是,当检测到与现有对象不匹配时添加一个轨道,如果现有对象没有检测到则删除一个轨道。更复杂的是,有时传感器的测量结果是假阳性的。它们能探测到一些并不存在的东西。有时,传感器会连续失败几次,无法探测到实际存在的物体。所以我们在这里需要小心,这样我们就不会过早地创建轨道,这会扰乱我们对实际情况的看法,我们也不会过早地删除轨道,这会从一开始就降低跟踪的有效性。这就是轨道维护问题。
这就是我们将在此视频的其余部分覆盖的内容。跟踪多个对象时,我们可以接近数据关联的某种方式以及我们可以解决轨道维护的方式?
这让我们回到了我在这个视频开始时简要展示的流程图。虽然您的特定方法可能不会导致功能的功能结构,但它可以完全看出,它将为我提供一种方便的方式,让我谈论每个部分。让我们走过它。
并开始观察。对象的观察可以包含测量的量,如范围,范围率或视线。这些是代表物体的运动学性质的数量。但是观察也可以包含目标类型,ID号和对象形状等测量属性。这就是当我说你可能会获得飞机的尾部或其他识别信息时,我在临时的暗示。获取尾部数字对于数据关联非常明确,但其他类型的属性可能仍然需要一些解释。例如,您可能会收集微多普勒雷达波动,并且从能够确定您跟踪的飞机类型。观察中的不确定性取决于两个物体之间的分离程度。由于旋转螺旋桨大,直升机可能看起来与喷气式飞机完全不同,而鸟类和Quadcopter可能具有相似的多普勒签名。
观察的其他需要考虑的事情是,如果跟踪对象是点目标,则观察将包含在大多数一个检测。所以我们必须将一个检测与一个对象相关联。但是,如果目标对象很大并且传感器具有足够的分辨率,例如使用LIDAR,则每个目标可能有多于一个检测,并且在确定我们将如何处理相关此数据时需要考虑这一点。此外,如果传感器的分辨率低,则可能在单个检测中可能存在两个对象。在这种情况下,已经观察到这两个对象,因此我们不想停止跟踪它们中的任何一个,但它们仅显示单个检测。我们的轨道删除算法必须处理这些情况。
在这个视频中,我们只会讨论这样的情况每个跟踪的对象都有一个检测,而这是在分配步骤中处理的,也就是下一个。
分配是一个将观察结果与跟踪对象匹配的过程,或者如果你喜欢简洁的话,将它与跟踪对象匹配。最简单的分配算法可能是GNN,即全局最近邻。这只是给最近的观测分配一个轨迹。但有趣的是它不一定是最接近的欧氏距离或几何距离,而是最接近的概率距离,比如马氏距离。这是为什么。
通过概率分布,与我们的预测和我们的测量一样,最低的欧几里德距离并不总是表示预测和测量是最合适的。这是因为我们对我们的预测和测量方向具有更低标准偏差的方向具有更多的信心。例如,在这个简单的图像中,我们对两个不同对象的位置的预测和它们之间的单个检测。如果我们使用欧几里德距离,我们假设检测是对象2,因为它更近。但是,如果我们看一下这两个预测的概率分布,那么我们可以看到它更可能是对象1.这是Mahalanobis距离为我们所做的。它是标准偏差标准化的距离。
现在,GNN适用于稀疏分布的物体,但对于杂乱的对象,其他分配算法,如JPDA或联合概率数据关联算法将更好。JPDA不会在一个观察和一条轨道之间进行硬分配。相反,它使得加权组合所有相邻观察,更近于加权高于另外的观察。这是对GNN的改进,因为如果有两个可能是对象的观察,则JPDA不会完全承诺,可能是错误的。因此,如果跟踪对象彼此聚集,并且观察结果也在它们附近群集,这种算法可以通过将其中一些混合在一起而不是在错误和正确的检测之间跳跃来处理。
还有更多的分配算法,你可以根据你的跟踪情况创建自己的分配算法。但底线是,你试图弄清楚如何将观察结果与轨迹联系起来。
并非所有观察结果都被分配,而不是所有曲目都有观察结果。这是轨道维护的方式,以删除和创建曲目的形式。但正如我之前所说的那样,我们必须小心,所以我们没有过早做任何事情。让我们从一种方法开始以保守方式删除曲目。一旦我们错过了单一观察,我们就可以立即删除轨道在最后的R更新期间,我们只能删除轨道删除轨道尚未分配给检测到检测到检测。在这种情况下,P和R是您可以调整您情况的参数。因此,如果您在最后六个更新中尚未检测到至少四次,则可能会说删除曲目。
现在,创建一个曲目是有点棘手的,因为你不知道单个未分配的观察是否是一个新对象,但你仍然必须注意它,所以如果它值得跟踪,你可以弄清楚随着时间的推移。处理这一点的一种方法是创建一个暂定的曲目 - 你维护和假装就像它是一个真正的对象,但你实际上并不相信是一个真实的对象。你只是在背景中保持该轨道。一旦在最后一个更新中检测到初步轨道M次,那么您将轨道移动到确认,这意味着您认为这是一个真实对象。您可以删除具有与删除确认轨道相同逻辑的暂定曲目。因此,通过这种方式,您可能需要几十个初步曲目,您可以在误报测量后维持,但在它们确认之前被删除。
使用所创建和删除的曲目以及分配的观察,我们可以运行一组估计过滤器。此部分与单个对象跟踪相同,在那里我们有类似于交互多模型过滤器或单一型号卡尔曼滤波器的选择。分配观察的每个跟踪对象的预测状态(暂定和确认对象)以各自的观察更新,然后整个过程重新开始。我们获得更多的观察,它们被分配给跟踪,创建和删除曲目,并且筛选器再次运行。
然而,如果只看每一个观测结果,并考虑它被分配到每一个轨道上的可能性,这在计算上是愚蠢的。因此,我们可以选择忽略每个轨迹在定义区域之外的观测值。这被称为门控,它是一种筛选机制,决定哪些检测是有效的候选者,以寻找分配,哪些应该完全忽略。例如,在JPDA中,一个距离跟踪对象很远的观测在统计上对整体解决方案的贡献很小,那么为什么要花费计算资源来计算这个极小的量呢?特别是如果你要跟踪几十个或数百个对象,这可能是非常浪费的。通过忽略特定区域之外的观察,在这扇门之外,我们可以加快分配过程。
因此,Gating影响了分配算法,以便他们只考虑值得关注的观察。好吧,这是我要离开这个视频的地方,但在我结束之前,我想快速向你展示Matlab的一个例子,它显示两个不同的多目标跟踪算法的结果。
在该示例中,有两个对象彼此独立地移动,我们通过跟踪雷达观察它们。黑色三角形是物体的真实位置,圆圈是用雷达站检测到的。请注意,当两个对象彼此接近时,检测重叠,并且难以告诉对象在该歧义区域中的位置。因此,这是我们必须使用的数据,因此让我们尝试算法,看看它们是如何做的。
对于第一个,我正在使用全局最近的邻居进行数据关联,并且由于这些对象正在操纵,因此可以为估计过滤器进行IMM。请注意,当物体彼此远离时,很明显哪个对象和检测到一起,而GNN算法则非常好。对象1被分配给跟踪1,并且对象2分配给跟踪2.这是GNN良好的,当它们稀疏时与跟踪对象匹配数据。但是当物体彼此靠近时,它就不好了。您可以看到一条轨道被删除,稍后增加了一些检测,因此该算法对其中一点有多少个对象感到困惑。事实上,它从轨道编号2跳跃到跟踪第8号,这意味着在确认第六个作为轨道8之前,有五个其他初步曲目它在保持前。
让我们将分配算法升级到联合概率数据关联算法,看看这是否会更好。
好吧,很有意思。两条轨道通过整个机动维持,但在歧义区域中,仍然比其他任何地方更多的错误。但是,这是预期的,因为该区域的数据重叠如此多。令人惊讶的是,这些算法可以从这样的情况下拉出任何东西。现在,在GNN上与JPDA有额外的复杂性,因此值得评估您的要求,而不是实现最准确和复杂的算法。如果对象总是远离彼此,那么我更喜欢简单的GNN方法,因为它在这些情况下工作正常,并且更容易解释和实施。
这就是我们在同时跟踪多个目标时需要考虑的问题和需要解决的问题。我想再次强调,没有一种方法可以完成这个任务。它完全取决于每个独特的情况。但希望通过这些概述,你能够更好地理解如何处理下一个多目标跟踪问题。
好吧,如果您不想错过下一个技术谈话视频,请不要忘记订阅此频道。此外,如果您想查看我的频道,控制系统讲座,我还涵盖了更多的控制理论主题。谢谢你的观点。下次我会见到你。
你也可以从以下列表中选择一个网站:
选择中国网站(以中文或英文)以获取最佳网站性能。其他MathWorks国家网站未优化您的位置。