多车跟踪:谁是谁

多车跟踪:谁是谁

第 2 步只跟 1 辆车。现在前面有 3 辆,雷达每 0.1 秒给一堆框:框上没写是谁,顺序还每帧打乱。跟踪器每帧做三件事:① 猜(每条轨迹各自 predict)② 配对(距离表 + 匈牙利算法)③ 管编号(配上的合一下,没配上的先留着,没人认领的发新编号)。

⓪ 5 秒全程:雷达看到的 vs 跟踪器认出来的

① 一帧慢放:1.9 秒那一帧,三件事

真车(跟踪器看不到,画给你对照)轨迹猜的位置(一条轨迹一个圈)雷达这一帧的框合完的位置


    

② 被挡住了:轨迹留不留?

先回答聊天里那道小检查(马上删,还是先留几帧),再往下点。

没配上的轨迹最多留:

③ 多出一个框:误检变成“鬼影”

④ 一页总结

每一帧做什么用到什么
① 猜每条轨迹各自 predict 0.1 秒第 2 步的 KalmanCV,x、y 各一个
② 配对距离表(几条轨迹 × 几个框)→ 匈牙利算法一行一列只挑一个、总距离最小 → 超过门槛 2 米的不算scipy 的 linear_sum_assignment
③ 管编号配上的:update,misses 清零
没配上的轨迹:misses + 1,超过 10 才删
没人认领的框:新轨迹,发新编号
编号只增不减,删掉的号不再用
旋钮太小太大
门槛(这里 2 米)车稍微跑偏一点就配不上,被当成新车,编号乱换旁边车道的车(这里隔 3.5 米)也能来抢,配错人
最多留几帧(这里 10)挡一下就删,回来换了编号(②)误检的“鬼影”留得久(③)

和 A5 第 4 步“框认领真东西”是同一个套路:距离表、一对一、门槛。区别是 A5 拿检测框去对真值(评测),这里拿这一帧的框去对上一帧猜的位置(跟踪器自己)。A5 用“先配全场最近的一对”,这里用匈牙利(总距离最小);这个场景每一帧两种配法结果都一样,车挨得很近时才会不同。

数字来自 sim/fake_traffic.py 的场景(3 辆车、测距误差 0.2 米、2.0–2.4 秒右车道那辆被挡住、3.5 秒护栏误检一次)加一个参考跟踪器。第 3 步你自己写同样的逻辑,跑出来应该是同一组数。