yolo系列中的一些评价指标说明

文章目录

  • 一. 混淆矩阵
  • 二. 准确度(Accuracy)
  • 三. 精确度(Precision)
  • 四. 召回率(Recall)
  • 五. F1-score
  • 六. P-R曲线
  • 七. AP
  • 八. mAP
  • 九. mAP@0.5
  • 十. mAP@[0.5:0.95]

一. 混淆矩阵

  • TP (True positives):被正确地划分为正例的个数,即实际为正例且被分类器划分为正例的实例数(样本数);
  • FP(False positives):被错误地划分为正例的个数,即实际为负例但被分类器划分为正例的实例数;
  • FN(False negatives):被错误地划分为负例的个数,即实际为正例但被分类器划分为负例的实例数;
  • TN(True negatives):被正确地划分为负例的个数,即实际为负例且被分类器划分为负例的实例数;

在这里插入图片描述
对于yolo系列的样本,例如,coco数据集有80个类别,针对person类而言,person类别就是正例,其他79个类别就是负例;针对car类而言,car类别就是正例,其他79个类别就是负例。

二. 准确度(Accuracy)

A c c u r a c y = T P + T N T P + T N + F P + F N { Accuracy }=\frac{T P+T N}{T P+T N+F P+F N} Accuracy=TP+TN+FP+FNTP+TN
准确率的概念很好理解,就是分类正确的比例,是一个非常常用的评估指标。但是,准确率高并不代表分类算法就好,当各个类别的样本分布很不均匀时,即使准确率达到99%也没用。
举个例子,如果狗的样本数为99,猫的样本数都为1,那么,分类器只需要把结果全部置为狗,就可以获得99%的正确率。所以,只靠准确率来评价一个模型的优劣是不全面的。

三. 精确度(Precision)

P r e c i s i o n = T P T P + F P { Precision }=\frac{T P}{T P+F P} Precision=TP+FPTP
根据定义,Precision的分母是TPFP之和,TP是预测为正例,真实值也为正例的个数;FP是预测为正例,实际为负例的个数。
分析式子可知,Precision关心的是预测的正例,以及真实的正例和负例。当Precision越大时,FP越小,此时将其他类别预测为本类别的个数也就越少,可以理解为预测出的正例纯度越高。Precision越高,误检越少。

例如,在yolov5中,100个真实框,其中有50个框的类别为人,50个框的类别为车:

  • yolov5的预测结果把50个人中的47个预测为人,3个预测为车,把50个车中的42个预测为车,8个预测为人:
    在这里插入图片描述

P r e c i s i o n = T P T P + F P = 47 47 + 8 = 0.85 { Precision }=\frac{T P}{T P+F P} = \frac{47}{47+8} = 0.85 Precision=TP+FPTP=47+847=0.85

  • yolov5的预测结果把50个人中的47个预测为人,3个预测为车,把50个车中的50个预测为车,0个预测为人:
    在这里插入图片描述

P r e c i s i o n = T P T P + F P = 47 47 + 0 = 1 { Precision }=\frac{T P}{T P+F P} = \frac{47}{47+0} = 1 Precision=TP+FPTP=47+047=1

从上面的例子可以看出,精确度更关心的是,在识别的结果里,有多少的负例被识别成了正例,例如精确度为50%,则说明识别结果里,有一半的结果是将负例(其他类别)识别成了正例(本类别)

四. 召回率(Recall)

R e c a l l = T P T P + F N { Recall }=\frac{T P}{T P+F N} Recall=TP+FNTP
根据定义,Recall的分母时TPFN之和,TP是预测为正例,真实值也为正例的个数;FN是预测为负例,实际是正例的个数。
分析式子可知,Recall关心的是预测的正例和负例,以及真实的正例。当Recall越大时,FN越小,此时将正例预测为负例的个数越少,可以理解为把全部的正例挑出来的越多。Recall越高,漏检越少。

例如,在yolov5中,100个真实框,其中有50个框的类别为人,50个框的类别为车:

  • yolov5的预测结果把50个人中的47个预测为人,3个预测为车,把50个车中的42个预测为车,8个预测为人:
    在这里插入图片描述

