学习系列一:YOLO系列目标检测框架之间介绍及对比

YOLO系列目标检测框架之间介绍及对比

华为HCIP AI高级工程师证书, 华为HCIA AI证书,目前从事视觉算法工作


文章目录

  • YOLO系列目标检测框架之间介绍及对比
  • 前言
  • 一、YOLOv1
  • 二、YOLOv2
  • 三、YOLOv3
  • 四、YOLOv4
  • 五、YOLOv5及后续算法


前言

YOLO系列算法

YOLO 创新性地通过单次网络运行实现目标检测,之前的方法要么使用滑动窗口,要么使用分类器,每个图像需要运行数百次或数千次,从而造成模型计算量大和实时性更低。更先进的方法则将任务分为两步,首先识别含有物体或候选框可能存在的区域,随后对这些候选框进行分类。与之不同 YOLO 采用了一种更为直观的方法,仅通过回归分析来直接预测检测结果,巧妙地平衡了实时性与准确性的需求,大幅提升了目标检测领域的效率和效果。


一、YOLOv1

YOLOv1 算法引入网格划分机制,输入的图像被划分为一个 7×7 的单元网格,当检测到物体的中心落在某个网格的中心时,这个网格就会负责预测这个物体。对于每一个单元网格,都会预先生成两个边界框,而且只预测一个目标,每个边界框包含边界框坐标信息和置信度得分,最终的预测特征由边框的位置、边框的置信度得分以及类别概率组成。作为一阶段目标检测算法的代表,YOLO 利用其特有的网格分割预测策略机制,成功地跳过了传统候选区域生成的计算步骤,大大减少了算法的复杂性,并显著加快了检测的速度。
在这里插入图片描述

二、YOLOv2

在确保检测速度不变的前提下,针对 YOLOv1 算法存在的问题,YOLOv2 算法进行了若干优化和完善。首先,YOLOv2 算法在所有的卷积层上进行了批量归一化处理,这一方法不仅提高了模型的收敛性,还减少了对其他正则化形式的依赖。接下来,YOLOv2 算法采用了更高分辨率的图像来对模型进行预先的训练,从而增强了网络在高分辨率输入条件下的表现,同时通过融合卷积操作与先验框策略来进行边界框及其分类的预测,这不仅加快了数据处理和预测流程,而且还通过提高特征图的分辨能力,为后续的分类运算奠定了坚实的基础。这种方法有效地增强了算法对于目标特征的捕捉能力,从而提供了更准确、更细腻的预测结果。
经过改进后,其优势变得尤为明显,通过对 YOLOv2 每一个卷积层都做了归一化,改善了模型收敛性,使得平均精度均值提高了 2%;通过使用高分辨率图像来训练模型,来匹配模型对高分辨率图像输入的适应能力,从而使得模型的平均精度平均提升了 4%;参考了两阶段检测算法中的先验框预测边界框策略,并采用 k-means方法对训练集的边界框进行聚类,这使得模型能够独立地找到最适合的锚框尺寸,从而节约大量时间资源。YOLOv2 使用的新的分类模型被称为 Darknet19 作为骨干架构,Darknet19 整体上卷积操作比 YOLOv1 中更少,从而使计算量更少。此外,YOLOv2 还使用联合训练法,来提高
模型的泛化能力。

三、YOLOv3

针对 YOLOv2 的缺陷,YOLOv3 将当时一些较好的检测思想融入到了该版本的 YOLO系列中,在保持速度优势的前提下,进一步提升了检测精度。YOLOv3 主要做了三个方面的改进:(1)继续吸收了当时优秀的检测框架的思想,如残差网络和特征融合等,提出新的网络结构,称之为 DarkNet53,DarkNet53 借鉴残差连接的思想,在基础网络中大量使用了残差连接,并且缓解了在训练中梯度消失的问题,使得模型更容易收敛,很大程度上提高了数据表征能力。(2)采用多尺度预测,YOLOv3 巧妙地输出三种不同尺寸的特征图,依次对应于深层、中层和浅层特征的提取。深层特征图的尺寸较小但感受野更广,这使其特别适合于大尺寸物体的检测。相反,浅层特征图则具有较大的尺寸和较小的感受野,从而更加专注于小尺寸物体的检测,这种分层的方法大幅增强了模型对不同尺寸物体的检测能力。(3)Logistic 函数替代 Softmax 函数来优化类别预测得分的处理。这一变更背后的逻辑在于 Softmax 函数在输出多个类别预测时存在相互抑制的问题,导致仅能预测单一类别。相比之下,Logistic 分类器的设计保证了预测的独立性,从而使得对多个类别的同时预测成为可能,显著增强了模型的多类别识别能力。
在这里插入图片描述

四、YOLOv4

