MOT指标笔记《CLEAR Metrics-MOTA&MOTP》2008年·卡尔斯鲁厄大学

2023-05-16

搞了这么久的MOT,到头来发现最基本的MOTA和MOTP还没有搞懂,实在有点说不过去。今天花了一上午的时间阅读2008年卡尔斯鲁厄大学的《Evaluating Multiple Object Tracking Performance: The CLEAR MOT Metrics》,整理了一些笔记以备后用。

这篇博文分为两个部分,第一部分在理论上对CLEAR的行文思路进行总结,抑或是指标的设计指导思想;第二部分结合论文中给出的追踪图详细阐述评估过程和指标的运算细节。目录如下:

第一部分(理论讲解):

一、理想追踪器的3个需求

二、指标设计的6个理念

三、评估过程的3大步骤

四、最终导出的2个指标

第二部分(计算过程):

零、明确追踪概念

一、观测o和结果h的连接(Valid correspondences)

二、跨时间的连续追踪(Consistent tracking over time)

三、映射过程(Mapping procedure)

四、指标运算


                                          第一部分:理论讲解

一、理想追踪器的3个需求

      1、在所有时刻找出正确的物体数量(correct number of objects present)
      2、尽可能精确地估计出每个物体的位置( position of each object as precisely as possible )
      3、指派连续的ID,即使有遮挡(keep consistent track of each object over time)

 二、指标设计的6个理念

     1、反映追踪器估计目标位置的精度(judge a tracker’s precision in determining exact object locations)
     2、反映追踪器产生轨迹的连续性( ability to consistently track object configurations through time)
同时还要满足:
     3、有几个自由、可调的参数,让评估结果具有可比性(making evaluations straightforward and keeping results comparable)
     4、易于理解,符合人的直觉,能够反映误差率(multiple errors of different types or of uneven repartition of errors throughout the sequence)
     5、泛化性强,可以用于多种2D、3D追踪器(be general enough to allow comparison of most types of trackers)
     6、指标要少且有用,方便大型评估(be few in number and yet expressive)

 三、评估过程的3大步骤

     1、在h和o之间建立最大可能性连接(establish the best possible correspondence between hypotheses hj and objects oi)
     2、对于每一个连接,使用位置估计计算误差(compute the error in the object’s position estimation)
     3、积累所有的连接误差:没有设定h的o(丢失-Miss);没有o的h(False Positive-无中生有);误配(Mismatch-同一个人ID改变)

 四、最终导出的2个指标

     1、Tracking Precision-追踪精度:人的位置估计的精不精确(how well exact positions of persons are estimated)
     2、Tracking Accuracy-追踪准确度:追踪过程出了多少错误=False Postive 无中生有 + Mismatch 交叉误配+ Miss 丢失没跟上

 


                                          第二部分:计算过程

 零、明确概念

在进入正式的运算之前,先要明确两个字母:o和h:o是观测量,可以理解为检测器的检测结果;h是追踪器的输出,是追踪器认为的每个人在什么位置。

还要明确3种错误跟踪状态:丢失-Miss、无中生有-False Positive、错配-Mismatch,解释如下:

丢失-Miss:观测到了但是追踪器没有跟上

无中生有-False Positive:检测结果没有但是追踪器却跟上了

错配-Mismatch:ID出现转换

一、观测o和结果h的连接(Valid correspondences)

观测o和输出h之间的距离小于阈值T时才会被认定为有效关联

 二、跨时间的连续追踪(Consistent tracking over time)

          物体离得太近会导致ID的错配。
          序列级别的最优映射( sequence-level “best” object-hypothesis mapping)往往会造成误差的不准确,因此我们使用“短时法”,即只计数跟上一帧冲突的错配。==>跟错了就跟错了吧,记一次mismatch就行。

 三、映射过程(Mapping procedure)

     1、若o和h在t时刻都存在且距离小于T,保持Mt-1状态的连接性;
     2、距离匹配结束后,对无关联节点o、h进行分析,计算错配误差mme;
     3、c_t是t时刻匹配的o-h对数,计算匹配对h-o之间的距离d^i;
     4、进行误差计数:剩下的o都是丢失miss,剩下的h都是false postive无中生有;g_t代表t时刻观测物体o的数量
     5、进行迭代,注意第一帧时没有匹配信息。

 四、指标运算

