基本概念

P-R曲线中,P为图中precision,即精准度,R为图中recall,即召回率。

Example

下面通过具体例子说明。

首先用训练好的模型得到所有测试样本的confidence  score,每一类(如car)的confidence   score保存到一个文件中(如comp1_cls_test_car.txt)。假设共有20个测试样本,每个的id,confidence  score和ground  truth  label如下:​​

ground  truth  label通过预测的bbox与ground  truth的iou确定为正样本或负样本。

接下来对confidence  score排序,得到:

P-R曲线:

我们得到top-5的结果,前score最高的前5个样本,预测label为1,即:

此例中采用top-5评估,也可采用其他评估,如AP50,即当预测框与真实框的IoU值大于这个阈值时,该预测框才被认定为真阳性(True Positive, TP),反之就是假阳性(False Positive,FP)。

在这个例子中,true   positives就是指第4和第2张图片,false   positives就是指第13,19,6张图片。是相对于方框内的元素而言,在这个例子中,confidence   score排在top-5之外的元素为false   negatives和true  negatives,即:

其中,false   negatives是指第9,16,7,20张图片,true   negatives是指第1,18,5,15,10,17,12,14,8,11,3张图片。

那么,这个例子中Precision=2/5=40%,意思是对于car这一类别,我们选定了5个样本,其中正确的有2个,即准确率为40%;Recall=2/6=30%,意思是在所有测试样本中,共有6个car,但是因为我们只召回了2个,所以召回率为30%。此时为下图中第5个样本点。同理图中第一个样本点:P=1,R=1/6,第二个样本点,考虑前两个样本,P=1,R=2/6=1/3。。。

这个例子的precision-recall曲线如下:

实际多类别分类任务中,我们通常不满足只通过top-5来衡量一个模型的好坏,而是需要知道从top-1到top-N(N是所有测试样本个数,本文中为20)对应的precision和recall。显然随着我们选定的样本越来也多,recall一定会越来越高,而precision整体上会呈下降趋势。把recall当成横坐标,precision当成纵坐标,即可得到常用的precision-recall曲线。

AP计算:

接下来说说AP的计算,此处参考的是PASCAL  VOC  CHALLENGE的2010年之前计算方法。首先设定一组阈值,[0, 0.1, 0.2, …, 1]。然后对于recall大于每一个阈值(比如recall>0.3),我们都会得到一个对应的最大precision。这样,我们就计算出了11个precision。AP即为这11个precision的平均值。这种方法英文叫做11-point interpolated average precision。​

