看完这篇就懂了。

IoU

intersect over union,中文:交并比。指目标预测框和真实框的交集和并集的比例。

mAP

mean average precision。是指每个类别的平均查准率的算术平均值。即先求出每个类别的平均查准率(AP),然后求这些类别的AP的算术平均值。其具体的计算方法有很多种,这里只介绍PASCAL VOC竞赛(voc2010之前)中采用的mAP计算方法,该方法也是yolov3模型采用的评估方法,yolov3项目中如此解释mAP,暂时看不明白可以先跳过,最后再回过头来看就能明白了。

比如我们现在要在一个给定的测试样本集中计算猫这个类别的AP,过程如下:
首先,AP要能概括P-R曲线的形状,其被定义为采用如下公式来计算:

那么,我们先来看看P-R曲线是什么:用蓝色笔迹遮住的部分不需要关注。

图中的曲线C就是一条P-R曲线,P表示纵轴的查准率precision,R表示横轴的召回率或称为查全率recall。P-R曲线下的面积可以用于评估该曲线对应的模型的能力,也就是说比较2个目标检测模型哪个更好,可以用P-R曲线面积来比较,面积越大模型越好。然而可能是因为这个面积并不好计算,所以定义了公式(1)来计算出一个叫AP的东西,反正这个东西也能体现出precision和recall对模型能力的综合影响。

从公式(2)可以知晓,Pinterpo(r)表示所有大于指定召回率r的召回率rhat所对应的的p的最大值。大于某个r的rhat有很多,我们要找到这些rhat中所对应的p是最大的那个,然后返回这个p。公式(1)中规定了r会从0-1.0以0.1为步长取11个值,然后将这11个r对应的11个p累加求算术平均值就得到了AP。所以我们要先得到一组rhat和p,这需要我们先了解recall和precision是如何计算的。

我们先来看看P(precision)和R(recall)的计算公式:
precision = TP / (TP+FP)
recall = TP / (TP+FN)

TP是检测对了的正样本,FP是检测错了的正样本,FN是漏检的正样本。

对于目标检测模型一般最后都会输出一个置信度(如果样本图片中有不止一个目标,本例中只选择猫类别的置信度即可),所以可以设置一个置信度阈值,比如0.6,那么高于0.6的就认为该样本被检测为了正样本(即检测为猫),这样我们会得到0.6阈值下的一组正样本。

然后在这组正样本的基础上,设定一个IoU的阈值,其值为0.5(意思是检测为猫的目标的预测边界框和真实边界框的交并比要大于0.5),大于该阈值的认为是TP,其它的认为是FP。然后用测试样本中真实的正样本数量减去TP,就得到了FN。

这样,在置信度阈值为0.6的情况下,我们就得到了一对P(precision)和R(recall),接着我们取不同的置信度阈值,得到更多的P-R对,然后根据公式(2)找到所有大于指定召回率r的召回率rhat所对应的的p的最大值(采用这种方法是为了保证P-R曲线是单调递减的,避免摇摆),作为当前指定召回率r条件下的最大查准率p,然后根据公式(1)计算出AP。这个AP就是猫这个类别的AP,接着我们可以计算其它类别的AP,然后对这些AP求算术平均值,就得到了mAP。

了解了mAP之后,我们就容易理解为什么目标检测模型的度量指标不能像图像分类模型那样直接计算一遍precision和recall,因为目标检测任务中会包含多个类别的目标,并且除了给目标分类,还要预测目标的边界框,所以要加入IoU的概念,并考虑多个类别,而mAP就是在考虑了IoU和多类别之后计算出的度量指标。

参考文献:

http://homepages.inf.ed.ac.uk/ckiw/postscript/ijcv_voc09.pdf
https://github.com/AlexeyAB/darknet

推荐阅读:

还再@微信官方要国旗?这才是正确的打开方式~