2020 年提出的 YOLOv4 算法,在一个阶段内完成特征提取、位置回归和分类识别的任务,实现了检测的实时性与高精度的完美平衡。YOLOv4 改善了骨干网络结构,引入了专为解决特征图冗余问题设计的 CSPDarknet53 网络。这一网络结构深刻认识到,不同通道的特征图中往往蕴含相似的信息,通过对这些冗余信息的精细优化处理,极大提升了算法的处理效率与性能表现。进一步地,YOLOv4 在继承其前代技术基础上进行了深度优化,将 DarkNet53 中的 LeakyReLU激活函数替换为更为先进的 Mish激活函数。同时,通过引进 Dropblock 技术,该算法随机丢弃部分神经元,既简化了网络架构,也提高了模型的泛化能力。在网络的“Neck”部分,YOLOv4 采纳了包含 SPP 模块和路径聚合网络(Path Aggregation Network, PAN)结构的创新性改进,其中 SPP 模块通过最大池化技术对特征图执行深层次卷积,扩大了特征的感受范围;而 PAN 结构通过有效的特征融合策略,显著增强了模型的精确度。在输入端,YOLOv4 通过 Mosaic 数据增强技术的巧妙运用,随机组合四张图片,这不仅极大地丰富了训练数据集,同时也显著减少了 YOLOv4 算法对GPU 资源的过度依赖,从而进一步优化了算法的性能。
在这里插入图片描述

五、YOLOv5及后续算法

YOLOv5 的网络架构融合了当时最新的目标检测技术思想,旨在进一步提升模型的训练效率和检测准确度。
在这里插入图片描述

在此基础上,YOLOv6 和 YOLOv7 通过借鉴参数结构化策略来优化网络架构,在保持较好的多尺度特征融合能力的同时,也能保持网络架构高效的推理。而 YOLOv8则在保持 YOLOv5 基本架构的前提下,在 Backbone 中将 YOLOv5 的 C3 模型结构进行梯度流的优化,换成了梯度流更加丰富的 C2f 结构,并对不同尺度模型的通道数进行了不同的调整,加强网络的特征提取和推理速度优化,以实现
性能的进一步提升。在 Head 部分采用解耦头的设计,将分类与检测任务进行分离,同时锚框也从 Anchor based 换成了 Anchor free。相比较 YOLOv5 而言,YOLOv8 属于对模型结构精心微调,不再是像 YOLOv6 和 YOLOv7 那样把一套新的参数应用所有模型,YOLOv8 大幅提升了模型性能,不过YOLOv8 的 C2f 模块中的 Split 操作对特定硬件进行部署不如 YOLOv5 模型结构更加友好。对 YOLOv1-YOLOv8 算法架构、算法框架、是否锚框和公共数据集上取得性能报告进行对比。
在这里插入图片描述

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

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

相关文章

树与二叉树学习笔记

树与二叉树 计算机中的树树的概念树的类型 什么是二叉树二叉树:定义与特点二叉树:前序、中序、后序遍历二叉树:深度、广度优先遍历二叉树:线索化二叉树:序列化与反序列化 haffman树平均编码长度构建haffman树haffman树…

数学建模算法汇总(全网最全,含matlab案例代码)

数学建模常用的算法分类 全国大学生数学建模竞赛中,常见的算法模型有以下30种: 最小二乘法数值分析方法图论算法线性规划整数规划动态规划贪心算法分支定界法蒙特卡洛方法随机游走算法遗传算法粒子群算法神经网络算法人工智能算法模糊数学时间序列分析马…

大模型应用—大模型赋能网络爬虫

大模型赋能网络爬虫 简单来说,网页抓取就是从网站抓取数据和内容,然后将这些数据保存为XML、Excel或SQL格式。除了用于生成潜在客户、监控竞争对手和市场研究外,网页抓取工具还可以用于自动化你的数据收集过程。 借助AI网页抓取工具,可以解决手动或纯基于代码的抓取工具的…

shell脚本语言的入门

📑打牌 : da pai ge的个人主页 🌤️个人专栏 : da pai ge的博客专栏 ☁️宝剑锋从磨砺出,梅花香自苦寒来 ☁️运维工程师的职责:监…

腾讯技术创作特训营 -- SUPERWINNIE -- AI重塑社交内容

目录 1 什么是AI社交内容 2 案例拆解 3 用LLM做爆文选题 4 用LLM出爆文脚本提示词 1 什么是AI社交内容 任何一个因素被AI取代都是AI社交内容 2 案例拆解 数字人 资讯素材 录屏产品的素材(小红书测试AI产品) 脚本 素材 剪辑 3 用LLM做爆文选题 &…

帝国神话怎么样使用服务器开服(Myth Of Empires)

