这篇文章介绍了两个综合性指标 MOTA 以及 MOTP 的计算过程,这两个指标有优劣势,但是作为综合性指标至今在学术界仍广泛应用。本文主要介绍其设计思想及计算过程。
一个理想的 MOT 算法,我们期望每一帧:
- 准确检测目标的数量;
- 准确估计每个目标的状态,如位置,朝向,速度等;
- 准确估计每个目标的轨迹,即目标的 ID 不变性;
这就要求评价准则:
- 能评估目标定位的精度;
- 能反映目标轨迹的追踪能力,即同一个目标产生唯一的 ID;
此外,为了提高评价准则的实用性:
- 参数尽可能少,阈值可调;
- 易于理解,表现方式符合人们的直觉;
- 有较强的通用性,能评估各种跟踪算法;
- 指标个数少,但是能足够反映算法不同维度的性能;
假设第 \(t\) 帧,有目标集 \(\{o_1,...,o_n\}\),跟踪算法的输出(hypotheses):\(\{h_1,...h_m\}\)。根据上述设计准则,设计评价计算过程:
- 构建 \(h_j\) 与 \(o_i\) 的最优匹配;
- 对于每个匹配对,计算位置估计误差;
- 累加所有匹配对的误差,包括:
- 计算漏检数(FN);
- 计算误检数(FP);
- 计算 ID swith 次数,包括两个邻近目标的 ID 交换,以及遮挡后,同一目标的 ID 跳变;
由此可得到两大指标:
- tracking precision,目标位置的估计精度;
- tracking accuracy,包括 misses(FN), FP, mismatches(IDs), failures to recover;
下面分两块做细节分析,匹配构建 (Establishing Correspondences) 与评价指标 (Metrics)。
1. 匹配构建
算法估计与目标真值的匹配,大致还是基于匹配最近 object-hypothesis 的思想,没匹配上的估计就是 FP,没匹配上的真值就是 FN。但是这中间需要进一步考虑一些问题。
1.1. 有效匹配
如果算法估计 \(h_j\) 与目标 \(o_i\) 的最近距离 \(dist_{i,j}\) 超过了一定的阈值 \(T\),那么这个匹配也是不合理的,因为这个距离误差加入到定位误差中是不合理的,所以只能说这个跟踪的结果不是这个目标。关于距离的度量:
- 区域(框)跟踪器,距离可用两者的重叠区域来度量,\(T\) 可以设为 0;
- 点跟踪器,距离可用两者中心点的欧氏距离来度量,\(T\) 可以根据目标的尺寸来设定;
1.2. 跟踪一致性
统计目标与算法输出的匹配跳变的次数,也就是目标 ID 的跳变数。文章还提到,当目标有两个有效地匹配时,选择之前的匹配,即使那个匹配的距离大于另一个匹配,这点当存在两个很近的目标时,可能会有问题,需要全局来看。
1.3. 匹配过程
- 对 \(t\) 帧,考虑 \(M_{t-1}\) 中所有匹配是否还依然有效,包括目标真值及算法输出是否还存在,如果都存在,那么距离是否超出阈值 \(T\);
- 对于剩下的没找到匹配的真值目标,在唯一匹配以及阈值约束下,可采用匹配算法或者贪心算法来求解,使得距离误差的总和最小(文章的意思是排除了从上一帧继承的已有匹配,当目标密集时,这部分也应该加入进来优化)。统计当前帧目标真值匹配的跳变数 \(mme_t\),作为 mismatch errors;
- 经过之前两步后,找到了所有的匹配,统计匹配个数为 \(c_t\),计算匹配上的目标真值与算法输出的定位误差 \(d_t^i\);
- 统计没有匹配上的算法输出 (hypotheses) 为 \(fp_t\),没有匹配上的目标真值为 \(m_t\),目标真值个数为 \(g_t\);
- 每一帧重复步骤1,第一帧没有 mismatch;
2. 评价指标
基于以上的匹配策略,得出两个合理的指标:
- MOTP(multiple object tracking precision),跟踪定位精度指标:\[MOTP=\frac{\sum_{i,t}d_t^i}{\sum_tc_t}\]
- MOTA(multiple object tracking accuracy),综合了漏检率,误检率,以及 ID 跳变率:\[MOTA=1-\frac{\sum_t(m_t+fp_t+mme_t)}{\sum_tg_t}\]