目标检测-One Stage-YOLOv5

文章目录

  • 前言
  • 一、YOLOv5的网络结构和流程
    • YOLOv5的不同版本
    • YOLOv5的流程
    • YOLOv5s的网络结构图
  • 二、YOLOv5的创新点
    • 1. 网络结构
    • 2. 输入数据处理
    • 3. 训练策略
  • 总结


前言

前文目标检测-One Stage-YOLOv4提到YOLOv4主要是基于技巧的集成,对于算法落地具有重大意义,YOLOv5则在工程应用方面更近一步,将算法深度集成,使得使用者不用再过多关注算法实现,且提供了多种预训练模型,到目前为止,由ultralytics团队开发的ultralytics包,已经支持YOLOv3YOLOv5YOLOv6YOLOv8YOLO-NASRT-DETR等等,其中YOLOv5和当前YOLO家族最新的YOLOv8是由ultralytics团队研发的。


提示:以下是本篇文章正文内容,下面内容可供参考

一、YOLOv5的网络结构和流程

YOLOv5的不同版本

YOLOv5给出了五个版本:Yolov5nYolov5sYolov5mYolov5lYolov5x

ps:

  • 要注意的是Yolov5n是YOLOv5 系列中的一个变体,专为 Nano 设备(如 NVIDIA Jetson Nano)进行优化。YOLOv5n 在保持较快速度的同时,提供适用于边缘设备的准确度。
  • 因此不算Yolov5n的话,YOLOv5s网络是YOLOv5系列中深度最小,特征图的宽度(channels)最小的网络。其他的三种(m、l、x)都是在此基础上不断加深,不断加宽。
    在这里插入图片描述

YOLOv5的流程

  1. 利用自适应图片缩放技术对输入图片进行缩放

ps:

  • 传统的缩放填充后,两端的黑边大小都不同,如果填充的比较多,则存在信息冗余,影响推理速度。
    在这里插入图片描述
  • yolov5对原始图像自适应的添加最少的黑边。图像高度上两端的黑边变少了,在推理时,计算量也会减少,即目标检测速度会得到提升。注意自适应图片缩放只在检测时使用,在训练时仍使用传统填充方法
  • 举例说明自适应图片缩放计算过程:
  1. 根据原始图片大小以及输入到网络的图片大小计算缩放比例,并选择小的缩放系数
    在这里插入图片描述
  2. 第一步得到缩放系数的计算缩放后的图片大小
    在这里插入图片描述
  3. 计算黑边填充数值:将416-312=104,得到原本需要填充的高度,再采用32对104取余,得到8个像素,再除以2,即得到图片高度两端需要填充的数值。之所以利用32取余,是因为YOLOv5的网络经过5次下采样,而2的5次方,等于32。所以至少要去掉32的倍数,再进行取余,以免产生尺度太小走不完stride(filter在原图上扫描时,需要跳跃的格数)的问题。
    在这里插入图片描述
  1. 将利用Focus在不丢失信息情况下对输入影像进行下采样
  2. 将下采样图像输入Backbone+PANet提取多尺度特征
  3. 利用自适应anchor计算获取预选框

ps:

  • YOLO系列中,可以针对数据集设置初始的anchor。在网络训练中,网络在anchor的基础上输出预测框,进而和GT框进行比较,计算loss,再反向更新,迭代网络参数。在YOLOv3、4版本中,设置初始anchor的大小都是通过单独的程序使用K-means算法得到,但是在YOLOv5中,将此功能嵌入到代码中,每次训练数据集之前,都会自动计算该数据集最合适的Anchor尺寸,该功能可以在代码中设置超参数进行关闭。
  • 自适应anchor的计算具体过程如下:
    ①获取数据集中所有目标的宽和高。
    ②将每张图片中按照等比例缩放的方式到 resize 指定大小,这里保证宽高中的最大值符合指定大小。
    ③将 bboxes 从相对坐标改成绝对坐标,这里乘以的是缩放后的宽高。
    ④筛选 bboxes,保留宽高都大于等于两个像素的 bboxes。
    ⑤使用 k-means 聚类三方得到n个 anchors,与YOLOv3、YOLOv4 操作一样。
    ⑥使用遗传算法随机对 anchors 的宽高进行变异。倘若变异后的效果好,就将变异后的结果赋值给 anchors;如果变异后效果变差就跳过,默认变异1000次。这里是使用 anchor_fitness 方法计算得到的适应度 fitness,然后再进行评估。
  1. 将上一步得到的anchor输入不同的分类和边框回归器
  2. 使用非极大值抑制DIoU-NMS去除冗余窗口(训练时用的CIoU loss)

YOLOv5s的网络结构图

在这里插入图片描述

二、YOLOv5的创新点