这个在论文里面已经写的很清楚了,此处只放论文原图。主要是搞清楚各个字母代表的含义。MOTP中d代表着o和h之间的距离,c代表着o-h关联的数目。MOTA中m为丢失,fp为无中生有,mme为错配数,g代表所有观测的数量。

同时注意,Mismatch的平均计算是宏观上的平均,入下图所示,单帧求平均会导致结果的不精确。

 

疑问:

 1、MOT Challenge中的test数据集都是给定了Detector的检测结果(每一帧的D-Bbox),如果他的评估过程中所有的D-Bbox都有标签,那么我们提交的ID标签是怎样用于MOTP运算的?也就是说,论文中追踪过程的o都是有一个范围,这个在MOT里面是如何体现的?给定确定的D-Box,那么所有的MOTP都是100%了。

2、CLEAR评测指标貌似用于这个场景:我只有人工标定的GT追踪结果(例如CVPR2019-05序列),追踪器根据Detector给定的Bbox指派ID,ID最后和人工标定的GT进行对比。而不是和人工标定的D-Box做对比。

关于上面两个问题,最近有了新的认识,特此记录下来:首先明确一下数据集构成,一个train序列中含有Detection结果(漏检很多)、手标的Label结果(Bbox都是整数)。但是在算法训练时,使用的依然是不完备的、漏检很多的Detection结果,因为有GT值的存在,所以可以提供Supervise信息,以此完善模型。当真正在Test上面运行时,期望会有更好的结果。对于第一个问题中的MOTP,因为检测结果的框并不是被全部使用,所以各个检测器会有所不同。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

