首页 > 其他分享 >YOLO 模型的评估指标——IOU、Precision、Recall、F1-score、AP、mAP、

YOLO 模型的评估指标——IOU、Precision、Recall、F1-score、AP、mAP、

时间:2024-06-12 12:02:23浏览次数:26  
标签:PR F1 mAP Recall 模型 Precision AP

一、置信度是什么?

置信度用于评估模型对检测结果的信心程度

下图中,绿色框A表示Ground Truth,也称GT,GT就是正确的标注(人工)

二、IOU与TPFPFN

iou:表示预测的边界框(或分割区域)与真实边界框(或分割区域)之间的交集与并集之间的比值。

阈值:根据实际情况可调节

IOU = 0.5

如果预测框与真实框的IOU > 0.5,那么此预测框归为TP

如果0 < IOU <= 0.5,那么此预测框归为FP

如果IOU < 0 ,那么此预测框归为 FN

检测到同一个GT的多余检测框也归为FP,怎么解 释呢?对于秋香图来说,只有秋香一个GT,可能这时候有若干个预测框都符合 IOU > 0.5,那么此时只能取其中一个框作为TP,而剩余的检测框只能够归为 FP。这是为什么呢?答:秋香只能属于唐伯虎一个人!

三、Precision、Recall、F1_score、AP和mAP

  • 预测值为正例,记为P(Positive)

  • 预测值为反例,记为N(Negative)

  • 预测值与真实值相同,记为T(True)

  • 预测值与真实值相反,记为F(False)

TP:实际为正样本且被模型预测为正样本的数量。

FP:实际为负样本但被模型错误地预测为正样本的数量。

FN:实际为正样本但被模型错误地预测为负样本的数量。

1、precision(精确率)

  被分类器判断为正类别的数据点中,正确分类为正类别的比例。即在所有被分类为正类别的样本中,有多少是真正的正类别

2.recall(召回率)

  所有的正类别数据点中,被正确预测为正类别的比例。即在所有真正的正类别样本中,有多少被分类为正类别

两者区别:

  不恰当的例子,当发生严重事故的时候,有许多不同程度受伤的人,那么这时

  候Precision就表示准确的判断这个人受了什么伤,更倾向于准确确定伤员病

  情。而Recall是查全率,表示查找这一个区域里到底有多少成员受伤了。毕竟在

  这种危急时刻,查找所有受伤的成员,并把他们解救出来是摆在首要位置的,

  这时候Recall的作用可能更为重要。这两个评价指标之间并没有孰好孰坏之分,

  只是在不同的场景之下

3.F1_score

如果有不同的几个模型,他们有着不同的Precision与Recall,那么我们应该如何挑最优的模型?

最直接的办法就是取Precision与Recall的平均值,但取平均值并不可取。因为有时二者有一个极高,一个极低时,这样平均值是高的,但实际的效果并不会好。这时就要用F1-score来权衡Precision与Recall的平均值。

4.AP值和PR曲线

得到一系列的PR值,组合在一起形成PR曲线

  1. 作用:

    1. PR曲线能够帮助我们更全面地评估分类模型在不同情况下的性能表现,尤其是在处理不平衡数据集或强调查准率和召回率平衡的任务中尤为重要。

    2. 通过分析PR曲线,我们可以了解模型在查准率和召回率之间的权衡关系,进而优化模型的参数或选择更适合的模型。

  2. 性能评估:

    1. 当PR曲线越靠近右上角时,表示模型在平衡查准率与召回率方面做得更好。

    2. 在比较两个模型时,可以通过比较曲线下方的面积来评估它们的性能,面积越大的模型对应的PR曲线在整个召回率范围内都表现更好。

5.  AP:即Average Precision(平均精度)
  • AP值的计算基于Precision-Recall(PR)曲线。PR曲线是以Recall为横坐标,Precision为纵坐标绘制的曲线。

  • 对于PR曲线上的每一个点,其对应的Precision值是该Recall值下最大的Precision值(当Recall大于或等于该值时)。

  • AP值即为PR曲线下的面积。具体计算方法有两种:

    • VOC2010之前:AP = 1/11 ∑ Max(p(r)),其中r∈{0,0.1,...,1},Max(p(r))表示在r点的最大precision值。

    • VOC2010之后:AP采用插值方法计算,AP = 1/n ∑ Max(p(r(k))) * (r(k)-r(k-1)),其中r(k)是第k大的召回率,Max(p(r(k)))是在r(k)点的最大precision值。

