深度学习-目标检测评估指标P-R曲线、AP、mAP
基本概念
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的平均值。
参考:https://blog.csdn.net/zdh2010xyz/article/details/54293298
深度学习-目标检测评估指标P-R曲线、AP、mAP相关推荐
- 如何绘制深度学习-目标检测评估指标P-R(precision-recall)曲线?如何计算AP(average-precision)?
参考文章:深度学习-目标检测评估指标P-R曲线.AP.mAP 文章目录 P-R曲线: AP计算: 下面通过具体例子说明. 首先用训练好的模型得到所有测试样本的confidence score,每一类( ...
- 【深度学习】——模型评估指标MAP计算实例计算
目录 一.知识储备 1.IOU--交集面积与并集面积之比 2.混淆矩阵(TP.FP.FN.TN) 问题1:上面的TP等具体是如何计算得到的? 3.精度precision&召回率recall 二 ...
- 深度学习目标检测中计算目标的AP(average precision)平均精度、有什么用?
AP衡量的是学出来的模型在每个类别上的好坏,mAP衡量的是学出的模型在所有类别上的好坏,得到AP后mAP的计算就变得很简单了,就是取所有AP的平均值. 参考文章:深度学习-目标检测评估指标P-R曲线. ...
- <计算机视觉 六> 深度学习目标检测模型的评估标准
鼠标点击下载 项目源代码免费下载地址 <计算机视觉一> 使用标定工具标定自己的目标检测 <计算机视觉二> labelme标定的数据转换成yolo训练格式 <计算机 ...
- 深度学习目标检测方法综述
参考:https://blog.csdn.net/Standing_On_Giant/article/details/60333329 参考:https://blog.csdn.net/xiaohu2 ...
- (二十六)深度学习目标检测:Fast-RCNN
Fast-RCNN RCNN存在的问题: 1.一张图像上有大量的重叠框,所以这些候选框送入神经网络时候,提取特征会有冗余! 2.训练的空间需求大.因为RCNN中,独立的分类器和回归器需要很多的特征作为 ...
- 深度学习目标检测详细解析以及Mask R-CNN示例
深度学习目标检测详细解析以及Mask R-CNN示例 本文详细介绍了R-CNN走到端到端模型的Faster R-CNN的进化流程,以及典型的示例算法Mask R-CNN模型.算法如何变得更快,更强! ...
- 值得收藏!基于激光雷达数据的深度学习目标检测方法大合集(下)
作者 | 黄浴 来源 | 转载自知乎专栏自动驾驶的挑战和发展 [导读]在近日发布的<值得收藏!基于激光雷达数据的深度学习目标检测方法大合集(上)>一文中,作者介绍了一部分各大公司和机构基于 ...
- 深度学习目标检测指南:如何过滤不感兴趣的分类及添加新分类?
编译 | 庞佳 责编 | Leo 出品 | AI 科技大本营(公众号ID:rgznai100) AI 科技大本营按:本文编译自 Adrian Rosebrock 发表在 PyImageSearch 上 ...
最新文章
- [转]网上收集的Html颜色代码全集
- linux下安装navicat并生成桌面图标
- 遍历DOM元素的children属性遇到的坑
- y7000p内存是一个16还是8+8_16层蜜瓜蛋糕,每日限量8件,只卖一个夏天!
- php 是面向对象编程,PHP面向对象编程快速入门
- php 慢日志,php-fpm慢执行日志
- Android5.1蓝牙电话分析及demo
- 理解Android Framework
- 6.7. exists, not exists
- visual studio设置背景颜色为眼睛保护色
- Franz Mandl, Graham Shaw《Quantum Field Theory (2nd)》(弗兰兹·曼德尔, 格雷厄姆·肖《量子场论(第二版)》)中文目录
- 阿里云国际站实名认证上传材料填写样例(域名持有者为组织)
- SVAC-Intra-Prei 代码分析(帧内预测最佳预测角度的选择)
- matlab常见符号运算(计算导数,积分、符号求和等))
- BIOS学习:BIOS设置图解教程
- 高级JavaScript第(五)篇
- 读A Fast Single Image Haze Removal Algorithm Using Color Attenuation Prior
- xampp+phpstorm使用xdebug
- Python 告警 UserWarning: .python-egg is writable by group/others 解决方案
- python3-百度和360的Request-Headers
热门文章
- 大型民族管弦音乐会《玄奘西行》奏响美国新泽西
- 智慧工业:RFID智能资产管理,RFID资产管理高效,便捷-新导智能
- 如何制作计算机启动盘,电脑该如何制作一个启动U盘
- 美国队长的工资 python代码-用Python绘制美国队长盾牌
- 充电灯 低电灯共用一个 LED
- 产品经理和项目经理的区别是什么? 来看看你适合做哪个PM?
- 如何一次获取多个Word文档的页数
- 数学分析 多元函数微分学(第17章)
- 只需1分钟,快速在无人机航测成果数据上提取“高程点”
- 从数字孪生到未来AR基础架构——AR Cloud是把双刃剑吗?