CPU炼丹——YOLOv5s

news2024/9/24 17:15:17

1.Anaconda安装与配置

1.1安装与配置

Anaconda3的安装看下面的教程:

最新Anaconda3的安装配置及使用教程(详细过程)icon-default.png?t=N7T8http://t.csdnimg.cn/yygXD,接上面文章下载后,配置环境变量的时候记得在原来你装的Python更下面添加路径:

我直接放到了最后,这样你默认的Python依然是你之前就装好的Python而不是Anaconda自带的Python,下载好后打开cmd,输入下面的代码查看版本。

conda --version

 使用

conda info

可以看到一些具体的信息。

然后:

conda init

然后配置源:

conda config --add channels    https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/

conda config --add channels    https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/

conda config --add channels    https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/conda-forge/

1.2创建虚拟环境

下面代码创建了一个叫yolov5_p3.8的环境(一定要3.8及以上的版本),之后炼丹用的就是这个环境

conda create -n yolov5_p3.8 python=3.8

 如下图:

会问你:

看到done就行了,上面创建后会有一个提示:

我们可以用这两句代码激活和退出环境

激活环境:

上图的第一个python是本地环境,版本是3.11.4,然后激活环境,再输入python,这时python的版本变成了3.7.12,这就是进入虚拟环境了。

退出环境:

conda deactivate

退出环境后,我输入python,可以看到版本回到了3.11.4.

1.3安装与导入pytorch

去官网:PyTorch

往下拉,按下图配置(版本大于等于1.8):

把最后一行代码复制到cmd:

然后是漫长的等待:

看到他就结束了:

然后输入:

conda list

就可以看到这个环境的包。

2.yolov5的下载与配置

yolov5源码下载地址:ultralytics/yolov5: YOLOv5 🚀 in PyTorch > ONNX > CoreML > TFLite (github.com)

 我选了yolov5s这个表轻量级版本,顺便把官方的预训练模型下载了:

在上面github的网页根据下图操作:

直接用这个版本的:

再往下翻:

展开后找到yolov5s.py点击下载:

 下载往后放到yolov5的目录下即可:

然后开始为这个项目配置运行环境,就是上面我们使用anaconda创建的环境:

 按照你安装的路径导入可执行文件,然后点击右侧加载环境:

然后我们导入一些运行需要的包,下面这行代码在requirement.txt文件里,我们直接在终端输入即可:

 pip install -r requirements.txt

 接下来可能遇到这个问题:

 这个时候建银手动装这个包:

pip install gitpython -i https://pypi.tuna.tsinghua.edu.cn/simple/  

然后再继续运行这句:

 pip install -r requirements.txt

 接下来可以测试一下装好了没,在pycharm终端输入:

python detect.py

 顺利的话可以在这个目录看到结果:

经典的一幕(bus.jpg):

你可能会遇到一些问题,大概是关于git的,先看一看你有没有git,在cmd输入git --version

有一个这样的报错:ImportError: Bad git executable.

没装git就去装:Git 详细安装教程(详解 Git 安装过程的每一个步骤)

 然后估计还有问题:

跟着接下来的步骤,找到anaconda3中我们创建的yolov5_p3.8的git中的下图所指文件:

 我们进去编辑:

import os
os.environ['GIT_PYTHON_REFRESH'] = 'quiet'

 3.训练自己的模型

3.1如何加入自己的训练集

在yolo的data文件下传一个文件夹叫my_data,里面放你分好的和标注好的训练集:

可以看到train下面放的两个文件夹:images和labels分别存储了对应的图片和标签,其他的也一样,当然mytest里面就是随便找的没标记的图片了。

数据集可以用coco的,也可以自己做或者搜一下,有个网站不错:Roboflow Universe: Open Source Computer Vision Community

3.2自己数据的yaml配置

yaml的编写可以参照源码自带的,在data目录下创建自己的数据集yaml:

我的长这样:

两种都可以,上面三个路径是相对于根目录而言,也就是train.py所在位置,换成自己的就行。

3.3train参数的设置

首先是这三个:

第一weights参数:填入我们下载的预训练模型,就在根目录下

第二个是这个模型的配置路径,这个源码中自带,路径如图

