YOLO [email protected][email protected]:0.95的含义

时间:2023-02-20 11:48:13浏览次数:58  
标签:mAP 预测 IoU 0.5 AP 0.95

YOLO [email protected][email protected]:0.95的含义

[email protected]:mean Average Precision(IoU=0.5)
即将IoU设为0.5时,计算每一类的所有图片的AP,然后所有类别求平均,即mAP
image

如图所示,AP50,AP60,AP70……等等指的是取detector的IoU阈值大于0.5,大于0.6,大于0.7……等等。数值越高,即阈值越大,精度越低。

[email protected]:.95(mAP@[.5:.95])
表示在不同IoU阈值(从0.5到0.95,步长0.05)(0.5、0.55、0.6、0.65、0.7、0.75、0.8、0.85、0.9、0.95)上的平均mAP。

如何衡量目标检测算法的优劣

目标检测(object detection)问题相对于一般AI分类问题更加复杂,不仅检测出目标,输出目标的类别,还要定位出目标的位置。分类问题中的简单accuray指标已经不能反映出目标检测问题结果的准确度,而mAP (Mean Average Precision)就是被用来衡量目标检测算法优劣的常用指标。

要理解什么是mAP,需要先澄清什么是Precision(查准率)和Recall(查全率)。

定义
查准率和查全率是在信息检索、Web搜索等应用中经常出现的性能度量指标,在机器学习中,也可以用来度量“预测结果中有多少比例是用户感兴趣的”。对于二分类问题,可将样例根据其真实类别与预测类别的组合划分为:

TP、TN、FP、FN

TP (True Positive): 真正例。Positive指预测输出为正,True代表预测正确。

TN (True Negative): 真反例。预测输出为负,而且预测正确。

FP (False Positive): 假正例。预测输出为正,但是预测错误。

FN (False Negative): 假反例。预测输出为负,但是预测错误。

Precision(查准率): 所有预测为正例的结果中,预测正确的比率。

Recall (查全率):所有正例中被正确预测的比率。

如何计算:

目标检测问题中,算法通常输出一个预测框(bounding box)来标识检出目标的位置,要衡量这个预测框与目标的实际位置(ground truth)的准确度,可以使用IoU指标。

交并比IoU(Intersection over union)

交并比IoU衡量的是两个区域的重叠程度,是两个区域重叠部分面积占二者总面积(重叠部分只计算一次)的比例。

目标检测中IoU就是预测框与实际框的交集除以并集。

我们可以设置一个阈值(threshold),通常是0.5,预测结果可以分为:

如果IoU >= 0.5

如果预测类别也正确,认为是一个好的预测,分类为TP

如果预测类别错误,认为是一个坏的预测,分类为FP

如果IoU < 0.5, 认为是一个坏的预测,分类为FP

如果一个目标出现在图像中,但是算法未检出,分类为FN

TN(图像上所有不包含实际框和检测框的部分)通常计算中用不到。

查全率和查准率通常是一对矛盾的度量,一般来说,查准率高时,查全率往往偏低;而查全率高时,查准率往往偏低。

我们如果把所有预测结果对样例进行排序,排在前面的是“最可能”的正例样本,以查准率为纵轴、查全率为横轴作图,得到一条”P-R曲线”。

P-R曲线直观的显示出一个算法在样本总体上的查全率、查准率情况。如果一个算法的P-R曲线被另一个算法的曲线完全包住,则可断言后者优于前者。但是实际中,经常不同算法的P-R曲线是互相交叉的,这时就很难直观判断出两者的优劣。这时通常会考察平衡点(BEP)、F1度量、AP等指标。

AP

AP(average precision 平均精度): AP是计算单类别的模型平均准确度。对于目标检测任务,每一个类都可以计算出其Precision和Recall,每个类都可以得到一条P-R曲线,曲线下的面积就是AP的值。如果一个算法的AP值较大,也就是P-R曲线下的面积比较大,可以认为此算法查准率和查全率整体上相对

