yolov5环境搭建(Anaconda-py3.9、PyTorch-CPU、yolov5-4.0、PyCharm)

news2024/10/5 21:24:45

1.环境准备

  1. Windows 10
  2. Anaconda(基于Python3.9),已配置好环境变量
  3. yolov5相关的代码、权重文件等,已经打包整理好,可以通过百度网盘绿色下载。链接: https://pan.baidu.com/s/1okVkfpqjI5wD6PigK-AH0w?pwd=yscw 提取码: yscw

2.在Anaconda中创建虚拟环境

Anconda除了提供丰富的科学包外,还可以通过创建虚拟化境的方式用于进行环境隔离。虚拟环境的隔离有效避免了不同的Python项目需要依赖模块的版本不同导致的各种冲突。这里提供一种图形化操作方式。
(1)打开Anaconda Navigator
在这里插入图片描述
(2)依次点击一下两个按钮,然后在弹出的表单里面填写环境的名字和Python的版本,(例如,环境的名字:DL,Python版本为3.9)
在这里插入图片描述
在这里插入图片描述
注:需要仔细看好虚拟环境在哪个目录下,这个路径后面在PyCharm中会用到
(3)打开Anaconda Prompt,使用以下命令可以查看当前有哪些虚拟环境

conda env list

在这里插入图片描述
可以看到,base环境是下载Anaconda自带的,DL是刚才我们新建的。
可以使用下面的命令进入DL环境

conda activate DL

在这里插入图片描述
在这个全新的环境下可以下载Python项目依赖的模块。

4.安装PyTorch和部署yolov5代码

(1)如果电脑没有配备GPU显卡,可以先使用CPU版本的PyTorch,对于初学者不会有太大影响,安装起来也比较简单。
访问:PyTorch官网
在这里插入图片描述
点击上述配置就生成了在conda prompt下的安装命令。

conda install pytorch torchvision torchaudio cpuonly -c pytorch

回到刚才新建的DL环境,直接输入该命令,运行即可。然后安装完毕,可以使用下面的命令查看当前环境下已经安装好的模块和版本信息

pip list

(2)yolov5代码部署和测试

  • 在前面提供的网盘地址中,可以下载“yolov5-4.0.zip”,与之相匹配,权重文件也要下载对应4.0版本的(共计四个.pt文件,比较大)。
  • 把yolov5-4.0解压缩后,放在一个不含有中文字符的路径下:(建议放在一个空间比较大的位置)

在这里插入图片描述

  • 下载权重文件后,移动到yolov5-4.0\weights目录下:

在这里插入图片描述

  • 在DL环境下通过requirements.txt来安装yolov5依赖的模块:
pip install -r requirements.txt

可能会出现下面的报错:解决办法是解压缩网盘中的“pycocotools2.0.2.rar”的两个文件夹移到新建的DL环境下(需要先找到Anaconda安装包的位置!)
在这里插入图片描述
以我的路径为例,是:

D:\Software_Download\Anaconda_Install\Anaconda3\envs\DL\Lib\site-packages

移动后如下图所示:
在这里插入图片描述
重新执行刚才的命令,就不会报错了。

  • 运行测试程序:在DL环境的命令行中输入以下命令:
python detect.py --source data\Images\bus.jpg --weights weights\yolov5s.pt --img 640

可能会出现以下报错:
在这里插入图片描述
这是PyTorch代码的小问题,修改方法:找到DL环境的目录,进入Lib\site-packages\torch\nn\modules例如:

D:\Software_Download\Anaconda_Install\Anaconda3\envs\DL\Lib\site-packages\torch\nn\modules

打开upsampling.py,大概在151行的位置,进行如下修改:

return F.interpolate(input, self.size, self.scale_factor, self.mode, self.align_corners)

在这里插入图片描述
再次运行之前的测试语句,不会报错了,显示的结果如下所示:
在这里插入图片描述

  • 查看结果:根据上图的提示,可以看到生成的图片上面有了识别出来的候选框。
    在这里插入图片描述

5.在PyCharm中运行yolov5代码

我们知道,PyCharm是Python代码的编辑器,需要选用合适的解释器才可以正确地运行,也就是说需要选择合适的环境,才能找到程序依赖的模块。
这里使用PyCharm2022.2.2版本(个人感觉新版的界面不是很好看,不太习惯)
(1)鼠标点击yolov5-4.0文件夹,拖拽,放到PyCharm图表上,然后点击信任该文件夹,就可以打开整个代码文件夹了。如下图所示,当我们没有选择Python环境(解释器)的时候,界面会有清楚的提示,此时不可以运行代码。(最上面和右下角,都有提示)
在这里插入图片描述
(2)点击右下脚 <No Interpreter>,点击 Interpreter Settings,弹出了对话框。点击右上角Add Interpreter,按下图操作,选择DL环境下的Python解释器:
在这里插入图片描述
然后确认,对话框关闭以后就可以看到环境已经选中了我们刚才创建的DL环境,修改一下python程序中weights的路径,就可以运行代码了。
在这里插入图片描述

