简介:
MOTChallenge是多目标跟踪领域最为常用的benchmark,其中2D MOT15,3D MOT15,MOT16,MOT17,MOT20都是多目标跟踪领域常用的数据集。 下面我们按照MOTChallenge中的评价标准进行介绍,当然MOTChallenge也主要参考《Evaluating Multiple Object Tracking Performance: The CLEAR MOT Metrics》
评价指标:
总结
CLEAR MOT Metrics认为一个好的多目标跟踪器应该有如下三点特性: 1.所有出现的目标都要能够及时找到(检测的性能) 2.找到目标位置要尽可能可真实目标位置一致(检测的性能) 3.保持追踪一致性,避免跟踪目标的跳变 (匹配的性能) 所以可以看出,多目标跟踪和目标检测是密不可分的,检测的性能不可避免的会对跟踪的性能造成影响。 MOTChallenge的评价指标一共有十一个,分别是
Measure | Better | Perfect | Description |
---|---|---|---|
MOTA | higher | 100% | 跟踪的准确度,和出现FN,FP,IDs的数量负相关,可能出现负值。 |
MOTP | higher | 100% | 跟踪的精度,GT和检测的bbox的匹配交叠 |
IDF1 | higher | 100% | 引入track ID的F1 |
FAF | lower | 0 | 每帧的平均误报警数 |
MT | higher | 100% | 命中的轨迹占总轨迹的占比,定义命中的轨迹为长度小于ground truth 80%的轨迹 |
ML | lower | 0 | 丢失的轨迹占总轨迹的占比,定义丢失轨迹为长度小于ground truth 20%的轨迹 |
FP | lower | 0 | FP的总数量,false positives也就是误检 |
FN | lower | 0 | FN的总数量,false negatives也就是漏检 |
IDs | lower | 0 | ID改变的总数量 |
Frag | lower | 0 | 轨迹被打断的总数量 |
Hz | higher | Inf | 处理速度,不包括检测器的耗时,而且这个指标由作者提供,MOTChallenge是计算不出来的,因为递交的是offline文件。 |
MOTA
begin{aligned} text {MOTA} = 1 - frac{|text {FN}| |text {FP}| |text {IDSW}|}{|text {gtDet}|} end{aligned} 其中,FN为False Negative,FP为False Positive,IDSW为ID Switch,GT为Ground Truth 物体的数量。MOTA考虑了tracking中所有帧中对象匹配错误,主要是FN,FP,ID Switch。MOTA给出了一个非常直观的衡量跟踪器在检测物体和保持轨迹时的性能,与物体位置的估计精度无关。MOTA取值应小于100,当跟踪器产生的错误超过了场景中的物体,MOTA会为负数。需要注意的是,此处的MOTA以及MOTP是计算所有帧的相关指标再进行平均(既加权平均值),而不是计算每帧的rate然后进行rate的平均。 注意MOTA中的FN,FP是检测的结果,而不是跟踪的结果,也就是说MOTA中只有IDs是和跟踪有关系的,剩下的都是检测。MOTA相比于IDF1要更偏向与检测。
MOTP
begin{aligned} text {MOTP} = frac{1}{|text {TP}|}sum _{text {TP}}{ mathcal {S}} end{aligned}
其中,d为检测目标i和给它分配的ground truth之间在所有帧中的平均度量距离,在这里是使用bounding box的overlap rate来进行度量(在这里MOTP是越大越好,但对于使用欧氏距离进行度量的就是MOTP越小越好,这主要取决于度量距离d的定义方式);而c为在当前帧匹配成功的数目。MOTP主要量化检测器的定位精度,几乎不包含与跟踪器实际性能相关的信息。
IDF1
IDF1 = frac{2times IDP times IDR} {IDP IDR} IDR = frac{IDTP} {IDTP IDFN} IDP = frac{IDTP} {IDTP IDFP} 而IDTP,IDFN和IDFP就引入了ID考量的TP,FN和FP,这种考量是一种min-cost原则的匹配计算。 比如存在一段GT track,是10个1,有2个predict的track,是track1和track2:
truth :1-1-1-1-1-1-1-1-1-1 track1:1-1-2-2-3-3-4-4-5-5 track2:1-1-2-2-1-1-2-2-1-1
那么预测的结果是:
track | IDTP | IDFN | IDFP | IDP | IDR | IDF1 |
---|---|---|---|---|---|---|
track1 | 2 | 8 | 8 | 20% | 20% | 20% |
track2 | 6 | 4 | 4 | 60% | 60% | 60% |
那么为什么track2的IDTP是6而不是4呢? 因为用id1区匹配GT的话,min-cost更小。
FN&FP&IDs&Frag
假设GT只有一条,用虚线表示,也就是说在GT中由6帧图像,并只有一个track id。下面由a,b,c,d四张图,涵盖了FN,FP,IDs和Frag的情况。 在图a中,GT被预测为红蓝两条,红色轨迹F1时并没有匹配上GT,所以GT实际上是一个FN,也就是实际为目标,但是被遗漏了。同理红色轨迹的F1结果,也就是一个FP,因为实际上是一个不存在的东西被判定成了目标。 同理,蓝色轨迹F3,F4也是FP,又因为GT由4到5时,id从红色变成蓝色,所以存在IDs。 在图b中,还是同样的GT,这次红蓝两条轨迹没有交叠,在F3的地方GT断开了,所以存在一次Frag。
Reference:
- py-motmetrics
- TrackEval