R e c a l l = T P T P + F N = 47 47 + 3 = 0.94 { Recall }=\frac{T P}{T P+F N} = \frac{47}{47+3} = 0.94 Recall=TP+FNTP=47+347=0.94

  • yolov5的预测结果把50个人中的30个预测为人,20个预测为车,把50个车中的42个预测为车,8个预测为人:
    在这里插入图片描述
    R e c a l l = T P T P + F N = 30 30 + 20 = 0.6 { Recall }=\frac{T P}{T P+F N} = \frac{30}{30+20} = 0.6 Recall=TP+FNTP=30+2030=0.6

从上面的例子可以看出,召回率更关心的是,在识别的结果里,有多少的正例被识别成了负例,例如召回率为50%,则说明识别结果里,有一半的结果是将正例(本类别)识别成了负例(其他类别)

五. F1-score

F 1 S c o r e = 2 ∗ P r e c i s i o n ∗ R e c a l l P r e c i s i o n + R e c a l l { F1 Score }=\frac{2 * { Precision } * { Recall }}{{ Precision }+ { Recall }} F1Score=Precision+Recall2PrecisionRecall
精确率和召回率是一对矛盾的指标,因此需要放到一起综合考虑。F1-score是精确率和召回率的调和平均值。故:
F 1 = 2 P R P + R = 2 T P 2 T P + F P + F N \mathrm{F}_{1}=\frac{2 \mathrm{PR}}{\mathrm{P}+\mathrm{R}}=\frac{2 \mathrm{TP}}{2 \mathrm{TP}+\mathrm{FP}+\mathrm{FN}} F1=P+R2PR=2TP+FP+FN2TP

上式是当精确率和召回率的权值都为1的情况,也可以加上一个不为1的权值β :
F β = 1 1 + β 2 ( 1 P + β 2 R ) = ( 1 + β 2 ) P R β 2 P + R \mathrm{F}_{\beta}=\frac{1}{1+\beta^{2}}\left(\frac{1}{\mathrm{P}}+\frac{\beta^{2}}{\mathrm{R}}\right)=\frac{\left(1+\beta^{2}\right) \mathrm{PR}}{\beta^{2} \mathrm{P}+\mathrm{R}} Fβ=1+β21(P1+Rβ2)=β2P+R(1+β2)PR

六. P-R曲线

P-R曲线即为分别以Precision与Recall为坐标围成的曲线。不同颜色的线代表不同类别的PR曲线,蓝色的粗线条表示所有类别平均的PR曲线
P-R曲线与坐标轴围成的面积,可作为衡量一个模型预测结果的参考。若一个模型的P-R曲线完全将另一模型的P-R曲线包裹,那么这个模型预测结果一定优于另一模型。
在这里插入图片描述

七. AP

AP(average precision 平均精度):虽然名为平均精度,但AP的计算方法并不是计算Precision的平均值,而是计算每个类别的PR曲线与坐标轴围成的面积,可以用积分的方法进行计算。如果一个模型的AP越大,也就是说PR曲线与坐标轴围成的面积越大,Precision与Recall在整体上也相对较高。

八. mAP

mAP(mean of Average Precision) : 对所有类别的AP值求平均值。AP可以反映每个类别预测的准确率,mAP就是对所有类的AP求平均值,用于反映整个模型的准确率。mAP越大,PR曲线与坐标轴围城的面积越大。平时我们说的,某一目标检测算法的准确率达到了多少,这个准确率就泛指mAP。

九. mAP@0.5

在YOLO模型中,你会见到mAP@0.5这样的表现形式,这种形式表示在IOU阈值为0.5的情况下,mAP的值为多少。当预测框与标注框的IOU大于0.5时,就认为这个对象预测正确,在这个前提下再去计算mAP。一般来说,mAP@0.5即为评价YOLO模型的指标之一。

十. mAP@[0.5:0.95]