1、购买后登录服务器(百度莱卡云) 进入控制面板后会出现正在安装的界面,安装大约5分钟(如长时间处于安装中请联系我们的客服人员) 2、创建端口 一共需要用到三个端口(游戏端口,查询端口&#x…

【刷题汇总 -- 压缩字符串(一)、chika和蜜柑、 01背包】

C日常刷题积累 今日刷题汇总 - day0181、压缩字符串(一)1.1、题目1.2、思路1.3、程序实现 2、chika和蜜柑2.1、题目2.2、思路2.3、程序实现 3、 01背包3.1、题目3.2、思路3.3、程序实现 -- dp 4、题目链接 今日刷题汇总 - day018 1、压缩字符串(一) 1.1、题目 1.2、思路 读完…

vue3 vue页面根目录增加注释 keep-alive 不生效 需避开此位置

已参考官方文档如下,进行配置 Built-in Components | Vue.js 对应页面中配置 name defineOptions({name: "Users",inheritAttrs: false, }); 从Vue Devtools可以看到组件名字变成了Users,如下: 已配置一致后,仍不生…

【Linux】进程信号 --- 信号保存

👦个人主页:Weraphael ✍🏻作者简介:目前正在学习c和算法 ✈️专栏:Linux 🐋 希望大家多多支持,咱一起进步!😁 如果文章有啥瑕疵,希望大佬指点一二 如果文章对…

【医学影像】RK3588+FPGA:满足远程诊疗系统8K音视频编解码及高效传输需求

医学影像 提供基于Intel平台、NXP平台、Rockchip平台的核心板、Mini-ITX主板、PICO-ITX主板以及工业整机等计算机硬件。产品板载内存,集成超高清编码/解码视频引擎,具有出色的数据处理能力和图形处理能力,功能高集成,可应用于超声…

【教学类-69-01】20240721铠甲勇士扑克牌涂色(男孩篇)

背景需求: 【教学类-68-01】20240720裙子涂色(女孩篇)-CSDN博客文章浏览阅读250次。【教学类-68-01】20240720裙子涂色(女孩篇)https://blog.csdn.net/reasonsummer/article/details/140578153 前期制作了女孩涂色延…

直播带货|主播、运营怎么考核 怎么分钱

在直播公司中,有两个非常重要的岗位:直播运营和主播。那么,直播公司应该如何正确发放工资呢?许多公司为这两个岗位的工资发放采取的是销售额提成的方式。 销售额提成存在一个问题:直播公司很容易通过广告费来刺激销售额…

MT6825磁编码IC在智能食品包装设备的应用

艾毕胜马达控制平台专家 MT6825磁编码IC,作为一款先进的传感器解决方案,在智能食品包装设备中的应用正日益广泛 MT6825磁编码IC,作为一款先进的传感器解决方案,在智能食品包装设备中的应用正日益广泛。它凭借卓越的性能和可靠性…

Windows及Linux系统加固

君衍. 一、Windows加固1、配置简介2、账户配置3、本地配置4、安全设置 二、Linux加固1、配置简介2、网络配置3、日志和审计配置4、访问认证和授权配置5、系统运维配置 一、Windows加固 1、配置简介 通常在Windows安全配置中有两类对象 一类是Windows Server,如win …

功能测试与APPSCAN自动化测试结合的提高效率测试策略

背景 手工探索性测试(Manual Exploratory Testing,简称MET)是一种软件测试方法,它依赖于测试人员的直觉、经验和即兴发挥来探索应用程序或系统。与传统的脚本化测试相比,手工探索性测试不遵循固定的测试脚本&#xff0…

敲详细的springboot中使用RabbitMQ的源码解析

这里介绍的源码主要是涉及springboot框架下的rabbitmq客户端代码(具体在springframework.amqp.rabbit包下,区分一下不由springboot直接接管的spring-rabbit的内容),springboot基于RabbitMQ的Java客户端建立了简便易用的框架。 sp…

重生之我在学数据结构——队列

一.队列的概念 队列是一种先进先出(First In First Out ,FIFO)的数据结构,可以简单理解为排队的概念。在队列中,数据项按照插入的顺序排列,并且只能在队列的一端插入(称为队尾),在另一端删除&a…

品牌策划新手指南:如何让你的品牌脱颖而出?

品牌策划,简单来说,就是为品牌制定一套全方位的成长和发展计划,就像给品牌设计一条成长路线图,让它能够更好地吸引顾客、建立信任、提升知名度,最终实现销售和市场份额的增长。 品牌策划是什么? 想象一下…

【性能优化】在大批量数据下使用 HTML+CSS实现走马灯,防止页面卡顿(一)

切换效果 页面结构变化 1.需求背景 项目首页存有一个小的轮播模块,保密原因大概只能这么展示,左侧图片右侧文字,后端一次性返回几百条数据(开发环境下,生产环境只会更多).无法使用分页解决,前端需要懒加载防止页面卡顿 写个小demo演示,如下 2.解决思路 获取到数据后,取第一…

二、链表(2)

24. 两两交换链表中的节点 法一:迭代,while循环,注意要获取next给变量,得先判断非null, 需要4个变量, n0是前,n1 n2是交换的两,n3是n2的下一个可能为空,这种先把变量保存起来&#…