会上可能听到:“检测已经很准了,跟踪就是把框连起来。——那 ID 跳一次,下游会看到什么?”
它到底是什么意思
检测是单帧的,给位置、尺寸、朝向;跟踪是时序的,给 ID、速度和 yaw rate。它的两个老大难也在这里:ID 跳变,速度误差大。ID 一跳,下游会以为来了一辆新车。
经典做法是「先检测、后跟踪」,每帧把下图的循环转一圈。关联代价可以手写,也可以学:PnPNet 用网络给每一对「检测—轨迹」打分,再做匹配。
query 跟踪换了思路:同一个 query 跨帧传下去,它本身就代表这辆车,不再需要单独的数据关联和 NMS。MOTR、Sparse4D v3 属于这一路。
机制图解
- 01检测单帧出框:位置、尺寸、朝向
- 02预测已有轨迹按运动模型推到这一帧
- 03关联新框和预测位置做二分图匹配
- 04更新卡尔曼用匹配上的框修正位置和速度
- 05起止管理新框连续出现几帧才起轨;丢失的轨迹先撑几帧,超时才删
容易搞混的地方
常见误解
跟踪就是把相邻两帧的框连起来
正确理解
它还要估出单帧测不到的速度和 yaw rate,并在遮挡的几帧里把目标撑住
常见误解
帧间传 query 的时序方案都自带跟踪
正确理解
StreamPETR 的记忆队列不存 ID;要跨帧保持身份,得用 MOTR、Sparse4D v3 这类带跟踪能力的方案
看懂之后可以追问
- 目标被遮挡两三帧后,还能接回原来的 ID 吗?丢失的轨迹删得太早,目标重现就成了「新车」,速度要从头估;留得太久,又会把已经离开的目标一直往前推。
- 下游拿到的速度和 yaw rate 抖动有多大?预测直接吃这两个量。速度一抖,外推出来的线就跟着左右摆,规划会以为对方在变道。
沿着主线继续
先知道
- 多传感器融合——把几路传感器的长处拼进同一份场景表征:相机给语义,激光雷达给几何,毫米波雷达给速度。
- Query 与候选轨迹——query 是模型内部「带槽位的探针」,proposal 才是解码后拿出来比较的候选结果。
接着看
- 卡尔曼滤波与 IMM——卡尔曼滤波按运动模型「先推一步、再拿观测修正」,连同不确定性一起估;IMM 并行跑几个运动模型、按概率混合,能较快跟上已经开始的机动。
- 运动学模型——假设某个运动量不变,按物理外推:CV 保速度,CA 保加速度,CTRV / CTRA 再保转弯率;短时好用,一长都失准。
相关论文
- MOTR:基于 Transformer 的端到端多目标跟踪——track query 维持身份
- Sparse4D:稀疏时空融合的多视角 3D 检测——稀疏 query 换效率