YoloV1模型

You Only Look Once

文章目录

  • You Only Look Once
    • 置信度定义
    • 类别条件概率
    • NMS
    • np.maxmium
    • np.argsort()

在这里插入图片描述
Yolov1直接采用网络特征输出,实现置信度预测、分类、边界框回归;
核心内容总结:

  1. 输入图像划分为 S × S 网格。如果对象的中心落入网格单元中,则该网格单元负责检测该对象;
  2. 每个网格单元预测 B 个边界框以及这些框的置信度分数,这些置信度分数反映了模型对盒子包含对象的置信度,以及模型认为盒子预测的准确性。
  3. 每个边界框由 5 个预测组成:x、y、w、h 和置信度。 (x, y) 坐标表示相对于网格单元边界的框中心。宽度和高度是相对于整个图像预测的。
  4. 置信度预测表示预测框与任何地面实况框之间的 IOU。每个网格单元还预测 C 个条件类概率 Pr(Classi|Object)。这些概率以包含对象的网格单元为条件。无论框 B 的数量如何,我们仅预测每个网格单元的一组类概率。
    在测试时,我们将条件类概率与单个框置信度预测相乘。

置信度定义

将图像划分S*S的规则格网,根据格网分别进行边界框-置信度预测以及格网类别的预测,置信度为类别概率与之边界框真实值与预测值的交并比;每个cell预测B个边界框与置信度。
在这里插入图片描述

类别条件概率

类别概率是每个cell的独立条件,与边界框数量无关;

NMS

def nms(bboxes, scores, nms_thresh):""""Pure Python NMS."""x1 = bboxes[:, 0]  #xminy1 = bboxes[:, 1]  #yminx2 = bboxes[:, 2]  #xmaxy2 = bboxes[:, 3]  #ymax# 根据矩阵惩罚,计算每个bbox的面积areas = (x2 - x1) * (y2 - y1)order = scores.argsort()[::-1]# 将score进行倒序排列;scores.argsort() 方法用于对张量(tensor)scores中的元素进行排序,但它返回的不是排序后的张量值#,而是原始张量中元素位置的索引,这些索引表示了如果排序后它们将处于什么位置# 进行非非极大抑制keep = [] # while order.size > 0:# 首先选取score最高的i = order[0]keep.append(i)# 计算当前选定的边界框与其他边界框的IoU相交区域的坐标范围# compute iou,根据左上角的最大x1,y1与右下角的最小值x2,y2,计算相交区域的边界框的坐标xx1 = np.maximum(x1[i], x1[order[1:]])yy1 = np.maximum(y1[i], y1[order[1:]])xx2 = np.minimum(x2[i], x2[order[1:]])yy2 = np.minimum(y2[i], y2[order[1:]])# 计算交集面积,w = np.maximum(1e-10, xx2 - xx1)h = np.maximum(1e-10, yy2 - yy1)inter = w * h# IOU:交集与并集之比 = inter/(areas[i](选定区域)+area(其他区域)-inter(重叠区域的计算了两次))iou = inter / (areas[i] + areas[order[1:]] - inter + 1e-14)#保留iou小于该阈值的元素索引inds = np.where(iou <= nms_thresh)[0]order = order[inds + 1]return keep

np.maxmium

比较两个数组元素,并返回最大值

# 示例1:两个一维数组
a = np.array([1, 2, 3, 4])
b = np.array([2, 3, 1, 5])
result = np.maximum(a, b)
print(result)  # 输出:[2 3 3 5]# 示例2:一维数组与标量
a = np.array([1, 2, 3, 4])
result = np.maximum(a, 3)
print(result)  # 输出:[3 3 3 4]# 示例3:两个多维数组
a = np.array([[1, 2], [3, 4]])
b = np.array([[5, 6], [2, 1]])
result = np.maximum(a, b)
print(result)  # 输出:[[5 6] [3 4]]

np.minmium与之类似

np.argsort()

argsort()函数是NumPy库中的一个函数,用于返回数组元素排序后的索引值。它可以用于一维或多维数组。
numpy.argsort(a, axis=-1, kind=‘quicksort’, order=None)
在这里插入图片描述
示例

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

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

相关文章

linux 安装chrome浏览器

一、下载安装包 下载地址&#xff1a;https://download.csdn.net/download/k0307x1990y/89349171 二、安装流程 [rootlocalhost ~]# rpm -ivh *.rpm [rootlocalhost ~]# yum -y localinstall google-chrome-stable_current_x86_64.rpm [rootlocalhost ~]# 三、修改配置文件…

Vxe UI 表单设计器、零代码平台

vxe-pc-ui Vxe UI 表单设计器、零代码表单设计器 安装 Vxe UI PC端组件库 官方文档 查看 github、gitee // ...import VxeUI from vxe-pc-uiimport vxe-pc-ui/lib/style.css// ...// ...createApp(App).use(VxeUI).mount(#app)// ...使用 vxe-form-design 设计器组件 vxe-fo…

【安装笔记-20240523-Windows-安装测试 ShareX】

安装笔记-系列文章目录 安装笔记-20240523-Windows-安装测试 ShareX 文章目录 安装笔记-系列文章目录安装笔记-20240523-Windows-安装测试 ShareX 前言一、软件介绍名称&#xff1a;ShareX主页官方介绍 二、安装步骤测试版本&#xff1a;16.1.0下载链接功能界面 三、应用场景屏…

QML的Image 路径问题(source)

四种路径格式 在 QML 中&#xff0c;当你使用 Image 元素的 source 属性来指定一个图片的路径时&#xff0c;有几种不同的方式可以指定这个路径&#xff0c;每种方式都有其特定的用途和上下文。 相对路径&#xff1a; QML 文件和一个名为 close.png 的图片在同一目录下&#x…

