计算机视觉——yolov5回归与跨网格预测、训练技巧(下篇)

news2024/11/14 14:14:43

yolov5

  • 1. yolov5网络架构与组件
    • 1.1 网络可视化工具 netron
    • 1.2 不同模型的配置
    • 1.3 Focus 模块
    • 1.4 CSPNet 跨阶段局部网络
    • 1.5 SPP 空间金字塔池化
    • 1.6 PANet 路径聚合网络
  • 2. 损失函数
    • 2.1 类别预测
    • 2.2 边界框回归
    • 2.3 回顾IoU
    • 2.4 IoU推广——GIoU loss
    • 2.5 IoU推广——DIoU loss
    • 2.6 IoU推广——CIoU loss
    • 2.7 总结
  • 3. YOLOv5目标框回归与跨网格预测策略
    • 3.1 回顾:目标框PASCAL VOC标注格式
    • 3.2 标记文件
      • 一个例子
    • 3.3 目标框回归
    • 3.4 YOLOv5跨网格匹配策略
  • 4. YOLOv5 训练技巧
    • 4.1 训练预热warmup
    • 4.2 自动计算锚框
    • 4.3 超参数进化
    • 4.4 自动混合精度训练
    • 4.5 断点续训 !!!!!!!!!
    • 4.6 多GPU训练
    • 4.7 并行数据加载

1. yolov5网络架构与组件

1.1 网络可视化工具 netron

在线版本:浏览器中输入链接: https://lutzroeder.github.io/netron/
netron官方的Github链接:https://github.com/lutzroeder/netron

1.2 不同模型的配置

image-20230330125609425

1.3 Focus 模块

image-20230330125649829

一个小实验:image-20230330125759484

Focus()模块是为减少错误和提高速度而设计的,而不是提高精度。

image-20230330125817968

1.4 CSPNet 跨阶段局部网络

image-20230330130033908

1.5 SPP 空间金字塔池化

在CSP上添加SPP块,因为它显着地增加了接收字段,分离出了最重要的内容,几乎没有降低网络的操作速度。

image-20230330130227107

1.6 PANet 路径聚合网络

在这里插入图片描述

2. 损失函数

image-20230330132632064

2.1 类别预测

image-20230330132725856

2.2 边界框回归

image-20230330132834504

2.3 回顾IoU

image-20230330132939901

2.4 IoU推广——GIoU loss

image-20230330133049144

image-20230330133128505

C 框是包围A、B的最小的框

2.5 IoU推广——DIoU loss

image-20230330133321890

蓝色为对角线,两框中心点的距离为d

image-20230330133417955

在IoU和GIoU一样的情况下,DIoU还有变化。

2.6 IoU推广——CIoU loss

image-20230330134044029

优化的偏导数

image-20230330134111209

2.7 总结

image-20230330133521568

还有CIoU等等,大家感兴趣可以自己了解。

image-20230330133750549

DIoU波动稳定,对不同值的适应能力比较强;实验比较G&C:CIoU的表现比较好,YOLOv5默认用CIoU计算Loss

image-20230330133841706

3. YOLOv5目标框回归与跨网格预测策略

3.1 回顾:目标框PASCAL VOC标注格式

左上角为坐标原点

image-20230411130856440

3.2 标记文件

image-20230411130758602

图右框住的部分可以看出,框的宽高等做了归一化;两种标记文件是可以转换的

一个例子

image-20230411131155876

3.3 目标框回归

image-20230411131242684

蓝色是预测框,虚线是先验框(anchor)

image-20230411131537172

两个模型的计算方式出现了改变;原始的yolo / darknet框方程式存在严重缺陷。宽度和高度完全不受限制,它可能导致失控的梯度、不稳定、NaN损失并最终完全失去训练。

对于yolov5,确保通过sigmoid所有模型输出来修补此错误,同时还要确保中心点保持不变1=fcn (0) ,因此模型的标称零输出将导致使用标称锚框大小(即预先设置的锚框)。当前的方程式将锚点的倍数从最小0限制为最大4(这个地方的解释:sigmoid函数取值[0,1],因此其平方乘以2 的取值范围就是[0,4]),并且锚框-目标匹配也已更新为基于宽度-高度倍数,标称上限阈值超参数为4.0。

image-20230411131755033

3.4 YOLOv5跨网格匹配策略

image-20230411133646563

4. YOLOv5 训练技巧

4.1 训练预热warmup

