MOT:Metrics HOTA

2021-12-07 19:04:48 浏览数 (1)

简介

HOTA: A Higher Order Metric for Evaluating Multi-object Tracking是IJCV 2020的paper,在此之前以MOTChallenge为主的多目标跟踪benchmark一直采用以MOTA为排名的评价标准,虽然MOTChallenge的metrics中也有IDF1,但是排名还是以MOTA为准。

但是MOTA有些情况下不足以衡量出多目标跟踪的性能,甚至都不如IDF1,所以这篇文章重新考量了多目标跟踪任务,并提出一种Higher Order Tracking Accuracy 的Metric。HOTA可以更好的对齐评价得分与人的视觉上的观感。

MOTA为主的评价在2006年就被提出,并经过MOTChallenge的加持,仍是目前主流的多目标跟踪评价标准,而HOTA刚刚提出不久,目前只有KITTI MOT在使用。即便后续真的替换了MOTA,也将需要很久。

MOTA的问题

检测的比重大于跟踪

MOTA的评价过分强调检测的效果,根据MOTA的计算方式,一种极端情况是,检测的性能非常优秀,但是所有检测到的目标不做跟踪,而是全部分配一个相同的track id,此时的MOTA会非常高,因为IDsw=0。

但是很显然,这个极端情况的跟踪表现为0。

begin{aligned} text {MOTA} = 1 - frac{|text {FN}| |text {FP}| |text {IDSW}|}{|text {gtDet}|} end{aligned}
begin{aligned} text {MOTP} = frac{1}{|text {TP}|}sum _{text {TP}}{ mathcal {S}} end{aligned}

MOTP更是如此,在根源是就没有跟踪什么事,而是只评价检测结果。

虽然IDF1可以评价跟踪的效果,但是排名是靠着MOTA的。

begin{aligned}&text {ID-Recall} = frac{|text {IDTP}|}{|text {IDTP}| |text {IDFN}|} end{aligned}
begin{aligned}&text {ID-Precision} = frac{|text {IDTP}|}{|text {IDTP}| |text {IDFP}|} end{aligned}
begin{aligned}&text {IDF1} = frac{|text {IDTP}|}{|text {IDTP}| 0.5 , |text {IDFN}| 0.5 , |text {IDFP}|} end{aligned}

如上图,gt的长度为100,跟踪表现C把gt分为了4段,这个表现其实是比较差的了,但是MOTA高达97%。

Precision的比重大于Recall

定义没有IDsw的MOTA为MODA,也就是多目标检测的准确率(Multi Object Detection Accuracy),其公式如下:

begin{aligned} begin{aligned} text {MODA}&= 1 - frac{|text {FN}| |text {FP}|}{|text {gtDet}|}&\&= frac{|text {TP}| - |text {FP}|}{|text {TP}| |text {FN}|}&\&= text {DetRe} cdot (2 - frac{1}{text {DetPr}})&end{aligned} end{aligned}

可以发现,如果检测的Precision小于等于0.5的话,MODA就会为0,甚至出现负值,而检测的Recall小于等于0.5却不会造成这样的影响。

HOTA Evaluation Metric

HOTA

  • 单一指标评价
  • 评估长期高阶跟踪关联
  • 分解为子指标,允许分析跟踪器性能的不同组成部分。
begin{aligned}&text {HOTA}_{alpha } = sqrt{frac{sum _{c in {text {TP}}} mathcal {A}(c) }{|text {TP}| |text {FN}| |text {FP}|}}&end{aligned}
begin{aligned}&mathcal {A}(c) = frac{|text {TPA}(c)|}{|text {TPA}(c)| |text {FNA}(c)| |text {FPA}(c)|}&end{aligned}

HOTA评价是个双重杰卡德系数,也就是取了两遍交并比,首先是

mathcal {A}(c)

为当前的interest-c对应的GT tracklet,计算得到的True Positive Associations,False Positive Associations与False Negative Associations,这是第一层杰卡德系数,需要注意的是interest-c不值一个,所有需要SUM。如下图所示。

第二层杰卡德系数为SUM后的

mathcal {A}(c)

比上检测得到的TP,FN,FP。

最后,

alpha

是一个固定的阈值,所以

text {HOTA}_{alpha }

是一个固定阈值下的结果,而HOTA是:

begin{aligned} text {HOTA} = int _{0}^{1}{ text {HOTA}_alpha ; dalpha } approx frac{1}{19} sum _{alpha in { begin{array}{c} 0.05, ; 0.1, ; ... \ 0.9, ; 0.95 end{array} } } text {HOTA}_alpha end{aligned}

就是类似于coco的AP计算。

HOTA分解为sub-metric

HOTA分解为detection和association

begin{aligned}&text {DetA}_alpha = frac{|text {TP}|}{|text {TP}| |text {FN}| |text {FP}|}&end{aligned}
begin{aligned}&text {AssA}_alpha = frac{1}{|text {TP}|} sum _{c in {text {TP}}} mathcal {A}(c)&end{aligned}
begin{aligned}&mathcal {A}(c) = frac{|text {TPA}(c)|}{|text {TPA}(c)| |text {FNA}(c)| |text {FPA}(c)|}&end{aligned}

detection分解为precision和recall

begin{aligned} text {DetRe}_alpha&= frac{|text {TP}|}{|text {TP}| |text {FN}| } end{aligned}
begin{aligned} text {DetPr}_alpha&= frac{|text {TP}|}{|text {TP}| |text {FP}| } end{aligned}
begin{aligned} text {DetA}_alpha&= frac{text {DetRe}_alpha cdot text {DetPr}_alpha }{text {DetRe}_alpha text {DetPr}_alpha - text {DetRe}_alpha .text {DetPr}_alpha } end{aligned}

association分解为precision和recall

begin{aligned} text {AssRe}_alpha&= frac{1}{|text {TP}|} ; sum _{c in {text {TP}}} frac{|text {TPA}(c)|}{|text {TPA}(c)| |text {FNA}(c)|} end{aligned}
begin{aligned} text {AssPr}_alpha&= frac{1}{|text {TP}|} ; sum _{c in {text {TP}}} frac{|text {TPA}(c)|}{|text {TPA}(c)| |text {FPA}(c)|} end{aligned}
begin{aligned} text {AssA}_alpha&= frac{text {AssRe}_alpha cdot text {AssPr}_alpha }{text {AssRe}_alpha text {AssPr}_alpha - text {AssRe}_alpha cdot text {AssPr}_alpha } end{aligned}

Reference:

  • py-motmetrics
  • TrackEval

0 人点赞