【Yolov5】深度模型进行训练-CPU版

news2025/7/17 4:08:13

yolo5模型训练

  • 1.yolov5自己的模型训练
    • 1.1 git下载对应的源码到服务器
    • 1.2 从最新的 YOLOv5版本自动下载模型。
    • 1.3 detect.py 推断
    • 1.4 train.py进行训练
    • 1.5 yolo的原理
  • 2.训练自己的模型
    • 2.1 Data下面新建如图目录Mydata
    • 2.1 lableimg进行数据标注的图形
    • 2.2 数据集
    • 2.3 train.py调整data数据集
    • 2.4 开始训练

1.yolov5自己的模型训练

1.1 git下载对应的源码到服务器

  • 克隆对应的代码 Python>=3.7.0环境中安装requirements.txt,包括 PyTorch>=1.7
git clone https://github.com/ultralytics/yolov5  # clone
cd yolov5
pip install -r requirements.txt  # install

1.2 从最新的 YOLOv5版本自动下载模型。

  • 自己创建python文件
import torch

# Model
model = torch.hub.load("ultralytics/yolov5", "yolov5s")  # or yolov5n - yolov5x6, custom
# Images
img = "https://ultralytics.com/images/zidane.jpg"  # or file, Path, PIL, OpenCV, numpy, list
# Inference
results = model(img)
# Results
results.print()  # or .show(), .save(), .crop(), .pandas(), etc.

1.3 detect.py 推断

  • 这里可以传各种参数
python detect.py --weights yolov5s.pt --source 0                               # webcam
                                               img.jpg                         # image
                                               vid.mp4                         # video
                                               screen                          # screenshot
                                               path/                           # directory
                                               list.txt                        # list of images
                                               list.streams                    # list of streams
                                               'path/*.jpg'                    # glob
                                               'https://youtu.be/Zgi9g1ksQHc'  # YouTube
                                               'rtsp://example.com/media.mp4'  # RTSP, RTMP, HTTP stream

1.4 train.py进行训练

python train.py --data coco.yaml --epochs 300 --weights '' --cfg yolov5n.yaml  --batch-size 128
                                                                 yolov5s                    64
                                                                 yolov5m                    40
                                                                 yolov5l                    24
                                                                 yolov5x                    16

1.5 yolo的原理

  • 通过输入一个图片-进行卷积-得到输出结果
    Yolo算法采用一个单独的CNN模型实现end-to-end的目标检测,整个系统所示:首先将输入图片resize到448x448,然后送入CNN网络,最后处理网络预测结果得到检测的目标。相比R-CNN算法,其是一个统一的框架,其速度更快,而且Yolo的训练过程也是end-to-end的。
    在这里插入图片描述
    在训练之前,先在ImageNet上进行了预训练,其预训练的分类模型采用图8中前20个卷积层,然后添加一个average-pool层和全连接层。预训练之后,在预训练得到的20层卷积层之上加上随机初始化的4个卷积层和2个全连接层。由于检测任务一般需要更高清的图片,所以将网络的输入从224x224增加到了448x448。整个网络的流程如下图所示:
    在这里插入图片描述

2.训练自己的模型

  • 目录结构
    在这里插入图片描述

2.1 Data下面新建如图目录Mydata

  • mydata
    • images
      • test
      • train(存放原图)
    • labels
      • test
      • train (存放标注的图)
        在这里插入图片描述
  • 存放完图片之后的

在这里插入图片描述

  • 如图所示,为积木图

在这里插入图片描述

2.1 lableimg进行数据标注的图形

  • 没有安装lableimg的可以进行一下安装
    在这里插入图片描述

2.2 数据集

# Train/val/test sets as 1) dir: path/to/imgs, 2) file: path/to/imgs.txt, or 3) list: [path/to/imgs1, path/to/imgs2, ..]
path: /home/hfg/Soft/Idea_Project/deep/yolov5/data/mydata/images/train  # dataset root dir
train: /home/hfg/Soft/Idea_Project/deep/yolov5/data/mydata/images/train  # train images (relative to 'path') 128 images
val: /home/hfg/Soft/Idea_Project/deep/yolov5/data/mydata/images/train  # val images (relative to 'path') 128 images
test:  # test images (optional)

# Classes
names:
  0: 积木

在这里插入图片描述

2.3 train.py调整data数据集

在这里插入图片描述

2.4 开始训练

  • 如图所示进行训练,本次epochs是100
    在这里插入图片描述
  • 训练的结果集如图所示
    在这里插入图片描述
  • 训练结果
    在这里插入图片描述

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

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

相关文章

IP 协议

1.IP协议报头如下图:版本号 代表的是当前的IP协议的版本,此处的版本一共有两个取值:v4和v6.本文着重针对v4版本进行解析.首部长度 代表的是整个IP报头的长度,这个报头长度是可变长的,可变长的原因在于报头中的选项,这个属性是一个可有可无的属性,会改变报头长度,它的单位是32bi…

5个原因告诉您为什么要拥有个人IP

在数字时代中,信息每分每秒都在飞速地增长,对于企业和个人来说,获得关注变得越来越具有挑战性。如果您希望在网上创造某种形式的存在感,保持内容的原创性和新鲜度是您通往成功的路上不可避免的挑战。尽管如此,从竞争对…

电商项目之Feign与Dubbo技术选型

文章目录1 问题背景2 前言3 思路4 Feign与Dubbo的区别5 总结6 真实案例1 问题背景 电商项目,B端以consul作为注册中心。重构了一个营销服务,以Nacos作为注册中心。B端需要调用营销服务。关于远程调用框架,营销服务用了Dubbo,而B端…

吉卜力风格水彩画怎么画?

