Windows系统部署YOLOv5 v6.1版本的训练与推理环境保姆级教程

文章目录

  • 一· 概述
  • 二· 依赖环境(`prerequisites`)
    • 2.1 硬件环境
    • 2.2 软件环境
  • 三· 环境安装
    • 3.1 创建并激活虚拟环境
    • 3.2 安装`Pytorch`与`torchvision`
    • 3.3 校验`Pytorch`安装
    • 3.4 下载 `YOLOv5` `v6.1` 源码
    • 3.5 安装 `YOLOv5` 依赖
    • 3.6 下载预训练模型
    • 3.7 安装其他依赖
    • 3.8 测试环境安装
    • 3.9 测试训练流程
  • 四· 参考链接

一· 概述

本文档主要记录使用工程源代码,部署YOLOv5训练环境以及测试环境的过程,主要包括以下内容:

  1. YOLOv5对应版本的源码下载
  2. Pytorch的适配版本安装与测试
  3. YOLOv5源码的依赖安装与测试
  4. 其他依赖的版本调整与测试
  5. 字体文件、预训练模型的下载
  6. 训练流程的测试

注:如果需要快速安装推理环境(不需要训练),参考[[YOLOv5快速推理方法]]

二· 依赖环境(prerequisites)

本文档主要记录的是 YOLOv5 v6.1 版本的环境部署与测试,使用 Anacondaminiconda 进行虚拟环境和包管理器,因此在执行安装之前,需要确认机器的预安装环境。

2.1 硬件环境

  • GPU : NVIDIA GeForce GTX2060
  • RAM : 16GB
  • CPU : Intel(R) Core(TM) i7-10750H CPU @ 2.60GHz
  • ROM : 512GB SSD

注: 一般情况下,训练都会在GPU上进行,因此GPU的性能对训练速度有较大的影响。确保本地已安装NVIDIA独立显卡,否则训练耗时会非常长。

2.2 软件环境

  • 操作系统 : Windows 10
  • Anaconda3miniconda3
  • Python : 3.8+
  • NVIDIA驱动 : latest
  • CUDA : 11.2
  • cuDNN : 8.2.1

三· 环境安装

注: 确保上述软硬件环境已经安装完毕,不在赘述。

3.1 创建并激活虚拟环境

# 创建虚拟环境
conda create -n yolo python=3.8 -y

# 激活虚拟环境
conda activate yolo

3.2 安装Pytorchtorchvision

访问Pytorch官方网站,查询符合本地硬件配置与软件环境安装指令,这里选择 适配 CUDA 11.3Pytorch v1.12.1,安装指令如下:

# CUDA 11.3
conda install pytorch==1.8.1 torchvision==0.9.1 torchaudio==0.8.1 cudatoolkit=11.3 -c pytorch -c conda-forge -y
# CUDA 11.1
pip install torch==1.8.1+cu111 torchvision==0.9.1+cu111 torchaudio==0.8.1 -f https://download.pytorch.org/whl/torch_stable.html

注: 考虑到版本兼容性问题,本文档中选择适配CUDA 11.3Pytorch v1.8.1版本. 没有选择最新版。

注: Pytorch官方安装文档中,v1.8+ 只提供了适配 11.811.711.611.310.2CUDA 版本, 通过查询部分资料得知,CUDA v11版本中,部分小版本向前兼容,表现形式为版本号标为CUDA v11.x,经过测试,Pytorch v1.8.1 适配 CUDA 11.3 版本可以正常使用。

3.3 校验Pytorch安装

python -c "import torch; print(torch.__version__)"

环境安装正确,则输出 1.8.1+cu111

python -c "import torch; print(torch.cuda.is_available())"

Pytorch 安装完成,且能够加载 GPUCUDA ,则输出True, 否则输出 False

1200

