目标检测模型的评价指标(Acc, Precision, Recall, AP, mAP, RoI)

对于一个目标检测模型的好坏,总的来说可以从以下三个方面来评估:

  • 分类的精度如何。一般可以用准确度(Accuracy),精度(Precision),召回率(Recall Rate), PR 曲线,AP,mAP等
  • 定位的精度如何。比如 IoU
  • 运行的速度如何。比如 fps,一秒处理几张图。

严格说某些场合也会很在意模型的大小,这也是一个研究方向,比如 squeeze net, mobile net, shuffle net 等。所以除了上面三个维度,模型的大小也可以是一个评价维度。

1.基础知识

由于有些指标是统计指标,所以我们先回顾一下相关的统计学知识。
我们在做假设检验的时候会犯两种错误。

  • 第一,原假设是正确的,而你判断它为错误的;
  • 第二,原假设是错误的,而你判断它为正确的。

我们分别称这两种错误为第一类错误和第二类错误。也许不是很清晰,直接看下面的图(图片来自知乎)就一目了然了。

对于上面的两张图,我们的原假设是没有怀孕。对于第一张图,原假设是对的,但是却判断它为错误的。对于第二张图,原假设是错误的,但是却判断它为正确的。

这个问题如果放到混淆矩阵里面就更清楚了。

真实值(label)\ 预测值 正例 反例
正例 TP FN
反例 FP TN

2. 准确度(Accuracy, Acc)

准确度是所有预测中预测正确的比例。

A c c = T P + T N T P + F N + F P + F N Acc = \frac{TP + TN}{TP + FN + FP + FN} Acc=TP+FN+FP+FNTP+TN​

3. 精确率(Precision)

精确率是指在所有检测出的目标中检测正确的概率。

P r e c i s i o n = T P T P + F P Precision = \frac{TP}{TP + FP} Precision=TP+FPTP​

精确率是从预测的结果的角度来定义。精确率又称为查准率。需要注意的是, Precision 和 Accuracy 是不一样的,Accuracy 针对所有样本,而 Precision 仅针对检测出来(包括误检)的那一部分样本。

4. 召回率(Recall)

召回率是指所有的正样本中正确识别的概率。

R e c a l l = T P T P + F N Recall = \frac{TP}{TP + FN} Recall=TP+FNTP​

召回率是从样本的角度出发的。召回率又称查全率。

也可以参考下面这这一幅图。

5. AP(Average Precision)

查准率和查全率是一对矛盾的度量,一般而言,查准率高时,查全率往往偏低;而查全率高时,查准率往往偏低。我们从直观理解确实如此:我们如果希望好瓜尽可能多地选出来,则可以通过增加选瓜的数量来实现,如果将所有瓜都选上了,那么所有好瓜也必然被选上,但是这样查准率就会越低;若希望选出的瓜中好瓜的比例尽可能高,则只选最有把握的瓜,但这样难免会漏掉不少好瓜,导致查全率较低。通常只有在一些简单任务中,才可能使查全率和查准率都很高。所以为了更全面的衡量模型的性能提出了 AP。
在看 AP 之前先来看看 PR 曲线(Precision Recall Curve),即横轴为 Recall,竖轴为 Precision。

而 AP 表示的是检测器在各个 Recall 情况下的平均值,对应的就是 PR 曲线下的面积(AUC, Area Under Curve)。

从离散的角度来说 AP 可以表达如下式。

A P = ∑ P r i ∑ r AP = \frac{\sum{P_{r_i}}}{\sum{r}} AP=∑r∑Pri​​​
其中 P r i P_{r_i} Pri​​ 表示 PR 曲线上 r − i r-i r−i 所对应的 P P P 值, 而 ∑ r = 1 \sum{r} = 1 ∑r=1。

显然 AP 是针对某一个类别来说的,比如 马这一个单一类别。

6. mAP

AP 是针对单个类别的识别器,而 mAP 是从类别的维度对 AP 进行平均,因此可以评价多分类器的性能。

m A P = A P n u m _ c l a s s e s mAP = \frac{AP}{num\_classes} mAP=num_classesAP​

mAP的大小一定在[0,1]区间,越大越好。该指标是目标检测算法中最重要的一个。

6.1 VOC mAP

VOC mAP 是我们常看到的一种 mAP 计算方式。上面说的是理论上的 mAP 的定义,但是在实际计算中,由于 PR 曲线并不是单调递减的,而是抖动的,所以对进行“平滑”操作。由于 VOC 在 2010 年更新了“平滑”的方式,所以这里说的是 2010 之后的计算方式。

在 IoU = 0.5 的情况下,针对每一个不同的 Recall 值(包括0和1),选取其大于等于这些 Recall 值时的 Precision 最大值,然后计算 PR 曲线下面积作为 AP 值,从而计算 mAP。结合下面表格就更清晰了。

6.2 COCO mAP

跟 VOC mAP 类似,只是 COCO 数据集会统计不同 IoU 下的 mAP, 比如 0.5, 0.75, 0.95 等。

7. IoU(Intersection over Union)