我在搭建环境的时候也遇到了一些小问题,主要参考了以下几篇博客,解决了自己的问题,因此非常感谢大佬们的经验分享!!也真心希望我整理的内容可以帮助到yolov5的初学者!

参考资料:

  1. 史上最详细yolov5环境配置搭建+配置所需文件
  2. 【 解决anaconda中安装pycocotools报错:ERROR:Could not build wheels for pycocotools, which is required to i】
  3. Yolov5学习第一周–Win10系统yolov5环境搭建全过程
  4. YOLOV5 | AttributeError: ‘Upsample‘ object has no attribute ‘recompute_scale_factor‘ 问题解决 亲测有效

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

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

相关文章

RabbitMQ发布/订阅(交换机)

目录 RabbitMQ发布/订阅(交换机)介绍Fanout&#xff08;广播&#xff09;声明队列和交换机publisher 消息发送consumer消息接收 Direct&#xff08;定向&#xff09;consumer消息接收,基于注解声明队列和交换机publisher 消息发送总结 Topic&#xff08;通配符&#xff09;publ…

【腾讯云Finops Crane集训营】利用云原生成本优化项目实现降本增效泰酷辣~

Crane 是一个基于 FinOps 的云资源分析与成本优化平台。在保证客户应用运行质量的前提下实现极致的降本。 文章目录 一、 前言&#x1f350;二、 Crane开源项目简介&#x1f34e;2.1. Crane整体框架&#x1f352;2.2. Crane主要功能&#x1f345; 三、Crane实验前期准备&#x…

Cesium入门之二:引用Cesium并创建第一个三维地球

这一节我们来引入Cesium并创建第一个三维地图程序 Cesium的引入 1、新建一个文件夹&#xff0c;命名为first_cesium,在该文件夹下新建一个Build文件夹&#xff0c;将上一节我们下载的Cesium文件夹下Build文件夹---->Cesium文件夹下的文件全部拷贝到first_cesium---->Bu…

关于阿里云的图像搜索的创建和使用

大家好哇&#xff0c;我又来了&#xff0c;这次我们来聊下关于阿里云的图像搜索功能的创建和使用。 https://free.aliyun.com/?crowdpersonal 1、我们可以通过上面的链接进入到阿里云云产品免费试用页面&#xff0c;这里主要是阿里云为新手用户提供的免费体验的权益&#xff…

Cesium入门之一:Cesium本地运行

Cesium简介 Cesium是一个开源的、面向三维地球和地图的JavaScript库&#xff0c;它是基于Apache2.0许可的开源程序&#xff0c;可以免费的用于商业用途&#xff1b; Cesium下载 Cesium的官网地址是&#xff1a;https://cesium.com/platform/cesiumjs/&#xff0c;由于Cesium…

ChatGPT 提示语——AI提示词玩家,提示词就是和AI沟通语言的桥梁!

前言&#xff1a; 众所周知&#xff0c;在AI的世界里&#xff0c;提示词就是和AI沟通语言的桥梁&#xff0c;提示关键词常用于AI对话及AI绘画等相关场景&#xff0c;通过准确的使用关键词&#xff0c;你就能更好的让AI辅助自己的工作&#xff0c;其中的成分重要性不言而喻&…

MySQL---基本操作DQL(上)(基本查询语法,算术运算符,比较运算符,逻辑运算符,位运算符)