注:如果校验失败,则重新按照 [[#3.2 安装Pytorchtorchvision]] 中的内容,更换一种方式重新安装,例如,将 conda 安装方式更换为 pip 安装方式。

3.4 下载 YOLOv5 v6.1 源码

可直接通过 git 命令,下载指定 v6.1版本的 YOLOv5 源码,如下所示:

git clone -b v6.1  https://github.com/ultralytics/yolov5.git

源代码下载完成后,会回滚到 v6.1 版本的代码。如下图所示:
1000

或通过官方网站下载源码压缩包,解压到本地。地址:YOLOv5

1000

对比上述图片,可以看到,对应提交的记录号码是一致的。

3.5 安装 YOLOv5 依赖

进入 YOLOv5 源码目录,执行以下命令,安装依赖:

cd yolov5

# 安装依赖
pip install -r requirements.txt

等待安装完成,如下图所示:

1200

3.6 下载预训练模型

通过访问github地址,定位到对应的 v6.1 标签的release版本,下载预训练模型,文件链接地址 , 如下图所示:

1000

注 :一定要下载与源代码版本号对应的预训练模型,避免因模型结构不一致导致加载时报错。

3.7 安装其他依赖

为避免报错 ImportError: DLL load failed while importing _imaging: 找不到指定的模块。 ,需要重新安装 Pillow 依赖,如下所示:

pip install Pillow==9.5.0

为避免后续训练过程中,因为 numpy 版本不兼容导致 API 调用报错,需要重新安装 numpy 1.20.3 依赖,如下所示:

 pip install numpy==1.20.3 --force-reinstall

3.8 测试环境安装

通过运行 detect.py 脚本,对项目自带的测试图片(位于 data/images 路径),测试环境安装是否正确,如下所示:

python detect.py --weights yolov5s.pt --img 640 --conf 0.25 --source data/images/bus.jpg

运行成功后,会输出检测结果,如下图所示:
1000

打开位于 runs/detect/exp2 路径保存的图片,可以看到检测结果,如下图所示:
800

3.9 测试训练流程

通过运行 train.py 脚本,对项目自带的测试数据集(位于 data/coco128 路径),测试训练流程是否正确,如下所示:

python train.py --img 640 --batch 16 --epochs 3 --data coco128.yaml --weights yolov5s.pt

运行指令后,会自动下载 COCO128 数据集,然后开始训练,如下图所示:
800

如果因网速问题,下载失败,可以手动下载数据集,然后解压到与 yolov5 的统计文件夹 datasets 目录下即可,如下所示:

datasets
|--coco128
|  |--images
|  |--labels
yolov5
|--data
.
.
.

训练正式启动后,每个 epoch 会有进度条显示当前的训练进度,如下图所示:
1000

至此,YOLOv5 v6.1 版本的源代码方式安装的训练环境已完成.

四· 参考链接

  • [YOLOv5 GitHub](https://
  • Pytorch 安装指南
  • ultralytics docs

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

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

相关文章

一文讲清楚:如何做好建设工程项目管理?

在房地产开发中,作为项目负责人我目前的状况成了一个大管家,还要管理工程质量。上至各部门领导的关系维护,下到工人的吃喝拉撒都要我操心,还要没完没了的处理四邻纠纷和拆迁户的纠纷,每天都搞得很疲惫,如何…

第十节 SpringBoot Starter 实战之 redis 滑动窗口

使用 redis 实现滑动窗口,我们会基于这个场景,建立一个 Starter,在这之前,我们需要先。理解这个场景。 关键字:滑动窗口、流式计算、lua脚本、redis、zset、starter 概要:本文封装 redis 的API&#xff0c…

百亿数据存储-高并发搜索如何设计?

最近好多小伙伴都跑来问小北,百亿级别的数据存储要怎么设计架构啊? 听说面试里经常问到这个问题。 就像前几天,有位同学去字节面试,就碰到了这个问题: “百亿级数据存储,你怎么设计?” 他们回答…

Scikit-Learn随机森林回归

Scikit-Learn随机森林回归 1、随机森林1.1、集成学习1.2、Bagging方法1.3、随机森林算法1.4、随机森林的优缺点2、Scikit-Learn随机森林回归2.1、Scikit-Learn随机森林回归API2.2、随机森林回归实践(加州房价预测)1、随机森林 随机森林是一种由决策树构成的集成算法,它在大多…

QT::QNetworkReply类readAll()读取不到数据的可能原因

程序中,当发送请求时,并没有加锁,而是在响应函数中加了锁,导致可能某个请求的finished信号影响到其他请求响应数据的读取 connect(reply,&QNetworkReply::finished,this,&Display::replyFinished);参考这篇文章&#xff…

闪电加载:Hexo博客性能优化全攻略

巴索罗缪大熊 前言 这些年积累了很多前端性能优化的知识点和思路,日常工作很少涉及技术层极限优化,近期终于一点点把博客独立搭建并部署了,对之前的一些技术点进行了深度探索,最终结果也达到了预期效果,由于水平有限&…

怎么从视频中提取音频?这里有三种提取妙招

怎么从视频中提取音频?在数字媒体日益丰富的今天,视频内容成为了信息传播的重要形式。但有时我们可能只需要视频中的音频部分,用于制作播客、音乐剪辑或语音分析等。幸运的是,技术的发展为我们提供了多种从视频中高效提取音频的方…

如何降本增效获得目标客户?AI企业使用联盟营销这个方法就对了!

AI工具市场正在迅速发展,现仍有不少企业陆续涌出,那么如何让你的工具受到目标群体的关注呢?这相比是AI工具营销人员一直在思考的问题。 为什么AI企业难以获客呢? 即使这个市场正蓬勃发展,也无法保证营销就能轻易成功…

【问题解决】pycharm中添加python interpreter报错 conda excutable is no found

选择安装目录下的conda.bat文件,然后点击“Load Environments”按钮,然后在列表中选择conda环境即可。

开源表单流程设计器有哪几个突出的优势特点?

当前,传统的表单制作已经无法满足现在企业的发展需求了。想要实现高效率发展,需要引进先进的低代码技术平台、开源表单流程设计器等优秀软件平台助力发展。它们具有可视化操作界面、灵活好操作、易维护、效率高等诸多优势特点,在推动企业实现…

蓝桥杯嵌入式 第六届国赛 更新中……

题目 配置 注意事项 复制LCD的工程,先配置资源 --- 勾选完选项一定要再看一眼,可能选择错误 ADC:配置ADC2_IN15,对应PB15引脚 EEROM,配置PB6和PB7 按键 输入模式PB0、PB1、PB2、PA0 LED 一定要使能PD2 PWM互补输出&…

vue3 + ts 实现IP地址及Mac地址输入框功能

1、组件完成代码 <template><div class"ip-input"><div v-for"(item, index) in ipArr" :key"index" class"ip-input__item-wrap"><input ref"ipInput" v-model"ipArr[index]" type"t…

AI预测福彩3D采取888=3策略+和值012路一缩定乾坤测试5月29日预测第5弹

今天继续基于8883的大底&#xff0c;使用尽可能少的条件进行缩号&#xff0c;同时&#xff0c;同样准备两套方案&#xff0c;一套是我自己的条件进行缩号&#xff0c;另外一套是8883的大底结合2码不定位奖号预测二次缩水来杀号。好了&#xff0c;直接上结果吧~ 首先&…

【数据结构】

根据先序、中序、后序确定二叉树&#xff1a; #背景&#xff1a;树和二叉树基本上都有先序、中序、后序、按层遍历等遍历顺序&#xff0c;根据先序和后序不一定可以确定一棵二叉树&#xff0c;给定中序和其它一种遍历的序列就可以确定一棵二叉树的结构。 抓住中序特点&#x…

开源工具专题-04 Atlassian Crowd部署备份及迁移

开源工具专题-04 Atlassian Crowd部署备份及迁移 注&#xff1a; 本教程由羞涩梦整理同步发布&#xff0c;本人技术分享站点&#xff1a;blog.hukanfa.com转发本文请备注原文链接&#xff0c;本文内容整理日期&#xff1a;2024-05-29csdn 博客名称&#xff1a;五维空间-影子&…

SpringBoot与Spring Framework提供的缓存抽象

目录 缓存 项目总结 新建一个SpringBoot项目 pom.xml application.properties CacheConfig Book BookRepository接口 BookService服务类 BookController控制器 SpringbootCacheApplication启动类 启动项目&#xff0c;使用Postman测试 参考博文&#xff1a; 1、使用…

无人港口/码头兴起,可视化大屏功不可没。

码头/港口可视化大屏可以为管理上带来多方面的价值&#xff0c;包括但不限于&#xff1a; 1. 实时监控&#xff1a; 大屏可以将港口的各种数据、设备状态、船舶位置等信息实时展示&#xff0c;管理人员可以通过大屏随时监控港口的运营情况&#xff0c;及时发现并处理问题。 2…

第13章 常用类

一、包装类 二、String String的常用方法&#xff1a; equals&#xff1a;判断内容是否相等&#xff0c;区分大小写。 String str1 "hello";String str2 "Hello";System.out.println(str1.equals(str2));//false equalsIgnoreCase&#xff1a;判断内容…

清华大学提出IFT对齐算法,打破SFT与RLHF局限性

监督微调&#xff08;Supervised Fine-Tuning, SFT&#xff09;和基于人类反馈的强化学习&#xff08;Reinforcement Learning from Human Feedback, RLHF&#xff09;是预训练后提升语言模型能力的两大基础流程&#xff0c;其目标是使模型更贴近人类的偏好和需求。 考虑到监督…

一文看懂标准版和Pro版的区别

在CRMEB的众多产品中&#xff0c;有这样两款产品经常被拿来比较&#xff0c;它们就是CRMEB的标准版和Pro版商城系统&#xff0c;今天&#xff0c;我们就来盘一下这两款系统之间究竟有哪些不同。 1、Pro版系统性能更卓越 CRMEB Pro版采用Tp6 SwooleRedis高性能框架开发&#…