目标检测mAP的计算 & COCO的评价指标

目标检测与深度学习

共 2689字,需浏览 6分钟

 ·

2021-09-20 21:49

点击左上方蓝字关注我们



一个专注于目标检测与深度学习知识分享的公众号

编者荐语
mAP是目标检测中常用的评价标准,尤其是在COCO数据集中,可以看到不同的mAP的评价指标,文章对这一系列指标做详细的解读,希望对大家的学习与使用有一定的帮助。
作者 | 记忆的迷谷@知乎
链接 | https://zhuanlan.zhihu.com/p/399837729

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



双一流大学研究生团队创建,专注于目标检测与深度学习,希望可以将分享变成一种习惯!

整理不易,点赞鼓励一下吧↓

浏览 228
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报
评论
图片
表情
推荐
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报