Spring:面向切面(AOP)

1. 代理模式 二十三种设计模式中的一种&#xff0c;属于结构型模式。它的作用就是通过提供一个代理类&#xff0c;让我们在调用目标方法的时候&#xff0c;不再是直接对目标方法进行调用&#xff0c;而是通过代理类**间接**调用。让不属于目标方法核心逻辑的代码从目标方法中剥…

【热门话题】Debian常用命令指南

&#x1f308;个人主页: 鑫宝Code &#x1f525;热门专栏: 闲话杂谈&#xff5c; 炫酷HTML | JavaScript基础 ​&#x1f4ab;个人格言: "如无必要&#xff0c;勿增实体" 文章目录 Debian常用命令指南引言1. 文件与目录操作lscdmkdirrmcpmv 2. 包管理aptdpkg 3.…

minaActivatorA12+物主锁完美解信号,可登iCloud,有消息通知,支持iOS17.5.1+

原创 IOS福利部落 IOS福利部落 2024-05-26 19:35 福建 Mina Activator A12是一款绕过物主锁界面的解锁工具&#xff0c;可以激活所有iPhone恢复信号&#xff0c;并且支持插卡接打电话、收发短信、4G流量上网&#xff0c;支持iCloud登录&#xff0c;有消息通知&#xff0c;支持i…

sklearn实现线性回归

sklearn实现线性回归 一、数据集介绍二、使用sklearn实现线性回归一、数据集介绍 本案例使用女性身高体重数据集,数据集如下图所示: 可以看到,数据集有15行2列。 二、使用sklearn实现线性回归 sklearn中的线性模型模块是linear_model。这里使用linear_model下的普通线性…

【Linux】-Redis安装部署[15]

目录 简介 安装 1、配置EPEL仓库 2、安装redis 3、启动redis 4、放行防火墙&#xff0c;redis使用端口6379 5、进入redis服务 简介 redis是一个开源、使用C语言编写的、支持网络互交的、可基于内存也可持久化的Key-Value数据库。redis的特点就是&#xff1a;快&#xf…

安全设计 | CISA:构建默认安全的软件,软件安全设计的未来之路

软件制造商在产品设计和开发过程中应采取安全设计原则和方法&#xff0c;以减少网络安全风险&#xff0c;并转变责任重心&#xff0c;使产品在设计时就内置安全特性&#xff0c;而不是依赖于后期的补丁和修复。为此CISA发布了《软件安全设计的原则和方法》&#xff0c;帮助软件…

python如何把字符串变成小写字母

Python中&#xff0c;将字符串中的字母转换成小写字母&#xff0c;字符串变量提供了2种方法&#xff0c;分别是title()、lower()。 Python title()方法 title()方法用于将字符串中每个单词的首字母转为大写&#xff0c;其他字母全部转为小写&#xff0c;转换完成后&#xff0…

如何在go语言中调用c语言代码

1.安装c语言编译器 要使用cgo&#xff0c;需要安装c语言编译器 gcc 2.检查CGO_ENABLED时候开启 使用以下命令查看&#xff1a; go env CGO_ENABLED 如果go env CGO_ENABLED被禁用(为0),需要将其设置为开启(为1) 3.编写c语言程序&#xff0c;并用go语言调用c语言程序 1&#xff…

AIGC 005-Dreambooth定制化生成,微调文本到图像的扩散模型!

AIGC 005-Dreambooth定制化生成&#xff0c;微调文本到图像的扩散模型&#xff01; 文章目录 0 论文工作1 论文方法2 效果 0 论文工作 DreamBooth 论文 (DreamBooth: Fine-Tuning Text-to-Image Diffusion Models for Subject-Driven Generation) 提出了一种新颖的技术&#x…

【开源】大学生竞赛管理系统 JAVA+Vue+SpringBoot+MySQL

目录 一、系统介绍 学生管理模块 教师管理模块 竞赛信息模块 竞赛报名模块 二、系统截图 三、核心代码 一、系统介绍 基于Vue.js和SpringBoot的大学生竞赛管理系统&#xff0c;分为管理后台和用户网页端&#xff0c;可以给管理员、学生和教师角色使用&#xff0c;包括学…

mysql实战——xtrabackup全量备份/增量备份及恢复

一、测试前准备 mysql数据库 端口3306数据文件目录 /data/mysql/3306/data 安装目录/usr/lcoal/mysql配置文件/etc/my.cnf 创建数据库 testXtra 创建备份目录 备份目录/data/backup/备份恢复数据文件目录/data/mysql/3307/data备份恢复配置文件/etc/my_3307.cnf 二、开始…

linux查看是否被入侵(一)

1、查看当前系统状态 [rootbastion-IDC ~]#top #一般挖矿等病毒点用CPU比较大 2、查看当前登录用户(w\who) 3、检查系统日志 检查系统错误登陆日志&#xff0c;统计IP重试次数 [rootbastion-IDC ~]# lastb 4、查看近期用户登录情况 [rootkvm01 ~]# last -n 5 #-n 5 表示…

将list对象里的某一个属性取出组成一个新的list

使用Java8将对象里的某一个属性取出组成一个新的list List<Spgg1> listnew ArrayList<>();Spgg1 spgg1new Spgg1();spgg1.setSpdm("测试");spgg1.setGgdm("001");list.add(spgg1);Spgg1 spgg2new Spgg1();spgg2.setSpdm("测试2");sp…

Mysql 找出未提交事务的SQL及死锁

未提交事务&#xff1a; 通过查看information_schema.INNODB_TRX视图,您可以了解当前系统中正在运行的事务情况,从而进行问题排查和性能优化。 SELECT * FROM information_schema.innodb_trx; 通过trx_state为RUNNIG,trx_started判断是否有一直RUNNING的事务。 如果有未提交…