mAP

mAP(mean of Average Precision) : 对所有类别的AP值求平均值。

Pascal VOC(VOC2007 & VOC2012)是评测目标检测算法的常用数据集,VOC数据集使用一个固定的IoU阈值0.5来计算AP值。 但是在2014年之后,MS-COCO(Microsoft Common Objects)数据集逐渐兴起。 在COCO数据集中,更关注预测框位置的准确性,AP值是针对多个IoU阈值的AP平均值,具体的就是在0.5 和0.95之间取10个IoU阈值(0.5、0.55、0.6 ..... 0.9、0.95)。所以VOC数据集中mAP通常标记为mAP @ IoU=0.5, [email protected] 或者 mAP_50,在COCO 数据集中册标记为 mAP @ IoU=0.5:0.05:0.95, mAP @ IoU=0.5:0.95 或者 mAP@[0.5:0.95].

FLOPS 注意全部大写 是floating point of per second的缩写,意指每秒浮点运算次数。用来衡量硬件的性能。

FLOPs 是floating point of operations的缩写,是浮点运算次数,可以用来衡量算法/模型复杂度。

参考:
[email protected][email protected]:0.95的含义,YOLO
链接:https://blog.csdn.net/ruyingcai666666/article/details/109670567

ap 目标检测算法map_目标检测中的mAP
链接:https://blog.csdn.net/weixin_42350506/article/details/111955705

标签:mAP,预测,IoU,0.5,AP,0.95
From: https://www.cnblogs.com/michaelcjl/p/17136746.html

相关文章

  • Map
      介绍ES6提供了Map数据结构。它类似于对象,也是键值对的集合。但是“键的范围不限于字符串,各种类型的值(包括对象)都可以当作键。Map也实现了iterator接口......
  • BaseMapperX
    packagecn.iocoder.yudao.framework.mybatis.core.mapper;importcn.iocoder.yudao.framework.common.pojo.PageParam;importcn.iocoder.yudao.framework.common.poj......
  • 对Map排序
     一下代码为给一个hashMap的key排序,value排序一样处理 publicstaticList<Map.Entry<String,Integer>>sortHashMapInteger(HashMap<String,Integer>map,finalStrin......
  • Golang基础-Maps
    常见用法varagesmap[string]int//只声明不初始化是nil,赋值会panic:assignmenttoentryinnilmapfmt.Println(ages==nil)//"true"fmt.Println(len(ag......
  • STM32的内存管理相关(内存架构,内存管理,map文件分析)
    flash内存的和RAM中不同,RAM放databass;falsh中textdata——因此数据和代码是分开存储的为哈弗结构,而x86RAM较大,可以同时存下所以是冯诺依曼STM32的内存管理相关(内存......
  • Go语言sync.Map(在并发环境中使用的map)
    Go语言中的map在并发情况下,只读是线程安全的,同时读写是线程不安全的。 下面来看下并发情况下读写map时会出现的问题,代码如下://创建一个int到int的映射m:=make(......
  • SQLmap使用
    SQLmap使用只对sql注入进行测试参数详解Target:目标-usqlmap.py-u"http://43.136.41.84:8080/vulnerabilities/sqli/?id=1&Submit=Submit"-pid--cookie"PHPSE......
  • mapper-spring-boot-starter的使用
    <?xmlversion="1.0"encoding="UTF-8"?><projectxmlns="http://maven.apache.org/POM/4.0.0"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:s......
  • 【JDK特性】stream 里面的map和flatMap区别
    背景JDK8中,stream流程下的map就不多说了,很熟悉,flatmap倒是不是特别熟悉,map和flatMap的区别看一个例子:List<String>cityListOne=newArrayList<>();......
  • HashMap相关
    底层数据结构,1.7和1.8有什么区别1.7:数组+链表1.8:数组+(链表|红黑树)为什么要用红黑树当链表过长时查询效率太低,树化可以提高查询效率为什么不是一开始就用树,而是达到......