1. 网络结构

  • 卷积块从CBM换回了CBL(激活函数从Mish到Leaky relu)
  • 设计了CSP_2X结构应用于Neck中,加强了网络特征融合的能力。
  • backbone最前端添加了Focus模块(基本上是Yolov2中的pass through)以减小特征图尺寸,减小了模型复杂度。

2. 输入数据处理

  • Mosaic数据增强
  • 自适应锚框计算
  • 自适应图片缩放

3. 训练策略

  • 多尺度训练(Multi-scale training)。 如果网络的输入是416 x 416。那么训练的时候就会从 0.5 x 416 到 1.5 x 416 中任意取值,但所取的值都是32的整数倍。
  • 训练开始时先使用 warmup 进行预热。 在模型预训练阶段,先使用较小的学习率训练一些epochs或者steps (如4个 epoch 或10000个 step),再修改为预先设置的学习率进行训练。
  • 使用了余弦退火学习率衰减策略(Cosine annealing scheduler)。
  • 采用了 EMA (Exponential Moving Average)更新权重。 相当于训练时给参数赋予一个动量,这样更新起来就会更加平滑。

ps:在深度学习中,经常会使用EMA(指数移动平均)这个方法对模型的参数做平均,以求提高测试指标并增加模型鲁棒。

  • 使用了AMP(Automatic Mixed-Precision training)进行混合精度训练(Mixed precision)。 能够减少显存的占用并且加快训练速度,但是需要 GPU 支持。

ps:默认情况下,大多数深度学习框架都采用32位浮点算法进行训练。2017年,NVIDIA研究了一种用于混合精度训练的方法,该方法在训练网络时将单精度(FP32)与半精度(FP16)结合在一起,并使用相同的超参数实现了与FP32几乎相同的精度。


总结

YOLOv5的精度和速度如下:
在这里插入图片描述

在这里插入图片描述

ps:YOLOv5n6等后缀的6代表6.0版本,是在默认版本(5.0)上的更新,区别如下:

  1. 使用了更大的输入,提高了对小物体的检测精度
  2. backbone中:5.0中是SPP+CSP2_X的结构,而在6.0版本是CSP1_X+SPPF结构
  3. CBL修改为CBS
    在这里插入图片描述

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

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

相关文章

SpringIOC之support模块EmbeddedValueResolutionSupport

博主介绍:✌全网粉丝5W,全栈开发工程师,从事多年软件开发,在大厂呆过。持有软件中级、六级等证书。可提供微服务项目搭建与毕业项目实战,博主也曾写过优秀论文,查重率极低,在这方面有丰富的经验…

国货美妆未来发展方向在哪儿?媒介盒子分析

在消费结构升级,审美观念和悦己意识增强等多种因素的推动下,国内化妆品消费持续增长,那么国货美妆品牌在2024年的发展重心在哪儿?应该如何通过合适的营销提高品牌曝光,提高市场竞争力呢?接下来就让媒介盒子…

【liunx】线程池+单例模式+STL,智能指针和线程安全+其他常见的各种锁+读者写者问题

线程池单例模式STL,智能指针和线程安全其他常见的各种锁读者写者问题 1.线程池2.线程安全的单例模式3.STL,智能指针和线程安全4.其他常见的各种锁4.读者写者问题 喜欢的点赞,收藏,关注一下把! 1.线程池 目前我们学了挂起等待锁、条件变量、信…

一氧化碳中毒悲剧频发:探究道合顺电化学传感器促进家庭取暖安全

1月6日,陕西省榆林市发生了一起疑似因使用煤炭炉取暖中毒事件。通报称,经公安部门现场调查,并结合医院救治情况,初步判断5人属一氧化碳中毒,其中4人抢救无效死亡,令人痛心。 一般来说,这种在日…

如何在企业中实施自适应人工智能?

人工智能不再是企业的选择。很快,它也将不再是一个区分因素。商业中的适应性人工智能正在改变格局。根据最近的统计数据,95%的企业以上都在追求人工智能。 因此,为了确保你拥有竞争优势,你必须期待先进的人工智能选项。适应性就是…

如何使用内网穿透实现iStoreOS软路由公网远程访问局域网电脑桌面

文章目录 简介一、配置远程桌面公网地址二、家中使用永久固定地址 访问公司电脑**具体操作方法是:** 简介 软路由是PC的硬件加上路由系统来实现路由器的功能,也可以说是使用软件达成路由功能的路由器。 使用软路由控制局域网内计算机的好处&#xff1a…

Elasticsearch基本操作之文档操作

本文来说下Elasticsearch基本操作之文档操作 文章目录 文档概述创建文档示例创建文档(生成随机id)创建文档(自定义唯一性标识) 查看文档示例根据主键查看文档查看所有文档 修改文档示例全局修改文档局部修改文档 删除文档示例根据文档的唯一性标识删除文档条件删除文档 本文小结…

LabVIEW在旋转机械故障诊断中的随机共振增强应用

