zoukankan      html  css  js  c++  java
  • 多目标跟踪的评价指标

    多目标跟踪的评价指标

    读“Evaluating Multiple Object Tracking Performance: The CLEAR MOT Metrics”笔记。


    对于多目标追踪问题,我们认为一个理想的评价指标应该满足下述三点要求:

    1. 所有出现的目标都要能够及时找到

    2. 找到目标位置要尽可能可真实目标位置一致

    3. 保持追踪一致性,避免跟踪目标的跳变 each object should be assigned a unique track ID which stays constant throughout the sequence.

    这三点要求给了设计MOT评价metric的启发:

    1. metrics应该能够评价tracker输出结果和真实结果location上的误差精度

    2. metrics应该要能够反映出tracker长时间持续追踪目标结构的能力,即追踪到正确的目标轨迹的能力

    另外,关于metric的一般要求:

    1. metric参数(包括可调节的阈值等)要尽可能的少,才能使评估过程简单直接,实验结果可对比性较强

    2. metric要尽可能的直观,易理解,特别是要容易区分不同类型的误差

    3. metric应具有较强的适应性,对于MOT的评价指标而言要能够适应2D和3D的不同情况

    4. metric的个数要尽可能的少,尽量少的指标却具有很高的表达能力

    论文根据上述的criteria提出了一种MOT问题系统、客观的评价过程。
    假设对于每一帧的图像中有目标,tracker在该帧输出的假设为,那么评价过程包含以下步骤:

    1. 建立目标和假设间的最优一一对应关系,称之为correspondence

    2. 对所有的correspondence,计算位置偏移误差(the error in the object's position estimation)

    3. 累积结构误差(object configuration error)
      a. 计算漏检数,objects for which no hypothesis was output
      b. 计算虚警数,hypothesis for which no real objects exists
      c. 跟踪目标发生跳变的次数,the number of occurrences where the tracking hypothesis for an object changed compared to previous frames

    接下来仔细分析该过程的具体实现:

    • 如何确定一一对应关系(valid correspondences)
      最朴素的想法就是在目标和假设间,采取最近邻的方法,将相互距离最小的假设匹配给对应的目标。但是这存在一个问题,对于人而言,存不存在对应关系是有一个距离限制的,如果假设和目标的距离满足但是,是某个距离阈值,那我们也应该视假设和目标不存在对应关系,这时候目标应该是一个漏检目标。
      如下图

    enter description here

    valid correspondence.jpg

    其中时刻都是有效的对应,而时刻显然并不认为是有效匹配。
    在实际应用中,距离可以采用欧氏距离计算,而阈值T可以设置为假设和目标最少重叠(overlap)时两者中心的距离。

    • 如何刻画追踪一致性
      追踪一致性能力就是指追踪器使追踪假设和对应目标长时间保持对应关系不变的能力。

    一种方式是首先寻找目标和假设间的一个最优对应,或者是出现频率最大的对应,然后将其余出现的所有和这个对应不同的对应视为错误匹配,如下图,我们将出现频率最大的对应视为正确的对应关系,然后case1下出现2次错误对应,case2条件下出现4次错误对应。

    enter description here

    match errors.jpg

    然后这种方式有时候并不符合常理,我们关注的应该是对应发生转变的那一帧,而不是由对应跳变帧带来的其余帧对应的变化。所以论文中给的方法是仅仅统计对应出现跳变的次数。这样的话,上图中case1和case2均仅出现一次跳变。假设直到时刻的目标-假设对应关系表示为,若在时刻出现假设使得不再中,则可以计做一次错误,在时刻的目标-假设映射表中将取代。这里说直至时刻的目标-假设映射表而不是时刻的映射表是因为有时correspondence出现丢失时,之前的对应关系应该得到保留。
    为了降低错误率,减少对应发生跳变的次数,可以在同一目标存在多个valid correspondence时,选择已经存在的correspondence,如下图,在直至时刻的目标-假设mapping中存在,在时刻出现两个有效的correspondence,,而且这时候的距离,但这时候我们选择.

    enter description here

    correct reinitialization.jpg

    • 具体过程

      1. 帧,考虑映射中的每一个对应,验证其是否依然有效

      2. 对于那些上一步没有找到对应假设的目标,在新的假设集中寻找最佳匹配,这个时候所谓的最佳匹配时让总的目标-假设距离最小,比如两个待匹配的目标,都是其有效对应,如何匹配两个对映集就要求总体的距离和最小,这时候可以使用Munkres' algorithm[1],这个过程就可以统计匹配发生跳变的次数:如果出现新的不在中,那么在中将新的取代以前的对应,使用记录时刻出现这种跳变的次数。

      3. 经过之前两步,可以找到所有的correspondence,所有的correspondence个数记为,计算每一个correspondence计算目标和假设建的距离

      4. 剩下的未找到correspondence的目标和假设个数分别记为。并使用表示时刻真正目标的个数。

      5. 从第一帧开始逐帧计算上述变量。对于第1帧初始的而言,是空的,也就意味着第1帧找到的所有匹配都是正确的,没有发生conflict。
        最终的两个统计量为:

    • MOPT The multiple object tracking precision 也就是假设与对应目标的平均偏差

    • MPTA The multiple object tracking accuracy

    其中
    a. 计算的是tracking过程总体的漏检率
    b. 计算的是tracking过程总体的误检,也就是虚警率。
    c. 表示tracking中所有目标发生跳变的机率。

    显然,MOTP和MOTA两个指标同时很高,那么tracker的性能就越好

    Note:这里在计算MOTP和MOTA时,都是计算的整个tracking过程的平均值,而不是每一帧的结果,这是因为单帧计算这些变量然后再计算平均往往会导致和直观上不同的结果。比如下图

    enter description here

    computing error ratios.jpg

    这是一个8帧的数据,前4帧中四个目标都被漏检,从第5帧开始只有visible,且开始被检测到。这样如果逐帧计算漏检率,在前四帧如果计算漏检率就都是100%,那么总体漏检率为,而如果统计所有的错误次数然后计算平均,即按照上面过程中计算方法,漏检率为

    之后论文在CLEARs workshops上使用提出的两个metric评价了不同的track system,发现the proposed metrics indeed reflect the strengths and weaknesses of the various used systems in an intuitive and meaningful way, allow for easy comparsion of overall performance, and are applicable to a variety of scenarios.


    1. J.Munkres, Algorithms for the assignment and transportation problems, Journal of Society of Industrial and Applied Mathematics, vol.5 no.1, pp.32-38,1957

  • 相关阅读:
    排序算法(一)冒泡法
    java是传值还是传引用
    赫夫曼树与赫夫曼编码
    数据结构的相关概念
    字符集和字符编码的区别
    redis为什么选择单线程工作模型
    GET和POST请求的核心区别
    MySQL数据类型及后面小括号的意义
    java中的数据类型
    Jedis无法连接centOS7上的redis
  • 原文地址:https://www.cnblogs.com/YiXiaoZhou/p/5937980.html
Copyright © 2011-2022 走看看