MOT:Metrics MOTA

简介:

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的评价指标一共有十一个,分别是

MeasureBetterPerfectDescription
MOTAhigher100%跟踪的准确度,和出现FN,FP,IDs的数量负相关,可能出现负值。
MOTPhigher100%跟踪的精度,GT和检测的bbox的匹配交叠
IDF1higher100%引入track ID的F1
FAFlower0每帧的平均误报警数
MThigher100%命中的轨迹占总轨迹的占比,定义命中的轨迹为长度小于ground truth 80%的轨迹
MLlower0丢失的轨迹占总轨迹的占比,定义丢失轨迹为长度小于ground truth 20%的轨迹
FPlower0FP的总数量,false positives也就是误检
FNlower0FN的总数量,false negatives也就是漏检
IDslower0ID改变的总数量
Fraglower0轨迹被打断的总数量
HzhigherInf处理速度,不包括检测器的耗时,而且这个指标由作者提供,MOTChallenge是计算不出来的,因为递交的是offline文件。

MOTA

MOTA = 1 − ∣ FN ∣ + ∣ FP ∣ + ∣ IDSW ∣ ∣ gtDet ∣ \begin{aligned} \text {MOTA} = 1 - \frac{|\text {FN}| + |\text {FP}| + |\text {IDSW}|}{|\text {gtDet}|} \end{aligned} MOTA=1gtDetFN+FP+IDSW
其中,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

M O T P = ∑ t , i d t , i ∑ t c t MOTP = \frac{ {\textstyle \sum_{t,i}^{}}d_{t,i}}{ {\textstyle \sum_{t}^{}c_{t}} } MOTP=tctt,idt,i

其中, c t c_{t} ct为t帧时候匹配到的个数, d t , i d_{t,i} dt,i为t帧时,第i个匹配目标与gt之间的距离,MOTP主要量化检测器的定位精度,几乎不包含与跟踪器实际性能相关的信息。
距离的定义有2种:

  • by MOT challenge,使用检测框与匹配框的iou表征分数,或者说这已经不能被称为距离了,因为越大的iou表示精度越高。
  • by clear,它的实现在py-motmetrics,使用检测框与匹配框中心点的l2距离分数,因此越小表示精度越高。

IDF1

I D F 1 = 2 × I D P × I D R I D P + I D R IDF1 = \frac{2\times IDP \times IDR} {IDP + IDR} IDF1=IDP+IDR2×IDP×IDR
I D R = I D T P I D T P + I D F N IDR = \frac{IDTP} {IDTP + IDFN} IDR=IDTP+IDFNIDTP
I D P = I D T P I D T P + I D F P IDP = \frac{IDTP} {IDTP + IDFP} IDP=IDTP+IDFPIDTP
将IDR和IDP带入,就会得到一种更为常见的IDF1的表达形式:
IDF1 = ∣ IDTP ∣ ∣ IDTP ∣ + 0.5   ∣ IDFN ∣ + 0.5   ∣ IDFP ∣ \begin{aligned}&\text {IDF1} = \frac{|\text {IDTP}|}{|\text {IDTP}| + 0.5 \, |\text {IDFN}| + 0.5 \, |\text {IDFP}|} \end{aligned} IDF1=IDTP+0.5IDFN+0.5IDFPIDTP

IDTP&IDFN&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

那么预测的结果是:

trackIDTPIDFNIDFPIDPIDRIDF1
track128820%20%20%
track264460%60%60%

那么为什么track2的IDTP是6而不是4呢?
因为用id1区匹配GT的话,min-cost更小。

上面是一个例子,那抽象后的具体的过程为:
将n条gt轨迹和m条预测轨迹计算二部图,二部图的尺寸即为 m ∗ n m*n mn,图上的分数表征了这两个轨迹的匹配误差,所以通过类似匈牙利算法,就能给出一个误差最小情况下的最优匹配结果。
而匹配误差的定义为:
将轨迹与轨迹的匹配定义成不同时间戳上(timestamp)的bbox的交叠情况,如果IOU小于一个设定阈值,那么将t2t匹配误差加1,那么可以得出:
这个值最大为两个轨迹的时间并集
最小为0

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:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值