写在前面
目标检测的论文中常常会出现mAP的指标,那到底是则么计算的,在下面进行简单叙述。
目标检测中的常见指标:
TP(True Positive):IoU>0.5的检测框的数量(同一Ground Truth只能计算一次)
FP(False Positive):IoU<=0.5的检测框(或者是检测到同一GT的多余检测框的数量)
FN(False Negative):没有检测到的GT的数量
Precision:TP/(TP+FP) 模型预测的所有目标中,预测正确的比例
Recall: TP/(TP+FN) 所有真实目标中,模型预测正确的目标比例
AP:P-R曲线下面积
P-R曲线:Precision-Recall曲线
mAP:mean Average Precision,即各类别AP的平均值
举个例子:
如下面三张图,绿色为ground truth 框, 红色为predict 框并显示了类别和 confidece数值。在表中IOU表示,predict框和ground truth框的重合度,如果重合度(iou)大于50%则填写为true否则填写为False,且每个被检索的对象只有一次匹配机会,取较大的值,第二个及之后有大于50%的重合度的也填写为False。最后列表按照confidence降序排列。
GT ID | Confidence | OB(IOU=0.5) |
1 | 0.98 | True |
3 | 0.89 | True |
6 | 0.88 | True |
7 | 0.78 | True |
3 | 0.66 | False |
1 | 0.61 | False |
4 | 0.52 | True |
根据公式
Precision:TP/(TP+FP) 模型预测的所有目标中,预测正确的比例
Recall: TP/(TP+FN) 所有真实目标中,模型预测正确的目标比例
逐级调低confidence的数值进行计算,举例计算第一第二行
- 第一行
因为只有一个检测正确的框,无误检测框,所以TP=1;FP=0;总共有7个Object,只检测到一个所以漏了6个,FN=6。
TP/(TP+FP)=1/(1+0)=1=Precision
TP/(TP+FN)=1/(1+6)=0.14=Recall
- 第二行
因为有两个个检测正确的框,无误检测框,所以TP=2;FP=0;总共有7个Object,只检测到一个所以漏了5个,FN=5。
TP/(TP+FP)=2/(2+0)=1=Precision
TP/(TP+FN)=2/(2+5)=0.28=Recall
相同recall,取precision较大的,所以可以去掉第五第六行。
Rank | Precision | Recall |
1 | 1.0 | 0.14 |
2 | 1.0 | 0.28 |
3 | 1.0 | 0.42 |
4 | 1.0 | 0.57 |
|
|
|
|
|
|
7 | 0.71 | 0.71 |
Ap的值为下面p-r 图像的面积,
Ap=S(p-r curve)=0.6694
注:通常来说AP是在单个类别下的,mAP是AP值在所有类别下的均值。在这里,在coco的语境下AP便是mAP,这里的AP已经计算了所有类别下的平均值,这里的AP便是mAP。
其他coco数据下评估的标准:
简单解释
- 第一组
右上角的代表上面表格中OB中IOU的阈值,IOU越高对检测框和GT框的重合度要求越高
- 第二组
对检测物体大小的不同分类
- 第三组
每张图片给的检测框数目,然后求取召回率。给的框越多,召回率越高。
- 第四组
对检测物体不同尺度的分类