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

时间:2016-05-15 19:16:12

标签: python c++ future prediction kalman-filter

假设每个物体(汽车,自行车等)都连接到互联网并向我(云)提供其当前位置和随机ID,每隔“T”秒更改一次。由于物体改变了它们的身份,因此很难跟踪每个物体,特别是在像市中心这样繁忙的地区。有人可以帮助我设计一个可以预测对象轨迹的攻击者模型。这意味着云必须预测下一个对象的方向,比如15分钟。

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

我通过卡尔曼滤波器进行了研究。在我的情况下,我只知道随机ID和位置。因此,第一步可以从2个连续的位置点猜测每个物体的速度,然后形成速度矢量和位置矢量。然后将位置矢量和速度矢量应用于卡尔曼滤波器。以某种方式在接下来的15分钟内预测物体的位置。 Ofcouse,不一定是区域附近可能是准确的。

卡尔曼过滤器是正确的选择吗?如果是这样,任何python或c ++实现可以帮助吗?是否有任何其他概念可以帮助预测用户位置?有没有可以帮助模拟这些网络的模拟器?有人可以帮助设计这个攻击者模型吗?非常感谢。

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

MainGoal: 如果我能找到区域A(比如12:00Pm)和区域B(比如12:15)看到的对象的有效可链接性。这意味着我需要预测用户(大多数对象)所在的区域B.正试图搬家。有时候它可能是假阳性。由于主要目标是保护用户隐私,因此误报可以帮助用户。

2 个答案:

答案 0 :(得分:3)

  

kalman过滤器是正确的选择吗?

  • 在未来预测位置取决于车辆是否转弯的情况下,卡尔曼滤波器无效。 Markov model可能会更好地适用于这些情况。

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

  • Unscented Kalman filter可以帮助弥补非高音噪音,但它也有限制。

  

如果有的话,任何python或c ++实现都可以提供帮助吗?

pykalman package将是一个很好的起点。

答案 1 :(得分:1)

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

关于这些问题有很多工作(有关信息,请参阅http://www.probabilistic-robotics.org/)。

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

  1. 保留一张表&#34;对象&#34;它将包含对象(即汽车)的所有历史信息。这将存储您认为该对象用于报告其位置的(随机ID,位置)对的历史列表。
  2. 您收到的每项测量都是(随机ID,位置,时间)。确定它属于哪个对象。怎么决定?首先,如果random-id与前一个完全匹配,并且该id已经使用了不到15分钟,那么您可以准确地分配它。否则,您需要处理对象的随机ID现在已更改的情况。一个明显的算法是将其与最后测量位置最接近的对象匹配。通常,您的运动模型(例如卡尔曼滤波器)将确定如何进行此对应分配。有时您必须确定测量实际上是一个 new 对象,该对象无处不在,或者从地图的边缘出现。
  3. 当您在区域B中收到测量并将其分配给对象时,现在检查该对象的过去测量是否在区域A中。这将告知您是否有物体从区域A移动到区域乙
  4. 我所描述的实质上是一种在线跟踪算法,具有对应的MAP估计和可插拔运动模型。该算法将持续维护一个&#34;跟踪列表&#34;每个独特的对象。