简介:

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

MOTA = 1 − ∣ FN ∣ + ∣ FP ∣ + ∣ IDSW ∣ ∣ gtDet ∣ \begin{aligned} \text {MOTA} = 1 - \frac{|\text {FN}| + |\text {FP}| + |\text {IDSW}|}{|\text {gtDet}|} \end{aligned} MOTA=1−∣gtDet∣∣FN∣+∣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=∑t​ct​∑t,i​dt,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.5∣IDFN∣+0.5∣IDFP∣∣IDTP∣​​

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

那么预测的结果是:

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更小。

上面是一个例子,那抽象后的具体的过程为:
将n条gt轨迹和m条预测轨迹计算二部图,二部图的尺寸即为 m ∗ n m*n m∗n,图上的分数表征了这两个轨迹的匹配误差,所以通过类似匈牙利算法,就能给出一个误差最小情况下的最优匹配结果。
而匹配误差的定义为:
将轨迹与轨迹的匹配定义成不同时间戳上(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:

  • py-motmetrics
  • TrackEval

MOT:Metrics MOTA相关推荐

  1. 可观测性的三大支柱:Metrics、Trace、Log

    前言 Opentelemetry 协议,是 CNCF (Cloud Native Computing Foundation -云原生计算基金会) 定义的最新一代可观测规范,该规范定义了可观测性的三大支 ...

  2. .NET6之MiniAPI(二十七):Metrics

    应用的各种Metrics是保证应用健康稳定运行的基础,特别对于一些可用性有所要求的应用,本文介绍prometheus-net这个三方指示库. prometheus-net的工作原理是,在应用内部埋点, ...

  3. MOT:多目标跟踪总结与思考

    Task 多目标跟踪(MOT)是一种常见的计算机视觉任务,任务要求检测到连续视频帧中的目标,并为每一个目标分配一个track id,这个id在视频序列中具有唯一性. 多目标跟踪任务在带有时序性质的任务 ...

  4. 【MOT评价指标】MOTA MOTAL MOTP Rcll IDF1 MT ML FP FN ID_SW Frag Hz

    转自:https://blog.csdn.net/ycc2011/article/details/86633768 根据MOTchallenge官方解释给出: resource:

  5. 【MOT评价指标】MOTA MOTAL MOTP Rcll IDF1 MT ML FP FN ID_SW Frag Hz

    根据MOTchallenge官方解释给出: resource:

  6. MOT:MOTchallenge任务评价方法

    GT介绍 1,1,912,484,97,109,0,7,1 2,1,912,484,97,109,0,7,1 3,1,912,484,97,109,0,7,1 4,1,912,484,97,109,0 ...

  7. 《特性:Metrics》直播干货

    干货 直播回放: http://www.itdks.com/liveevent/detail/9543 直播材料下载: https://github.com/apache/incubator-serv ...

  8. 《特性:Metrics》直播预告

    直播预告 参与方式: 1 扫上图二维码报名 ,并于周四晚 20:00 扫码观看 2 PC端通过网页报名和观看: http://www.itdks.com/liveevent/detail/9543 本 ...

  9. 由于开发者通过接口修改了菜单配置_开发者说:Seata 0.7.0 版本,你 get 'Metrics' 技能了吗?...

    从用户的视角来感受一个开源项目的成长,是我们推出「开发者说」专栏的初衷,即在开发者进行开源项目选型时,提供更为立体的项目信息.专栏所有内容均来自作者原创/投稿,本文是「开发者说」的第9篇,作者郑扬勇, ...

最新文章

  1. linux unshare 命令,Linux ip netns 命令
  2. HDU 4417 Super Mario
  3. 功能强大的滚动播放插件JQ-Slide
  4. php 制作ppt,PPT制作三个基本要素是什么?
  5. aix查看oracle进程内存,Aix 查看进程占用内存大小(按从大小排列)
  6. webpack4.0各个击破(3)—— Assets篇
  7. 《背影》----朱自清
  8. 数据结构(C语言)——电话号码查询系统实现
  9. Eureka是干什么的?
  10. 如何禁止更改IE的代理服务器设置(转)
  11. pymol 分离蛋白与小分子保存;pymol分离蛋白多聚体亚基;pymol对接位点交互图展示;去除杂原子
  12. AI安全领域的“雨山机车大赛”,改变了什么?
  13. 王立柱《c语言》3.5.5
  14. 【苹果相册】苹果推信群发准入ProvisioningProfile还分为开发和分发
  15. Apache多后缀解析漏洞复现(apache_parsing_vulnerability)
  16. html导航凹凸效果,纯CSS实现底部弧度效果(凹凸圆弧)
  17. Python 爬取无版权美图
  18. Matlab重新激活
  19. 识别您的英特尔® 无线适配器和 Wi-Fi 驱动程序版本号
  20. VisibleDeprecationWarning , Creating an ndarray from ragged nested sequences... 警告怎么办?

热门文章

  1. 基于matlab的SOM自组织网络仿真
  2. itext html转pdf 图片,itext2.0.8 将 HTML 转换成 PDF, 完美 CSS, 带图片, 自动分页
  3. 2020最新阿里、腾讯、华为、字节跳动等大厂的薪资和职级对比
  4. 【前端基础】盒子模型和页面布局总结
  5. js-排序-对象key自动排序问题
  6. HTML中的图片如何自适应屏幕?这篇文章有图片的自适应用法介绍
  7. 自然语言处理及计算语言学相关术语中英对译表
  8. 开发一款系统软件的流程步骤是什么
  9. 计算机启动后 不显示桌面,电脑开机后不显示桌面怎么办?
  10. go 日志库zap的使用