YOLO模型中还存在mAP@[0.5:0.95]这样一种表现形式,这形式是多个IOU阈值下的mAP,会在q区间[0.5,0.95]内,以0.05为步长,取10个IOU阈值,分别计算这10个IOU阈值下的mAP,再取平均值。mAP@[0.5:0.95]越大,表示预测框越精准,因为它去取到了更多IOU阈值大的情况。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/170086.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Redis-主从与哨兵架构

Jedis使用 Jedis连接代码示例&#xff1a; 1、引入依赖 <dependency><groupId>redis.clients</groupId><artifactId>jedis</artifactId><version>2.9.0</version> </dependency> 2、访问代码 public class JedisSingleTe…

App 设计工具

目录 说明 打开 App 设计工具 示例 创建 App 创建自定义 UI 组件 打开现有 App 文件 打包和共享 App 本文主要讲述以交互方式创建 App。 说明 App 设计工具是一个交互式开发环境&#xff0c;用于设计 App 布局并对其行为进行编程。 可以使用 App 设计工具&#xff1a…

【黑马甄选离线数仓day05_核销主题域开发】

1. 指标分类 ​ 通过沟通调研&#xff0c;把需求进行分析、抽象和总结&#xff0c;整理成指标列表。指标有原子指标、派生指标、 衍生指标三种类型。 ​ 原子指标基于某一业务过程的度量值&#xff0c;是业务定义中不可再拆解的指标&#xff0c;原子指标的核心功能就是对指标…

Python武器库开发-前端篇之CSS元素(三十二)

前端篇之CSS元素(三十二) CSS 元素是一个网页中的 HTML 元素&#xff0c;包括标签、类和 ID。它们可以通过 CSS 选择器选中并设置样式属性&#xff0c;以使网页呈现具有吸引力和良好的可读性。常见的 HTML 元素包括 div、p、h1、h2、span 等&#xff0c;它们可以使用 CSS 设置…

值得看的书--《全宋词》节选

