什么是 OSPA(2) 轨迹指标?
OSPA(2) 轨迹指标是一种有限航迹集合间的距离:它先用时间平均的 OSPA 派生距离比较单条航迹,再把该距离作为外层 OSPA Assignment 的基础成本。
快速了解
| 规范文档 | 官方规范 |
|---|
工作原理
先对航迹应用 OSPA,再对航迹集合应用 OSPA
一条航迹可以表示为其生命周期上的状态序列。内层距离在声明的时间域内平均截断状态差异,并把单侧存在视为 Singleton 与 Empty Set 的最大误差;得到的 Track Distance 再作为外层 OSPA 的 Base Metric,用于分配真值航迹集合与估计航迹集合。
OSPA(2) 原始论文提出该结构,是因为彼此独立的逐帧 Set Distance 无法描述完整航迹差异。下方 Go 示例展示两侧各两条航迹、Support Union 平均的 p = 1 情形;生产实现还必须处理外层基数不等与目标 Benchmark 的精确约定。
明确评测窗口与生命周期规则
一对航迹可以因空间误差、生命周期不重叠或两者共同产生差异。Cut-off 限制状态误差并设定单侧存在成本,Order 决定对较大误差的敏感程度;外层 OSPA 归一化则把结果变成逐航迹距离。
Window Length 会改变评测问题。短 Sliding Window 更重视近期关联质量;全序列窗口会惩罚长期 Fragmentation 与身份错配。必须声明是否在窗口边界截断航迹、如何表示 Gap、哪些时间戳进入内层平均,以及如何汇总序列结果。
区分航迹集合距离与身份 Benchmark 得分
近期轨迹指标研究把 OSPA(2) 归入 Track Set Metric,并强调时间对齐与虚假/漏失轨迹区间的重要性。这不意味着某个指标普遍最佳;应用后果决定哪些错误应占主要权重。
T-GOSPA 通过随时间变化的 Assignment 显式分解定位、漏失、虚警与切换成本;HOTA 在多个定位阈值上平衡 Detection 与 Association;IDF1 使用序列级 Identity Match。报告 OSPA(2) 时要公开参数与窗口规则,并单独提供误差分量、时延和校准证据。
主要特点
- 定义有限完整航迹集合之间的距离
- 在外层 OSPA 分配中使用时间平均航迹距离
- 惩罚定位误差与不重叠的航迹生命周期
- 能发现独立逐帧 OSPA 忽略的碎片化
- 依赖 Cut-off、Order、时间窗口与生命周期约定
- 在评测窗口内保持一个完整航迹分配
常见用途
- 比较输出完整 Trajectory 的多目标 Tracker
- 评测遮挡与重现过程中的长期连续性
- 发现逐帧位置准确但估计碎片化的情况
- 评估大规模带标签随机有限集 Tracker
- 研究评测窗口长度如何改变算法排序
示例
Loading code...常见问题
为什么这个指标叫 OSPA(2)?
它读作 OSPA-on-OSPA:先用 OSPA 派生距离跨时间比较单条航迹,再把该距离放进第二层 OSPA,在两个有限航迹集合间执行 Assignment。
OSPA(2) 与逐帧 OSPA 有什么区别?
逐帧 OSPA 在每个时间戳独立重分配当前状态,可能看不到身份互换;OSPA(2) 在窗口中比较完整航迹并保持外层分配,因此 Fragmentation 与时间错配会影响结果。
Window Length 会怎样影响 OSPA(2)?
短窗口强调近期位置与关联质量,长窗口或全序列窗口会暴露更长期的 Fragmentation 与身份错误。公平对比必须统一窗口边界、Gap 表示与聚合规则。
OSPA(2) 与 T-GOSPA 是同一个指标吗?
不是。OSPA(2) 对完整航迹 Base Distance 和航迹集合使用两层 OSPA;T-GOSPA 使用随时间变化的 Assignment 与显式 Switching Cost,并提供另一种定位、漏失、虚警和切换分解。
OSPA(2) 能替代 HOTA 或 IDF1 吗?
不能一概而论。OSPA(2) 是 Track Set 的度量空间结构,HOTA 按 Benchmark Matching Protocol 平衡检测和关联,IDF1 强调序列级身份一致性,应根据运行后果选择并组合报告。