YOLO性能指标

news/2024/4/28 18:54:06/文章来源:https://blog.csdn.net/zmj1582188592/article/details/127449521

术语

全称

解释

True

表示推理正确

False

表示推理错误, 跟ground truth(位置,类别)比对之后得到的结论

positive

推理为正例,iou > 阈值,类别概率>阈值

negative

推理为反例,不符合正例条件

TP    

True  positive

推理为正例, 推理正确 —— 有效框内的物体就是目标物体

FP 

False positive

推理成正例,但是推理错误

TN

True negative

推理成反例,推理正确 —— 表示有效框内确实不包含任何物体(位置<IOU阈值,or 类别概率全部<阈值)

FN 

False negative

推理成反例,但是推理错误 —— 表示该框内包含目标物体,但是没有检测出来或者分类错误

P

precision

精确率,表示模型推理出的有效框中(positive),推理正确的比例。

Precision = TP / (TP+FP)

R

recall

召回率/查全率,表示真实的目标物体中,有多少推理成功的。
recall = TP / (TP + FN)

Accuracy

Accuracy

准确率,三个指标中最直观的指标,表示模型推理正确的数据占总数据的比例。
accuracy = (TP + TN) / (TP + FP + TN + FN)

与分类网络的区别在于:分类网络结果正确只有一种情况(应为分类网络图片中必定有某个物体)

IOU

Intersection over union

交并比,衡量两个区域的重叠程度的指标, 蓝色框:ground truth; 黄色框:预测框

NMS

Non Maximum suppression

非极大值抑制,通过筛选局部极大值得到最优解。—— 定位算法

76x76 原图 -> 1x1 小物体定位

      -> 2x2 中等物体

      -> 4x4 大物体

1.将图片均分成NxN个锚点框,然后每张锚点框选择3个box,一共得到N*N*3个box (记作boxes_0, 19x19x3个)

2.分别计算boxes_0与ground truth之间的IOU,留下大于某个阈值的box(记作boxes_1);

3. 每个ground truth只保留一个iou最大的box,其余扔掉(去重操作);

    方法是计算boxes_1之间的IOU,大于阈值的对应同一个ground truth

   boxes_1 iou value降序排列

   box_id     0 1  2  3 4   5  6  7  8  

是否有效    1  0 1  0  0  1  0  0  0

如上:

step1. 从box0开始,box1-box8依次与box0比对,box1/3/4/8与box0计算的IOU均大于阈值,认为是同一个框,因此标记成无效框(box0 iou_value最大,为最优解),剩下box被认为不同于box0;

step2. 移动到下一个有效框box2,box6/7与box2计算 IOU大于阈值,标记成无效框;

step3. 移动到下一个有效框box5,后面没有有效框了,结束;

4.结果:得到该图片上所有 box,分别对应不同的目标物体,之后再进行物体分类;

预测结果包含:bounding_box(x1, y1,x2,y2), 置信率之一Pc (是有效框的概率, IOU_Value)

AP

Average precision

平均精确度,针对单类别。这里会得到置信率之二: confidence ( 该框是某个类别的概率)

-> 推理正确的标志:

1. Pc > iou_threshold;

2. confidence > p_threshold

AP中的average指的就是p_threshold取不同值时,结果的平均值

-> yolo nms之后得到的数据如下,根据19x19x255为例, 19x19x3x85, 19x19x3为box数量,每一个box对应85个元素输出,详细过程见下面的“AP计算”

mAP

Mean Average precision

每个类别都计算出AP,计算平均值

mAP50

IOU=0.5

mAP(IoU=0.5:0.95)

[0.5,0.95], 每间隔0.05取一次Iou,计算该阈值的mAP,最终计算平均值

AP计算

Rank

Box ID

Pc

x1

 y1

X2

Y2

类别1概率

类别2概率

类别80概率

1

IOU_value

是有效框的概率

从大到小排序

P max

2

P second_max

19x19x3

P min

P_threshold 从大到小取值,coco库是如何取值的?

跟据rank从小到大,依次递推,则代表p_threshold依次递减

如:

rank=2时

  1. 只有第一行的的类别概率超过阈值,前两行不一定全为正例
    1. IOU_value > iou_threshold的box,如果没有重复box,或者在重复box中iou_box最大,为正例(参见nms去重)
    2. 否则为反例
  2. 认定 Rank<2 的box P 小于阈值,这些box均为反例
  3. 计算precision和recalll, 绘制出P-R曲线

