Python 如何预测物体在不久的将来的位置?

Python 如何预测物体在不久的将来的位置?,python,c++,future,prediction,kalman-filter,Python,C++,Future,Prediction,Kalman Filter,假设每个对象(汽车、自行车等)都连接到互联网,并且只给我(云)它的当前位置和它的随机id,它每“T”秒改变一次。由于对象的id发生变化,因此很难跟踪每个对象,尤其是在市中心这样的繁忙区域。有人能帮我设计一个攻击者模型吗?它可以预测物体的轨迹。这意味着云必须预测下一个,比如15分钟内物体的方向 您可以假设4个区域A、B、C、D(每个区域的半径为5-10km)彼此接近。我如何(云)预测并说,这么多的汽车/自行车从A区移动到B区,或者我在A区和B区15分钟后看到的物体是相同的 我学习过卡尔曼滤波。就我

假设每个对象(汽车、自行车等)都连接到互联网,并且只给我(云)它的当前位置和它的随机id,它每“T”秒改变一次。由于对象的id发生变化,因此很难跟踪每个对象,尤其是在市中心这样的繁忙区域。有人能帮我设计一个攻击者模型吗?它可以预测物体的轨迹。这意味着云必须预测下一个,比如15分钟内物体的方向

您可以假设4个区域A、B、C、D(每个区域的半径为5-10km)彼此接近。我如何(云)预测并说,这么多的汽车/自行车从A区移动到B区,或者我在A区和B区15分钟后看到的物体是相同的

我学习过卡尔曼滤波。就我而言,我只知道随机Id和位置。所以第一步可以从两个连续的位置点猜出每个物体的速度,然后形成速度向量和位置向量。然后将位置矢量和速度矢量应用于卡尔曼滤波。不知何故,预测未来15分钟内物体的位置并不一定准确,至少可能是邻近区域

卡尔曼滤波器是正确的选择吗?如果有,那么Python或C++实现有什么帮助?有没有其他概念可以帮助预测用户位置?是否有任何模拟器可以帮助模拟这些网络?有人能帮忙设计这个模型吗?非常感谢

编辑1: 更改对象Id背后的主要思想是保护用户(对象位置)隐私。我的挑战是设计一个攻击者模型,在这里我可以证明即使你(对象)更改了你的Id,但我仍然可以根据你的速度和方向跟踪你。假设一辆汽车在高速公路上行驶。它是12:00的id(假设为1234)。12点15分,它的Id改为2345。因为没有人会以这样的速度朝同一个方向前进。攻击者可以说Id:2345和Id:1234来自同一对象。所以这是一个有效的链接。但如果同一物体在繁忙区域移动,比如市中心。我有很多组合,比如转弯、停车场(其中许多对象使用不同的Id报告相同的位置),很难说Id:2345来自同一个对象Id:1234

主要目标: 如果我能找到区域A(比如12:00Pm)和区域B(比如12:15)中看到的对象的有效链接性,这意味着我需要预测用户(大多数对象)试图移动的区域B。当然,有时可能是假阳性。由于主要目的是保护用户隐私,误报有助于用户

卡尔曼滤波器是正确的选择吗

  • 在未来预测位置取决于车辆是否转弯的情况下,卡尔曼滤波器没有帮助。A可能更适合这些情况

  • 在没有转弯的直道上,卡尔曼滤波器会做得更好。然而,卡尔曼滤波器假设噪声为高斯(正态)分布(只有当车辆没有周围交通时才可能是真的)

  • A可以帮助补偿非高斯噪声,但它也有限制

如果有任何Python或C++实现,可以帮助?< /P>


这将是一个很好的起点。

卡尔曼滤波器有助于对单个物体的运动进行建模。您的问题是,您无法确定哪些测量值(id、位置)源自哪个对象,因为它们可以更改id。这也使得这成为一个跟踪问题,您需要为每个对象估计它过去使用过的ID列表。这很重要的原因是,从区域A到区域B可能需要15分钟以上的时间,并且您从区域B接收到的所有随机ID与您从位于区域A的对象获得的ID不匹配

在这类问题上有很多工作要做(有关信息,请参阅)

我将尝试描述一个简单的解决方案,但这实际上是一个涉及大量历史工作的深刻主题。我在这里描述粒子过滤器的一种变体:

  • 保留一张“对象”表,其中包含对象(即汽车)的所有历史信息。这将存储您认为对象用于报告其位置的(随机id、位置)对的历史列表
  • 您收到的每个测量值都是(随机id、位置、时间)。决定它属于哪个对象。如何决定?首先,如果随机id与前一个完全匹配,并且该id已被使用不到15分钟,那么您可以精确地分配它。否则,您将需要处理对象的随机id现在已更改的情况。一个明显的算法是将其与最后测量位置最近的对象进行匹配。通常,您的运动模型(如卡尔曼滤波器)将确定如何执行此对应分配。有时,您必须确定测量值实际上是一个不知从何处或从地图边缘出现的新对象
  • 当您收到区域B中的测量值并将其分配给对象时,现在检查该对象过去的任何测量值是否在区域a中。这将告诉您是否存在对象从区域a移动到区域B的情况

  • 我所描述的基本上是一个在线跟踪算法,带有对应关系的地图估计,以及一个可插入的运动模型。该算法将持续维护每个唯一对象的“轨迹”列表

    如果你不介意的话,为什么你不能只估计一个马尔可夫链的转移矩阵,它包含你每个区域的状态呢。你能给我举个例子吗,如何为我的目的(移动对象)确定马尔可夫链的转移矩阵。谷歌搜索后,我得到了很多理论教程。我不明白,如何确定转移矩阵。比