中文博客:
https://blog.csdn.net/zdh2010xyz/article/details/54293298
https://blog.csdn.net/hysteric314/article/details/54093734?tdsourcetag=s_pctim_aiomsg
英文博客(可能要墙):
https://towardsdatascience.com/evaluating-performance-of-an-object-detection-model-137a349c517b
https://medium.com/@jonathan_hui/map-mean-average-precision-for-object-detection-45c121a31173
https://medium.com/@timothycarlen/understanding-the-map-evaluation-metric-for-object-detection-a07fe6962cf3

看完上面,其实IOU,AP基本也就理解了(可能不全,各位多搜搜,多理解),但将两者结合后,带入目标检测任务中,小白就表示无法理解了-_-||。
然后去看了别人计算的源码,算是有点理解:
https://gist.github.com/tarlen5/008809c3decf19313de216b9208f3734
这个源码挺好的,自带数据(json格式),写的也不会太难理解,适合我这种想要提升的小白。

以下观点不一定正确,但是我觉得合理,有错欢迎指正。

首先强调一些概念,这里假设目标检测任务是单类别:
【1】分类任务中,一个图片对应一个标签和一个预测。而目标检测任务,一个图片对应有m个标签(bbox)和n个预测(score+bbox)。一个图片可能就没有目标m=0,也可能模型啥都没有预测出来n=0。
【2】标签就一个bbox,因为是单类别。 bbox是一个四个数值(x1,y1,x2,y2)。
【3】预测的每个bbox还对应这一个score,表示这个框是否为目标的一个概率
【4】如下图,TP,FN,FP可计算,但TN不可计算。原因是标签的bbox和预测的bbox都只表示图像中哪个位置是目标物体,除此之外的都是非目标物体。这样的话TN就有无穷多个。

【5】TP,FN,FP如何计算?

  • 若某个标签bbox与某个预测bbox的IOU大于IOU_T(一个阈值,比如70%),则TP+=1
  • 如果没有任何预测的bbox与某个标签bbox的IOU大于IOU_T,说明这个正例bbox未被预测出,则FN+=1
  • 如果没有任何标签的bbox与某个预测bbox的IOU大于IOU_T,说明这个预测的正例是假的,则FP+=1

【6】再在上述基础上套上score,算P_R曲线,再算AP。这里就直接上例子吧。

对于某张图片
标签,就2个bbox:

id bbox
0 [480, 457, 515, 529]
1 [637, 435, 676, 536]

预测,有6个bbox和6个score(已经按照score排序):

id score bbox
0 0.972 [641, 439, 670, 532]
1 0.9113 [484, 455, 514, 519]
2 0.8505 [649, 479, 670, 531]
3 0.2452 [357, 458, 382, 485]
4 0.1618 [468, 435, 520, 521]
5 0.1342 [336, 463, 362, 496]

IOU>70%的bbox只有标签的id=0的[480, 457, 515, 529]和预测的id=1的 [484, 455, 514, 519]
那么我么按照ap的计算流程,先是把score的分界线画在第一个:

TP FP FN precison recall
0 1 2 0 0

把score的分界线画在第二个:

TP FP FN precison recall
1 1 1 0.5 0.5

把score的分界线画在第三个:

TP FP FN precison recall
1 2 1 0.33 0.5

把score的分界线画在第四个:

TP FP FN precison recall
1 3 1 0.25 0.5

把score的分界线画在第五个:

TP FP FN precison recall
1 4 1 0.2 0.5

把score的分界线画在第六个:

TP FP FN precison recall
1 5 1 0.16 0.5

然后我们求11点AP70
recall 取11个点 = [0,0.1,0.2,0.3,0.4,0.5,0.6,0.7,0.8,0.9,1]
对应的precision的11个点 =[0.5,0.5,0.5,0.5,0.5,0.5,0,0,0,0,0]
(这里为什么都是0.5,各位可以查一查11点AP的算法)
AP70 = 0.5+0.5+0.5+0.5+0.5+0.5+0+0+0+0+0+0/11 = 0.27

这个例子有点极端,P-R曲线也很难看,P的取值也居然都是0.5。
不过就是我理解的AP70的求法,也就是IOU_T设置到70%

-----分割线-------------------------------------
按上面套路可以在求一求AP50
那么首先符合IOU>50%的bbox为:
标签的id=0的[480, 457, 515, 529]和预测的id=1的 [484, 455, 514, 519]
标签的id=1的 [637, 435, 676, 536]和预测的id=0的 [641, 439, 670, 532]
按AP流程计算,这里我就不列举表格了,是程序输出:

'true_pos': 1, 'false_pos': 0, 'false_neg': 1
'true_pos': 2, 'false_pos': 0, 'false_neg': 0
'true_pos': 2, 'false_pos': 1, 'false_neg': 0
'true_pos': 2, 'false_pos': 2, 'false_neg': 0
'true_pos': 2, 'false_pos': 3, 'false_neg': 0
'true_pos': 2, 'false_pos': 4, 'false_neg': 0
precision = [1,1,0.66,0.5,0.4,0.3]
recall = [0.5,1,1,1,1,1]

最后计算11点AP50
AP50 = 1+1+1+1+1+1+1+1+1+1+1 /11 = 1
好吧,又是一个极端的例子。

-----分割线-------------------------------------
那么COCO中说的AP是AP[.50:.05:.95],也就是IOU_T设置为0.5,0.55,0.60,0.65……0.95,算十个APx,然后再求平均,得到的就是AP。
因为COCO还是多类别,所以再对类别求平均就是mAP,但是COCO统一为了AP

