目标检测之mAP

经常在论文上看到的mAP到底是什么呢

mAP是在一个数据集上得到的,用来作为衡量一个模型的性能,在一个公共的目标价检测数据集上,不同的目标检测方法得到不同的mAP,以此来比较方法的好坏。在数据集中,物体类别的数量分布不均,从而导致模型在训练的时候有些类别(具有良好训练数据的类)训练的很好,而有的(具有较少和不良数据的类)则训练的比较差,导致最终得到的mAP值不是很理想,所以平衡数据集对于mAP来说很重要。

一些概念的介绍

1.正负样本

对于正负样本的定义,分类和检测有不同的标准。
对于分类问题:
在这里插入图片描述

  1. 正样本:如果上图所示,对人和周围的物体进行分类,人(人工标注的框框)就是正样本。
  2. 负样本:在上图中,负样本就可以是电视、风扇、墙。负样本的选取,不能与处理问题的环境毫无关系的背景图,这样的选取毫无意义。

对于检测问题:

  1. 正样本和负样本:检测问题里面的正样本并不是那些人工标注的框框,而是由网络生成的框框,也就是anchor boxes,在这些anchor boxes中选择一部分作为正样本,一部分作为负样本,还有一些不参与运算。在不同的框架里面有不同的决定策略,大多都是根据IoU的阈值范围来决定的,同时取值的时候还要均衡正负样本的比例。

2.TP FP TN FN

在这里插入图片描述

在上图的右边,红色的框代表的是ground truth,黄色的框代表的是预测框, 黄色的框代表的是预测框。在这个图片的左上角,有一个黄色的框,这里本来没有人,但是却生成了一个框,这就是FP,错误生成的预测框,在左下角这个地方,本来有个人,但是却没有检测到,这个就是漏检的FN,右边的这个既有gt也有预测框的就是TP
(1)TP 代表的是被正确分类的正样本
(2)TN 代表的是被正确分类的负样本
(3)FP 代表的是 本来是负样本但是却被分成了正样本
(4)FN 代表的是本来是正样本,但是却被分成了负样本

3.IoU

IoU是一个简单的几何度量,在不同的数据集中IoU的阈值设定不同,在VOC中阈值通常设定为0.5,而在COCO数据集中则设置了一系列的阈值[0.5:0.05:0.95]。如上图所示,在gt和预测框相交的地方,也就是图中的绿色区域,这是他们的交集,并集就是两个矩形的面积相加再减去交集。
在这里插入图片描述

计算mAP的步骤

第一步 计算IoU

根据上面的公式计算出IoU,根据IOU来确定一个检测结果(positive)是True还是False,对于VOC数据集这个阈值通常设定为0.5,最后保留IoU最大的那个预测框。

第二步 计算TP FP FN 的数量

如果IOU大于0.5则设定为TP,否则设定为FP(在COCO数据集中会不一样)。对于FN的计算,则是看漏检的物体数量。

第三步 对每个预测得到的检测框进行排序

对模型的预测结果,每个预测结果(TP 和FP)都会包含[x, y, w, h, confidence, 类别], 跟据置信度进行排序,分成不同的等级。

第四步 计算Precision和Recall

在这里插入图片描述
根据上面得到的TP FP FN 来求取precision(精度) 和 recall(召回率), 其中TP + FN 就相当于就是ground truth的数量。Precision的分母表达的是最终预测为某一类的总数,这两个公式都是表达的是某一类的计算。注意:在计算recall的时候, 分母的TP + FN 是一直不变的,就是ground truth 的总数。排序前一共检测到5个TP, 在 排序之后, 若第一次检测到的TP数量为1,FP = 0, 若有2个未检测到的ground truth, 则 Precision = (1)/ (1 + 0)= 1, Recall = 1 / (5 + 2)=0.14

第五步 绘制P—R曲线 计算AP

在这里插入图片描述
这里就只举一个类的AP来计算,而实际中,每个类的AP都要计算一次,但是方法都是相同的。在计算AP的时候,由于之前已经排过序,所以最终在图上会呈现如上图所示的递减趋势,计算出每一个矩形的面积,然后再相加,A1 + A2 + A3 + A4 = AP,一个类的AP就计算完毕。

第六步 计算mAP

mAP的计算,是每一个类的AP的和相加,然后再除以总的类,求得的一个平均数。比如如果这个数据集有三个类, 每个类的AP分别为 0.6 , 0.7, 0.8 , 则mAP = (0.7 + 0.8 + 0.7)/ 3 = 0.73

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值