当前位置: 首页 > news >正文

从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(预测端)。它们各司其职,从输入图像中提取信息、融合多尺度特征并生成最终预测结果。YOLO网络结构

1.Input(输入端):智能预处理与优化策略

YOLOv5 的输入端模块包含多个核心技术,包括 Mosaic 数据增强、自适应锚框计算和自适应图片缩放。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存储

一&#xff1a;华为OBS存储文档地址 官方文档&#xff1a;https://support.huaweicloud.com/obs/index.html github地址&#xff1a;https://github.com/huaweicloud/huaweicloud-sdk-php-obs 二&#xff1a;安装华为OBS拓展 composer require obs/esdk-obs-php 三&#x…...

嵌入式 linux Git常用命令 抽补丁 打补丁

Git常用命令 为什么要学习git呢&#xff1f;我相信刚入门的小伙伴敲打肯定碰到过这种玄学问题&#xff0c;我明明刚刚还能用的代码&#xff0c;后面不知道咋的就不能用了&#xff0c;所以每次你调出一个功能点以后都会手动复制一份代码防止出问题&#xff0c;时间一长发现整个…...

C++_核心编程_多态案例二-制作饮品

#include <iostream> #include <string> using namespace std;/*制作饮品的大致流程为&#xff1a;煮水 - 冲泡 - 倒入杯中 - 加入辅料 利用多态技术实现本案例&#xff0c;提供抽象制作饮品基类&#xff0c;提供子类制作咖啡和茶叶*//*基类*/ class AbstractDr…...

DockerHub与私有镜像仓库在容器化中的应用与管理

哈喽&#xff0c;大家好&#xff0c;我是左手python&#xff01; Docker Hub的应用与管理 Docker Hub的基本概念与使用方法 Docker Hub是Docker官方提供的一个公共镜像仓库&#xff0c;用户可以在其中找到各种操作系统、软件和应用的镜像。开发者可以通过Docker Hub轻松获取所…...

阿里云ACP云计算备考笔记 (5)——弹性伸缩

目录 第一章 概述 第二章 弹性伸缩简介 1、弹性伸缩 2、垂直伸缩 3、优势 4、应用场景 ① 无规律的业务量波动 ② 有规律的业务量波动 ③ 无明显业务量波动 ④ 混合型业务 ⑤ 消息通知 ⑥ 生命周期挂钩 ⑦ 自定义方式 ⑧ 滚的升级 5、使用限制 第三章 主要定义 …...

深入理解JavaScript设计模式之单例模式

目录 什么是单例模式为什么需要单例模式常见应用场景包括 单例模式实现透明单例模式实现不透明单例模式用代理实现单例模式javaScript中的单例模式使用命名空间使用闭包封装私有变量 惰性单例通用的惰性单例 结语 什么是单例模式 单例模式&#xff08;Singleton Pattern&#…...

将对透视变换后的图像使用Otsu进行阈值化,来分离黑色和白色像素。这句话中的Otsu是什么意思?

Otsu 是一种自动阈值化方法&#xff0c;用于将图像分割为前景和背景。它通过最小化图像的类内方差或等价地最大化类间方差来选择最佳阈值。这种方法特别适用于图像的二值化处理&#xff0c;能够自动确定一个阈值&#xff0c;将图像中的像素分为黑色和白色两类。 Otsu 方法的原…...

oracle与MySQL数据库之间数据同步的技术要点

Oracle与MySQL数据库之间的数据同步是一个涉及多个技术要点的复杂任务。由于Oracle和MySQL的架构差异&#xff0c;它们的数据同步要求既要保持数据的准确性和一致性&#xff0c;又要处理好性能问题。以下是一些主要的技术要点&#xff1a; 数据结构差异 数据类型差异&#xff…...

Matlab | matlab常用命令总结

常用命令 一、 基础操作与环境二、 矩阵与数组操作(核心)三、 绘图与可视化四、 编程与控制流五、 符号计算 (Symbolic Math Toolbox)六、 文件与数据 I/O七、 常用函数类别重要提示这是一份 MATLAB 常用命令和功能的总结,涵盖了基础操作、矩阵运算、绘图、编程和文件处理等…...

鱼香ros docker配置镜像报错:https://registry-1.docker.io/v2/

使用鱼香ros一件安装docker时的https://registry-1.docker.io/v2/问题 一键安装指令 wget http://fishros.com/install -O fishros && . fishros出现问题&#xff1a;docker pull 失败 网络不同&#xff0c;需要使用镜像源 按照如下步骤操作 sudo vi /etc/docker/dae…...

【RockeMQ】第2节|RocketMQ快速实战以及核⼼概念详解(二)

升级Dledger高可用集群 一、主从架构的不足与Dledger的定位 主从架构缺陷 数据备份依赖Slave节点&#xff0c;但无自动故障转移能力&#xff0c;Master宕机后需人工切换&#xff0c;期间消息可能无法读取。Slave仅存储数据&#xff0c;无法主动升级为Master响应请求&#xff…...

【OSG学习笔记】Day 16: 骨骼动画与蒙皮(osgAnimation)

骨骼动画基础 骨骼动画是 3D 计算机图形中常用的技术&#xff0c;它通过以下两个主要组件实现角色动画。 骨骼系统 (Skeleton)&#xff1a;由层级结构的骨头组成&#xff0c;类似于人体骨骼蒙皮 (Mesh Skinning)&#xff1a;将模型网格顶点绑定到骨骼上&#xff0c;使骨骼移动…...