MOT指标笔记《CLEAR Metrics-MOTA&MOTP》2008年·卡尔斯鲁厄大学 的相关文章

  • C语言strtok函数

    strtok是C语言用于分割字符串的函数 xff0c 需要include lt string h gt 第一次使用时第一个参数传入待分割的字符串 xff0c 第二个参数传入分割符号 第二次使用时第一个函数传入NULL 第二个参数传入分割符号
  • CSS | 置换元素(可替换元素)

    文章目录 置换元素 定义 常见置换元素 固有尺寸 非置换元素 注意 若文章有任何纰漏或未涉及你想了解的内容 欢迎在评论提出 我会尽最快速度回复 置换元素 定义 置换元素是具有固有尺寸 intrinsic dimensions 浏览器根据其标
  • 人体姿态估计综述(Human Pose Estimation Overview)

    主流数据集整理 xff1a http blog csdn net qq 36165459 article details 78332172 Part1 xff1a Single Person Pose Estimation 2015 年之前
  • 1到100的二进制表示

    1 61 1 2 61 10 3 61 11 4 61 100 5 61 101 6 61 110 7 61 111 8 61 1000 9 61 1001 10 61 1010 11 61 1011 12 61 1100 13 61 11
  • 画格子

    题目描述 画一些小格子 xff0c 如下所示 xff1a MAKEAMERICA AKEAMERICAG KEAMERICAGR EAMERICAGRE AMERICAGREA MERICAGREAT ERICAGREATA RICAGRE
  • golang -----------字符串(rune,string,type)

    一 内存布局 字符串在Go语言内存模型中用一个2字长的数据结构表示 它包含一个指向字符串存储数据的指针和一个长度数据 因为string类型是不可变的 xff0c 对于多字符串共享同一个存储数据是安全的 切分操作str i j 会得到一个新的
  • HTTP中GET,POST和PUT的区别

    一 HTTP中定义了以下几种请求方法 1 GET xff1b 2 POST xff1b 3 PUT xff1b 4 DELETE 5 HEAD xff1b 6 TRACE xff1b 7 OPTIONS xff1b 二 各个方法介绍 xff
  • B树,B+树,红黑树应用场景笔记

    一 B树的应用 1 B树大量应用在数据库和文件系统当中 它的设计思想是 xff0c 将相关数据尽量集中在一起 xff0c 以便一次读取多个数据 xff0c 减少硬盘操作次数 B树算法减少定位记录时所经历的中间过程 xff0c 从而加快存取速
  • 使用 Gitee 进行代码管理

    为什么使用 Gitee 这里推荐使用 Gitee 进行代码管理 Gitee 和 Github 最大的区别在我看来就是私有库的免费 xff0c 在 Github 上建立私有库是需要收费的 xff0c 而在 Gitee 上建立私有库是不需要收费
  • kubernetes的Kube-proxy的iptables转发规则

    概念 kube proxy 实际上并不起一个 proxy 的作用 xff0c 而是 watch 变更并更新 iptables xff0c 也就是说 xff0c client 的请求直接通过 iptables 路由 如果kube proxy通
  • kube-proxy ipvs模式详解

    一 kube proxy 开启 ipvs 1 环境准备 xff1a 测试环境为kubernetes集群 xff0c 一台master节点 xff0c 一台node节点 集群网络使用flanneld搭建 注意 xff1a master节点上也
  • k8s部署Traefik

    Ingress ingress是从kubernetes集群外访问集群的入口 xff0c 将用户的URL请求转发到不同的service上 Ingress相当于nginx apache等负载均衡方向代理服务器 xff0c 其中还包括规则定义 x
  • (1)webpack介绍

    一 webpack简介 webpack 61 Web Package xff0c webpack是一个现代JS应用程序的静态模块打包器 xff08 module bundler xff09 模块 xff08 模块化开发 xff0c 可以提高
  • MAML: meta learning 论文分析

    https zhuanlan zhihu com p 57864886 一 Meta Learning 简述 Meta Learning xff08 即元学习 xff09 是最近比较火的研究方向 xff0c 其思想是learning to
  • Oracle数据库权限

    Oracle数据库权限基本认识 一 oracle权限 ORACLE系统提供三种权限 xff1a Object 对象级 System 系统级 Role 角色级 权限分类 1 系统权限 xff1a 系统规定用户使用数据库的权限 xff08 系统
  • 解决:rospack depends 报错: could not find python module 'rosdep2.rospack'. is rosdep up-to-date

    这个问题全部如下 xff1a Traceback most recent call last File 34 home suli local lib python2 7 site packages rosdep2 init py 34 li
  • Ubuntu系统日常崩溃之-terminal打不开

    我也不记得干了什么 xff0c 莫名其妙的terminal就打不开了 xff0c 不只是通过快捷键打不开 xff0c 反正各种都打不开 xff0c 每次点击terminal xff0c 它会出现在任务栏上面 xff0c 之后鼠标就变成圆圈转
  • ARM交叉编译工具链

    为什么要用交叉编译器 xff1f 交叉编译通俗地讲就是在一种平台上编译出能运行在体系结构不同的另一种平台上的程序 xff0c 比如在PC平台 xff08 X86 CPU xff09 上编译出能运行在以ARM为内核的CPU平台上的程序 xff
  • 最近发现有很多人一直在问苹果ID双重认证怎么关闭。

    最近发现有很多人一直在问苹果ID双重认证怎么关闭 xff1f 其实我想说大家都粗心了 xff0c 双重认证是和ios版本没有关系的 xff0c 无论什么IOS版本开通的双重认证都是可以关闭的 https support apple com
  • QT - QT中配置MSVC编译环境 以及 VS中配置QT开发环境

    本文主要记录一下如何在 QT5 14 2 中配置 MSVC2017 构建套件 xff0c 以及在VS2017中配置QT的开发环境 开发环境为 Win10 43 QT5 14 2 43 Visual Studio 2017 1 VS2017安

随机推荐