YOLO v1讲解

YOLO是最经典的一阶目标检测框架,记录一下v1思路。

整体流程

model

  1. 输入数据一张 448 × 448 × 3 448 \times 448 \times 3 448×448×3 的图片,切分成 7 × 7 7 \times 7 7×7 的网格
  2. 将图片经过多层CNN,下采样得到 7 × 7 × 30 7 \times 7 \times 30 7×7×30 的feature map,其中 30 = 2 ∗ ( 4 + 1 ) + 20 30 = 2 * (4 + 1) + 20 30=2(4+1)+20
    • 2 2 2 表示每个单元格预测两个边界框
    • 4 + 1 4 + 1 4+1 分别表示边界框的位置以及边界框的置信度(一是该边界框含有目标的可能性大小,0或者1;二是这个边界框的准确度,用IOU衡量)
    • 20 20 20 表示最置信的边界框预测该框属于哪个类别的概率。无论单元格预测多少个边界框,都是只取一个边界框来预测类别,即默认每个单元格只有一个物体,这也是v1的缺陷
  3. 计算loss,开始训练

总结一下,将图片分割成 S × S S \times S S×S 个单元格,每个单元格预测出 S × S × ( B ∗ 5 + C ) S \times S \times ( B * 5 + C ) S×S×(B5+C) 大小的张量。对应上述流程: S = 7 , B = 2 , C = 20 S = 7, B = 2, C = 20 S=7,B=2,C=20

损失函数

loss

  1. 第一项是边界框中心坐标的误差
  2. 第二项是边界框的高与宽的误差
  3. 第三项是包含目标的边界框的置信度误差(在训练过程中,如果该边界框包含目标,则置信度取IOU,而不是1,对应下面的代码可以理解)
  4. 第四项是不包含目标的边界框的置信度误差
  5. 第五项是包含目标的单元格的分类误差

值得注意的是,在推理过程中,我们是不可能计算出跟gt的IOU,所以取最置信的边界框作为predict label

代码实战

yolo loss


参考

  • YOLOv1代码分析——pytorch版保姆级教程
  • 目标检测|YOLO原理与实现

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

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

相关文章

JVM-对象创建与内存分配机制深度剖析 3

JVM对象创建过程详解 类加载检查 虚拟机遇到一条new指令时,首先将去检查这个指令的参数是否能在常量池中定位到一个类的符号引用,并且检查这个 符号引用代表的类是否已被加载、解析和初始化过。如果没有,那必须先执行相应的类加载过程。 new…

在分布式环境中使用状态机支持数据的一致性

简介 在本文中,我们将介绍如何在分布式系统中使用transaction以及分布式系统中transaction的局限性。然后我们通过一个具体的例子,介绍了一种通过设计状态机来避免使用transaction的方法。 什么是数据库transaction Transaction是关系型数据普遍支持的…

Threejs着色器(GPU)编程——感温管网

管网,作为支撑现代城市运转的重要基础设施,是隐藏在地面之下的庞大工程网络。这些管网如同城市的血脉,负责输送各种必要的资源,如水源、热力、燃气等,同时排除废水和其他废弃物。然而,由于其位于地下,人们往往难以直接感知其存在和运行状态。为了保障这些地下管网的安全…

现货白银实时行情的简单和复杂的判断

投资者要进行现货白银实时行情的判断,就需要有一个判断原则或者判断的系统。而这个判断的基础,有所谓的简单判断和复杂判断。那现货白银实时行情的简单和复杂的判断有何区别呢? 先说一下简单判断。现货白银实时行情的简单判断,主要…

yolov9网络结构图

文章目录 配置文件主干分支backbone预测头headyolov9网络结构图 系列文章目录 论文链接:👿 YOLOv9: Learning What You Want to Learn Using Programmable Gradient Information代码链接:👿 https://github.com/WongKinYiu/yolov9…

GAN 网络的损失函数介绍代码

文章目录 GAN的损失函数介绍1.L1 losses2.mse loss3.smooth L14.charbonnier_loss5.perceptual loss (content and style losses)6.Gan损失7.WeightedTVLoss8.完整代码方便使用,含训练epoch代码。 GAN的损失函数介绍 1.L1 losses pixel_opt: type: L1Loss loss_weight: 1.0 r…

新书速览|PyTorch语音识别实战(人工智能技术丛书)

实战语音唤醒、音频特征抽取、语音情绪分类、Whisper语音转换、鸟叫多标签分类、多模态语音文字转换 01 本书内容 《PyTorch语音识别实战》使用PyTorch 2.0作为语音识别的基本框架,循序渐进地引导读者从搭建环境开始,逐步深入到语音识别基本理论、算法以…

linux下部署OpenCV环境(Java/SpringBoot/IDEA)

环境 本文基于Linux(CentOS 7)、SpringBoot部署运行OpenCV 4.5.5,并顺带记录Windows/IDEA下如何调试SpringBoot调用OpenCV项目。 Windows下调试 首先我们编写代码,并在Windows/IDEA下调试通过。 下载Windows版安装包&#xff0…

星辰天合参与编制 国内首个可兼顾 AI 大模型训练的高性能计算存储标准正式发布

近日,在中国电子工业标准化技术协会高标委的支持和指导下,XSKY星辰天合作为核心成员参与编制的《高性能计算分布式存储系统技术要求》团体标准,在中国电子工业标准化技术协会网站正式发布。 该团体标准强调了分布式存储系统对包括传统高性能计…

教育中的人工智能:ChatGPT只是开始

近日,智能聊天工具ChatGPT在全球掀起热潮。谷歌、微软、苹果等科技巨头纷纷宣布跟进布局,有消息称中国互联网企业将于3月在推出类似ChatGPT的人工智能聊天机器人。 对于许多学生来说,数字助手已经成为一种非正式的家庭作业助手。自1966年第一…

2016年认证杯SPSSPRO杯数学建模C题(第一阶段)如何有效的抑制校园霸凌事件的发生解题全过程文档及程序

2016年认证杯SPSSPRO杯数学建模 C题 如何有效的抑制校园霸凌事件的发生 原题再现: 近年来,我国发生的多起校园霸凌事件在媒体的报道下引发了许多国人的关注。霸凌事件对学生身体和精神上的影响是极为严重而长远的,因此对于这些情况我们应该…

express接受请求参数

传参问题 1. get方式接受请求参数 get方式请求的参数会拼接在地址栏的后面,参数的格式是?namevalue&namevalue...express针对前端get方式发送的数据可以通过req.query来获取后端代码 // cart.js router.get(/getList, (req,res)>{const param {username…