yolov1网络结构说明

文章目录

  • 一. 网络结构
  • 二. 网络说明
    • 1. 网络的输入
    • 2. 网络的输出
      • (1) 5 + 5表示:每个网格使用两个先验框进行预测。
      • (2) “5”表示:每个先验框包含的预测信息的数量。
      • (3) 20表示:20个分类预测值
      • (4) 每个网格能预测几个目标?

一. 网络结构

论文下载地址
项目地址
github源码地址
在这里插入图片描述

二. 网络说明

在这里插入图片描述

作者在YOLO算法中把物体检测(object detection)问题处理成回归问题,用一个卷积神经网络结构就可以从输入图像直接预测bounding box和类别概率。算法首先把输入图像划分成S×S的格子,然后对每个格子都预测B个bounding boxes,每个bounding box都包含5个预测值:换句话说,如果ground truth落在这个grid cell里,那么Pr(Object)就取1,否则就是0,IOU就是bounding box与实际的groud truth之间的交并比。所以confidence就是这两者的乘积。在yolov1中作者将一幅图片分成7x7个网格(grid cell),由网络的最后一层输出7×7×30的tensor,也就是说每个格子输出1×1×30的tensor。30里面包括了2个bound ing box的x,y,w,h,confidengce以及针对格子而言的20个类别概率,输出就是 7x7x(5x2 + 20) 。

  • x,y,w,h和confidence。
  • x,y就是bounding box的中心坐标,与grid cell对齐(即相对于当前grid cell的偏移值),使得范围变成0到1;
  • w,h进行归一化(分别除以图像的w和h,这样最后的w和h就在0到1范围)。
  • confidence代表了所预测的box中含有object的置信度和这个box预测的有多准两重信息

1. 网络的输入

图片大小:448 * 448 * 3 = (64 * 7) * (64 * 7)* 3 = 7 * 7 * (64 * 64 * 3)
也就是说,输入图像大小为448448的图像,被划分为77的网格,一个网格,负责检测输入图片的64 * 64 * 3个非连续的像素,来判断物体的位置、形状以及分类。
在这里插入图片描述

2. 网络的输出

YOLOv1把30个输出值,结构化成5 + 5 + 20。
在这里插入图片描述

(1) 5 + 5表示:每个网格使用两个先验框进行预测。

每个网格使用​两​个先验框去寻找是否有目标方框的中心点落在该网格内。
分别用B1(Box1)和B2(Box2)表示。这个2个框,称为“先验框”。
有点类似,每个网格使用两个不同尺寸的渔网去捞鱼(目标),看看能不能​捞到​目标。

(2) “5”表示:每个先验框包含的预测信息的数量。

方框中心点的坐标(x,y):(x,y)的坐标肯定会落在所属的网格内。
方框的尺寸(width,height):表明了方框的大小。
方框的包含物体目标的​置信度C​:表明方框的包含物体目标的可能性的大小。如果该方框内,没有包含人任何目标(物体),则置信度为0。如果该方框内,100%包含了目标(物体), 则置信度为1。其他值,表明方框内包含物体目标的可能性的大小。

(3) 20表示:20个分类预测值

每个值代表了某一种分类的“可能性”的预测值,每个可能性是[0, 1] 之间的一个数值。这块就是普通的图像分类,用于确定网格中检测到的目标的分类。这个长度,决定了YOLO V1最多只能识别20种分类目标。

(4) 每个网格能预测几个目标?

在YOLO V1中,虽然使用了两个先验框去找目标,但是每个网格只选用一个框中的预测结果来定位物体:位置+尺寸,依据就是每个框的置信度的大小,选择一个置信度大的框的预测结果。因此,在YOLO V1中,20分类是针对每个网格的,而不是每个先验框的,即每个先验框只需要检测是否有对象或物体。网格进一步的负责对检测到的目标的各种分类的可能性就行预测,最后选择最大可能性的分类输出。因此, YOLO V1中,对一张图而言,最多能够检测 7 * 7 = 49个目标,目标的分类数最大为20种。

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

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

相关文章

eNSP实验

前言 本文记录了使用eNSP进行组网,学习、巩固一些之前学的网络基础知识和协议。 一:同网段、网关互通 网络拓扑如下: AR1的配置: interface G0/0/0 ip address 192.168.10.1 24 PC1和PC2的配置(IP地址和网关设置) 最终实现PC1…

C/C++ Zlib库封装MyZip压缩类

Zlib是一个开源的数据压缩库,提供了一种通用的数据压缩和解压缩算法。它最初由Jean-Loup Gailly和Mark Adler开发,旨在成为一个高效、轻量级的压缩库,其被广泛应用于许多领域,包括网络通信、文件压缩、数据库系统等。其压缩算法是…

NX二次开发UF_CURVE_create_bridge_curve 函数介绍

文章作者:里海 来源网站:https://blog.csdn.net/WangPaiFeiXingYuan UF_CURVE_create_bridge_curve Defined in: uf_curve.h int UF_CURVE_create_bridge_curve(int bridge_method, tag_t curve_ids [ 2 ] , double parms [ 2 ] , int reverse_tangent…

MySQL安装与配置教程

🌷🍁 博主猫头虎(🐅🐾)带您 Go to New World✨🍁 🦄 博客首页——🐅🐾猫头虎的博客🎐 🐳 《面试题大全专栏》 🦕 文章图文…

基于Java SSM框架实现美食推荐管理系统项目【项目源码+论文说明】计算机毕业设计