AP =(平滑后PR曲线上,Recall分别等于0,0.1,0.2,… , 1.0等11处Precision的平均值)

AP = (1 + 1 + 1 + 0.5 + 0.5 + 0.5 + 0.5 + 0.5 + 0 + 0 + 0) / 11 = 0.5

 

备注:此为个人学习后总结,借用了其他博主的图片忘记链接。内容有不对或者有争议的地方,欢迎大家指出。

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

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

相关文章

HarmonyOS系统中内核实现烟雾检测的方法

大家好&#xff0c;今天我们主要来聊一聊&#xff0c;如何使用鸿蒙系统来操作烟雾浓度传感器。 目录 第一&#xff1a;烟雾浓度传感器原理 第二&#xff1a; 鸿蒙相关API函数分析 Init_E53_SF1() MQ2_PPM_Calibration() Get_MQ2_PPM() 第三&#xff1a;硬件设计 第四&…

【单片机毕业设计】【mcuclub-hj-006-7】基于单片机的空气质量(天然气、CO、甲醛、甲苯、TVOC、CO2)检测的设计

最近设计了一个项目基于单片机的空气质量&#xff08;天然气、CO、甲醛、甲苯、TVOC、CO2&#xff09;检测系统&#xff0c;与大家分享一下&#xff1a; 一、基本介绍 项目名&#xff1a;空气质量&#xff08;天然气、CO、甲醛、甲苯、TVOC、CO2&#xff09; 项目编号&#x…

04 CSS01

目标&#xff1a; 1、基础认知 2、基础选择器 3、字体和文本相关样式 4、Chrome调试工具 5、综合案例 一、基础认知 1.1 css介绍 中文名&#xff1a;层叠样式表 作用&#xff1a;给页面中的html标签设置样式 1.2 css语法规则 css写在style标签中&#xff0c;style标签一般…

【DETR 论文解读】End-to-End Object Detection with Transformer

目录前言一、整体架构二、基于集合预测的损失函数2.1、二分图匹配确定有效预测框2.2、损失函数三、前向推理四、掉包版代码五、一些问题Reference前言 贡献/特点&#xff1a; 端到端&#xff1a;去除NMS和anchor&#xff0c;没有那么多的超参&#xff0c;计算量也大大减少&am…

二叉树的OJ练习题

1.单值二叉树 描述&#xff1a;如果二叉树每个节点都具有相同的值&#xff0c;那么该二叉树就是单值二叉树。只有给定的树是单值二叉树时&#xff0c;才返回 true&#xff1b;否则返回 false。 链接&#xff1a;965. 单值二叉树 - 力扣&#xff08;LeetCode&#xff09; 思路…

世界陶瓷卫浴100强榜单发布!

​  经过一年的严格数据审查&#xff0c;科学统计分析&#xff0c;备受全行业期待的 【世界陶瓷卫浴100强统计排行榜 】于2022年10月19日在中国佛山正式发布&#xff0c;除了陶瓷卫浴企业100强总榜以外&#xff0c;还发布了全球瓷砖企业30强、全球卫浴企业20强&#xff0c;全…

Python中的对象池是什么

在程序设计中&#xff0c;创建物体模块主要是通过生成对象来实现。当对象使用结束后&#xff0c;则会成为不再需要的模块进行销毁。 而在系统进行对象的生成与销毁过程中会大量的增加内存的消耗&#xff0c;同时对象的销毁往往会留下残留的信息&#xff0c;这样将会伴随内存泄露…

javaWeb SSM车辆调度系统myeclipse定制开发mysql数据库网页模式java编程SpringMVC

一、源码特点 JSP SSM车辆调度系统是一套完善的web设计系统&#xff0c;对理解JSP java编程开发语言有帮助&#xff0c;系统具有完整的源代码 系统采用SSM框架&#xff0c;系统主要采用B/S模式开发。开发环境为 TOMCAT7.0,Myeclipse8.5开发&#xff0c;数据库为Mysql5.0&a…

swagger动态开关实践

swagger动态开关实践1. 背景2. 配置文件监听2.1 基于注解2.2 基于jdk3. swagger改造3.1 bean刷新3.2 方法重写4. 总结5. 参考资料1. 背景 系统漏洞扫描&#xff0c;扫出了swagger的问题。这个问题其实比较基础&#xff0c;那就是生产环境不应该开启swagger&#xff01; 但是&…

FreeRTOS 软件定时器的使用