在现代工业自动化领域,准确的故障诊断对于保障机械设备的稳定运行至关重要。传统的故障检测方法往往因噪声干扰而难以捕捉到微弱的故障信号。随着LabVIEW在数据处理和系统集成方面的优势日益凸显,其在旋转机械故障诊断中的应用开始发挥重要作用&#xff…

OpenWrt智能路由器Wifi配置方法 目前最安全的WPA2-PSK/WPA3-SAE wifi加密配置方法

OpenWrt默认Wifi是 没有启用, 就算是启用了也是没有任何密码的, 如果需要设置密码需要我们手动进行配置, 配置方式如下: 登录路由器 http://openwrt.lan/ 默认用户名密码 root/password 然后找到 Network --> Wireless 如下图: 点击 Edit --> 然后选择 Interface Co…

工程监测中振弦采集仪的数据处理方法研究

工程监测中振弦采集仪的数据处理方法研究 工程监测中振弦采集仪的数据处理方法研究是针对振弦采集仪所采集到的数据进行分析和处理,以获得需要的监测信息和结构响应。以下是一种常见的数据处理方法: 1. 数据清洗: 首先对采集到的原始数据进行清洗&#…

2023 年精选:ChatGPT 会取代开发者吗?

由于最近发布了ChatGPT,人工智能再次热闹起来,ChatGPT 是一种自然语言聊天机器人,人们用它来写电子邮件、诗歌、歌词和大学论文。早期采用者甚至用它来编写Python 代码,以及对 shellcode 进行逆向工程并用 C 重写。ChatGPT 给那些…

Pycharm恢复默认设置

window 系统 找到下方目录-->删除. 再重新打开Pycharm C:\Users\Administrator\.PyCharm2023.3 你的不一定和我名称一样 只要是.PyCharm*因为版本不同后缀可能不一样 mac 系统 请根据需要删除下方目录 # Configuration rm -rf ~/Library/Preferences/PyCharm* # Caches …

数据结构之B树和B+树

数据结构可视化演示链接,也就是视频中的网址 文章目录 一、B-Tree二、BTree(B-Tree变种) 一、B-Tree 样例图 叶节点具有相同的深度,叶节点的指针为空所有索引元素不重复节点中的数据索引从左到右递增排列 二、BTree(B-Tree变种) 样例图 非叶子节…

Python异步编程|PySimpleGUI界面读取PDF转换Excel

目录 实例要求 原始pdf文件格式 输出xls文件格式 运行界面 完整代码 代码分析 遍历表格 布局界面 控件简介 写入表格 表格排序 事件循环 异步编程 实例要求 使用PySimpleGUI做一个把单位考勤系统导出的pdf文件合并输出Excel的应用,故事出自&#xff1…

2024年,为什么学网络安全找不到工作?这才是重要原因!

为什么网络安全人才缺口那么大,但很多人还是找不到工作?其实大家都忽略了1个重点,那就是不清楚企业在招什么样的人。 我花了2天的时间统计了主流招聘网站的岗位信息,发现了一个惊人的真相,那就是企业都喜欢招这3种人&a…

基于Kettle开发的web版数据集成开源工具(data-integration)-部署篇

目录 📚第一章 前言📗背景📗目的📗总体方向 📚第二章 下载编译📗下载📗编译 📚第三章 部署📗准备工作📕 安装数据库&redis&consul📕 修改…

无法自动装配。找不到 ‘RabbitTemplate‘ 类型的 Bean

解决方案&#xff1a;把这个项目的spring-rabbit依赖的<scope>test</scope>删除并重新加载maven

从私有Git仓库的搭建到命令的使用及部署再到分支管理

一、版本控制系统/版本控制器 1. 版本控制系统&#xff1a; git 分布式 —没有中心代码库&#xff0c;所有机器之间的地位同等&#xff08;每台机器上都有相同的代码&#xff09; svn 集中管理的 —有中心代码库&#xff0c;其他都是客户端 2.git与svn介绍 1.git属于分布…

YOLOv8/v7/v5全网首发原创独家创新,内涵CBAM注意力改进、ECA改进,SPPF改进等

&#x1f4a1;&#x1f4a1;&#x1f4a1;全网独家首发创新&#xff08;原创&#xff09;&#xff0c;纯自研模块&#xff0c;适合paper &#xff01;&#xff01;&#xff01; &#x1f4a1;&#x1f4a1;&#x1f4a1;内涵CBAM注意力改进、ECA改进&#xff0c;SPPF改进等&am…

拼多多API:从数据中挖掘商业价值的力量

随着大数据时代的来临&#xff0c;数据已经成为企业决策和创新的基石。拼多多API作为电商领域的重要接口&#xff0c;为企业提供了从数据中挖掘商业价值的机会。通过拼多多API&#xff0c;企业可以获取丰富的用户数据、商品数据和交易数据&#xff0c;从而深入了解市场需求、优…
最新文章