(https://img-blog.csdnimg.cn/5d5fe2844f6646b5b7b415f0a9e80f6c.jpg)

什么是自动化测试po模式,po分层如何实现?

一、什么是PO模式 全称&#xff1a;page object model 简称&#xff1a;POM/PO PO模式最核心的思想是分层&#xff0c;实现松耦合&#xff01;实现脚本重复使用&#xff0c;实现脚本易维护性&#xff01; 主要分三层&#xff1a; 1.基础层BasePage&#xff1a;封装一些最基…

自监督LIGHTLY SSL教程

Lightly SSL 是一个用于自监督学习的计算机视觉框架。 github链接&#xff1a;GitHub - lightly-ai/lightly: A python library for self-supervised learning on images. Documentation&#xff1a;Documentation — lightly 1.4.20 documentation 以下内容主要来自Documen…

作为Java初学者,如何快速学好Java?

作为Java初学者&#xff0c;如何快速学好Java&#xff1f; 开始的一些话 对于初学者来说&#xff0c;编程的学习曲线可能相对陡峭。这是正常现象&#xff0c;不要感到沮丧。逐步学习&#xff0c;循序渐进。 编程是一门实践性的技能&#xff0c;多写代码是提高的唯一途径。尽量…

C++初阶(十二)string的模拟实现

&#x1f4d8;北尘_&#xff1a;个人主页 &#x1f30e;个人专栏:《Linux操作系统》《经典算法试题 》《C》 《数据结构与算法》 ☀️走在路上&#xff0c;不忘来时的初心 文章目录 一、string类的模拟实现1、构造、拷贝构造、赋值运算符重载以及析构函数2、迭代器类3、增删查…

【linux】基本指令(中篇)

echo指令 将引号内容打印到显示屏上 输出的重定向 追加的重定向 输出的重定向 我们学习c语言的时候当以写的方式创建一个文件&#xff0c;就会覆盖掉该文件之前的内容 当我们以追加的方式打开文件的时候&#xff0c;原文件内容不会被覆盖而是追加 more指令 10.more指令…

车载电子电器架构 ——电子电气架构设计方案概述

我是穿拖鞋的汉子,魔都中坚持长期主义的汽车电子工程师。 注:本文1万多字,认证码字,认真看!!! 老规矩,分享一段喜欢的文字,避免自己成为高知识低文化的工程师: 屏蔽力是信息过载时代一个人的特殊竞争力,任何消耗你的人和事,多看一眼都是你的不对。非必要不费力证…

基于Pytest+Requests+Allure实现接口自动化测试

一、整体结构 框架组成&#xff1a;pytestrequestsallure 设计模式&#xff1a; 关键字驱动 项目结构&#xff1a; 工具层&#xff1a;api_keyword/ 参数层&#xff1a;params/ 用例层&#xff1a;case/ 数据驱动&#xff1a;data_driver/ 数据层&#xff1a;data/ 逻…

基于51单片机的人体追踪可控的电风扇系统

**单片机设计介绍&#xff0c; 基于51单片机超声波测距汽车避障系统 文章目录 一 概要概述硬件组成工作原理优势应用场景总结 二、功能设计设计思路 三、 软件设计原理图 五、 程序六、 文章目录 一 概要 # 基于51单片机的人体追踪可控的电风扇系统介绍 概述 该系统是基于51…

AI 视频 | Stable Video Diffusion 来了!(附体验地址)

1. 介绍 11 月 21 日&#xff0c;Stability AI 推出了 Stable Video Diffusion&#xff0c;这是 Stability AI 的第一个基于图像模型 Stable Diffusion 的生成式视频基础模型。 目前 Stability AI 已经在 GitHub 上开源了 Stable Video Diffusion 的代码&#xff0c;在 Huggin…

c语言刷题12周(1~5)

输入年月日&#xff0c;显示这一天是这一年的第几天&#xff0c;保证输入日期合法。 题干输入年月日&#xff0c;显示这一天是这一年的第几天&#xff0c;保证输入日期合法。输入样例2022 1 1 2022 12 31 2024 12 31 2022 4 5输出样例2022-1 2022-365 2024-366 2022-9…

【数据结构实验】图(二)将邻接矩阵存储转换为邻接表存储

文章目录 1. 引言2. 邻接表表示图的原理2.1 有向权图2.2 无向权图2.3 无向非权图2.1 有向非权图 3. 实验内容3.1 实验题目&#xff08;一&#xff09;数据结构要求&#xff08;二&#xff09;输入要求&#xff08;三&#xff09;输出要求 3.2 算法实现 4. 实验结果 1. 引言 图是…

node.js解决输出中文乱码问题

个人简介 &#x1f468;&#x1f3fb;‍&#x1f4bb;个人主页&#xff1a;九黎aj &#x1f3c3;&#x1f3fb;‍♂️幸福源自奋斗,平凡造就不凡 &#x1f31f;如果文章对你有用&#xff0c;麻烦关注点赞收藏走一波&#xff0c;感谢支持&#xff01; &#x1f331;欢迎订阅我的…

shell脚本循环语句

目录 一. 循环语句 1. 循环条件 2. 循环次数 3. 循环命令区别 4. for 循环 ①. 第一种语法 ②. 第二种语法 5. while 循环 6. until 循环 二. 跳出循环 1. break 结束循环 2. continue 结束循环 3. exit 结束循环 三. 补充 1. 偶数的表示 2. 奇数的表示 一. 循环…

【测试开发工程师】TestNG测试框架零基础入门(上)

哈喽大家好&#xff0c;我是小浪。那么今天是一期基于JavaTestNG测试框架的入门教学的博客&#xff0c;从只会手工测试提升到自动化测试&#xff0c;这将对你的测试技术提升是非常大的&#xff0c;有助于我们以后在找工作、面试的时候具备更大的竞争力~ 文章目录 一、什么是T…

【数据结构实验】图(一)Warshall算法(求解有向图的可达矩阵)

文章目录 1. 引言2. Warshall算法原理2.1 初始化可及矩阵2.2 迭代更新可及矩阵 3. 实验内容3.1 实验题目&#xff08;一&#xff09;输入要求&#xff08;二&#xff09;输出要求 3.2 算法实现 4. 实验结果 1. 引言 Warshall算法是一种用于求解有向图的可达矩阵的经典算法。该算…