CPU炼丹——YOLOv5s

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.hqwc.cn/news/669967.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Linux的基础IO:文件描述符 重定向本质

目录 前言 文件操作的系统调用接口 open函数 close函数 write函数 read函数 注意事项 文件描述符-fd 小补充 重定向 文件描述符的分配原则 系统调用接口-dup2 缓冲区 缓冲区的刷新策略 对于“2”的理解 小补充 前言 在Linux中一切皆文件,打开文件…

接口测试及常用的接口测试工具(Postman/Jmeter)

🍅 视频学习:文末有免费的配套视频可观看 🍅 点击文末小卡片 ,免费获取软件测试全套资料,资料在手,涨薪更快 首先,什么是接口呢? 接口一般来说有两种,一种是程序内部的接…

基于Spring Boot的大学生社团活动平台设计与实现

基于Spring Boot的大学生社团活动平台设计与实现 开发语言:Java框架:springbootJDK版本:JDK1.8数据库工具:Navicat11开发软件:eclipse/myeclipse/idea 系统部分展示 前台首页功能界面图,学生在大学生社团…

海外仓管理软件:如果你这么用,它对你有害无益

虽然说海外仓管理系统是个功能强大的工具,但它并不能解决海外仓所有的问题。 那么什么时候适合使用海外仓系统,什么样的使用方式是错误的?今天就系统的和大家聊聊这个问题。 不要把海外仓管理系统当成“救急”工具 很多时候人们在遇到问题的时…

毕业设计:《基于 Prometheus 和 ELK 的基础平台监控系统设计与实现》

前言 《基于 Prometheus 和 ELK 的基础平台监控系统设计与实现》,这是我在本科阶段的毕业设计,通过引入 Prometheus 和 ELK 架构实现企业对指标与日志的全方位监控。并且基于云原生,使用容器化持续集成部署的开发方式,通过 Sprin…

SM618卡件SM480模块和利时

SM618卡件❗电:183-6998-1851❗SM480模块和利时。自动化程度的提高,I/O点数大幅增 加,传统单一配线的方式已经无法满足发展的需 要SM618卡件SM480模块和利时。.对简单、可靠的配线方式的需求日益强烈. 传统接线 - 以并联方式连 接…

我独自升级崛起在哪下载 我独自升级电脑PC端下载教程分享

将于5月8日在全球舞台闪亮登场的动作角色扮演游戏《我独自升级崛起》,灵感源自同名热门动画与网络漫画,承诺为充满激情的游戏玩家群体带来一场集深度探索与广阔体验于一身的奇幻旅程。该游戏以独特的网络武侠世界观为基底,展现了一位普通人踏…

LangChain-RAG学习之 文档加载器

目录 一、实现原理 二、文档加载器的选择 (一).PDF 加载本地文件 可能需要的环境配置 (二).CSV 1、使用每个文档一行的 CSV 数据加载 CSVLoader 2、自定义 csv 解析和加载 (csv_args 3、指定用于 标识文档来源的 列(source_column (三)、文件目…

从零开始学习生成树实验:一步一步走向精通

大家好,这里是G-LAB IT实验室。 ⭕5月18日 CCNAHCIA 新开班来啦👏 现在报名有早鸟价,感兴趣的可咨询 👇👇👇 敲重点! 可小窗客服咨询课程价格 本课程包含线下面授、线上直播、录播、实验、考试习题、…

【安全操作系统】皮尔逊系数观察人脸旋转与人脸位置的关系

皮尔逊系数观察人脸旋转与人脸位置的关系 根据提供的数据,我们可以首先去除可能的坏值。然后,我们可以通过绘制散点图或者计算相关系数来分析角度与其他变量之间的关系。 首先,让我们去除可能的坏值。在这里,我们可以定义一些阈…

/swagger/index.html#/ 的页面可能存在问题,或者已永久移动到新的网址。

问题背景 在golang的项目中,使用了swagger。在另外一个项目中也使用了swagger,没有发生过这个问题。新的项目中,用了和之前项目同样的web框架,仔细比对了和之前项目的差异,只不过,目录结构做了调整,所以&a…

东方生物工程设备技术有限责任公司带您解读2024第12届上海生物发酵展览会

参展企业介绍 镇江东方生物工程设备技术有限责任公司是国内规模最大的自动成套生化反应设备的专业制造商,也是江苏省最早的专业发酵罐制造公司。公司主要从事液体发酵设备、固体发酵设备、特殊新型生化反应设备以及自动生化反应过程控制系统的研究、开发与制造。 公…