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.hqwc.cn/news/217892.html

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

相关文章

php订单发起退款(余额和微信支付)

index.html <a class="btn btn-danger btn-change btn-tuikuan btn-disabled" href="javascript:;"><i class="fa fa-tuikuan"></i> 订单退款</a>-->order.js // 为表格绑定事件Table.api.bindevent(table);//退款…

小米AI布局的三大亮点:财报数据、高层视野、未来想象

小米作为一家以互联网为核心的智能终端和生态链公司&#xff0c;一直在不断探索人工智能&#xff08;AI&#xff09;的应用和创新。在最近公布的2023年第三季度财报中&#xff0c;小米透露了一些关于AI业务的重要信息&#xff0c;展现了其在AI领域的核心业务和竞争优势&#xf…

PaddleOCR学习笔记

Paddle 功能特性 PP-OCR系列模型列表 https://github.com/PaddlePaddle/PaddleOCR#%EF%B8%8F-pp-ocr%E7%B3%BB%E5%88%97%E6%A8%A1%E5%9E%8B%E5%88%97%E8%A1%A8%E6%9B%B4%E6%96%B0%E4%B8%AD PP-OCR系列模型列表&#xff08;V4&#xff0c;2023年8月1日更新&#xff09; 配置文…

LeetCode Hot100 226.翻转二叉树

题目&#xff1a; 给你一棵二叉树的根节点 root &#xff0c;翻转这棵二叉树&#xff0c;并返回其根节点。 递归&#xff1a;深度优先遍历 迭代&#xff1a;广度优先遍历 方法&#xff1a;迭代 class Solution {public TreeNode invertTree(TreeNode root) {if (root null…

python_selenium自动化测试框架

&#x1f4e2;专注于分享软件测试干货内容&#xff0c;欢迎点赞 &#x1f44d; 收藏 ⭐留言 &#x1f4dd; 如有错误敬请指正&#xff01;&#x1f4e2;交流讨论&#xff1a;欢迎加入我们一起学习&#xff01;&#x1f4e2;资源分享&#xff1a;耗时200小时精选的「软件测试」资…

【数据结构】什么是队列?

&#x1f984;个人主页:修修修也 &#x1f38f;所属专栏:数据结构 ⚙️操作环境:Visual Studio 2022 目录 &#x1f4cc;队列的定义 &#x1f4cc;队列的抽象数据类型 &#x1f4cc;队列的顺序存储结构 &#x1f4cc;队列的链式存储结构 结语 人生,是一个又一个小小的队列…

论文笔记——FasterNet

为了设计快速神经网络,许多工作都集中在减少浮点运算(FLOPs)的数量上。然而,作者观察到FLOPs的这种减少不一定会带来延迟的类似程度的减少。这主要源于每秒低浮点运算(FLOPS)效率低下。 为了实现更快的网络,作者重新回顾了FLOPs的运算符,并证明了如此低的FLOPS主要是由…

用户与组管理:如何在服务器系统中管理用户和权限

你是否想过&#xff0c;当你登录到一个服务器系统时&#xff0c;你是如何被识别和授权的&#xff1f;你是否知道&#xff0c;你可以通过创建和管理用户和组来简化和优化你的系统管理工作&#xff1f;你是否想了解一些常用的用户和组管理命令和技巧&#xff1f;如果你的答案是肯…

基于OGG实现Oracle实时同步MySQL

&#x1f4e2;&#x1f4e2;&#x1f4e2;&#x1f4e3;&#x1f4e3;&#x1f4e3; 哈喽&#xff01;大家好&#xff0c;我是【IT邦德】&#xff0c;江湖人称jeames007&#xff0c;10余年DBA及大数据工作经验 一位上进心十足的【大数据领域博主】&#xff01;&#x1f61c;&am…

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

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

上新!2023年汉字小达人市级比赛在线模拟题增加2个刷题试卷

各位小学三年级到五年级的上海学霸孩子们&#xff0c;刚刚结束了上海小学生古诗文大会的复赛&#xff0c;就紧锣密鼓地全身心投入到上海小学生汉字小达人的市级比赛的备赛中了。 为了助各位孩子一臂之力&#xff0c;我把在线模拟题进行了更新&#xff0c;新增了两个可以刷题的试…

LeetCode Hot100 105.从前序与中序遍历序列构造二叉树

题目&#xff1a;给定两个整数数组 preorder 和 inorder &#xff0c;其中 preorder 是二叉树的先序遍历&#xff0c; inorder 是同一棵树的中序遍历&#xff0c;请构造二叉树并返回其根节点。 代码&#xff1a; class Solution {private Map<Integer, Integer> indexM…