刚开始训练时,模型的权重(weights)是随机初始化的,此时若选择一个较大的学习率,可能带来模型的不稳定(振荡)。选择warmup预热学习率的方式,可以使得开始训练的几个epoches或者一些steps内学习率较小,在预热的小学习率下,模型可以慢慢趋于稳定,等模型相对稳定后再选择预先设置的学习率进行训练,使得模型收敛速度变得更快,模型效果更佳。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-XNOeFks2-1681870777889)(C:/Users/dell/AppData/Roaming/Typora/typora-user-images/image-20230411134042225.png)]

0-30个epoches的warmup,学习率从很小增加很快,第三张图是不同的预热策略。

例子:余弦退火调整学习率。

image-20230411134459791

4.2 自动计算锚框

Anchor给出了目标宽高的初始值,需要回归的是目标真实宽高与初始宽高的偏移量,而不使用anchor的做法需要回归宽高的绝对量。
Autoanchor only runs when the best possible recall (BPR,最大可能召回率) is under threshold;在yolov5中,BPR小于98%就会自动计算锚框。

image-20230411134658548

也可以自己禁用这一功能,自动计算的锚框信息会保存在模型的权重文件中。

4.3 超参数进化

在yolov5中采用类似GA遗传算法来进行优化,但yolov5无交配这一操作。

image-20230411134851198

4.4 自动混合精度训练

image-20230411135027934

如何使用呢?

image-20230411135219448

4.5 断点续训 !!!

image-20230411135522128

4.6 多GPU训练

image-20230411135801847

推荐的模式:

image-20230411135819929

4.7 并行数据加载

多线程加载数据从而加快速度,最下面的是并行流水线加载

image-20230411135840504

DDP模式

image-20230411140013152

可以在github上看详细命令和介绍 点击跳转

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

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

相关文章

性能分析方法论简介

文章目录 1. 前言2. 性能分析概述3. 性能分析方法论一览3.1 TSA 和 USE3.1.1 TSA3.1.1.1 TSA 概述3.1.1.2 TSA 状态转换3.1.1.3 延迟类状态3.1.1.3 TSA 总结 3.1.2 USE3.1.2.1 USE 简介3.1.2.2 低利用率是否意味着没有饱和?3.1.2.3 使用 USE3.1.2.3 常见资源列表 和…

基于springboot+Vue的大学生高校学科竞赛报名管理系统

(4)学生: 个人中心:此页面,用户可查看其个人信息,可进行修改个人信息操作; 个人竞赛报名模块:查看已创建的学科竞赛,并可报名。 团队竞赛报名模块:查看已创建…

(二十)查找算法-二分查找

1 基本介绍 二分查找又叫折半查找,是一种高效简单的查找算法,通常用于在有序的数组中查找某个元素,例如从{1,2,4,6,8,9,10,23,24}的数组中查找值是8的元素,就可以采用二分查找法。 二分查找的思想: 给一个有序的序列…

【Qt5】快速傅里叶变换(FFTW库)+QCustomplot

文章目录 一、Windows下的FFTW库下载、配置、使用使用windows的lib工具生成库添加库文件到qt 一、Windows下的FFTW库下载、配置、使用 下载地址:https://fftw.org/pub/fftw/ 使用windows的lib工具生成库 Windows环境解压出来,在当前目录打开命令行&…

mysql数据库(工具类、DBUtils(应用)、数据库连接池、密码处理)

增删改查的工具类 操作数据库常用的执行方法: execute()可以进行增删改查 executeUpdate() 可以执行增删改 但是不能执行查询 exeuctQuery():只可以执行查询 我们在封装这个工具类的时候,只需要封装两种:一…

Centos7 安装NVM【安装node、安装教程】

1.编辑安装脚本 vim install.sh这里为了防止无法访问到github,这里特地将安装脚本复制过来了 对应网站:raw.githubusercontent.com/nvm-sh/nvm/v0.38.0/install.sh #!/usr/bin/env bash{ # this ensures the entire script is downloaded #nvm_has() {t…

SHELL脚本的编写

