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阈值大的情况。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

计算机编程基础教程,中文编程工具下载,编程构件组合按钮

计算机编程基础教程,中文编程工具下载,编程构件组合按钮 给大家分享一款中文编程工具,零基础轻松学编程,不需英语基础,编程工具可下载。 这款工具不但可以连接部分硬件,而且可以开发大型的软件&#xff0c…

人力资源管理后台 === 登陆+主页灵鉴权

目录 1. 分析登录流程 2. Vuex中用户模块的实现 3.Vue-cli代理解决跨域 4.axios封装 5.环境区分 6. 登录联调 7.主页权限验证-鉴权 1. 分析登录流程 传统思路都是登录校验通过之后,直接调用接口,获取token之后,跳转到主页。 vue-elemen…

C++二分查找:统计点对的数目

本题其它解法 C双指针算法:统计点对的数目 本周推荐阅读 C二分算法:得到子序列的最少操作次数 本文涉及的基础知识点 二分查找算法合集 题目 给你一个无向图,无向图由整数 n ,表示图中节点的数目,和 edges 组成…

HTTP状态码:如何修复 404 Not Found错误?

互联网上各种类型的网站非常多,无论用户还是网站运营者不可避免的会遇到404 Not Found错误,如果遇到404错误,我们应该如何解决呢? 对于用户 检查拼写错误 如果您是遇到错误的用户,请仔细检查 URL 是否有任何拼写错误…

【Flutter 常见问题系列 第 1 篇】Text组件 文字的对齐、数字和字母对齐中文

TextStyle中设置height参数即可 对齐的效果 Text的高度 是根据 height 乘于 fontSize 进行计算的、这里指定heiht即可、不指定的会出现 无法对齐的情况,如下: 这种就是无法对齐的情况

决策树(第四周)

一、决策树基本原理 如下图所示,是一个用来辨别是否是猫的二分类器。输入值有三个(x1,x2,x3)(耳朵形状,脸形状,胡须),其中x1{尖的,圆的}&#xf…

R语言实现Lasso回归

一、Lasso回归 Lasso 回归(Least Absolute Shrinkage and Selection Operator Regression)是一种用于线性回归和特征选择的统计方法。它在回归问题中加入了L1正则化项,有助于解决多重共线性(多个特征高度相关)和特征选…

什么是轻量应用服务器?可以从亚马逊云科技的优势入手了解

什么是轻量应用服务器? 随着如今各行各业对云计算的需求越来越多,云服务器也被越来越多的企业所广泛采用。其中,轻量应用服务器是一种简单、高效、可靠的云计算服务,能够为开发人员、企业和个人提供轻量级的虚拟专用服务器&#x…

【深入剖析K8s】容器技术基础(一):从进程开始说起

容器其实是一种特殊的进程而已。 可执行镜像 为了能够让这些代码正常运行’我们往往还要给它提供数据’比如我们这个加法程序所需要的输人文件这些数据加上代码本身的二进制文件放在磁盘上’就是我们平常所说的一个程序,也叫代码的可执行镜像(executablejmage&…

PostgreSQL+patroni+etcd+haproxy+keepalived高可用

PostgreSQLpatronietcdhaproxykeepalived 高可用架构 部署环境 部署postgresql-15 一主二从: role主机组件主库 node203 192.168.56.203 pg15.5 Patroni、Etcd,haproxy、keepalived 从库 node204 192.168.56.204 pg15.5 Patroni、Etcd,ha…

机器人开发的选择

喷涂机器人 码垛机器人 纸箱码垛机器人 焊接机器人 跳舞机器人 管道清理机器人 工地巡检机器人 点餐机器人 化工巡检机器人 装箱机器人 安防巡检机器人 迎宾机器人好像有点像软银那个 污水管道检测机器人 大酒店用扫地机器人 家用扫地机器人 工厂用(…

免费不限字数的文本转语音AI配音工具,无需安装

上周给大家分享了AI绘本故事制作,很多小伙伴让我,推荐一款免费的AI配音,音色质量富有情感语调,而且手机上就能用的文本转语音工具。 OK,那么今天就给小伙伴们推荐一款我经常自用的AI配音工具,无需安装下载&…

防火墙命令行基础配置实验(H3C模拟器)

嘿,这里是目录! ⭐ H3C模拟器资源链接1. 实验示意图2. 要求3. 当前配置3.1 PC配置3.2 FW配置(防火墙)[^7][^8]3.2.1 FW1配置3.2.2 FW2配置 3.3 R配置3.3.1 R1配置3.3.2 R2配置 3.4 SW配置3.4.1 SW1配置3.4.2 SW2配置3.4.3 SW3配置…

blender 3D眼球结构

角膜(Cornea):眼球的前部,透明的曲面,负责折射光线。虹膜(Iris):眼睛的颜色部分,控制瞳孔大小以调整进入眼睛的光量。瞳孔(Pupil):虹膜…

offer 选择难?说说我的 2 个思考

大家好,我是鱼皮。秋招仍在进行中,随着越来越多的公司开奖,最近 编程导航星球 的小伙伴们也陆续发来了 offer 报喜: 图片 图片 但也有一部分小伙伴陷入了 “甜蜜的烦恼”,拿了几个 offer 却不知道怎么选择。 offer 选择…

【刷题宝典NO.4】

目录 公交站间的距离 生命游戏 公交站间的距离 https://leetcode.cn/problems/distance-between-bus-stops/ 环形公交路线上有 n 个站,按次序从 0 到 n - 1 进行编号。我们已知每一对相邻公交站之间的距离,distance[i] 表示编号为 i 的车站和编号为 …

Pure-Pursuit 跟踪五次多项式轨迹

Pure-Pursuit 跟踪五次多项式轨迹 考虑双移线轨迹 X 轴方向位移较大,机械楼停车场长度无法满足 100 ~ 120 m,因此采用五次多项式进行轨迹规划,在轨迹跟踪部分也能水一些内容 调整 double_lane.cpp 为 ref_lane.cpp,结合 FrenetP…

OpenFeign入门

OpenFeign是Spring Cloud OpenFeign,是Spring Cloud团队开发的基于Feign的框架 1、OpenFeign功能升级 OpenFeign在Feign的基础上提供了以下增强和扩展功能 (1)便于集成Spring Cloud组件:OpenFeign与Spring Cloud其他组件&#…

float和double(浮点型数据)在内存中的储存方法

作者:元清加油 主页:主页 编译环境:visual studio 2022 (x86) 相信大家都知道数据在内存中是以二进制储存的 整数的储存方法是首位是符号位,后面便是数值位 那么浮点数在内存中是怎么储存的呢?我们先来看一个例子&am…

C语言-内存函数详解

文章目录 1. memcpy使用和模拟实现2. memmove使用和模拟实现3. memset函数的使用4. memcmp函数的使用 1. memcpy使用和模拟实现 返回类型和参数: void * memcpy ( void * destination, const void * source, size_t num );1.函数memcpy从source的位置开始向后复制…