mAP,不认识英文单词的可以看一哈:
P:Precision,精度
AP:Average Precision,平均精度
mAP:mean Average Precision,平均精度均值
开个玩笑,下面就进行具体介绍一下,Show Time~
一、TP、TN、FP、FN
前情提要:
IoU:intersection over union,交并比,计算方法也是字面意思。“交”——预测框和ground-truth的交集,也就是二者的重叠区域。“并”——预测框和ground-truth的并集,也就是二者所包含的总和区域。而 IoU 交并比,指的就是“交”与“并”的比,也就是 重叠区域 和 总和区域 的 比值。
IoUthreshold:设置的IoU阈值。
正式开始:
TP:True Positives,指的是被分配为正样本,而且分配对了的样本,代表的是被正确分类的正样本,IoU > IoUthreshold 的检测框数量(同一Ground Truth只计算一次)。
TN:True Negatives,指的是被分配为负样本,而且分配对了的样本,代表的是被正确分类的负样本,在mAP评价指标中不会使用到。
FP:False Positives,指的是被分配为正样本,但分配错了的样本,代表的是被错误分类的负样本,IoU <= IoUthreshold 的检测框,或者是检测到同一个GT的多余检测框的数量。
FN:False Negatives,指的是被分配为负样本,但分配错了的样本,代表的是被错误分类的正样本,没有检测到的GT的数量。
便于记忆:True、False指的是分配对、错;Positive、Negative指的是将样本分配为正样本、负样本。
混淆矩阵:Confusion Matrix,将TP、TN、FP、FN这四个指标一起呈现在表格中,就能得到如下这样一个矩阵,我们称它为混淆矩阵。
混淆矩阵 | 正负 | ||
Positive | Negative | ||
对错 | True | TP | TN |
False | FP | FN |
二、Precision、Recall
Precision:准确率,又叫查准率,Precision=TP/(TP+FP)=TP/预测框总数,指在所有确实为正的样本中,被预测为正样本的占比。
Recall:召回率,又叫查全率,Recall=TP/(TP+FN)=TP/GT框数量,指在所有被预测为正的样本中,确实是正样本的占比。
PR曲线:Precision-Recall曲线,以Precision为横坐标,Recall为纵坐标,即可得到PR曲线。
三、mAP(mean Average Precision)
使用mAP综合衡量检测效果,单看Precision和Recall是不行的,因为Precision和Recall是成反比的关系,所以使用AP来作为一个均衡的评价指标。
AP:Average Precision,平均精度,对于目标检测的任务,每一个类都可以计算出其Precision和Recall,通过合理的计算,每个类都可以得到一条PR曲线,曲线下的面积就是AP的值,用来衡量对一个类检测的好坏。
mAP:mean Average Precision, 即所有类别AP的平均值,衡量多类别目标检测的好坏。
四、PASCAL VOC、MS COCO
不同的数据集/竞赛可能有不同的评估指标,最常用的是PASCAL VOC和MS COCO。
PASCAL VOC:
1、要计算mAP必须先绘出各类别PR曲线,计算出AP。而如何采样PR曲线,VOC采用过两种不同方法。
(1)在VOC2010以前,例如VOC2007,选取当Recall >= 0, [0.1, 0.2, …, 1],共11个点时的Precision最大值,然后AP就是这11个Precision的平均值。
(2)在VOC2010及以后,例如VOC2012,针对每一个不同的Recall值(包括0和1),选取其大于等于这些Recall值时的Precision最大值,然后计算PR曲线下面积作为AP值,即PR曲线下的面积(AUC)。
2、mAP就是计算完每个类的AP值之后,求平均即可。
COCO:
在VOC中,IoU的阈值固定为0.5。而在COCO中,是指定一个阈值范围[.5:.05:.95],即从 0.5 到 0.95 逐步递增 0.05 共10个IoU阈值,它计算这个范围中每个IoU阈值的mAP,然后再求平均得到最终的mAP,实际上是mmAP。(注:在COCO中这个最终的mAP也可简写为AP)
另外,与VOC不同的是,COCO中使用101点法(Recall范围[0:.01:1] )来计算AP。
AP50:即IOU阈值为0.5时的mAP。