搞了这么久的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做对比。