第三个就是自己的数据集yaml的路径

 上面两个一个是轮次一个是表示几张图片进行一次权重更新,调小一些,毕竟没显卡,如果是没改模型的话,轮次改成30~40就差不多收敛了,结果0.78左右(最好的)。

这个可以改成True,方便意外打断继续训练,Ctrl+C打断。

 这个处理多线程的,改成0就行,要不可能失败或卡

最后,开始漫长的炼丹:

python train.py

4.验证炼丹

下图就是炼丹后的最佳模型文件所在:

 代开val.py文件,改参数,数据集yaml路径和刚才训练好的best.pt路径

 然后:

python val.py

 最后在下面这张图里就是最后验证后的结果,有一些衡量模型的图片,以及验证结果:

 截张图,验证的结果之一:

5.实战 

之前说过在data文件夹里我还创建了一个mydata文件,里面装了一些网上的随机的水果图片,有不在训练集种类范围的,我们做个实际的个识别验证:

打开detect.py,改下面这两个参数,weights就用我们刚训练好的best.pt,source就是我们用于测试的数据位置:

 下面的data不用改,这里似乎用不到,只有训练和他相关()。

然后

python detect.py

然后在下图可以找到识别的结果:

 比如:

参考:

在CPU上跑yolov5(详细步骤+适合入门)

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

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

相关文章

详解LLMOps,将DevOps用于大语言模型开发

大家好,在机器学习领域,随着技术的不断发展,将大型语言模型(LLMs)集成到商业产品中已成为一种趋势,同时也带来了许多挑战。为了有效应对这些挑战,数据科学家们转向了一种新型的DevOps实践LLM-OP…

质因数分解(cpp实现)--一种快速求得一个数有多少个因子的黑魔法

前言 最近机试没少吃不会质因数分解的亏,用传统的求得因子个数只能过一点点…(ex, 20%) 质因数分解后,可以将因子问题转化为 集合的组合问题,因此会很快,目测是 l o g n log n logn (n是该整数的值)。 传统解法 假设输入整数的…

【JavaEE网络】从数据链路层到应用层的DNS

目录 数据链路层以太网 DNS 数据链路层 越往下与程序员越远 代表协议:以太网。平常用的网线也叫“以太网线”,平常用的交换机也叫“以太网交换机” 以太网 认识以太网 “以太网” 不是一种具体的网络,而是一种技术标准;既包含…

MySql#MySql安装和配置

目录 一、卸载不需要的环境 二、安装mysql yum 源 三、开始安装 四、如果保证安装成功呢? 五、MySql 启动! 六、登录mysql 七、配置文件说明 八、设置开机启动! 本次安装是在Linux环境在centos7中完成 首先先将自己切换成root 一、…

【EI会议|稳定检索】2024年能源资源与动力、控制工程国际会议(ICERPCE 2024)

2024 International Conference on Energy Resources and Power, Control Engineering 一、大会信息 会议名称:2024年能源资源与动力、控制工程国际会议 会议简称:ICERPCE 2024 收录检索:提交Ei Compendex,CPCI,CNKI,Google Scholar等 会议官…

深入解析算法效率核心:时间与空间复杂度概览及优化策略

算法复杂度,即时间复杂度与空间复杂度,衡量算法运行时资源消耗。时间复杂度反映执行时间随数据规模增长的关系,空间复杂度表明额外内存需求。优化策略,如选择合适数据结构、算法改进、循环展开等,对于提升程序效率、减…

【高阶数据结构(一)】并查集详解

💓博主CSDN主页:杭电码农-NEO💓   ⏩专栏分类:高阶数据结构专栏⏪   🚚代码仓库:NEO的学习日记🚚   🌹关注我🫵带你学习更多Go语言知识   🔝🔝 高阶数据结构 1. 前言2. 并查集…

【vue+echarts】绘制中国地图,3D地图,省、市、县三级下钻以及回钻,南海诸岛小窗化显示,点位飞线图,点位名称弹窗轮播展示,及一些常见问题

先看效果展示图 目录 准备工作一, 绘制3D地图1,调用官网地址接口获取2,去官网下载中国地图的json数据到本地,本地引入 二, 南海诸岛小窗化显示1, 手动过滤掉,只保留小窗化的南海诸岛2, 代码层面过滤掉,只保留小窗化的南海诸岛 三, 省、市、县三级地图下钻及回钻1, 下钻2, 回钻…

