目标检测中常见检测指标的含义
最近在做多目标检测和目标定位感知相关的工作。之前一直用mAP来测算模型的表现,但是最近频繁接触MODA MODP,特此记录一下。
文章目录
1. Overlapping Ratio
这个叠度其实就是IoU,只不过在这篇文章里叫Overlapping Ratio。
O
v
e
r
l
a
p
p
i
n
g
R
a
t
i
o
=
∑
i
=
1
N
m
a
p
p
e
d
t
∣
G
i
(
t
)
∩
D
i
(
t
)
∣
∣
G
i
(
t
)
∪
D
i
(
t
)
∣
Overlapping\ Ratio =\sum_{i=1}^{N^t_{mapped}} \frac{|G_{i}^{(t)} \cap D_{i}^{(t)}|}{|G_{i}^{(t)} \cup D_{i}^{(t)}|}
Overlapping Ratio=i=1∑Nmappedt∣Gi(t)∪Di(t)∣∣Gi(t)∩Di(t)∣
公式与叠度的计算完全一样,不过多了一些角标。
G
i
(
t
)
G_{i}^{(t)}
Gi(t)代表的是第
t
t
t帧里面的第
i
i
i个物体的ground truth标签。同理
D
i
(
t
)
D_{i}^{(t)}
Di(t)代表检测的结果。
N
m
a
p
p
e
d
t
N^t_{mapped}
Nmappedt代表此帧一共检测出多少个物体。注意此处的Ratio实际上是对比率进行求和。
2. MODP(Multiple Object Detection Precision)
MODP的定义比较简单:
M
O
D
P
(
t
)
=
O
v
e
r
l
a
p
R
a
t
i
o
N
m
a
p
p
e
d
t
MODP(t) = \frac{Overlap\ Ratio}{N^t_{mapped}}
MODP(t)=NmappedtOverlap Ratio
刚刚说Overlap Ratio是求和,所以次数除以数量,可以理解为平均的与gt的叠度。如果
N
m
a
p
p
e
d
t
N^t_{mapped}
Nmappedt是0,也就是没有检测结果,那么MODP直接是0。
最后标准化的MODP的计算需要考虑到所有的帧,于是N(normalized)-MODP的定义就是:
N
−
M
O
D
P
=
Σ
t
=
1
N
f
r
a
m
e
s
M
O
D
P
(
t
)
N
f
r
a
m
e
s
N-MODP = \frac{\Sigma_{t=1}^{N_{frames}}MODP_{(t)}}{N_{frames}}
N−MODP=NframesΣt=1NframesMODP(t)
3. MODA(Multiple Object Detection Accuracy)
首先上公式:
M
O
D
A
(
t
)
=
1
−
c
m
(
m
t
)
+
c
f
(
f
p
t
)
N
G
t
MODA(t) = 1 - \frac{c_{m}(m_{t}) + c_{f}(fp_{t})}{N_{G}^{t}}
MODA(t)=1−NGtcm(mt)+cf(fpt)
t
t
t表示第几帧,
m
t
m_{t}
mt表示第
t
t
t帧里的漏检的数量(missed detect,就是没有检测出来的),
f
p
t
fp_{t}
fpt表示false positive,也就是假阳性的数量(false alarm,多检测出来的)。
c
(
m
)
c(m)
c(m)代表自定义的missed detect(漏检)的损失函数,
c
f
c_{f}
cf代表自定义的false alarm的损失函数。
N
G
t
N_{G}^{t}
NGt代表在第
t
t
t帧里ground truth物体的数量。
与MODP类似,MODA的标准化定义为:
N
−
M
O
D
A
=
1
−
Σ
i
=
1
N
f
r
a
m
e
s
(
c
m
(
m
i
)
+
c
f
(
f
p
i
)
)
Σ
i
=
1
N
f
r
a
m
e
s
N
G
i
N-MODA = 1 - \frac{\Sigma_{i=1}^{N_{frames}}(c_{m}(m_{i}) + c_{f}(fp_{i}))}{\Sigma_{i=1}^{N_{frames}}N_{G}^{i}}
N−MODA=1−Σi=1NframesNGiΣi=1Nframes(cm(mi)+cf(fpi))
图a就是false alarm(虚警、假阳性)的例子,图b是miss detect(漏检)的例子。
4. 目标检测中的Precision、Accuracy的一些反思
发现之前自己做项目的时候都是很浅显的把Precision和Accuracy当做目标检测的指标,却也从来没想过到底合不合理,看来还是自己之前想的太幼稚了。
其实感觉Precison和Accuracy主要用作目标分类,因为这两个及其相关其他指标都是用TP FP TN FN来计算的,而这些都是物体分类相关的数值,并不能直接表示检测框的准确度(虽然分类的准确度很大程度上依赖于目标框的位置准确度)。于是MODA,MODP这两个指标应运而生,完全用来检测目标框的准确与否。这也是为什么现在看AP已经不够了,一些曾经优秀、经典的算法其实MODP,MODA都不高。