4. 感知层KPI - 目标跟踪:多目标跟踪准确度(MOTA)、多目标跟踪精度(MOTP)、ID切换次数、轨迹生命周期
好,我们进入感知层KPI的第二个核心模块——目标跟踪。
检测是“看见”,跟踪是“看懂”。
你想想看,如果一辆车只是每帧检测出障碍物,但不知道上一帧的这辆车和这一帧的这辆车是不是同一辆,那它根本没法做预测和规划。所以,跟踪的质量直接决定了整个ADAS系统的“智商”。
我个人习惯把跟踪KPI分成四个维度:准不准、稳不稳、乱不乱、久不久。正好对应我们今天要讲的四个指标:MOTA、MOTP、ID Switch、轨迹生命周期。
4.1 多目标跟踪准确度(MOTA)
MOTA,全称是Multiple Object Tracking Accuracy。说白了,它衡量的是你的跟踪系统有没有漏跟、有没有误跟、有没有跟错对象。
公式长这样:
MOTA = 1 - (FN + FP + IDSW) / GT
其中:
- FN:漏跟的目标数。该跟的没跟上。
- FP:虚跟的目标数。不该跟的瞎跟。
- IDSW:ID切换次数。跟到一半换人了。
- GT:真实目标总数。
MOTA的取值范围是(-∞, 1]。嗯,你没看错,可以是负数。如果系统乱报一通,FP和IDSW爆表,MOTA直接变负。我在项目中就见过一次,某个算法在密集场景下MOTA跑出-0.3,那基本等于没干活。
实际工程经验:
对于L2+级别的ADAS,MOTA一般要求大于0.7。L3以上,建议大于0.85。低于0.5的系统,基本没法用。
4.2 多目标跟踪精度(MOTP)
MOTA看的是“有没有跟到”,MOTP看的是“跟得有多准”。
MOTP衡量的是所有匹配上的目标,其预测位置和真实位置之间的平均重叠度或距离误差。
公式:
MOTP = (∑ d_i) / (∑ c_i)
d_i是第i个匹配目标的距离误差(比如IoU或中心点距离),c_i是匹配上的目标总数。
我举个例子你就明白了。假设前方有一辆静止的卡车,你的跟踪框一直跟着它。如果框的中心点偏移了2米,那MOTP就很差。如果框始终紧紧贴合车身,MOTP就高。
我记得有一次,客户反馈AEB系统在跟车时频繁误触发。查了半天,发现是MOTP太差——跟踪框抖动厉害,导致相对速度计算不准。后来把MOTP从0.65优化到0.85,问题就解决了。
避坑指南:
我曾经踩过一个坑:只关注MOTA,忽略了MOTP。结果MOTA很高,但跟踪框飘忽不定,下游的预测模块根本没法用。记住,MOTA和MOTP要一起看,缺一不可。
4.3 ID切换次数(ID Switch)
ID Switch,也叫ID跳变。这是我最头疼的指标之一。
什么叫ID切换?就是系统给同一个目标分配了不同的ID。比如一辆白色轿车从你左边超车,系统一开始叫它ID_003,过了两帧突然变成了ID_017。这就是一次ID Switch。
为什么头疼?因为ID切换对下游模块的影响是灾难性的。
- 预测模块:以为来了个新目标,重新初始化轨迹,导致预测延迟。
- 规划模块:以为旁边突然冒出一辆车,急刹车或急转向。
- 决策模块:无法判断目标的历史行为,比如“这辆车是不是一直在我的盲区”。
我个人的经验是:ID切换次数应该控制在每100帧不超过5次。对于高速公路场景,要求更严,最好每100帧不超过2次。
注意:
ID切换和遮挡是“死对头”。目标被遮挡后重新出现,很容易发生ID切换。我曾经在隧道场景里,因为光线突变,ID切换率飙升到30%。后来加了外观特征匹配和运动预测,才压下来。
4.4 轨迹生命周期
轨迹生命周期,听起来有点玄乎,其实很简单——就是一条跟踪轨迹从出生到死亡的完整过程。
它包含几个关键阶段:
- 初始化:新目标出现,系统给它分配一个新ID。
- 确认:连续几帧都匹配成功,轨迹进入稳定状态。
- 维持:持续跟踪,不断更新状态。
- 遮挡/丢失:目标暂时消失,轨迹进入“挂起”状态。
- 终止:目标彻底离开视野,轨迹被删除。
这里有个关键参数——最大丢失帧数。也就是目标消失后,系统还“惦记”它多久。
我建议:
- 高速公路场景:最大丢失帧数设为5-10帧(约0.2-0.4秒)。
- 城市道路场景:可以放宽到15-20帧(约0.6-0.8秒)。
- 行人场景:建议30帧以上,因为行人容易被遮挡。
为什么?你想想看,高速上如果丢失一帧就重新初始化,那ID切换会多到爆炸。但如果丢失太久还保留轨迹,又会导致轨迹“幽灵”一样飘在那里,影响决策。
实战建议:
我习惯在日志里记录每条轨迹的“生命日志”——什么时候出生、什么时候被遮挡、什么时候死亡。这样一旦出问题,可以快速回放定位。比如,如果发现某条轨迹生命周期特别短(不到1秒),那大概率是检测不稳定或者匹配逻辑有问题。
4.5 四个指标的关系
这四个指标不是孤立的。我画个简单的逻辑链给你看:
MOTA低 → 可能是ID切换太多 → ID切换多 → 轨迹生命周期短 → 系统不稳定
MOTP低 → 跟踪框不准 → 影响下游预测 → 间接导致ID切换
所以,优化的时候要系统性地看。不能只盯着一个指标猛调。
| 指标 | 含义 | 典型阈值(L2+) | 常见问题 |
|---|---|---|---|
| MOTA | 跟踪准确度 | > 0.7 | 漏跟、虚跟、ID切换 |
| MOTP | 跟踪精度 | > 0.75(IoU) | 框抖动、位置偏移 |
| ID Switch | ID跳变次数 | < 5次/100帧 | 遮挡、外观变化 |
| 轨迹生命周期 | 轨迹持续时间 | > 2秒(平均) | 频繁初始化、丢失 |
嗯,这一节的内容就到这。记住一句话:检测是基础,跟踪是灵魂。没有好的跟踪,你的ADAS系统就像个健忘症患者——刚看到的东西,下一秒就忘了。
下一节,我们会聊感知层的最后一个KPI——感知融合与鲁棒性。到时候见。