深度学习 --- stanford cs231学习笔记(一)

stanford cs231学习笔记(一) 1,先是讲到了机器学习中的kNN算法,然后因为kNN分类器的一些弊端,引入了线性分类器。 kNN算法的三大弊端: (1),计算量大,当特征比较多时表示性差 (2),训练时耗时少…

C++初阶之模板初阶

一、泛型编程 如何实现一个通用的交换函数呢? void Swap(int& left, int& right) {int temp left;left right;right temp; } void Swap(double& left, double& right) {double temp left;left right;right temp; } void Swap(char& left,…

sql编写规范(word原件)

编写本文档的目的是保证在开发过程中产出高效、格式统一、易阅读、易维护的SQL代码。 1 编写目的 2 SQL书写规范 3 SQL编写原则 软件全套资料获取进主页或者本文末个人名片直接获取。

[Java、Android面试]_22_APP启动流程(中频问答)

欢迎查看合集: Java、Android面试高频系列文章合集 本人今年参加了很多面试,也有幸拿到了一些大厂的offer,整理了众多面试资料,后续还会分享众多面试资料。 整理成了面试系列,由于时间有限,每天整理一点&am…

偏微分方程算法之混合边界条件下的差分法

目录 一、研究目标 二、理论推导 三、算例实现 四、结论 一、研究目标 我们在前几节中介绍了Poisson方程的边值问题,接下来对椭圆型偏微分方程的混合边值问题进行探讨,研究对象为: 其中,为矩形区域,为上的连续函数…

毕业设计参考-PyQt5-YOLOv8-鱼头鱼尾鱼长测量程序,OpenCV、Modbus通信、YOLO目标检测综合应用

“PyQt5-YOLOv8-鱼头鱼尾鱼长测量程序”是一个特定的软件程序,用于通过图像处理和目标检测技术来测量鱼类的长度。 视频效果: 【毕业设计】基于yolo算法与传统机器视觉的鱼头鱼尾识别_哔哩哔哩_bilibili 这个程序结合了多种技术: 1. OpenCV…

【数据结构(邓俊辉)学习笔记】列表03——有序列表

文章目录 0. 概述1. 唯一化2. 查找2.1 实现2.2 顺序查找2.3 复杂度 0. 概述 介绍下有序列表。 若列表中所有节点的逻辑次序与其大小次序完全一致,则称作有序列表(sorted list)。为保证节点之间可以定义次序,依然假定元素类型T直接…

【一刷《剑指Offer》】面试题 12:打印 1 到最大的 n 位数

力扣对应题目链接:LCR 135. 报数 - 力扣(LeetCode) 牛客对应题目链接:打印从1到最大的n位数_牛客题霸_牛客网 (nowcoder.com) 一、《剑指Offer》内容 二、分析题目 1、暴力解法 2、用字符串模拟数字加法 首先要考虑当 n 很大时&…

Pandas层级索引

文章目录 第1关:多级索引的取值与切片第2关:多级索引的数据转换与累计方法 第1关:多级索引的取值与切片 编程要求 本关的编程任务是补全右侧上部代码编辑区内的相应代码,要求实现如下功能: 使用MultiIndex创建如下Da…

Vue3+.NET6前后端分离式管理后台实战(十七)

1,Vue3.NET6前后端分离式管理后台实战(十七)已经在微信公众号更新,有兴趣的扫码关注一起交流学习。

ShardingSphere 5.x 系列【30】影子库

有道无术,术尚可求,有术无道,止于术。 本系列Spring Boot 版本 3.1.0 本系列ShardingSphere 版本 5.4.0 源码地址:https://gitee.com/pearl-organization/study-sharding-sphere-demo 文章目录 1. 影子库与全链路压测2. 核心概念3. 使用限制4. 执行原理4.1 DML 语句4.2 D…

Vue前端环境准备

vue-cli Vue-cli是Vue官方提供的脚手架,用于快速生成一个Vue项目模板 提供功能: 统一的目录结构 本地调试 热部署 单元测试 集成打包上线 依赖环境:NodeJs 安装NodeJs与Vue-Cli 1、安装nodejs(已经安装就不用了) node-…