环境
- windows 10 64bit
Precision和Recall
先看下面的示意图
其中,黄色部分是系统返回的结果,绿色部分是所有对用户有用的结果。两者的重叠部分,叫做 TP
: True Positive
;而返回结果的剩余部分,叫做 FP
: False Positive
,这部分对用户来说是没有用的;而绿色部分剩下的,叫做 FN
: False Negative
,这部分本来是对用户有用的,但是系统却认为没用;最后剩下的灰色部分,叫做 TN
: True Negative
,就是真的没用的结果。
可以很容易看出, TRUE/FALSE
是从结果是否分对的角度来看的,而 Positive/Negative
表示 我们认为的 "是"还是"不是"。
由上面可知,Precision
的计算公式应是
Precision
表明系统识别出的结果中,有多少是正确的。
而Recall
的计算公式为
Recall
表明在所有正确的结果中,系统到底能够检出多少。
需要注意的是,Precision
和 Recall
是成对出现的,单独出现是没有意义的。比如一张图片中有10只猫,识别系统只检测出了一只猫,并且是正确的,那么 Precision
就是100%,但是 Recall
却很低,只有10%
下图就是我们经常会看到的 P-R
图
当 Recall
越来越大时,如果 Precision
仍处在一个较高的位置,就说明这是一个好的系统。
F1-Score
F1-Score
或叫 F1-Measure
就是精确值和召回率的调和均值, 也就是
调整下,就是
IoU
交并比 IoU(Intersection over Union)
衡量的是两个区域的重叠程度,是两个区域重叠部分面积占二者总面积(重叠部分只计算一次)的比例。如下图
需要注意的是,如果 IoU
为0.5,并不意味着每个框刚好有50%与另外一个框是交叉的,这个比例还要更高。
mAP
先来看 AP
,即 Average Precision
,平均精度,是 P-R
曲线下的面积,可以参考上面的 P-R
图,AP
值越大,效果越好。
mAP
是 mean Average Precision
的缩写,即每一类的 AP
的平均值,mAP
取值范围是0~1,越大越好,它是目标检测算法中最重要的评估指标之一。
经常看到的 mAP@0.5
,意思就是将 IoU
设为0.5时,计算 mAP
,而 mAP@.5:.95
即表示在不同的 IoU
阈值(从0.5到0.95,步长是0.05)上的 mAP
。