← 术语图鉴

多目标跟踪

Multi-Object Tracking (MOT) · 也叫 跟踪 / Tracking

把逐帧的检测连成有身份的轨迹:同一辆车跨帧保持同一个 ID,并估出单帧给不了的速度和横摆角速度。

会上可能听到:“检测已经很准了,跟踪就是把框连起来。——那 ID 跳一次,下游会看到什么?”

它到底是什么意思

检测是单帧的,给位置、尺寸、朝向;跟踪是时序的,给 ID、速度和 yaw rate。它的两个老大难也在这里:ID 跳变,速度误差大。ID 一跳,下游会以为来了一辆新车。

经典做法是「先检测、后跟踪」,每帧把下图的循环转一圈。关联代价可以手写,也可以学:PnPNet 用网络给每一对「检测—轨迹」打分,再做匹配。

query 跟踪换了思路:同一个 query 跨帧传下去,它本身就代表这辆车,不再需要单独的数据关联和 NMS。MOTR、Sparse4D v3 属于这一路。

机制图解

  1. 01检测单帧出框:位置、尺寸、朝向
  2. 02预测已有轨迹按运动模型推到这一帧
  3. 03关联新框和预测位置做二分图匹配
  4. 04更新卡尔曼用匹配上的框修正位置和速度
  5. 05起止管理新框连续出现几帧才起轨;丢失的轨迹先撑几帧,超时才删
速度和 yaw rate 就在这个循环里估出来。跟踪的价值在遮挡丢失的那几帧:撑得住,ID 就接得上。

容易搞混的地方

常见误解

跟踪就是把相邻两帧的框连起来

正确理解

它还要估出单帧测不到的速度和 yaw rate,并在遮挡的几帧里把目标撑住

常见误解

帧间传 query 的时序方案都自带跟踪

正确理解

StreamPETR 的记忆队列不存 ID;要跨帧保持身份,得用 MOTR、Sparse4D v3 这类带跟踪能力的方案

看懂之后可以追问

  1. 目标被遮挡两三帧后,还能接回原来的 ID 吗?丢失的轨迹删得太早,目标重现就成了「新车」,速度要从头估;留得太久,又会把已经离开的目标一直往前推。
  2. 下游拿到的速度和 yaw rate 抖动有多大?预测直接吃这两个量。速度一抖,外推出来的线就跟着左右摆,规划会以为对方在变道。

先知道

  • 多传感器融合——把几路传感器的长处拼进同一份场景表征:相机给语义,激光雷达给几何,毫米波雷达给速度。
  • Query 与候选轨迹——query 是模型内部「带槽位的探针」,proposal 才是解码后拿出来比较的候选结果。

接着看

  • 卡尔曼滤波与 IMM——卡尔曼滤波按运动模型「先推一步、再拿观测修正」,连同不确定性一起估;IMM 并行跑几个运动模型、按概率混合,能较快跟上已经开始的机动。
  • 运动学模型——假设某个运动量不变,按物理外推:CV 保速度,CA 保加速度,CTRV / CTRA 再保转弯率;短时好用,一长都失准。

相关论文