Yolov5目标检测环境搭建过程(Cuda+Pytorch+Yolov5)

2023-11-12

本文介绍了如何搭建yolov5目标检测代码的环境,详细记录了python虚拟环境、安装pytorch、加载yolov5项目以及运行检测程序的全过程。

完成了本文的yolov5项目搭建后,可以查看本文下一篇文章:使用yolov5训练自己的数据集并测试。

一、安装Python虚拟环境

1、首先在所在系统中安装Anaconda。可以打开命令行输入conda -V检验是否安装以及当前conda的版本。

2、使用 conda create -n your_env_name python=X.X(2.7、3.6等)命令创建python版本为X.X、名字为your_env_name的虚拟环境。your_env_name文件可以在Anaconda安装目录envs文件下找到。

我用的指令是:

conda create -n py37_torch python=3.7

安装之前可能提示你需要更新conda版本,这个并不影响

安装过程中需要输入Y确认下载

3、安装好后会提示你激活环境的指令,我们可能会根据需要创建不同的虚拟环境,每个环境对应不同的名称,所以在对环境中的包进行更新或删除之前需要激活该环境,激活方式为:

activate py37_torch

图中命令前面的环境名称变成了py37_torch,表示已经成功进入了该环境。可以输入conda list查看当前环境python版本以及已有的包

此时进行安装和删除包的操作都是对该环境进行的。例如我们需要安装matplotlib,输入:

pip install matplotlib

关闭当前环境,输入:

deactivate

二、安装Pytorch

1、首先查看电脑已有的CUDA版本,输入nvcc –version(当前环境下查看或者打开CMD查看都可以)

去pytorch查看cuda对应的pytorch版本

https://pytorch.org/get-started/previous-versions/

我选择的是torch1.2.0版本,由于在线安装网速不行,一般我选择离线安装的方式,首先在下面的网站中下载对应版本的whl文件,需要下载对应的torch1.2.0和torchvision0.4.0

https://download.pytorch.org/whl/torch_stable.html

这里需要注意,cuda10.0对应的torch版本很多都只支持到python3.7,所以在选择版本之前还需要把python版本结合起来(我之前用的python3.8版本的就发现没有对应安装文件)

2、下载好后,定位到下载目录:

cd C:\Users\suda\Downloads

输入安装命令:

pip install torch-1.2.0-cp37-cp37m-win_amd64.whl

pip install torchvision-0.4.0-cp37-cp37m-win_amd64.whl

3、安装过程中会自动下载其它依赖包,如果网速慢可以提前离线下载对应依赖包的whl文件,采用上述方式安装,这样在安装过程中就会跳过已安装的包。例如我这里安装numpy,显示需要7个小时,