基于java的SSM框架实现美食推荐管理系统演示 摘要 21世纪的今天,随着社会的不断发展与进步,人们对于信息科学化的认识,已由低层次向高层次发展,由原来的感性认识向理性认识提高,管理工作的重要性已逐渐被人们所认识&a…

什么是透明加密技术?透明加密有哪些优势?

透明加密技术是一种特殊的加密方法,它在用户毫不知情的情况下对数据进行加密和解密,保障了数据的安全性。用户在使用这种加密技术时,无需改变他们的日常操作习惯,加密和解密过程在后台自动进行,使得用户在享受数据安全…

Python语言学习笔记之六(程序调试及异常处理)

本课程对于有其它语言基础的开发人员可以参考和学习,同时也是记录下来,为个人学习使用,文档中有此不当之处,请谅解。 1、Python程序常见的错误 语法错误:不正确的缩进、未定义的变量、括号不匹配等.运行时错误: 尝试访问不存在的…

PyQt基础_009_ 按钮类控件QSlider

基本功能 import sys from PyQt5.QtCore import * from PyQt5.QtGui import * from PyQt5.QtWidgets import *class SliderDemo(QWidget):def __init__(self, parentNone):super(SliderDemo, self).__init__(parent)self.setWindowTitle("QSlider 例子") self.resize…

Python函数定义、函数调用详解

函数是 Python 程序的重要组成单位,一个 Python 程序可以由很多个函数组成。前面我们己经用过大量函数,如 len()、max() 等,使用函数是真正开始编程的第一步。 比如在程序中定义了一段代码,这段代码用于实现一个特定的功能。问题来…

掌握Flask:从入门到精通指南

掌握Flask:从入门到精通指南 Flask 是一个轻量级的 Python Web 应用程序框架,具有简单易学、灵活性高等特点,适合用于快速开发 Web 应用程序。本文将全面介绍 Flask 框架的各个方面,包括基本概念、路由、模板渲染、表单处理、数据…

abapgit 安装及使用

abapgit 需求 SA[ BASIS 版本 702 及以上 版本查看路径如下: 安装步骤如下: 1. 下载abapgit 独立版本 程序 链接如下:raw.githubusercontent.com/abapGit/build/main/zabapgit_standalone.prog.abap 2.安装开发版本 2.1 在线安装 前置条…

使用凌鲨管理本地git仓库

把本地git仓库添加到凌鲨后,可以更方便的获取git仓库的信息,比如查看commit记录,统计代码提交量,获取远程仓库的issue等功能。 功能 查看提交/分支/标记列表 查看提交差异 查看远程仓库和相关issue 每天代码量统计 添加本地仓库…

在线yml和properties相互转换

目前搜索到的大部分代码都存在以下问题: 复杂结构解析丢失解析后顺序错乱 所以自己写了一个,经过不充分测试,基本满足使用。可以直接在线使用 在线地址 除了yml和properties互转之外,还可以生成代码、sql转json等,可…

NSSCTF第14页(1)

[suctf 2019]checkin 利用了几种方式,发现都不行 1是修改mime类型,2是修改php标签为js标签,3是修改文件后缀 在试试用配置文件来上传 发现上传.user.ini文件成功 发现上传成功 上传的png图片 访问上传路径发现可以访问,上马成…

「Verilog学习笔记」状态机-非重叠的序列检测

专栏前言 本专栏的内容主要是记录本人学习Verilog过程中的一些知识点,刷题网站用的是牛客网 根据题意 定义一个五位的中间变量lock 每次始终上升沿来临时 判断当前寄存器的低四位新数据是否等于10111 如果等于 则下一时刻lock应被清空 否则lock等于当前的lock的低四…

windows+deepin v23 linux 双系统 安装前后 与 删除后 的硬盘efi分区情况,deepin v23 beta2的一些体验

知乎版:https://zhuanlan.zhihu.com/p/669429404 windows下安装deepin v23 beta2 电脑8GB内存,一个256GB固态硬盘,已经安装windows11。 安装双系统前分区情况:主要包含 windows EFI分区 和 系统分区,并预留了64GB给d…

【产品经理】AI在SaaS产品中的应用及挑战

随着ChatGPT大模型在全球的爆火,AI迅速在各个行业内,助力于各行业的效率提升。而SaaS领域,AI同样也大有可为。 AI(人工智能,Artificial Intelligence的缩写)近一年来一直处于舆论风口,随着ChatG…

nacos配置变更导致logback日志异常

问题背景: 线上的服务突然内存爆满,查服务器突然发现,日志全部打印到了/tmp/tomcat.xxx.port目录下,后来对应操作时间,和nacos修改配置是同一时间发生的,但是疑惑的点是,nacos配置变更为什么会引起logback的…

Git 是一种分布式版本控制系统常用指令

Git 是一种分布式版本控制系统,用于跟踪文件的变化并协同多人在同一个项目中进行开发。以下是一些常用的 Git 指令和它们的使用介绍: 1. 初始化一个新仓库 git init 用途:在当前目录初始化一个新的 Git 仓库。使用:在项目根目录执…

BLIoTLink软网关,一键解决OT层与IT层的通信

在工业自动化领域,协议转换一直是一个重要的问题。不同的设备、系统往往使用不同的通信协议,这给数据采集、设备接入等带来很大的困扰。为了解决这个问题,各种协议转换软件应运而生。其中,BLIoTLink作为一款功能强大的嵌入式工业协…