简介
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。
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 ∣
MOTP
=
1
∣
TP
∣
∑
TP
S
\begin{aligned} \text {MOTP} = \frac{1}{|\text {TP}|}\sum _{\text {TP}}{ \mathcal {S}} \end{aligned}
MOTP = ∣ TP ∣ 1 TP ∑ S MOTP更是如此,在根源是就没有跟踪什么事,而是只评价检测结果。 虽然IDF1可以评价跟踪的效果,但是排名是靠着MOTA的。
ID-Recall
=
∣
IDTP
∣
∣
IDTP
∣
+
∣
IDFN
∣
\begin{aligned}&\text {ID-Recall} = \frac{|\text {IDTP}|}{|\text {IDTP}| + |\text {IDFN}|} \end{aligned}
ID-Recall = ∣ IDTP ∣ + ∣ IDFN ∣ ∣ IDTP ∣
ID-Precision
=
∣
IDTP
∣
∣
IDTP
∣
+
∣
IDFP
∣
\begin{aligned}&\text {ID-Precision} = \frac{|\text {IDTP}|}{|\text {IDTP}| + |\text {IDFP}|} \end{aligned}
ID-Precision = ∣ IDTP ∣ + ∣ IDFP ∣ ∣ IDTP ∣
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 ∣ 如上图,gt的长度为100,跟踪表现C把gt分为了4段,这个表现其实是比较差的了,但是MOTA高达97%。
Precision的比重大于Recall
定义没有IDsw的MOTA为MODA,也就是多目标检测的准确率(Multi Object Detection Accuracy),其公式如下:
MODA
=
1
−
∣
FN
∣
+
∣
FP
∣
∣
gtDet
∣
=
∣
TP
∣
−
∣
FP
∣
∣
TP
∣
+
∣
FN
∣
=
DetRe
⋅
(
2
−
1
DetPr
)
\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}
MODA = 1 − ∣ gtDet ∣ ∣ FN ∣ + ∣ FP ∣ = ∣ TP ∣ + ∣ FN ∣ ∣ TP ∣ − ∣ FP ∣ = DetRe ⋅ ( 2 − DetPr 1 ) 可以发现,如果检测的Precision小于等于0.5的话,MODA就会为0,甚至出现负值,而检测的Recall小于等于0.5却不会造成这样的影响。
Evaluation Metric
DetA
DetA为检测的准确率,评价多目标跟踪中检测器的性能,作用与Precision和Recall差不多,所有类别的总acc如下式表示:
DetA
α
=
∣
TP
∣
∣
TP
∣
+
∣
FN
∣
+
∣
FP
∣
\begin{aligned}&\text {DetA}_\alpha = \frac{|\text {TP}|}{|\text {TP}| + |\text {FN}| + |\text {FP}|}&\end{aligned}
DetA α = ∣ TP ∣ + ∣ FN ∣ + ∣ FP ∣ ∣ TP ∣
AssA
AssA为关联的准确率,评价关联的准确率,公式如下所示:
A
(
c
)
=
∣
TPA
(
c
)
∣
∣
TPA
(
c
)
∣
+
∣
FNA
(
c
)
∣
+
∣
FPA
(
c
)
∣
\begin{aligned}&\mathcal {A}(c) = \frac{|\text {TPA}(c)|}{|\text {TPA}(c)| + |\text {FNA}(c)| + |\text {FPA}(c)|}&\end{aligned}
A ( c ) = ∣ TPA ( c ) ∣ + ∣ FNA ( c ) ∣ + ∣ FPA ( c ) ∣ ∣ TPA ( c ) ∣
AssA
α
=
1
∣
TP
∣
∑
c
∈
{
TP
}
A
(
c
)
\begin{aligned}&\text {AssA}_\alpha = \frac{1}{|\text {TP}|} \sum _{c \in \{\text {TP}\}} \mathcal {A}(c)&\end{aligned}
AssA α = ∣ TP ∣ 1 c ∈ { TP } ∑ A ( c ) DetA,AssA的作用,与Precision,Recall,IDP,IDR,IDF1很相似 Precision,Recall用于评价检测的精准率与召回率,而DetA用于评价检测的准确率。 IDP,IDR,IDF1用于评价匹配的精准率,召回率与F1-score,而AssA用于评价匹配的准确率。 这就需要知道
TPA
(
c
)
\text {TPA}(c)
TPA ( c ) ,
FNA
(
c
)
\text {FNA}(c)
FNA ( c ) ,
FPA
(
c
)
\text {FPA}(c)
FPA ( c ) 这几个数的意思,首先
c
c
c 是一个属于TP的点,可以是TP中的任意一个,根据这个点,我们总能确定出来一个唯一的GT轨迹,同时如果有pred轨迹与GT轨迹在这个点相交的话,我们还能确定出来一条pred轨迹。 需要注意的是,哪怕是同一条GT轨迹上不同的c,也会产生不同的
TPA
(
c
)
\text {TPA}(c)
TPA ( c ) ,
FNA
(
c
)
\text {FNA}(c)
FNA ( c ) ,
FPA
(
c
)
\text {FPA}(c)
FPA ( c ) ,所以这三个值只能与采样绑定,不与数据集绑定。 这一点是与《Evaluating Multiple Object Tracking Performance: The CLEAR MOT Metrics》不同,并没有为一个GT轨迹分配一个最大的匹配度的pred轨迹。
而在这里就需要
HOTA
单一指标评价 评估长期高阶跟踪关联 分解为子指标,允许分析跟踪器性能的不同组成部分。
HOTA
α
=
∑
c
∈
{
TP
}
A
(
c
)
∣
TP
∣
+
∣
FN
∣
+
∣
FP
∣
\begin{aligned}&\text {HOTA}_{\alpha } = \sqrt{\frac{\sum _{c \in \{\text {TP}\}} \mathcal {A}(c) }{|\text {TP}| + |\text {FN}| + |\text {FP}|}}&\end{aligned}
HOTA α = ∣ TP ∣ + ∣ FN ∣ + ∣ FP ∣ ∑ c ∈ { TP } A ( c )
HOTA评价是个双重杰卡德系数,也就是取了两遍交并比,首先是
A
(
c
)
\mathcal {A}(c)
A ( c ) 为当前的interest-c对应的GT tracklet,计算得到的True Positive Associations,False Positive Associations与False Negative Associations,这是第一层杰卡德系数,需要注意的是interest-c不值一个,所有需要SUM。如下图所示。 第二层杰卡德系数为SUM后的
A
(
c
)
\mathcal {A}(c)
A ( c ) 比上检测得到的TP,FN,FP。
最后,
α
\alpha
α 是一个固定的阈值,所以
HOTA
α
\text {HOTA}_{\alpha }
HOTA α 是一个固定阈值下的结果,而HOTA是:
HOTA
=
∫
0
1
HOTA
α
d
α
≈
1
19
∑
α
∈
{
0.05
,
0.1
,
.
.
.
0.9
,
0.95
}
HOTA
α
\begin{aligned} \text {HOTA} = \int _{0}^{1}{ \text {HOTA}_\alpha \; d\alpha } \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}
HOTA = ∫ 0 1 HOTA α d α ≈ 1 9 1 α ∈ { 0 . 0 5 , 0 . 1 , . . . 0 . 9 , 0 . 9 5 } ∑ HOTA α 就是类似于coco的AP计算。
最后,根据DetA和AssA,HOTA可以通过下列计算:
HOTA
α
=
∑
c
∈
{
TP
}
A
(
c
)
∣
TP
∣
+
∣
FN
∣
+
∣
FP
∣
=
DetA
α
⋅
AssA
α
\begin{aligned}&\begin{aligned} \text {HOTA}_\alpha&\quad = \sqrt{\frac{\sum _{c \in \{\text {TP}\}} \mathcal {A}(c) }{|\text {TP}| + |\text {FN}| + |\text {FP}|}}&\\&\quad = \sqrt{\text {DetA}_\alpha \cdot \text {AssA}_\alpha }&\end{aligned}&\end{aligned}
HOTA α = ∣ TP ∣ + ∣ FN ∣ + ∣ FP ∣ ∑ c ∈ { TP } A ( c )
= DetA α ⋅ AssA α
HOTA分解为sub-metric
HOTA分解为detection和association
DetA
α
=
∣
TP
∣
∣
TP
∣
+
∣
FN
∣
+
∣
FP
∣
\begin{aligned}&\text {DetA}_\alpha = \frac{|\text {TP}|}{|\text {TP}| + |\text {FN}| + |\text {FP}|}&\end{aligned}
DetA α = ∣ TP ∣ + ∣ FN ∣ + ∣ FP ∣ ∣ TP ∣
AssA
α
=
1
∣
TP
∣
∑
c
∈
{
TP
}
A
(
c
)
\begin{aligned}&\text {AssA}_\alpha = \frac{1}{|\text {TP}|} \sum _{c \in \{\text {TP}\}} \mathcal {A}(c)&\end{aligned}
AssA α = ∣ TP ∣ 1 c ∈ { TP } ∑ A ( c )
A
(
c
)
=
∣
TPA
(
c
)
∣
∣
TPA
(
c
)
∣
+
∣
FNA
(
c
)
∣
+
∣
FPA
(
c
)
∣
\begin{aligned}&\mathcal {A}(c) = \frac{|\text {TPA}(c)|}{|\text {TPA}(c)| + |\text {FNA}(c)| + |\text {FPA}(c)|}&\end{aligned}
A ( c ) = ∣ TPA ( c ) ∣ + ∣ FNA ( c ) ∣ + ∣ FPA ( c ) ∣ ∣ TPA ( c ) ∣
detection分解为precision和recall
DetRe
α
=
∣
TP
∣
∣
TP
∣
+
∣
FN
∣
\begin{aligned} \text {DetRe}_\alpha&= \frac{|\text {TP}|}{|\text {TP}| + |\text {FN}| } \end{aligned}
DetRe α = ∣ TP ∣ + ∣ FN ∣ ∣ TP ∣
DetPr
α
=
∣
TP
∣
∣
TP
∣
+
∣
FP
∣
\begin{aligned} \text {DetPr}_\alpha&= \frac{|\text {TP}|}{|\text {TP}| + |\text {FP}| } \end{aligned}
DetPr α = ∣ TP ∣ + ∣ FP ∣ ∣ TP ∣
DetA
α
=
DetRe
α
⋅
DetPr
α
DetRe
α
+
DetPr
α
−
DetRe
α
.
DetPr
α
\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}
DetA α = DetRe α + DetPr α − DetRe α . DetPr α DetRe α ⋅ DetPr α
association分解为precision和recall
AssRe
α
=
1
∣
TP
∣
∑
c
∈
{
TP
}
∣
TPA
(
c
)
∣
∣
TPA
(
c
)
∣
+
∣
FNA
(
c
)
∣
\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}
AssRe α = ∣ TP ∣ 1 c ∈ { TP } ∑ ∣ TPA ( c ) ∣ + ∣ FNA ( c ) ∣ ∣ TPA ( c ) ∣
AssPr
α
=
1
∣
TP
∣
∑
c
∈
{
TP
}
∣
TPA
(
c
)
∣
∣
TPA
(
c
)
∣
+
∣
FPA
(
c
)
∣
\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}
AssPr α = ∣ TP ∣ 1 c ∈ { TP } ∑ ∣ TPA ( c ) ∣ + ∣ FPA ( c ) ∣ ∣ TPA ( c ) ∣
AssA
α
=
AssRe
α
⋅
AssPr
α
AssRe
α
+
AssPr
α
−
AssRe
α
⋅
AssPr
α
\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}
AssA α = AssRe α + AssPr α − AssRe α ⋅ AssPr α AssRe α ⋅ AssPr α
Reference
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)