去Pypi网站(https://pypi.org/project)下载对应的版本(直接百度搜索numpy下载即可跳出Pypi网站,有一些安装包也可在清华镜像里下载),下载仅需几秒

4、检查是否安装成功:

命令行输入python

依次引用

import torch

import torchvision

print(torch.cuda.is_available())

中间没有任何报错并且最终输出为True说明安装成功了(在import torchvision可能会报错ImportError: cannot import name 'PILLOW_VERSION' from 'PIL',解决方法见我另一篇博文)

三、运行Yolov5

1、Yolov5项目地址:

https://github.com/ultralytics/yolov5

也可以直接下载gitcode里的,下载速度更快:

https://gitcode.net/mirrors/ultralytics/yolov5?utm_source=csdn_github_accelerator#

2、在Pycharm中加载环境

Pycharm新建项目,选择Yolov5项目文件,然后按照下图所示配置环境,选择刚刚装好的py37_torch。

选择虚拟环境的python.exe,文件位置在下图红框所示位置,Anaconda3前面是用户目录。

四、运行Yolov5

1、检测图片

在项目下面下载了yolov5s.pt模型文件,放到models文件夹下,并且修改了detect.py程序中对应的路径,第二个参数为需要检测的图片的路径

直接运行detect.py,将会检测data/images中的图片,检测结果:

2、调用摄像头实时检测

将第二个参数改为0则调用电脑自带摄像头

检测效果:

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Yolov5目标检测环境搭建过程(Cuda+Pytorch+Yolov5) 的相关文章

  • CUDA素数生成

    当数据大小增加超过 260k 时 我的 CUDA 程序停止工作 它不打印任何内容 有人能告诉我为什么会发生这种情况吗 这是我的第一个 CUDA 程序 如果我想要更大的素数 如何在 CUDA 上使用大于 long long int 的数据类型
  • PyTorch:如何检查训练期间某些权重是否没有改变?

    如何检查 PyTorch 训练期间某些权重是否未更改 据我了解 一种选择可以是在某些时期转储模型权重 并检查它们是否通过迭代权重进行更改 但也许有一些更简单的方法 有两种方法可以解决这个问题 First for name param in
  • cuda 共享内存 - 结果不一致

    我正在尝试并行缩减以对 CUDA 中的数组求和 目前我传递一个数组来存储每个块中元素的总和 这是我的代码 include
  • pytorch 中的 keras.layers.Masking 相当于什么?

    我有时间序列序列 我需要通过将零填充到矩阵中并在 keras 中使用 keras layers Masking 来将序列的长度固定为一个数字 我可以忽略这些填充的零以进行进一步的计算 我想知道它怎么可能在 Pytorch 中完成 要么我需要
  • 如何优化这个 CUDA 内核

    我已经分析了我的模型 似乎该内核约占我总运行时间的 2 3 我一直在寻找优化它的建议 代码如下 global void calcFlux double concs double fluxes double dt int idx blockI
  • 如何并行从数组中删除零值

    如何使用 CUDA 并行有效地从数组中删除零值 有关零值数量的信息是预先可用的 这应该可以简化这项任务 重要的是数字必须保持源数组中的顺序 当被复制到结果数组时 Example 该数组将例如包含以下值 0 0 19 7 0 3 5 0 0
  • CUDA Visual Studio 2010 Express 构建错误

    我正在尝试在 64 位 Windows 7 上使用 Visual Studio 2010 Express 在 Windows 上开始 CUDA 编程 我花了一段时间来设置环境 然后我刚刚编写了我的第一个程序 helloWorld cu 目前
  • Nvcc 的版本与 CUDA 不同

    我安装了 cuda 7 但是当我点击 nvcc version 时 它打印出 6 5 我想在 GTX 960 卡上安装 Theano 库 但它需要 nvcc 7 0 我尝试重新安装cuda 但它没有更新nvcc 当我运行 apt get i
  • 如何有效地对一个数组中某个值在另一个数组中的位置出现的次数求和

    我正在寻找一种有效的 for 循环 避免解决方案来解决我遇到的数组相关问题 我想使用一个巨大的一维数组 A gt size 250 000 用于一维索引的 0 到 40 之间的值 以及用于第二维索引的具有 0 到 9995 之间的值的相同大
  • torch.stack() 和 torch.cat() 函数有什么区别?

    OpenAI 的强化学习 REINFORCE 和 actor critic 示例具有以下代码 加强 https github com pytorch examples blob master reinforcement learning r
  • 在 __device/global__ CUDA 内核中动态分配内存

    根据CUDA 编程指南 http developer download nvidia com compute cuda 3 2 prod toolkit docs CUDA C Programming Guide pdf 第 122 页 可
  • Cuda 6.5 找不到 - libGLU。 (在 ubuntu 14.04 64 位上)

    我已经在我的ubuntu上安装了cuda 6 5 我的显卡是 GTX titan 当我想要制作 cuda 样本之一时 模拟 粒子 我收到这条消息 gt gt gt WARNING libGLU so not found refer to C
  • 尝试构建我的 CUDA 程序时出现错误 MSB4062

    当我尝试构建我的第一个 GPU 程序时 出现以下错误 有什么建议可能会出什么问题吗 错误 1 错误 MSB4062 Nvda Build CudaTasks SanitizePaths 任务 无法从程序集 C Program 加载 文件 M
  • CUDA 矩阵加法时序,按行与按行比较按栏目

    我目前正在学习 CUDA 并正在做一些练习 其中之一是实现以 3 种不同方式添加矩阵的内核 每个元素 1 个线程 每行 1 个线程和每列 1 个线程 矩阵是方阵 并被实现为一维向量 我只需用以下命令对其进行索引 A N row col 直觉
  • cuda中内核的并行执行

    可以说我有三个全局数组 它们已使用 cudaMemcpy 复制到 GPU 中 但 c 中的这些全局数组尚未使用 cudaHostAlloc 分配 以便分配页面锁定的内存 而不是简单的全局分配 int a 100 b 100 c 100 cu
  • PyTorch 中的连接张量

    我有一个张量叫做data形状的 128 4 150 150 其中 128 是批量大小 4 是通道数 最后 2 个维度是高度和宽度 我有另一个张量叫做fake形状的 128 1 150 150 我想放弃最后一个list array从第 2 维
  • 在 Pytorch 中估计高斯模型的混合

    我实际上想估计一个以高斯混合作为基本分布的归一化流 所以我有点被火炬困住了 但是 您可以通过估计 torch 中高斯模型的混合来在代码中重现我的错误 我的代码如下 import numpy as np import matplotlib p
  • 如何为 CUDA 内核选择网格和块尺寸?

    这是一个关于如何确定CUDA网格 块和线程大小的问题 这是对已发布问题的附加问题here https stackoverflow com a 5643838 1292251 通过此链接 talonmies 的答案包含一个代码片段 见下文 我
  • TensorFlow 相当于 PyTorch 的 Transforms.Normalize()

    我正在尝试推断最初在 PyTorch 中构建的 TFLite 模型 我一直在遵循PyTorch 实现 https github com leoxiaobin deep high resolution net pytorch blob 1ee
  • VS 程序在调试模式下崩溃,但在发布模式下不崩溃?

    我正在 VS 2012 中运行以下程序来尝试 Thrust 函数查找 include cuda runtime h include device launch parameters h include

随机推荐

  • jvm虚拟机_JVM虚拟机五连问,能过并不是只靠运气

    对于Java程序员来说 在众多Java知识点当中JVM是很重要的一块 每个Java程序都离不开Java虚拟机 Java程序的运行依靠具体的Java虚拟机实例 在Java虚拟机规范中 分别用子系统 内存区 数据类型以及指令这几个术语来描述的
  • 两个数值互换的几种方式

    一 建立临时变量 1 普通的方法 思路简介 建立一个临时变量 通过temp a a b b temp来实现交换 缺点 这只是一种假交换 由于这只是在函数内部临时变量间的交换 所以当函数退出 函数栈帧被释放 原本的值并没有交换 具体方法 in
  • MongoDB的使用

    MongoDB 是一个跨平台的 以 JSON 为数据模型的文档数据库 是当前 NoSQL 数据库产品中最热门的一种 它介于关系数据库和非关系数据库之间 是非关系数据库当中功能最丰富 最像关系数据库的产品 1 MongoDB 与 MySQL
  • 使用DVD光盘或者ISO作为本地YUM源

    Yum 全称为 Yellow dog Updater Modified 是一个在 Fedora RedHat CentOS 中的 Shell 前端软件包管理器 基于 RPM 包管理 能够从指定的服务器自动下载 RPM 包并且安装 可以自动处
  • 摸爬滚打DirectX11_day01——VS2015与DirectX11的配置

    什么是DirectX11 DirectX 微软提供的应用程序接口集 APIs 被设计为在运行 windows 操作系统平台上用来提供给开发人员控制硬件的底层接口 它的各个组件提供了访问不同硬件的能力 包括图形 显卡 声音 声卡 GPU 输入
  • 数据库原理(二 )

    文章目录 一 关系模型有关概念 二 关系的类型和性子 2 1 类型 2 2 基本关系的六条性质 三 E R图转换为关系模型的方法 3 1 实体联系 1 1 3 2 实体联系 1 n 方法一 方法 二 3 3 联系实体 m n 四 关系模型的
  • 官方AI语音系统电销机器人系统搭建

    端是VUE后端是java还有CC 4台服务器组成nginx kafka mysql数据库 fs 支持大并发 通话录音存储七牛云可以自定义录音存储时长不用担心录音多影响系统硬盘存储空间可自定义删除录音存留时间 市面上的都是单服务器然后加挂大数
  • 以太坊智能合约教程(一)搭建以太坊私有链搭建

    环境说明 win10 64位 geth1 6 5 1 安装geth 安装完成以后 先创建2个账号 geth account new 然后建立 mygenesis json nonce 0x0000000000000042 difficult
  • 更改SVN的用户名、密码等信息的两种方式

    一 背景 在刚入职一家公司的时候 经常会去安装一些版本管理工具 例如 git或者svn 下面就拿svn来举例 假如你拿到的电脑是上位同事留下的 里面的记录并没有被完全清空 当你安装好svn 大概率还是会使用上一位同事的配置文件 那在此之后你
  • Verilog HDL FPGA 从入门到放弃(1)

    这是一篇入门文章 笔者也曾经迷茫过 也很困惑过 硬件编程是怎么样的 但是功夫不负有心人 希望我的文章获得读者的认同 谦虚使人进步 希望不足之处请提意见 对于有意思的东西大家可以探讨一下 硬件编程verilog 建模 一个简单的模型 流水灯的
  • 使用Spring Boot和EasyExcel的导入导出

    在当今信息化社会 数据的导入和导出在各种业务场景中变得越来越重要 为了满足复杂的导入导出需求 结合Java编程语言 Spring Boot框架以及EasyExcel库 我们可以轻松地构建出强大而灵活的数据处理系统 本文将引导您通过一个案例学
  • Odoo(OpenERP)补货规则笔记整理 - 草稿

    感谢Jeffery Jason ccdos roson 等人分享讨论 推式规则 移库规则 从一个库位推送到另一个库位 拉式规则 补货规则 包括生产 采购 移动 进行仓库设置时 会自动创建默认的拉式规则 最小库存规则 再订货规则 补货 某个库
  • iphone 服务器未响应,iPhone 死机没反应?先试试这些方法!

    iPhone 突然死机了 相信很多果粉都遇过这种情况 通常在手机死机的时候 无论我们怎么点屏幕都没反应 如果在一些紧急情况下发生死机 是很头疼的一件事 那么 iPhone 死机没反应 我们到底应该怎么处理呢 今天 疯师傅教你们三招 自己在家
  • 静态类型

    从程序运行或者二进制的角度 或者说 运行时 的角度来看 静态类型就是 没有类型 因为程序实际上不在运行时保存任何的静态类型 这也是静态类型又被称为 编译时类型 的原因 因为一旦经过编译 静态类型系统就基本上消失殆尽了 为什么又说基本上了呢
  • freemarker+itext5实现用模板方式,导出word和pdf(spring-boot直接可使用)

    第一步 需要引入的jar包
  • PHP$_FILES原生图片上传

    PHP FILES原生图片上传 if empty FILES file name header Content type text html charset utf 8 if FILES file error 0 判断上传是否正确 file
  • 接口自动化测试框架-Python+Requests+Yaml

    零代码极限封装的 接口自动化测试框架 目前已经完全能够实现真正的零代码落地并在企业中推广 其中用到的最核心的封装技术如下 核心技术 1 热加载封装 是全网最早应用于自动化测试框架的封装技术 2 Requests统一请求封装 3 接口关联封装
  • windows下Qt、MinGW、libmodbus源码方式的移植与使用

    windows下Qt MinGW libmodbus源码方式的移植与使用 1 前言 libmodbus官网 https libmodbus org github下载 https github com stephane libmodbus 截
  • element-ui 源码解析,你知道 v-loading 是如何实现的吗?

    前言 相信大家肯定都用过 element ui 里面的 v loading 来写加载 但是如果让你来写一个的话你会怎么写呢 众所周知 element ui 框架的 v loading 有两种使用方式 一种是在需要 loading 的标签上直
  • Yolov5目标检测环境搭建过程(Cuda+Pytorch+Yolov5)

    本文介绍了如何搭建yolov5目标检测代码的环境 详细记录了python虚拟环境 安装pytorch 加载yolov5项目以及运行检测程序的全过程 完成了本文的yolov5项目搭建后 可以查看本文下一篇文章 使用yolov5训练自己的数据集