当然PASCAL VOC CHALLENGE自2010年后就换了另一种计算方法。新的计算方法假设这N个样本中有M个正例,那么我们会得到M个recall值(1/M, 2/M, ..., M/M),对于每个recall值r,我们可以计算出对应(r' >= r)的最大precision,然后对这M个precision值取平均即得到最后的AP值。计算方法如下:​

相应的Precision-Recall曲线(这条曲线是单调递减的)如下:​

AP衡量的是学出来的模型在每个类别上的好坏,mAP衡量的是学出的模型在所有类别上的好坏,得到AP后mAP的计算就变得很简单了,就是取所有AP的平均值。

目标检测 AP计算 (回顾)相关推荐

  1. 深度学习目标检测中计算目标的AP(average precision)平均精度、有什么用?

    AP衡量的是学出来的模型在每个类别上的好坏,mAP衡量的是学出的模型在所有类别上的好坏,得到AP后mAP的计算就变得很简单了,就是取所有AP的平均值. 参考文章:深度学习-目标检测评估指标P-R曲线. ...

  2. 深度学习目标检测——AP以及MAP

    AP计算概述 知道了AP 的定义,下一步就是理解AP计算的实现,理论上可以通过积分来计算AP,公式如下: A P = ∫ 0 1 P ( r ) d r AP=\int_0^1 P(r) dr AP= ...

  3. 目标检测AP、mAP计算方法

    关于AP和mAP的定义可以参考以下链接: 参考:https://blog.csdn.net/qq_35916487/article/details/89076570 参考:https://zhuanl ...

  4. 目标检测mAP计算详解

    首先说明计算mAP有多个版本,每个数据集和比赛用的版本和方式也不同,下以VOC与COCO举例说明.精确度(precision),召回率(recall)分别为: 常规的mAP计算为(这是一个N类检测任务 ...

  5. 深度学习和目标检测系列教程 19-300:关于目标检测AP、IoU和mAP简介

    @Author:Runsen R-CNN 和YOLO等对象检测模型,使用了平均精度 (mAP).mAP 将真实边界框与检测到的框进行比较并返回分数.分数越高,模型的检测就越准确. Precision ...

  6. 目标检测计算mAP,AP,Recall,Precision的计算方式和代码(YOLO和FastRCNN等)

    目标检测中计算mAP是较为复杂的,并不是很多讲解中说的那个计算precision和recall,然后总的ground truth 目标和检测出的真实目标做除法就可以了.而是需要构建precision和 ...

  7. 目标检测算法回顾之传统算法

    传统的目标检测算法 总体回顾 基于特征 基于分割 一般流程 经典算法 Harr+Adaboost 流程 Harr特征 Adaboost算法 HOG + SVM 概述 方法 HOG特征的优缺点 DPM ...

  8. 干货 | 目标检测入门,看这篇就够了(上)

    作者 | 李家丞( 同济大学数学系本科在读,现格灵深瞳算法部实习生) 近年来,深度学习模型逐渐取代传统机器视觉方法而成为目标检测领域的主流算法,本系列文章将回顾早期的经典工作,并对较新的趋势做一个全景 ...

  9. YOLO系列目标检测算法-YOLOv7

    YOLO系列目标检测算法目录 - 文章链接 YOLO系列目标检测算法总结对比- 文章链接 YOLOv1- 文章链接 YOLOv2- 文章链接 YOLOv3- 文章链接 YOLOv4- 文章链接 Sca ...

最新文章

  1. WPF加载相对路径的图片的解决方法
  2. java md5运算_java实现计算MD5
  3. 确保线程安全下使用Queue的Enqueue和Dequeue
  4. codeforces1481 E. Sorting Books(贪心+dp)
  5. 第二十九天-ssh服务重要知识深入浅出讲解
  6. 软件开发中的资源控制问题学习
  7. SpringBoot2.0之二 新建RESTfull风格项目
  8. js中src赋值理解
  9. Java泛型通配符T,E,K,V
  10. win10激活bug 任务栏假死点击无反应解决方案
  11. 作战管理系统:现代化作战体系核心
  12. matlab自带滤波器,matlab自带滤波器函数
  13. 解析几何----向量的线性表示等和线定理成等差数列
  14. 计算机软件著作权登记证书
  15. 解决RuntimeException: Parcel android.os.Parcel@*: Unmarshalling unknown type code * at offset * 异常
  16. java学生成绩管理系统类图,学生成绩管理系统的分析及设计-应用UML建模
  17. linux部署jia包常用命令
  18. lisp 图元 天正 自定义_AutoLISP查询图元信息
  19. 突变点检测:Pettitt突变点检测(python)
  20. 【Qt作业】利用帧动画实现运动的小人

热门文章

  1. 【数据结构】哈希表——线性探测法、链地址法、查找成功、查找不成功的平均长度
  2. 电脑翻译软件-大家都觉得好用的免费电脑翻译软件
  3. 数学对于人类意味着什么
  4. 微信公众平台开发[3] —— 微信公众号支付功能(PHP)
  5. 珍惜那些在背后默默为你付出的人
  6. 关于Spring体系的各种启动流程
  7. 用 SQL 做数据分析的十大常用功能,附面试原题解答!!
  8. 苹果屏蔽更新描述文件_屏蔽描述文件失效!iOS13屏蔽系统更新方法推荐
  9. 安装完Ubuntu 18.04之后要做的几件事
  10. 怎么画计算机系统时空图,计算机系统结构中流水线的时空图怎么画