从YOLOv5到训练实战:易用性和扩展性的加强
文章目录
- 前言
- 一、模型介绍
- 二、YOLOv5网络结构
- 1.Input(输入端):智能预处理与优化策略
- 2.Backbone(骨干网络):高效特征提取
- 3.NECK(颈部):特征增强与多尺度融合
- 4.Prediction(预测端):精准目标预测
- 三、YOLOv5性能表现
- 四、YOLOv5使用详解
- 1.添加模型
- 2.上传数据集
- 3.数据标注
- 4.模型训练
- 5.模型预测
- 五、YOLOv5总结
- 1.更友好的实现与支持多框架
- 2.多个版本,满足不同需求
- 3.训练优化
- 4.支持更强的数据增强
- 5.轻松部署
前言
目标检测领域一直以来都在速度与精度之间寻找平衡,YOLO系列模型凭借其端到端的高效设计成为了工业界和学术界的明星算法。其中,YOLOv5以其轻量化设计、优秀的性能和实现层面的便捷性,迅速成为最流行的单阶段目标检测工具之一。在这篇文章中,我们将深入解读YOLOv5的网络结构、性能优势以及实用功能,并展示如何YOLOv5基于CoovallyCPU版本模型训练到预测的全流程。
一、模型介绍
YOLOv5是YOLO系列的第五个版本,由 Ultralytics 开发,但并未在官方论文中发布。它以轻量级设计和高效性能为核心,是近年来最流行的单阶段目标检测算法之一,成为工业和学术界广泛使用的工具。相比于 YOLOv1 到 YOLOv4,YOLOv5 进行了诸多改进和创新,这些变化不仅体现在性能优化上,还包括实现层面的便利性和灵活性。
二、YOLOv5网络结构
YOLOv5 的架构设计兼顾了高效性、准确性和实用性,整体分为四大模块:Input(输入端)、Backbone(骨干网络)、Neck(特征融合层) 和 Prediction(预测端)。它们各司其职,从输入图像中提取信息、融合多尺度特征并生成最终预测结果。
1.Input(输入端):智能预处理与优化策略
YOLOv5 的输入端模块包含多个核心技术,包括 Mosaic 数据增强、自适应锚框计算和自适应图片缩放。
2.Backbone(骨干网络):高效特征提取
骨干网络使用了Focus结构,CSP结构等,负责从输入图像中提取基础特征,例如边缘、纹理、颜色等,为目标检测任务提供支持。
3.NECK(颈部):特征增强与多尺度融合
Neck包括SPP、FPN+PAN结构,加强网络特征融合的能力,NECK的任务是将 Backbone 提取的不同尺度特征进行融合,增强网络在小目标、中等目标和大目标上的检测能力。
4.Prediction(预测端):精准目标预测
YOLOv5采用CIOU_Loss做bounding box的损失函数。预测端负责对 Neck 融合后的特征图进行解码,生成目标的类别、位置和置信度。
三、YOLOv5性能表现
YOLOv5 在多种公开数据集(如 COCO 数据集)上的表现优异。相较于过往YOLO模型,YOLOv5 提高了整体 mAP,尤其是在小目标检测和复杂场景中,表现更加突出。
四、YOLOv5使用详解
本次YOLOv5使用基于Coovally CPU版本进行,YOLOv5模型提供YOLOv5s、YOLOv5m、YOLOv5l、YOLOv5x四个版本,均可在Coovally开源平台下载使用,其还涵盖YOLOv5多达20种模型版本与变体。
Coovally CPU版本,无需高性能GPU设备即可运行,极大降低了模型训练的门槛,进一步提升模型的部署灵活性和高效性。
Coovally CPU版安装教程可参考:Coovally CPU版:用AI模型微调技术革新数据标注方式
1.添加模型
Coovally CPU版本内置部分YOLOv5模型,可直接使用。
更多YOLOv5模型可进入Coovally开源社区进行下载安装或保存至个人账户直接调用。
2.上传数据集
进入【图像数据】页面,点击创建数据集,输入数据集名称、描述,选择任务类型,上传压缩包文件。
3.数据标注
进入【辅助标注】页面,点击创建样本集,进入样本集详情页,创建好标签进行数据标注。可以选择几组数据进行人工标注,标注完成后发布为数据集启动微调训练,剩余样本集数据即可全部自动化完成。
具体操作步骤可参考:Coovally CPU版:用AI模型微调技术革新数据标注方式
4.模型训练
进入数据集详情页,输入任务名称,选择YOLOv5模型,并配置模版,设置实验E-poch次数,训练次数等信息,即可开始训练。
5.模型预测
模型训练完成后,完成模型转换与模型部署后,即可上传图片进行结果预测。
五、YOLOv5总结
YOLOv5 的设计中有许多创新点,使其在速度和精度之间取得了更好的平衡。
1.更友好的实现与支持多框架
YOLOv5使用PyTorch实现,与YOLOv4的Darknet框架相比,前者更现代化且易于扩展。这种设计使得模型开发者可以更方便地调整模型结构和训练流程。
2.多个版本,满足不同需求
YOLOv5 提供了四种主要模型版本,YOLOv5(Small)、YOLOv5m(Medium)、YOLOv5l(Large)和YOLOv5x(Extra Large)。不仅能够适合更多设备,而且可以针对任务的需求量进行选择。
3.训练优化
YOLOv5自带自动混合精度(AMP)训练支持,这在降低显存占用的同时加快了训练速度。动态Anchor匹配策略代替了YOLOv4的固定Anchor提取策略,使得Anchor更加贴合训练数据。
4.支持更强的数据增强
YOLOv5 引入了 Mosaic 数据增强技术(YOLOv4 中首次提出),并对其进行了优化,从而提升了对小目标和稀疏目标的检测效果。随机仿射变换、颜色抖动等增强方法进一步增强了模型的泛化能力。
5.轻松部署
YOLOv5 支持将模型导出为多种格式,如 ONNX、CoreML、TensorRT 等,方便部署在嵌入式设备、手机端或云端服务器。
相关文章:

从YOLOv5到训练实战:易用性和扩展性的加强
文章目录 前言一、模型介绍二、YOLOv5网络结构1.Input(输入端):智能预处理与优化策略2.Backbone(骨干网络):高效特征提取3.NECK(颈部):特征增强与多尺度融合4.Prediction…...

Prim 算法在不同权重范围内的性能分析及其实现
Prim 算法在不同权重范围内的性能分析及其实现 1. 边权重取值在 1 到 |V| 范围内伪代码C 代码实现2. 边权重取值在 1 到常数 W 之间结论Prim 算法是一种用于求解加权无向图的最小生成树(MST)的经典算法。它通过贪心策略逐步扩展生成树,确保每次选择的边都是当前生成树到未加…...

canal安装使用
简介 canal [kənl],译意为水道/管道/沟渠,主要用途是基于 MySQL 数据库增量日志解析,提供增量数据订阅和消费 工作原理 canal 模拟 MySQL slave 的交互协议,伪装自己为 MySQL slave ,向 MySQL master 发送 dump 协议…...
python爬虫常用数据保存模板(Excel、CSV、mysql)——scrapy中常用数据提取方法(CSS、XPATH、正则)(23)
文章目录 1、常用数据保存模板2.1 保存为Excel格式2.2 保存为CSV格式2.3 保存至mysql数据库2、scrapy中常用数据提取方法2.1 XPath选择器2.2 CSS选择器2.3 正则表达式1、常用数据保存模板 2.1 保存为Excel格式 # 1、导入模块 from openpyxl import workbook# 2、创建一个exce…...
You need to call SQLitePCL.raw.SetProvider()
在.NET环境中使用Entity Framework Core(EF Core)连接SQLite数据库时,报错。 使用框架 .NET8 错误信息: Exception: You need to call SQLitePCL.raw.SetProvider(). If you are using a bundle package, this is done by calling…...

IoTDB AINode 报错,call inference 301: Error ocurred while executing inference
问题及现象 使用时序数据库 IoTDB 的 AINode 的 call inference 语句后报错: Msg: org.apache.iotdb.jdbc.IoTDBSOLException:301: Error ocurred while executing inference:[tuple object has no attribute inference]解决方法 可以替换 venv 里面的…...