FreeRTOS中加入了软件定时器这个功能组件&#xff0c;是一个可选的、不属于freeRTOS内核的功能&#xff0c;由定时器服务任务&#xff08;其实就是一个定时器任务&#xff09;来提供。 软件定时器是当设定一个定时时间&#xff0c;当达到设定的时间之后就会执行指定的功能函数&…

el-switch接口实现

后台返回的数据&#xff1a; active-textswitch 打开时的文字描述string——inactive-textswitch 关闭时的文字描述string——active-valueswitch 打开时的值boolean / string / number—trueinactive-valueswitch 关闭时的值boolean / string / number—falseactive-colorswi…

Enzo丨艾美捷Enzo Ciglitazone解决方案

艾美捷Enzo Ciglitazone是一种噻唑烷二酮类降血糖药。它在遗传性肥胖的C57 Bl/6 ob/ob小鼠中显示抗高血糖活性&#xff0c;并且是选择性PPARγ激动剂&#xff08;EC50&#xff1d;3M&#xff09;。抑制人间充质干细胞中HUVEC分化和血管生成&#xff0c;并刺激脂肪生成和减少成骨…

区块链 — Overview

文章目录区块链的概念区块链数据结构区块链的基础技术哈希运算数字签名共识算法智能合约P2P网络区块链分类公有链联盟链私有链区块链的概念 狭义上&#xff0c;区块链是一种按照时间顺序将数据区块以顺序相连的方式组合成的一种链式数据结构&#xff0c;并以密码学方式保证的不…

深度神经网络图像识别,深度神经网络图像配准

如何用Python和深度神经网络寻找相似图像 代码首先&#xff0c;读入TuriCreate软件包import turicreate as tc我们指定图像所在的文件夹image&#xff0c;让TuriCreate读取所有的图像文件&#xff0c;并且存储到data数据框data tc.image_analysis.load_images(./image/)我们来…

《python 可视化之 matplotlib》第一章 折线图 plot

《python 可视化之 matplotlib》第一章 折线图 本章节内容包括以下几方面内容&#xff1a; 绘制曲线 yx2yx^2yx2;让曲线更加光滑&#xff1b;常见的相关属性设置&#xff1b;多条折线图的绘制&#xff1b;折线图之间的颜色填充&#xff1b;时间序列可视化&#xff1b;常见问题…

iNFTnews|在元宇宙中探索NFT的无限可能

元宇宙正在使我们当下的生活发生显著变化。 我们都玩过很多电子游戏&#xff0c;看过很多相关的科幻电影&#xff0c;也有过很多关于元宇宙进入我们日常生活后&#xff0c;我们周围的事物将会受到怎样的巨大影响的讨论。 我们很快就会看到&#xff0c;如此先进的技术突破将逐…

人工神经网络概念及组成,人工神经网络基本概念

1、什么是BP神经网络&#xff1f; BP算法的基本思想是&#xff1a;学习过程由信号正向传播与误差的反向回传两个部分组成&#xff1b;正向传播时&#xff0c;输入样本从输入层传入&#xff0c;经各隐层依次逐层处理&#xff0c;传向输出层&#xff0c;若输出层输出与期望不符&…

含汞废水的深度处理方法

CH-95 是一款为了从工业废水中去除回收汞和贵金属而专门开发的螯合树脂。拥有聚乙烯 异硫脲官能基的大孔树脂&#xff0c;这种树脂对汞有极高的选择性。钠&#xff0c;碱土&#xff0c;铁铜等重金属等不能干扰 其对汞的选择性去除。 CH-97 是一款含有附着甲基硫醇聚苯乙烯共…

基于PB的企业人力资源信息系统设计与实现

目 录 摘 要 I Abstract II 第1章 引言 1 1.1选题背景及意义 1 1.2发展现状 1 1.3论文结构 2 第2章 系统分析 3 2.1 系统目标 3 2.2 系统需求分析 3 第3章 系统设计 5 3.1 系统功能结构设计 5 3.2 数据库设计与实现 7 3.2.1数据库需求分析 7 3.2.2数据库概念结构设计 8 3.2.3数…

[oeasy]python0010 - python虚拟机解释执行py文件的原理

解释运行程序 &#x1f94a; 回忆上次内容 我们这次设置了断点 设置断点的目的是更快地调试调试的目的是去除​​bug​​别害怕​​bug​​一步步地总能找到​​bug​​这就是程序员基本功 调试​​debug​​ 我心中还是有疑问 ​​python3​​ 是怎么解释​​hello.py​​ 的…