多目标跟踪评价指标——MOTA、IDF1、HOTA等
首先了解一下MOT challenge的评价指标,这些指标都是MOT任务比较常用且流行的指标:
MOTA
首先需要了解的是:
- fragmentation是在第t帧当中发生的ID分配错误(ID switch)。也就是说,如果在ground truth第j个轨迹的第t帧之前,跟踪器(tracker)把该轨迹的ID都预测正确了,但是第t+1帧预测错误了,那么ID switch的个数+1,值得注意的是,即使第t+1帧之后跟踪器仍然把该轨迹的ID预测错误了,但是错误的ID为同一个,那么ID switch个数不会增加。举个直观一点的例子,假设周杰伦在第1帧的时候走入镜头,在第100帧的时候走出镜头,跟踪器的boungding box一直能够跟上,但是在第50帧的时候把周杰伦识别成了彭于晏,那么这100帧内ID switch的个数为1。假设第t帧中ID switch的个数为 ϕ t \phi_t ϕt,那么所有帧的个数为 Φ = ∑ t ϕ t \Phi=\sum_t \phi_t Φ=∑tϕt。
- false positive f p t f_{p_t} fpt指的是在第t帧中,跟踪器检测到了的bounding box但是在ground truth中却不存在bounding box的个数。
- false negative f n t f_{n_t} fnt指的是在第t帧中,跟踪器漏检了的bounding box但是在ground truth中存在bounding box的个数。
- true positive t p t t_{p_t} tpt指的是在第t帧中,跟踪器和ground truth同时都有的bounding box。
- 大写的 T P , F P , F N TP,FP,FN TP,FP,FN就是true positive, false positive, false negative在所有帧中的总和**(注意,只考虑bounding box,没有考虑bounding box的ID,也就是说,只要框住了就算TP,ID错了也算TP)**。
M O T A = 1 − F N + F P + Φ T \mathrm{MOTA}=1-\frac{FN+FP+\Phi}{T} MOTA=1−TFN+FP+Φ
其中T指的是ground truth中bounding box的数量。可以看出,MOTA其实是对FN、FP、 Φ \Phi Φ进行了惩罚,然后又利用T进行正则。
IDF1
I D P = I D T P I D T P + I D F P I D R = I D T P I D T P + I D F N I D F 1 = 2 I D T P 2 I D T P + I D F P + I D F N \begin{aligned} I D P &=\frac{I D T P}{I D T P+I D F P} \\ I D R &=\frac{I D T P}{I D T P+I D F N} \\ I D F_{1} &=\frac{2 I D T P}{2 I D T P+I D F P+I D F N} \end{aligned} IDPIDRIDF1=IDTP+IDFPIDTP=IDTP+IDFNIDTP=2IDTP+IDFP+IDFN2IDTP
I
D
P
IDP
IDP其实就是ID+Precision,在模式识别中:
P
r
e
c
i
s
i
o
n
=
T
P
T
P
+
F
P
Precision=\frac{TP}{TP+FP}
Precision=TP+FPTP
这里的 I D P IDP IDP其实就是把每个ID当作单独的一类去计算Precision,同理, I D R IDR IDR则对应ID+Recall, I D F 1 IDF_1 IDF1则对应ID+F1 score, I D F 1 IDF_1 IDF1本质上没有什么实际物理含义,只是对 I D P IDP IDP和 I D R IDR IDR的一个调和平均。
HOTA
首先, T P , F P , F N TP,FP,FN TP,FP,FN的概念和MOTA中的一样,都是只考虑检测框的前提下统计的。
然后明确几个新的概念(可能有点绕,可以多读几遍):
- T P A ( c ) \mathrm TPA(c) TPA(c) True Positive Association:对于给定的 T P TP TP集合中,预测的ID和ground truch的ID都为c的情况即为 T P A ( c ) \mathrm TPA(c) TPA(c),也就是说,只是把bounding box和ID都考虑进去了。
- F N A ( c ) \mathrm FNA(c) FNA(c) False Negative Association:对于给定的 T P TP TP集合中(注意,仍是TP),ground truth的ID为c,但是预测的ID不为c的情况,以及 F N FN FN集合中,ground truch的ID为c的情况即为 F N A ( c ) \mathrm FNA(c) FNA(c)。
- F P A ( c ) \mathrm FPA(c) FPA(c) False Positive Associations:对于给定的 T P TP TP集合中(注意,仍是TP),预测的ID为c,但是ground truth的ID不为c的情况,以及 F P FP FP集合中,预测的ID为c的情况即为 F P A ( c ) \mathrm FPA(c) FPA(c)。
下面这张图片来自原论文,较为清楚地解释了以上概念:
知道了上面的概念之后,在阈值为
α
\alpha
α(可以是IoU也可以是距离)的情况下:
H
O
T
A
α
=
∑
c
∈
{
T
P
}
A
(
c
)
∣
T
P
∣
+
∣
F
N
∣
+
∣
F
P
∣
\mathrm{HOTA}_{\alpha}=\sqrt{\frac{\sum_{c \in\{\mathrm{TP}\}} \mathcal{A}(c)}{|\mathrm{TP}|+|\mathrm{FN}|+|\mathrm{FP}|}}
HOTAα=∣TP∣+∣FN∣+∣FP∣∑c∈{TP}A(c)
其中:
A
(
c
)
=
∣
TPA
(
c
)
∣
∣
TPA
(
c
)
∣
+
∣
FNA
(
c
)
∣
+
∣
FPA
(
c
)
∣
\mathcal{A}(c)=\frac{|\operatorname{TPA}(c)|}{|\operatorname{TPA}(c)|+|\operatorname{FNA}(c)|+|\operatorname{FPA}(c)|}
A(c)=∣TPA(c)∣+∣FNA(c)∣+∣FPA(c)∣∣TPA(c)∣
考虑不同的阈值
α
\alpha
α:
H
O
T
A
=
∫
0
1
H
O
T
A
α
d
α
≈
1
19
∑
α
∈
{
0.05
,
0.1
,
…
}
0.9
,
0.95
H
O
T
A
α
\mathrm{HOTA}=\int_{0}^{1} \mathrm{HOTA}_{\alpha} d \alpha \approx \frac{1}{19} \sum_{\substack{\alpha \in\{0.05,0.1, \ldots\} \\ 0.9,0.95}} \mathrm{HOTA}_{\alpha}
HOTA=∫01HOTAαdα≈191α∈{0.05,0.1,…}0.9,0.95∑HOTAα
除此之外,原论文还提出了一下其他的评价指标,用来衡量tracker更加具体的方面:
LocA
=
∫
0
1
1
∣
T
P
α
∣
∑
c
∈
{
T
P
α
}
S
(
c
)
d
α
\operatorname{LocA}=\int_{0}^{1} \frac{1}{\left|\mathrm{TP}_{\alpha}\right|} \sum_{c \in\left\{\mathrm{TP}_{\alpha}\right\}} \mathcal{S}(c) d \alpha
LocA=∫01∣TPα∣1c∈{TPα}∑S(c)dα
T
P
α
\mathrm{TP}_{\alpha}
TPα指的是在(IoU或者距离)阈值为
α
\alpha
α的情况下的
T
P
TP
TP数量,
S
(
c
)
\mathcal{S}(c)
S(c)指的是所有
T
P
TP
TP实际的IoU或距离。
DetA
α
=
∣
T
P
∣
∣
T
P
∣
+
∣
F
N
∣
+
∣
F
P
∣
AssA
α
=
1
∣
T
P
∣
∑
c
∈
{
T
P
}
A
(
c
)
DetRe
α
=
∣
T
P
∣
∣
T
P
∣
+
∣
F
N
∣
DetPr
α
=
∣
T
P
∣
∣
T
P
∣
+
∣
F
P
∣
Det
α
=
Det
Re
α
⋅
Det
Pr
α
Det
Re
α
+
DetPr
α
−
DetRe
α
⋅
DetPr
α
AssRe
α
=
1
∣
TP
∣
∑
c
∈
{
T
P
}
∣
TPA
(
c
)
∣
∣
TPA
(
c
)
∣
+
∣
FNA
(
c
)
∣
AssPr
α
=
1
∣
T
P
∣
∑
c
∈
{
T
P
}
∣
T
P
A
(
c
)
∣
∣
T
P
A
(
c
)
∣
+
∣
F
P
A
(
c
)
∣
Ass
α
=
AssRe
ess
α
⋅
Ass
α
AssRe
α
+
AssPr
α
−
AssRe
α
⋅
Ass
2
Pr
α
\begin{aligned} &\operatorname{DetA}_{\alpha}=\frac{|\mathrm{TP}|}{|\mathrm{TP}|+|\mathrm{FN}|+|\mathrm{FP}|}\\ &\operatorname{AssA}_{\alpha}=\frac{1}{|\mathrm{TP}|} \sum_{c \in\{\mathrm{TP}\}} \mathcal{A}(c)\\ &\operatorname{DetRe}_{\alpha}=\frac{|\mathrm{TP}|}{|\mathrm{TP}|+|\mathrm{FN}|}\\ &\operatorname{DetPr}_{\alpha}=\frac{|\mathrm{TP}|}{|\mathrm{TP}|+|\mathrm{FP}|}\\ &\operatorname{Det}_{\alpha}=\frac{\operatorname{Det} \operatorname{Re}_{\alpha} \cdot \operatorname{Det} \operatorname{Pr}_{\alpha}}{\operatorname{Det} \operatorname{Re}_{\alpha}+\operatorname{DetPr}_{\alpha}-\operatorname{DetRe}_{\alpha} \cdot \operatorname{DetPr}_{\alpha}}\\ &\operatorname{AssRe}_{\alpha}=\frac{1}{|\operatorname{TP}|} \sum_{c \in\{\mathrm{TP}\}} \frac{|\operatorname{TPA}(c)|}{|\operatorname{TPA}(c)|+|\operatorname{FNA}(c)|}\\ &\operatorname{AssPr}_{\alpha}=\frac{1}{|\mathrm{TP}|} \sum_{c \in\{\mathrm{TP}\}} \frac{|\mathrm{TPA}(c)|}{|\mathrm{TPA}(c)|+|\mathrm{FPA}(c)|}\\ &\operatorname{Ass}_{\alpha}=\frac{\operatorname{AssRe} \operatorname{ess}_{\alpha} \cdot \operatorname{Ass}_{\alpha}}{\operatorname{AssRe}_{\alpha}+\operatorname{AssPr}_{\alpha}-\operatorname{AssRe}_{\alpha} \cdot \operatorname{Ass}^{2} \operatorname{Pr}_{\alpha}} \end{aligned}
DetAα=∣TP∣+∣FN∣+∣FP∣∣TP∣AssAα=∣TP∣1c∈{TP}∑A(c)DetReα=∣TP∣+∣FN∣∣TP∣DetPrα=∣TP∣+∣FP∣∣TP∣Detα=DetReα+DetPrα−DetReα⋅DetPrαDetReα⋅DetPrαAssReα=∣TP∣1c∈{TP}∑∣TPA(c)∣+∣FNA(c)∣∣TPA(c)∣AssPrα=∣TP∣1c∈{TP}∑∣TPA(c)∣+∣FPA(c)∣∣TPA(c)∣Assα=AssReα+AssPrα−AssReα⋅Ass2PrαAssReessα⋅Assα
如果要计算以上指标去掉下角标
α
\alpha
α的话,和MOTA类似,对不同的
α
\alpha
α积分即可:
X
X
X
=
∫
0
1
X
X
X
α
d
α
≈
1
19
∑
α
∈
{
0.05
,
0.1
,
…
}
0.9
,
0.95
X
X
X
α
\mathrm{XXX}=\int_{0}^{1} \mathrm{XXX}_{\alpha} d \alpha \approx \frac{1}{19} \sum_{\substack{\alpha \in\{0.05,0.1, \ldots\} \\ 0.9,0.95}} \mathrm{XXX}_{\alpha}
XXX=∫01XXXαdα≈191α∈{0.05,0.1,…}0.9,0.95∑XXXα