目录 1、判断当前磁盘剩余空间是否有20G,如果小于20G,则将报警邮件发送给管理员,每天检查一次磁盘剩余空间。 2、判断web服务是否运行(1、查看进程的方式判断该程序是否运行 3、使用curl命令访问第二题的web服务,看…

C语言模拟银行排队叫号(顺序队)

一.队列 队列是一种具有先进先出(FIFO)特性的线性数据结构,它只允许在队列的两端进行插入和删除操作。队列的一端称为队尾(rear),另一端称为队头(front)。新元素总是插入在队列的队…

浙大OJ 1004 回文栈 暴搜

🍑 ZOJ 1004 Anagrams by Stack 输入 madam adamm bahama bahama long short eric rice输出 [ i i i i o o o i o o i i i i o o o o i o i i o i o i o i o o i i o i o i o o i o ] [ i o i i i o o i i o o o i o i i i o o o i o i o i o i o i o i i …

苹果手机网速慢怎么办?这些方法帮你解决网速慢的问题!

案例:苹果手机数据网络信号差,怎么解决? 【家人们,苹果手机不知咋回事,网速很慢,想要在某宝买个东西都得卡个半天。哭了!有没有什么方法解决?】 苹果手机作为一款高端智能手机&…

数据结构(四)—— 字符串

文章目录 一、字符串基础二、题2.1 344 反转字符串2.2 541 反转字符串II2.3 剑指Offer 05.替换空格2.4 151 翻转字符串里的单词2.5 剑指Offer58-II.左旋转字符串2.5 28 实现 strStr()2.6 459 重复的子字符串 一、字符串基础 1、旋转字符串:reverse(s.begin(), s.en…

WinScp密钥登录

使用密码登录非常的方便,但是有的客户的云服务器上是限定只能通过密钥登录。我一般使用命令行的scp命令就可以正常上传,但是对于我一些同事来说,就很不方便。 生成密钥 这个不难,可以参考我之前的文章。 《Mac使用ssh连接远程服…

docker简单教程(一)安装

docker简单教程(一)安装 文章目录 docker简单教程(一)安装1:Windows安装和mac安装2:linux安装3:安装成功4:**下一篇介绍基本实现,5分钟实现一个简单的服务器。** 接下来开…

杨廷琨:Oracle 23c值得关注的15项新特性

导语 2023年4月7日,由中国DBA联盟(ACDU)和墨天轮社区联合主办的第十二届『数据技术嘉年华』(DTC 2023) 在北京新云南皇冠假日酒店盛大开启。次日,云和恩墨联合创始人兼CTO杨廷琨在“智能前沿:数据库内核技术”专题论坛…

iptables表、链、规则

netfilter/iptables(也就是常说的iptables)组成Linux平台下的包过滤防火墙,具有完成封包过滤、封包重定向和网络地址转换(NAT)等功能。 netfilter是Linux 核心中一个通用架构,它提供了一系列的"表&quo…

4.2.2字符串KMP算法

对朴素模式匹配算法的优化: 当我们匹配最后一个字符才发现匹配失败。 那么前面这些字符一定是与模式串对应的。 通过模式串的部分匹配 朴素模式匹配算法优化思路: 不匹配的字符之前,一定是和模式串一致的。 可以跳过中间好几个没有必要的对比…

一、基础算法8:离散化 模板题+算法模板(区间和)

文章目录 离散化介绍算法模板离散化题目模板 模板题区间和原题链接题目题解思路 unique原理补充介绍 离散化介绍 算法模板 离散化题目模板 vector<int> alls; // 存储所有待离散化的值 sort(alls.begin(), alls.end()); // 将所有值排序 alls.erase(unique(alls.begin(…

重磅!Google Brain 与 DeepMind 宣布合并,成立 Google DeepMind 新部门

文 | 小戏 昨日&#xff0c;谷歌母公司 Alphabet 首席执行官桑达尔皮查伊宣布&#xff0c;谷歌将合并旗下最大的两个 AI 研究机构——地处伦敦 DeepMind 与位于硅谷的 Google Brain&#xff0c;成立全新的部门 Google DeepMind。桑达尔皮查伊表示&#xff0c;这项合并将整合两个…

【AI理论学习】提示学习中常见的Prompt方法

提示学习中常见的Prompt方法 硬模板方法1. PET(Pattern Exploiting Training)2. LM-BFF 软模板方法1. P-tuning2. Prefix tuning3. Soft Prompt Tuning 总结参考资料 提示学习中常见的Prompt方法可以大概分为硬模板方法和软模板方法。 硬模板方法 主要介绍PET方法和LM-BFF方法…

Windows10系统关闭自动更新及优化

研究背景&#xff1a; 自从用了windows10系统后&#xff0c;老是会遇到糟心的事情&#xff0c;不知不觉的情况下C盘就爆红了&#xff0c;而导致这个的主要原因就是系统老是自动更新&#xff0c;每次更新都是好几个G&#xff0c;耗流量不说&#xff0c;还特别占用C盘空间&#…