目标检测mAP的计算 & COCO的评价指标
共 2689字,需浏览 6分钟
·
2021-09-20 21:49
点击左上方蓝字关注我们
map的计算
首先,要引入三个概念:
TP(True positive): IOU>0.5的检测框个数(注意:每个GT box只能计算一次) FP(False positive): IOU <= 0.5的检测框的个数(或是检测到同一个GT box的多余检测框的数量) FN(False negative):没有检测到的GT box的数量
举个例子,上图有两只猫,绿色的框分别代表两个GT box真实框,红色的代表预测框。比较大的红框因为大于0.5的IOU阈值,所以是TP,比较小的红框因为值小于0.5,所以是FP。另外右下角的小猫没有被检测到,属于漏检,也就是FN。
(注意:【图中的0.9和0.3代表类别的置信度,不是IOU】
再来介绍两个评价指标:
Precision(查准率):TP/(TP + FP),代表模型预测的所有目标中,预测正确目标的占比。
如图,一张图有5只猫,但是我们只有一个阈值大于0.5的红框,也就是TP = 1,因为没有其他阈值小于0.5的框,所以FP=0. Pricision = 1 /(1+0) = 1 ,也就是100%查准率。但是能说这个网络的效果很好吗?显然不能,因为其他四只猫都没有被识别出来,因此就引入了查全率。
Recall(查全率): TP/(TP+FN),代表所有真实目标中,模型预测正确目标的比例。
我们再看这张图:图中有5只猫,但是有很多红色框框出现在图中。首先看TP:5个GT box都有红框正确预测到(虽然IOU>0.5的红框不止一个,但每个GT box只算一次),再看FN:图中没有漏检的物体,所以FP = 0 。Recall = 5/(5+0) = 1 ,也就是100%的查全率,但图中乱七八糟的杂框显然效果不好,简单通过Recall率,来评价检测质量也不合理。
所以,我们又引入了两个指标:
AP:precision - Recall 曲线的面积
mAP:各类别AP的平均值
举一个例子具体算IOU和mAP:
如上图,有两只猫,每只猫分别有一个绿色的GT box,两个红色的box代表预测框。因为有两个目标,所以设置num_obj = 2。
接下来,我们用表格描述图中预测框的信息:表格有两行数据,按照第二列类别置信度(0.98和0.61降序排序),第一列代表属于哪个类别,第三列代表IOU是否大于0.5(注意,不是图片里面的0.98和0.61的置信度,这里用的是IOU评价指标)。
接下来,我们再输入一张图片,包括一个目标,所以num_obj=2+1 = 3,图中又包含两个红色预测框,我们把它按照类别置信度排序,继续加入表格:
图中两个预测框都属于第三个类别,所以GT ID=3,中间红框的IOU>0.5所以为True,右边的红框IOU小于0.5所以是False。
我们输入第三张图片:图片中包括四个绿色的GT box框(ID分别为4~7),有三个红色的预测框,其中id为5的猫猫没有对应的预测框。
最左边的红框类别置信度(0.52)最低,加入表格的最后一行。ID为6和7的猫猫对应预测框也分别加入表格中。因为这三个框IOU都大于0.5,所以都设置为True.0.5,
我们从以下几种不同的指标(方法同VOC2010)分别计算Precision和Recall:
1.假设confidence >= 0.9才算正确匹配,观察表格,只有第一行满足匹配条件,因此TP = 1, FP = 0(根据匹配条件,只检测到一个图片,而且是正确的,所以不存在误检),FN=6(7个目标,找出来1个,漏检6个)。Precision = 1 / (1+0) = 1,Recall = 1 /(1 + 6) = 0.14 。
2.假设conficende >= 0.89算是正确匹配,观察表格,前两行满足条件,TP=2, FP=0, FN=5, Precision = 2/(2+0) = 1。Recall = 2 / (2+5) = 0.28。
以此类推,假设confidence >= 0.5是正确匹配,所有的行都满足条件,此时TP = 5, FP = 2,FN = 2(ID为2和5的猫漏检)。Precision = 5/(5+2) = 0.71。Recall = 5 / (5+2) = 0.71。
将上述的步骤计算出的Precision和Recall列成左表所示。对于横坐标Recall而言,需要滤除重复信息,也就是对下图的0.57的Recall有三行,只保留Precision最大的一行,其他两行不计算。
将上图的5个点绘图,图中的阴影部分的面积就是上面说的AP。具体计算如下:AP=(0.14-0)*1 + (0.28-0.14)*1+(0.42-0.28)*1 + (0.57-0.42)*1 +(0.71-0.57)*0.71 = 0.67。所以猫这个类别的AP就是0.67,同样,把所有类别的AP值计算出来,取平均,我们就得到了mAP.
COCO评价指标
首先看第一部分的AP:
AP代表 IOU从0.5到0.95,间隔0.05计算一次mAP, 取平均mAP即为最终结果。
AP0.5和AP0.75则分别代表IOU为0.5和0.75的mAP值
第二部分 : AP Across Scales:
代表小、中、大三个类别的mAP,将面积小于32^2像素点的归为小目标,面积大于96^2的归为大目标,介于二者之间的为中等目标。计算不同目标的mAP。
第三部分:AR
代表查全率。三组分别代表每张图片限定检测1、10、100个目标能够得到相应的Recall的值。
第四部分:AR Across Scales
代表对应不同尺度的Recall值。
END
整理不易,点赞鼓励一下吧↓