著名的水彩艺术家陈坚曾说:“水彩是用水润调和形成的饱和度极高的艺术画面,在纸上晕染的画面面积、强度等具有许多随意性,天空的颜色乌云密布,都是很随意的,难以模仿。” 是的,水彩画的妙处就在于不确定的…

C语言数据结构初阶(1)----时空复杂度

目录 1. 数据结构,算法的概念 2. 算法的效率 2.1 算法复杂度 3. 时间复杂度 3.1 时间复杂度的概念 3.2 大O的渐进表示法 3.3 小试牛刀 4. 算法的空间复杂度 4.1 小试牛刀 1. 数据结构,算法的概念 数据结构(Data Structure)是计算机存储、组织数据…

2023从0开始学性能(3) —— 探索性能测试流程2

性能测试计划 性能测试的计划中应该由项目描述、项目的业务模型和性能指标(指标来源于调研需求中预期指标),性能测试环境说明(前期调研的配置信息)以及测试的场景设计,具体的我们后面再慢慢说。 性能测试场…

4123版驱动最新支持《霍格沃茨之遗》,英特尔锐炫显卡带你畅游魔法世界

2023年开年最火的3A大作,那一定是近期上架steam平台的《霍格沃茨之遗》,这款游戏在2020年9月份曝光,游戏根据《哈利波特》系列书籍内容改编,作为一款开放式的3A大作,《霍格沃兹之遗》目前在steam上的实时在线人数已经突…

客户体验:客户对企业产生的所有交互与感知!

“客户体验是一种纯主观的在用户使用产品过程中建立起来的感受。良好的用户体验有助于公司不断完善产品或服务。正是这所有用户接触的感受差异,构成了用户对一家公司独特的体验认知。”说白了,客户体验就是客户和公司接触产生的感受。客户体验主要关注客…

JS的事件循环

文章目录写在前面1.浏览器的进程模型1.1 何为进程1.2 何为线程1.3 浏览器有哪些线程和进程2.渲染主线程是如何工作的任务队列的优先级面试题如何理解JS异步JS中的计时器能做到精确计时吗?为什么?写在前面 此处的文字为自己的理解 1.浏览器的进程模型 1.…

git的安装及git的使用方法和指令

Git的使用什么是版本控制?什么是 Git?人工版本控制器版本控制工具常见版本控制工具怎么工作的?git 文件生命周期状态区域安装配置-- global检查配置创建仓库 - repository工作流与基本操作查看工作区的文件状态如果显示乱码的解决方式git sta…

JUC并发编程(下)

✨作者:猫十二懿 ❤️‍🔥账号:CSDN 、掘金 、个人博客 、Github 🎉公众号:猫十二懿 学习地址 写在最前 JUC并发编程(上) JUC(Java Util Concurrent)学习内容框架&…

Leetcode第530题二叉搜索树的最小绝对差|C语言

刚开始看到这道题,习惯性的找了搜索树的最左下和最右下的结点进行计算。结果发现要求返回的是“任意两个结点”的差的绝对值中最小的值。 思路:看了答案,因为二叉搜索树的中序遍历是有序数组,因此可以采用中序遍历对相邻结点之间进…

合约检测之slither(草稿)

一、Slither 介绍及运行流程 Slither 是一个静态分析框架,它通过将 Solidity 智能合约转换为称为 SlithIR 的中间表示来工作。 SlithIR 使用静态单一赋值 (SSA) 形式和精简指令集来减慢分析执行速度,同时保留在 Solidity 转换为字节码时可用的语义信息。…

GEE学习笔记 六十一:颜值就是战斗力

引用网络名人局座的一句话:“颜值越高的武器,战斗力越强”。对于我们做开发也是,使用的工具颜值越高,我们越喜欢使用。Google Earth Engine在线编辑器(https://code.earthengine.google.com/)虽然目前还不是…

【Proteus仿真】【STM32单片机】环境监测系统设计

文章目录一、功能简介二、软件设计三、实验现象联系作者一、功能简介 本项目使用Proteus8仿真STM32单片机控制器,使用LCD1602显示模块、蜂鸣器、按键模块、DHT11温湿度传感器、继电器加热祛湿加湿模块等。 主要功能: 系统运行后,LCD1602显示…

实现达梦数据库 disql 工具在 Linux 系统里上下翻动查看和编辑历史命令

本文内容已在如下环境上测试: 操作系统:银河麒麟10 数据库版本:达梦8 一、默认情况下,在 Linux 系统中使用 disql 命令时,若使用键盘的上下键查找历史命令复用,会出现乱码,导致在 Linux 上编写…

Scala的简单使用

文章目录Scala的简单使用(一)交互模式1、命令行方式2、文件方式(二)编译模式1、创建源程序2、编译成字节码3、解释执行对象Scala的简单使用 Scala可以在交互模式和编译模式两种方式下运行 (一)交互模式 在…

到了35岁,软件测试职业发展之困惑如何解?

35岁,从工作时间看,工作超过10年,过了7年之痒,多数IT人都已经跳槽几次。 35岁,发展比较好的软件测试人,已经在管理岗位(测试经理甚至测试总监)或已经成为测试专家或测试架构师。发展…

超280人靠这份软件测试面试题进入大厂,堪称金三银四最强,建议收藏

个人感觉目前各个大中厂面试不好的地方是,都在朝着背面试八股文的方向发展(曾经面试某二线厂,对着面试官纯背了 40 分钟概念),但不得不承认这也是企业在短时间内筛选面试者的一个重要手段。 今天为了帮助大家&#xff…

Java网络编程入门

1 网络编程入门 1.1 网络编程概述 计算机网络:是指将地理位置不同的具有独立功能的多台计算机及 其外部设备,通过通信线路连接起来,在网络操作系统,网络管理软件及网络通信协议的管理和协调下,实现资源共享和信息传递的计算机系统 网络编程…