6.mAP(mean Average Precision):
  • 在多类别目标检测任务中,mAP是各类别AP值的平均值,用于衡量模型在所有类别上的平均性能。

  • eg:

        有了AP的介绍,那mAP就很简单了。可以这么理解,AP就是大家找到

        秋香的平均准确率,那么大家找到春香,夏香,秋香,冬香的平均准确率就是

        AP1,AP2,AP3,AP4,除以四就是mAP的值了。

7.mAP_0.5:

将IoU设为0.5时,计算每一类的所有图片的AP,然后所有类别求平均,即mAP

8.mAP@.5:.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

标签:PR,F1,mAP,Recall,模型,Precision,AP
From: https://blog.csdn.net/m0_73731663/article/details/139597427

相关文章

  • 【STM32F1例程2】GPIO外部中断输入
    1.实验说明无需连外部杜邦线,下载程序,全速运行,按右边按键看到LEDD1(PB4引脚驱动)亮暗能变化一次2.主要代码先上main.c#include"delay.h"#include"sys.h"//外部中断0配置,PA0脚产生外部中断是外部中断0voidEXTI0_Config(void){ EXTI_InitTypeDefEXTI_InitStructur......
  • 【STM32F1例程3】ADC实验
    1.实验说明 PA4口作为ADC采集口,PA4口接地或者接3.3V。下载运行程序,PA4口接地,会发现VolDta值为0,然后把PA4口接3.3V,会发现VolDta值为33002.主要程序直接上main.c#include"delay.h"#include"sys.h"//ADC配置,ADC1通道4voidADC_Config_Init(void){ ADC_InitTypeDef......
  • java面试题: HashMap、HashSet 和 HashTable 的区别
     HashMap常用方法 HashMap是一个基于哈希表的Map接口的实现。它允许使用null值和null键。 java复制//创建一个HashMapHashMap<KeyType,ValueType>map=newHashMap<>(); //添加元素map.put(key,value); //获取元素ValueTypevalue=map.get......
  • CF1984 记录
    吐槽真跟上次说的一样打一场掉一场了,最近CF+AT加起来打了四场全部掉一车,我都不知道到底是我晚上状态很差还是纯菜,就比如这场D写了一车分讨最后还是挂细节,B编了个离谱做法但是漏了一堆case,本来以为也是细节问题今天一看还是假。不过就算这次比赛状态好可能还是只能到E,我应......
  • Go - The map[string]interface{} map
    Rememberthatthebiggestadvantageyougetfromusingamap[string]interface{}map,or anymapthatstoresaninterface{}valueingeneral,isthatyoustillhaveyourdatainitsoriginal stateanddatatype.Nowadays,webservicesworkbyexchangingJS......
  • 巧妙使用mapstruct来解决数据库entiy到实体dto的映射关系
    1.引入mapstruct<dependency><groupId>org.mapstruct</groupId><artifactId>mapstruct</artifactId></dependency><dependency><groupId>org.mapstruct</groupId><artifactId>mapstruct-p......
  • Zgo - maps
     packagemainimport("fmt""maps")funcdelete(kstring,vint)bool{returnv%2!=0}funcequal(v1int,v2float64)bool{returnfloat64(v1)==v2}funcmain(){m:=map[string]int{"one......
  • yolov5模型评估指标R、P、map50怎么理解?
    R(Recall,召回率)定义:召回率是所有真实正样本中被模型正确预测为正样本的比例。计算公式:R=TP/(TP+FN),其中TP表示真正例(TruePositives),即被模型正确预测为正样本的实例;FN表示假反例(FalseNegatives),即被模型错误预测为负样本的实例。解释:召回率衡量了模型对正样本的查......
  • springboot使用ComponentScan和MapperScan
    今天讲springboot项目中的启动类换到了start包下,发现无法扫描并注册javabean. 原因:容器在启动时会由spring.classPathBeanDefinitionScanner和spring-mybaits.classPathMapperScanner两个类去执行doScan方法,如果没有使用@ComponentScan和MapperScan两个注解spring会使用Spring......
  • CF1970F1 Playing Quidditch (Easy) 题解
    一道大模拟题。这道题可以用一个 map 记录球员及鬼飞球当时的坐标,用一个数组 a 记录是否有人进球,用另一个数组 b 记录每位球员是否有鬼飞球。当球员抓住鬼飞球后,鬼飞球跟着这个球员移动,直到这个球员投球。话不多说,直接上代码。MyCode:#include<bits/stdc++.h>#de......