LLM之RAG实战(五十)| FastAPI:构建基于LLM的WEB接口界面
FastAPI是WEB UI接口,随着LLM的蓬勃发展,FastAPI的生态也迎来了新的机遇。本文将围绕FastAPI、OpenAI的API以及FastCRUD,来创建一个个性化的电子邮件写作助手,以展示如何结合这些技术来构建强大的应用程序。 下面我们开始分步骤操…...
项目-移动端适配的几种方案
目录 一、rem方案二、vw适配方案 一、rem方案 以vue2项目为例 下载安装包:npm install amfe-flexible --save在main.js中引入:import ‘amfe-flexible’下载安装包:npm install postcss-pxtorem --save项目下新建postcss.config.js文件&…...

HCIA-Access V2.5_2_2网络通信基础_TCP/IP协议栈报文封装
TCP/IP协议栈的封装过程 用户从应用层发出数据先会交给传输层,传输层会添加TCP或者UDP头部,然后交给网络层,网络层会添加IP头部,然后交给数据链路层,数据链路层会添加以太网头部和以太网尾部,最后变成01这样…...

LSTM详解
1. LSTM设计 LSTM(长短期记忆网络)详解 长短期记忆网络(LSTM, Long Short-Term Memory) 是一种特殊的循环神经网络(RNN),特别适合处理和预测序列数据中的长时间依赖关系。LSTM 通过引入“门机制”(如输入门、遗忘门、输出门)来解决标准 RNN 在长时间序列任务中梯度消…...
从零开始搭建Android开发环境:简单易懂的完整教程
前言: 作为安卓开发的入门,搭建开发环境是每个开发者都必须迈出的第一步。虽然这一步看似简单,但如果没有正确的配置,可能会遇到各种问题。本篇文章将为大家详细介绍如何从零开始搭建Android开发环境,确保你能够顺利开…...