IoU 计算的是 “预测的边框” 和 “真实的边框” 的交集和并集的比值。下面这幅图就可以很清晰的表达出 IoU 的概念了。

参考文献

目标检测 — 评价指标
目标检测之 IoU
模型评估常用指标

目标检测模型的评价指标(Acc, Precision, Recall, AP, mAP, RoI)相关推荐

  1. 目标检测相关概念:IOU,precision, recall, AP, mAP

    1.IOU(交并比) IOU,交并比,顾名思义,就是预测框bounding box与真实框ground truth的交集比上并集.可以用来衡量检测物体位置的偏差.形象点可以看下图(用画图软件所画): ...

  2. 目标检测模型的评价指标 mAP

    在使用机器学习解决实际问题时,通常有很多模型可用.每个模型都有自己的怪癖(quirks),并且基于各种因素,性能会有所不同. 模型性能的评定都是在某个数据集上进行的,通常这个数据集被称为 " ...

  3. 深度学习目标检测模型测试评价指标的选取及介绍

    文章目录 测试指标的选取 一. 精度评价指标 1. MAP(平均准确度均值) 1.1 mAP定义及相关概念 1.2 mAP的具体计算 2. 准确率 (Accuracy) 3. 混淆矩阵 (Confus ...

  4. 目标检测模型常用评价指标-(AP、mAP)

    AP Average Precision平均精准率 = (某一个类别)每个样本的精确率求和/样本总数N. 1N∑i=1m(precisioni)\frac1N\sum_{i = 1} ^m(preci ...

  5. 『论文阅读笔记』目标检测模型中的性能评价方式-IOU、precision/recall、mAP、PR、Fps!

    目标检测模型中的性能评估标准-IOU.precision/recall.mAP.PR.Fps! 文章目录 一.交并比IOU 二.精确率(precision)和召回率(recall) 三.P-R(pre ...

  6. 综合评价模型的缺点_【必备】目标检测中的评价指标有哪些?

    在人工智能领域,机器学习的效果需要用各种指标来评价.当一个目标检测模型建立好了之后,即模型训练已经完成,我们就可以利用这个模型进行分类识别.那么该如何去评价这个模型的性能呢? 上期我们一起学习了全卷积 ...

  7. 分类和目标检测的性能评价指标【转载】

    文章目录 1. mAP (mean Avearage Precision) 2. FLOPs (浮点运算数) 3. 模型参数大小 对于深度学习的网络模型,希望其 速度快, 内存小, 精度高.因此需要量 ...

  8. 双向特征融合的数据自适应SAR图像舰船目标检测模型

    双向特征融合的数据自适应SAR图像舰船目标检测模型 人工智能技术与咨询 昨天 本文来自<中国图象图形学报>,作者张筱晗等 摘要: 利用合成孔径雷达(synthetic aperture r ...

  9. 目标检测算法的评价指标

    目标检测算法的评价指标 0 不同比赛中的指标 1 基础概念 1.1 Intersection over Union (IoU) 1.2 Predictions: TP - FP - FN - TN 1 ...

最新文章

  1. 利用逆矩阵解线性方程组_QR方法求解矩阵所有特征值(一)
  2. python英语字典程序-python如何制作英文字典
  3. RabbitMQ发布确认原理
  4. 解决安卓模拟器没有网络的问题,刚开的做RN的我遇见这个问题真很头疼,所以希望看到我这篇文章能够解决。
  5. java培训第一阶段测试总结,达内学员Java培训阶段总结:反躬自省,愈渐完美
  6. iOS多线程编程的知识梳理
  7. EXCEL 2010学习笔记—— 动态图表
  8. Windows7 64位系统搭建Cocos2d-x 2.2.1最新版以及Android交叉编译环境(具体教程)
  9. xpath定位相邻元素方法
  10. 苹果电脑如何双开微信
  11. flatten(扁平化)数组
  12. Minecraft基岩版电脑端游戏按键整合
  13. Axure教程(中级):网易云音乐听歌识曲效果模仿
  14. CES Asia:足不出户也能享受天文奇观
  15. 搜索引擎优化技巧解读
  16. 口布杯花的60种叠法_杯花折叠方法
  17. 解决CSS3瀑布流、多列布局时内容被截断、错乱
  18. Faker生成测试数据
  19. Unity预制体生成几秒后消失
  20. 北京2022年最后一次快开始了,准备好了吗?

热门文章

  1. Python入门实战系列文章
  2. vue 项目如何读取本地json文件数据
  3. 云计算基础:云基础设施机制包括哪些主要构件?云存储设备的存储等级和使用的主要存储接口
  4. python网络爬虫技术-基于Python的网络爬虫技术综述
  5. freeswitch实现监听_Freeswitch监听功能--单向监听
  6. 由于docker pull image失败,导致k8s pod卡在ContainerCreating状态
  7. 浅谈“软件质量”与“技术债”
  8. Java实现代码计时功能(Spring计时工具类--StopWatch学习总结)
  9. python minidom生成的xml对象转字符串方法
  10. 从智能电视开始,PPTV与Letv全线开战?