目标检测中常提到的IoU和mAP究竟是什么?的更多相关文章

  1. 目标检测中的IOU和CIOU原理讲解以及应用(附测试代码)

    上期讲解了目标检测中的三种数据增强的方法,这期我们讲讲目标检测中用来评估对象检测算法的IOU和CIOU的原理应用以及代码实现. 交并比IOU(Intersection over union) 在目标检 ...

  2. 目标检测算法(1)目标检测中的问题描述和R-CNN算法

    目标检测(object detection)是计算机视觉中非常具有挑战性的一项工作,一方面它是其他很多后续视觉任务的基础,另一方面目标检测不仅需要预测区域,还要进行分类,因此问题更加复杂.最近的5年使 ...

  3. 目标检测 1 : 目标检测中的Anchor详解

    咸鱼了半年,年底了,把这半年做的关于目标的检测的内容总结下. 本文主要有两部分: 目标检测中的边框表示 Anchor相关的问题,R-CNN,SSD,YOLO 中的anchor 目标检测中的边框表示 目 ...

  4. 【计算机视觉】目标检测中的指标衡量Recall与Precision

    [计算机视觉]目标检测中的指标衡量Recall与Precision 标签(空格分隔): [图像处理] 说明:目标检测性能指标Recall与Precision的理解. Recall与Precision ...

  5. 目标检测中的anchor-based 和anchor free

    目标检测中的anchor-based 和anchor free 1.  anchor-free 和 anchor-based 区别 深度学习目标检测通常都被建模成对一些候选区域进行分类和回归的问题.在 ...

  6. Adaboost原理及目标检测中的应用

    Adaboost原理及目标检测中的应用 whowhoha@outlook.com Adaboost原理 Adaboost(AdaptiveBoosting)是一种迭代算法,通过对训练集不断训练弱分类器 ...

  7. 目标检测中proposal的意义

    在目标检测中,从很早就有候选区域的说法,也是在2008年可能就有人使用这个方法,在2014年的卷积神经网络解决目标检测问题的文章中,这个候选框方法大放异彩,先前的目标检测方法主要集中在使用滑动窗口的方 ...

  8. 目标检测中的bounding box regression

    目标检测中的bounding box regression 理解:与传统算法的最大不同就是并不是去滑窗检测,而是生成了一些候选区域与GT做回归.

  9. 目标检测中特征融合技术(YOLO v4)(下)

    目标检测中特征融合技术(YOLO v4)(下) ASFF:自适应特征融合方式 ASFF来自论文:<Learning Spatial Fusion for Single-Shot Object D ...

随机推荐

  1. 讲解开源项目:功能强大的 JS 文件上传库

    本文作者:HelloGitHub-kalifun HelloGitHub 的<讲解开源项目>系列,项目地址:https://github.com/HelloGitHub-Team/Arti ...

  2. Shrio使用Jwt达到前后端分离

    概述 前后端分离之后,因为HTTP本身是无状态的,Session就没法用了.项目采用jwt的方案后,请求的主要流程如下:用户登录成功之后,服务端会创建一个jwt的token(jwt的这个token中记 ...

  3. DFS-递归入门

    [递归入门] 题目描述 已知 n 个整数b1,b2,-,bn 以及一个整数 k(k<n). 从 n 个整数中任选 k 个整数相加,可分别得到一系列的和. 例如当 n=4,k=3,4 个整数分别为 ...

  4. 【翻译】无需安装Python,就可以在.NET里调用Python库

    原文地址:https://henon.wordpress.com/2019/06/05/using-python-libraries-in-net-without-a-python-installat ...

  5. python 21 面向对象

    目录 1. 面向对象初步认识 2. 面向对象的结构 3. 从类名的角度研究类 3.1 类名操作类中的属性 3.2 类名调用类中的方法 4. 从对象的角度研究类 4.1 类名() 4.2 对象操作对象空 ...

  6. 使用Eclipse开发动态Javaweb项目

    使用Eclipse开发动态Javaweb项目 一.Eclipse的使用 1. 把开发选项切换到 JavaEE 2. 可以在 Window -> Show View 中找到 Package Exp ...

  7. JDBC之LOB数据类型

    JDBC之LOB数据类型 一.Oracle LOB LOB,即Large Objects(大对象),是用来存储大量的二进制和文本数据的一种数据类型(一个LOB字段可存储可多达4GB的数据). LOB ...

  8. HDU4348To the moon主席树,区间修改

    题意: 一个长度为n的数组,4种操作 : (1)C l r d:区间[l,r]中的数都加1,同时当前的时间戳加1 . (2)Q l r:查询当前时间戳区间[l,r]中所有数的和 . (3)H l r ...

  9. CodeForces 1083 E The Fair Nut and Rectangles 斜率优化DP

    The Fair Nut and Rectangles 题意:有n个矩形,然后你可以选择k个矩形,选择一个矩形需要支付代价 ai, 问 总面积- 总支付代价 最大能是多少, 保证没有矩形套矩形. 题解 ...

  10. 杭电多校第四场 Problem K. Expression in Memories 思维模拟

    Problem K. Expression in Memories Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 262144/262 ...