下面是官网介绍:
http://cocodataset.org/#detection-eval

理解COCO的评价指标:AP,AP50,AP70,mAP,AP[.50:.05:.95]相关推荐

  1. 目标检测指标AP50,mAP理解_简单好用

    1.以mAP@50为例 m是不同类别AP50的均值 AP50的定义:(50的含义是iou阈值 为0.5) 已知: 所有测试集图片中某一类目标, 有m个标签真实框(框坐标):n 个预测宽(置信度+框坐标 ...

  2. 深入理解搜索引擎——搜索评价指标

    搜索引擎,在做好query理解.索引召回以及排序模型之后,就能直接推上线了吗?答案是否定的,还需对其性能和质量进行评测.性能无非是对时间和空间的运行效率作评测,不细讲,今天讲讲搜索引擎的质量评测.通过 ...

  3. 信息检索的评价指标(Precision, Recall, F-score, MAP)

    转载自: 信息检索的评价指标(Precision, Recall, F-score, MAP) - 小村长技术blog - 博客频道 - CSDN.NET http://blog.csdn.net/l ...

  4. #今日论文推荐# ResNet50上天 | DDQ改进Sparse RCNN让ResNet50在coco上来到了49.8的AP

    #今日论文推荐# ResNet50上天 | DDQ改进Sparse RCNN让ResNet50在coco上来到了49.8的AP 在 DETR 出现之后,端到端的目标检测得到了迅速的发展.DETR 使用 ...

  5. mAP@0.5与mAP@0.5:0.95的含义,YOLO

    mAP@0.5:mean Average Precision(IoU=0.5) 即将IoU设为0.5时,计算每一类的所有图片的AP,然后所有类别求平均,即mAP 如图所示,AP50,AP60,AP70 ...

  6. AP学科介绍|AP艺术与设计(2D/3D艺术与设计、绘画)

    关于AP课程 AP课程让数百万学生在高中的时候就能学习大学程度课程, AP考试在每年五月举行,在AP考试中分数合格的学生通常可以获取大学学分,进入大学后免修对应的基础课程,或两者皆可. AP课程和考试 ...

  7. ap cs java_AP计算机科学(AP CS)考试介绍

    新东方在线AP频道为大家带来AP计算机科学考试介绍一文,希望对大家AP备考有所帮助.更多精彩尽请关注新东方在线AP频道! --AP CS是什么? AP CS是AP课程体系中的"AP Comp ...

  8. 【深度学习】目标检测的性能评价指标,mAP_0.5,mAP_0.5,0.95,0.05

    指标 指标有检测精度和检测速度之分: mAP mAP是一个容易混淆的概念.计算mAP之前先考虑我们有的数值:图片原label的bbox.模型预测的bbox.模型预测的bbox的置信度.模型预测的bbo ...

  9. ap计算机科学原则,无线AP选型设计原则详解

    前天我们了解了无线AP的组网及模式,有朋友问到,如何根据应用场景选择合适的AP,今天我们就一起了解无线AP的设计原则. 无线布点原则(总则): 类型:普通/密集.空旷.室内/室外/室内过墙 室内-普通 ...

最新文章

  1. CVPR2020 | 为尾部样本构造特征云,就像用电子云填充空旷的原子——长尾数据上的特征学习方法...
  2. 解决pycharm问题:module ‘pip‘ has no attribute ‘main‘
  3. spss分析qpcr数据_SPSS 数据分析,掌握这 6 大模块就够了!
  4. 【NLP】自然语言处理专栏上线,带你一步一步走进“人工智能技术皇冠上的明珠”。...
  5. PHP判断文章是否有图片,利用PHP判断文件是否为图片的方法总结
  6. boost::distance用法的测试程序
  7. 平流式初沉池贮砂斗计算_除磷药剂如何投加效果最好?投加量如何计算?
  8. pythonos模块使用方法_python os模块使用方法
  9. poj 2914(stoer_wanger算法求全局最小割)
  10. mysql 自身参照自身_MySQL入门
  11. Hadoop学习笔记(一)从官网下载安装包
  12. 如何选择开源许可证?
  13. Windows 10修改环境变量方法
  14. history(路由控制)
  15. Java有关数组例题_Java基础——数组例题二维数组
  16. 大学计算机基础word操作2018,大学计算机基础试题及答案2017
  17. 滴滴涨价背后:市值缩水40亿美元,高峰期无人接单?
  18. 【Python】利用Python对招聘信息数据分析
  19. 绕坐标轴以及任意轴的旋转矩阵的推导
  20. CVPR 2019 | 「识面知心」——基于自监督学习的微表情特征表达

热门文章

  1. Spring Boot面试必问:自动配置原理
  2. 2022年值得购买的拍照手机推荐 这五款出片率极强
  3. 日期转换--接收日期与数据库存储不兼容问题时间段查询
  4. linux aux是什么命令,linux命令ps aux|grep xxx详解
  5. 正大国际期货主账户:什么是外盘
  6. 网络数据安全法解读第三篇
  7. 水电站下泄生态流量监控解决方案-智能监测生态流量遥测终端-水电站流量监测站
  8. Node.js 微服务实践:基于容器的一站式命令行工具链
  9. 编程语言的学习路线通论
  10. 【Unity Shader编程】之十五 屏幕高斯模糊(Gaussian Blur)后期特效的实现