1. 基本查询语法 select [all|distinct] <目标列的表达式1> [别名], <目标列的表达式2> [别名]... from <表名或视图名> [别名],<表名或视图名> [别名]... [where<条件表达式>] [group by <列名> [having <条件表达式>]] [o…

JAVA学习日记 (放假了,哈哈)

每日一题 1016. 子串能表示从 1 到 N 数字的二进制串 难度中等122收藏分享切换为英文接收动态反馈 给定一个二进制字符串 s 和一个正整数 n&#xff0c;如果对于 [1, n] 范围内的每个整数&#xff0c;其二进制表示都是 s 的 子字符串 &#xff0c;就返回 true&#xff0c;否…

时间轮的golang实践浅析

引言 下列代码模仿一段RPC请求的执行过程&#xff0c;执行后会有哪些问题&#xff1a; RPC代码示例答案&#xff1a;因为超时控制后未阻断后续请求&#xff0c;导致并发读写产生Panic思考&#xff1a;客户端发起 HTTP 请求后&#xff0c;如果在指定时间内没有收到服务器的响应…

软件开发安全

软件开发安全 软件安全开发生命周期软件生命周期模型软件生命周期模型-瀑布模型软件生命周期模型-迭代模型软件生命周期模型-增量模型软件生命周期模型-快速原型模型软件生命周期模型-螺旋模型软件生命周期模型-净室模型软件安全重要性–软件危机 软件安全问题产生-内因软件安全…

51单片机(十一)DS1302实时时钟

❤️ 专栏简介&#xff1a;本专栏记录了从零学习单片机的过程&#xff0c;其中包括51单片机和STM32单片机两部分&#xff1b;建议先学习51单片机&#xff0c;其是STM32等高级单片机的基础&#xff1b;这样再学习STM32时才能融会贯通。 ☀️ 专栏适用人群 &#xff1a;适用于想要…

2023年软考系统架构师新版专栏导读

目录 新的改变软考是不是内卷?老版教材删减章节建议学习计划专栏更文列表新的改变 软考今年改版啦 高级系统架构师考试在2022年12月底出了第二版教材,比第二版多出来140页,虽然看起来好像更难了,但是我认为改版是件好事,摒弃了一些过时的淘汰的技术,更新了一些新知识点,…

二叉树OJ

文章目录 二叉树OJ根据二叉树创建字符串思路示例代码 二叉树的层序遍历思路示例代码 二叉树的层序遍历 II思路示例代码 二叉树的最近公共祖先思路1示例代码1思路2示例代码2 二叉搜索树与双向链表思路1示例代码1思路2示例代码2 迭代实现二叉树的三种遍历前序遍历思路示例代码 中…

从零开始:如何成为一名优秀的品牌策划师

作为一个十年老策划&#xff0c;告诉你我们公司&#xff08;一个比较牛的品牌策划公司&#xff09;当年是怎么培养新人的吧。 1、看书 你必须要看六本书&#xff0c;他们是&#xff1a;特劳特的《定位理论》、《营销4.0》、《品牌王道》、《商战》、《竞争优势》&#xff0c;…

一图看懂 multidict 模块:类似于字典的键值对集合,键可以多次出现,资料整理+笔记(大全)

本文由 大侠(AhcaoZhu)原创&#xff0c;转载请声明。 链接: https://blog.csdn.net/Ahcao2008 一图看懂 multidict 模块&#xff1a;类似于字典的键值对集合&#xff0c;键可以多次出现&#xff0c;资料整理笔记&#xff08;大全&#xff09; &#x1f9ca;摘要&#x1f9ca;模…

数据库sql语句(count(*)和count(字段))

例题&#xff1a; 创建如下两张表 分别命名为books和persons &#xff08;1&#xff09;按照书名&#xff0c;姓名的顺序列出字里包含‘德’字的人物的姓名&#xff0c;书名和字。 select name 姓名,bookname 书名,style 字 from books,persons where style like %德% and bo…

SpringBoot配置文件相关

SpringBoot配置文件内容分为两类: 1.Spring自带的配置,比如server.port(这玩意就自己躺在application.properties里) 2.自定义的配置 配置文件的格式分为两种 1.properties格式 2.yml格式 properties和yml的区别 1.通用性 properties是SpringBoot项目默认的配置文件!他已经很老…

Baumer工业相机堡盟工业相机软件CameraExplorer常见功能使用说明

Baumer工业相机堡盟工业相机软件CameraExplorer常见功能使用说明 Baumer工业相机Baumer工业相机图像采集功能Baumer工业相机图像基本参数设置 Baumer工业相机 Baumer工业相机堡盟相机是一种高性能、高质量的工业相机&#xff0c;可用于各种应用场景&#xff0c;如物体检测、计…

诺亚财富财报不及预期,收入大幅下滑27.8%,股价也已下跌26%

来源&#xff1a;猛兽财经 作者&#xff1a;猛兽财经 诺亚财富2022财年业绩和管理层评论 在此前于2023年3月下旬举行的2022年第四季度财报会议上&#xff0c;诺亚财富(NOAH)强调&#xff0c;“我们希望将2022年的痛苦转化为2023年的收获。”虽然诺亚财富在财报会议上没有提供2…

三子棋的实现【C语言】

完成一个三子棋游戏的实现包括三部分 test.c 测试游戏 game.c 实现游戏 game.h 声明游戏 菜单 首先我们完成游戏的菜单部分 游戏部分 完成三子棋我们需要完成棋盘的创建&#xff0c;玩家下棋&#xff0c;电脑下棋&#xff0c;判断胜负&#xff0c;以及将棋盘展现给玩家&a…