大模型运用-Prompt Engineering(提示工程)
什么是提示工程 提示工程 提示工程也叫指令工程,涉及到如何设计、优化和管理这些Prompt,以确保AI模型能够准确、高效地执行用户的指令,如:讲个笑话、java写个排序算法等 使用目的 1.获得具体问题的具体结果。(如&…...

CMake简单使用(二)
目录 五、scope 作用域5.1 作用域的类型5.1.1 全局作用域5.1.2 目录作用域5.1.3 函数作用域 六、宏6.1 基本语法6.2 演示代码 七、CMake构建项目7.1 全局变量7.2 写入源码路径7.3 调用子目录cmake脚本7.4 CMakeLists 嵌套(最常用) 八、CMake 与库8.1 CMake生成动静态库8.1.1 动…...

攻防世界安卓刷题笔记(新手模式)1-4
1.基础android 进入后是这样的页面。查看源代码看看。首先要注意这个软件并没有加壳,所以我们可以直接着手分析。搜索错误提示“Failed”定位到关键代码,看样子就是检验输入的内容 注意到这里有一行关键代码,cond_39对应的正是failed那个地方…...

发现一个对话框中的按钮,全部失效,点击都没有任何反应,已经解决
前端问题,技术vue2,ts。 发现一个对话框中的按钮,全部失效,点击都没有任何反应。 因为我只在template标签中加入下面这个代码,并没有注册。 只要有一个子组件没有注册,就会影响所有的按钮,使当前…...
MyBatisPlus实现多表查询
在MyBatisPlus中实现多表查询,主要有以下几种方法: 使用注解进行多表查询: 你可以在Mapper接口中使用Select注解来编写SQL查询语句,实现多表查询。例如,如果你想根据用户ID查询用户信息和对应的区域名称,可…...

机器学习详解(5):MLP代码详解之MNIST手写数字识别
文章目录 1 MNIST数据集2 代码详解2.1 导入库和GPU2.2 MNIST数据集处理2.2.1 下载和导入2.2.2 张量(Tensors)2.2.3 准备训练数据 2.3 创建模型2.3.1 图像展开2.3.2 输入层2.3.3 隐藏层2.3.4 输出层2.3.5 模型编译 2.4 训练模型2.4.1 损失函数与优化器2.4.2 计算准确率2.4.3 训练…...

如何在vue中实现父子通信
1.需要用到的组件 父组件 <template><div id"app"><BaseCount :count"count" changeCount"cahngeCount"></BaseCount></div> </template><script> import BaseCount from ./components/BaseCount.v…...
PHP实现华为OBS存储
一:华为OBS存储文档地址 官方文档:https://support.huaweicloud.com/obs/index.html github地址:https://github.com/huaweicloud/huaweicloud-sdk-php-obs 二:安装华为OBS拓展 composer require obs/esdk-obs-php 三&#x…...
嵌入式 linux Git常用命令 抽补丁 打补丁
Git常用命令 为什么要学习git呢?我相信刚入门的小伙伴敲打肯定碰到过这种玄学问题,我明明刚刚还能用的代码,后面不知道咋的就不能用了,所以每次你调出一个功能点以后都会手动复制一份代码防止出问题,时间一长发现整个…...
Vim 调用外部命令学习笔记
Vim 外部命令集成完全指南 文章目录 Vim 外部命令集成完全指南核心概念理解命令语法解析语法对比 常用外部命令详解文本排序与去重文本筛选与搜索高级 grep 搜索技巧文本替换与编辑字符处理高级文本处理编程语言处理其他实用命令 范围操作示例指定行范围处理复合命令示例 实用技…...
vscode里如何用git
打开vs终端执行如下: 1 初始化 Git 仓库(如果尚未初始化) git init 2 添加文件到 Git 仓库 git add . 3 使用 git commit 命令来提交你的更改。确保在提交时加上一个有用的消息。 git commit -m "备注信息" 4 …...

大话软工笔记—需求分析概述
需求分析,就是要对需求调研收集到的资料信息逐个地进行拆分、研究,从大量的不确定“需求”中确定出哪些需求最终要转换为确定的“功能需求”。 需求分析的作用非常重要,后续设计的依据主要来自于需求分析的成果,包括: 项目的目的…...

基于Flask实现的医疗保险欺诈识别监测模型
基于Flask实现的医疗保险欺诈识别监测模型 项目截图 项目简介 社会医疗保险是国家通过立法形式强制实施,由雇主和个人按一定比例缴纳保险费,建立社会医疗保险基金,支付雇员医疗费用的一种医疗保险制度, 它是促进社会文明和进步的…...
基于Uniapp开发HarmonyOS 5.0旅游应用技术实践
一、技术选型背景 1.跨平台优势 Uniapp采用Vue.js框架,支持"一次开发,多端部署",可同步生成HarmonyOS、iOS、Android等多平台应用。 2.鸿蒙特性融合 HarmonyOS 5.0的分布式能力与原子化服务,为旅游应用带来…...

ServerTrust 并非唯一
NSURLAuthenticationMethodServerTrust 只是 authenticationMethod 的冰山一角 要理解 NSURLAuthenticationMethodServerTrust, 首先要明白它只是 authenticationMethod 的选项之一, 并非唯一 1 先厘清概念 点说明authenticationMethodURLAuthenticationChallenge.protectionS…...

Unsafe Fileupload篇补充-木马的详细教程与木马分享(中国蚁剑方式)
在之前的皮卡丘靶场第九期Unsafe Fileupload篇中我们学习了木马的原理并且学了一个简单的木马文件 本期内容是为了更好的为大家解释木马(服务器方面的)的原理,连接,以及各种木马及连接工具的分享 文件木马:https://w…...
A2A JS SDK 完整教程:快速入门指南
目录 什么是 A2A JS SDK?A2A JS 安装与设置A2A JS 核心概念创建你的第一个 A2A JS 代理A2A JS 服务端开发A2A JS 客户端使用A2A JS 高级特性A2A JS 最佳实践A2A JS 故障排除 什么是 A2A JS SDK? A2A JS SDK 是一个专为 JavaScript/TypeScript 开发者设计的强大库ÿ…...

什么是VR全景技术
VR全景技术,全称为虚拟现实全景技术,是通过计算机图像模拟生成三维空间中的虚拟世界,使用户能够在该虚拟世界中进行全方位、无死角的观察和交互的技术。VR全景技术模拟人在真实空间中的视觉体验,结合图文、3D、音视频等多媒体元素…...

水泥厂自动化升级利器:Devicenet转Modbus rtu协议转换网关
在水泥厂的生产流程中,工业自动化网关起着至关重要的作用,尤其是JH-DVN-RTU疆鸿智能Devicenet转Modbus rtu协议转换网关,为水泥厂实现高效生产与精准控制提供了有力支持。 水泥厂设备众多,其中不少设备采用Devicenet协议。Devicen…...