【YOLOV5 入门】——环境配置(Miniconda/Pytorch/YOLOv5/PYPI镜像源)

声明:笔记是毕设时根据B站博主视频学习时自己编写,请勿随意转载!

计划:

入门篇:环境安装、模型检测、构建自定义数据集、训练数据集、可视化界面搭建、Web系统搭建。拓展篇:使用服务器训练、使用pycharm和VScode。进阶篇:修改模型、模型结构原理。部署篇:模型部署。


一、环境安装

友情提示:安装过程中请别关闭cmd!

1、Miniconda环境管理器

下面内容是有关miniconda环境管理器和集成开发环境(IDE)的关系,可作为拓展:

  • Miniconda:

    • Miniconda是一个轻量级的Anaconda发行版(无太多内置包),用于管理Python环境和软件包。它允许你在不同的项目中创建独立的Python环境,并轻松地安装、更新和管理各种Python包和依赖项。
    • 对于使用PyTorch和YOLOv5的项目,你可以通过Miniconda创建一个独立的Python环境,并在该环境中安装所需的PyTorch和其他相关软件包,以避免与其他项目的依赖冲突
  • PyCharm:

    • PyCharm是一款流行的Python集成开发环境(IDE),提供了丰富的功能和工具,帮助开发者编写、调试和管理Python代码
    • 通过PyCharm,你可以更轻松地创建、组织和管理Python项目,并利用其强大的代码编辑、调试和版本控制功能来提高开发效率。
    • 对于使用PyTorch和YOLOv5的项目,PyCharm可以作为一个强大的开发工具,帮助你更好地编写和调试代码,以及管理项目文件和依赖项。

Miniconda用于管理Python环境和依赖项,而PyCharm则用于开发、调试和管理Python项目。它们与PyTorch和YOLOv5的关系是在项目开发过程中提供便捷的环境和工具支持,从而更高效地进行深度学习模型的开发和应用。

Minicondaicon-default.png?t=N7T8https://mirrors.tuna.tsinghua.edu.cn/anaconda/miniconda/

选上面那个与up主一致的版本下载,双击安装尽量在C盘,路径不要出现非英文和空格。

推荐选中第二项将其添加到PATH

最后安装完成,可取消下图的两个选项,点击Finsh。

打开cmd输入下面命令,创建一个名字为yolov5的环境,python版本是3.8,回车

conda create -n yolov5 python=3.8

提示需要安装一些包,输入“y”再回车

环境创建完毕,然后激活环境(每次进cmd都要先激活),输入以下命令再回车:

conda activate yolov5


2、PYPI镜像源

激活完成(先别关闭cmd),下面配置一个国内的PYPI镜像,以便于后续下载python的一些包:

PYPI镜像安装帮助icon-default.png?t=N7T8https://mirrors.tuna.tsinghua.edu.cn/help/pypi/这里我们选取上面安装帮助的这段代码:(输入到cmd)

pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple


3、Pytorch框架

PyTorch是一个基于Python的开源机器学习库,它能够提供强大的GPU加速功能,以及内置的自动微分系统,可帮助开发人员更快地进行实验和建立神经网络模型。PyTorch由Facebook AI研究团队维护和开发,因其易于使用和灵活的API以及动态计算图的特点而受到广泛欢迎和关注。

YOLOv5是基于PyTorch框架开发的,安装PyTorch是为了更好地运行YOLOv5算法。PyTorch提供了丰富的功能和API,使得训练和推理深度学习模型变得更加简单和高效。利用其强大的GPU加速功能,加快YOLOv5模型的训练和推理速度。此外,PyTorch还提供了丰富的工具和库,帮助你更好地管理数据、设计模型以及进行实验和评估。Pytorch拓展如下:

  •  PyTorch核心是一个张量计算库,可以高效地处理矩阵计算、卷积和其他数学运算。
  • 也支持CPU和GPU计算,提供了方便实用的工具和函数,以便编写神经网络模型和训练。
  • 提供了强大的自动微分系统,可以轻松地计算梯度。
  • 同时支持动态计算图,动态计算图有利于减少模型构建的复杂性,并令开发人员更加深入地了解模型的计算过程。
  • 具有易于使用、灵活的API和出色的计算性能,因此被广泛应用于自然语言处理、计算机视觉和其他人工智能领域的研究和应用中。

Pytorch官网icon-default.png?t=N7T8https://pytorch.org/可见最新已经更新到2.2.1了,但YOLOv5用不到这么高的版本,点击下面的“Previous version of Pytorch”

这里选择1.8.2版本Wheel里面的pip安装方法(不推荐conda install的安装形式)。注:如果只有CPU就选择第三个,有显卡的可第一个第二个(具体什么型号的显卡对应第1个还是第2个一定要实现调查清楚)

附:查看显卡类型如下,我这个intel的显卡网上说不支持CUDA,只有英伟达NVIDIA显卡的支持(见最后关于CUDA的拓展部分),我安装了CPU版本的。

将对应的安装命令输入到cmd框,但是我这个报错,但up主不推荐高版本的说训练时会遇到问题,那重新选了1.9.0版本的就行

conda install pytorch==1.9.0 torchvision==0.10.0 torchaudio==0.9.0 cpuonly -c pytorch


4、YOLOv5检测算法

YOLO(You Only Look Once)是一种基于深度学习的目标检测算法,可以在一次前向传递中直接从图像中检测所有物体的位置和类别。特点是速度快,可以在CPU上实时处理视频。它采用全卷积神经网络,可以在一个端到端的过程中识别整个图像中的所有物体。

与传统的先检测再分类不同,YOLO是一个直接的目标检测算法,可以显著减少地址传递,实现实时的目标检测。不过,与其他检测算法相比,YOLO的准确度相对较低,因为它需要在各种尺度下检测物体,而且对于小物体检测效果不太好

YOLOv5 是一种用于目标检测的深度学习模型,是YOLO(You Only Look Once)系列的最/较新版本,由Ultralytics团队于2020年开发的,其主要目标是提高目标检测的速度和准确性。相比于之前的版本,YOLOv5在多个方面进行了改进,包括网络结构、训练策略和推理速度

1、采用了一些新技术来提高训练和推理的效率,例如自动数据增强和模型压缩等。
一些新的技术来提高模型的鲁棒性和泛化能力,例如采用新的数据增强技术和正则化方法等。
采用了更深的网络结构和更高级的特征提取技术,从而使其在目标检测任务上表现更好。
2、相比YOLOv4具有更简单的网络结构,但在速度和准确性上表现相当,甚至在某些情况下略有提升。
3、相比YOLOv3具有更好的性能和速度。YOLOv3在速度和准确性上存在一些瓶颈。

YOLOv5官方githubicon-default.png?t=N7T8https://github.com/ultralytics/yolov5点进右边Releases的v7.0-YOLOV5版本:

下滑下载Source code(zip)

可以解压到桌面,打开里面的requairments记事本文件

修改numpy和pillow的版本(更改时一定要用英文,因为这个报错我搞了好久),并注释掉torch和torchvision(因为之前已经安装了符合要求的版本,自动安装可能会默认成cpu版本):

保存txt记事本,下面可以执行该requirements文件。首先进入该文件夹(一定要保证环境是激活状态即前面有环境名yolov5)

pip install -r requirements.txt

安装完成,到这里基本可以认为环境安装完成

二、模型初步检测(检测示例)

可以进行一个模型检测的实例:

上面会先弹出你的torch版本可以看到我的时cpu版本,这个下载太慢可以停下,复制Downloading链接到网页下载,把下载好的文件粘贴在yolov5-7.0的文件夹里:

退出刚才下载太慢的界面(刚才已经通过网页下载完毕),重新执行模型检测命令

检测完成,它结果保存再runs\detect\exp2中,可以点开查看一下:

本期就到这里,下期继续学习!感谢你这么好看还关注柯宝!

三、拓展知识

但是当系统没有GPU设备,或者不需要利用GPU进行加速计算,选择安装CPU版本的PyTorch来满足需求,则不涉及CUDA。我本次的安装就是这样。

CUDA简介

CUDA(Compute Unified Device Architecture,计算统一设备架构)是由英伟达公司开发的一种并行计算平台和编程模型,它可以便捷地将 GPU 看作泛化的并行处理器,用于加速计算密集型应用程序

CUDA 平台的核心概念是线程块(thread block)、网格(grid)和 GPU 上的共享内存(shared memory)线程块是指在 GPU 上同时运行的一组线程,而网格则是包含若干个线程块的结构。CUDA 提供了丰富的函数库,包括矩阵操作、图像处理、快速傅立叶变换等,使开发人员可以方便地编写并行化的算法。而共享内存则是在线程块内用于共享数据的内存空间,通过合理地使用共享内存,可以使并行程序的性能进一步提升。

CUDA 的主要应用领域包括科学计算、计算机视觉、深度学习和游戏等,CUDA 已经成为了 GPU 计算领域最为流行的开发平台之一。

CUDA和Pytorch的关系

CUDA(Compute Unified Device Architecture)是由NVIDIA提供的并行计算平台和编程模型,用于利用GPU进行通用目的计算。而PyTorch是一个基于Python的深度学习框架,提供了丰富的工具和API来构建、训练和部署深度学习模型。关系体现在下面几方面:

  • GPU加速

    • PyTorch可以利用CUDA来实现在GPU上进行加速计算。通过PyTorch中提供的torch.cuda模块,可以轻松地将张量和计算操作移动到GPU上执行,从而加快深度学习模型的训练和推理速度。
    • CUDA提供底层的GPU编程接口和并行计算能力,PyTorch利用这些接口和能力来实现高效的GPU加速。
  • 深度学习库的支持

    • CUDA是许多深度学习框架基础(包括PyTorch),这些框架在GPU上执行计算时通常会使用CUDA来实现。
    • PyTorch内置了对CUDA的支持,因此开发者可以在PyTorch中直接利用CUDA来加速深度学习任务,而无需深入了解CUDA的底层细节
  • 硬件依赖

    • PyTorch的CUDA支持依赖于NVIDIA的GPU硬件。只有安装了NVIDIA的显卡和相应的CUDA驱动程序后,才能在PyTorch中使用CUDA进行GPU加速计算。

综上所述,CUDA提供了底层的GPU编程接口和并行计算能力PyTorch利用CUDA来实现在GPU上进行深度学习模型的高效计算。因此,要充分利用PyTorch的GPU加速功能,需要确保系统中安装了NVIDIA的显卡,并配置好相应的CUDA驱动程序。

往期精彩

STM32专栏(付费9.9)icon-default.png?t=N7T8http://t.csdnimg.cn/E2F88

OpenCV-Python专栏(付费9.9)icon-default.png?t=N7T8http://t.csdnimg.cn/zK1jV

AI底层逻辑专栏(付费9.9)icon-default.png?t=N7T8http://t.csdnimg.cn/zic0f

机器学习专栏(免费)icon-default.png?t=N7T8http://t.csdnimg.cn/FaXzAFreeRTOS专栏(免费)icon-default.png?t=N7T8http://t.csdnimg.cn/SjIqU电机控制专栏(免费)icon-default.png?t=N7T8http://t.csdnimg.cn/FNWM7 

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

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

相关文章

LeetCode第2583题

难度:中等 给你一棵二叉树的根节点 root 和一个正整数 k 。树中的层和是指同一层上节点值的总和。返回树中第 k 大的层和(不一定不同)。如果树少于 k 层,则返回 -1 。注意,如果两个节点与根节点的距离相同,…

每日一练:LeeCode-21、合并两个有序链表【链表+递归+非递归】

将两个升序链表合并为一个新的 升序 链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。 示例 1: 输入:l1 [1,2,4], l2 [1,3,4] 输出:[1,1,2,3,4,4] 示例 2: 输入:l1 [], l2 [] 输出:[…

刚刚,百度和苹果宣布联名

百度 Apple 就在刚刚,财联社报道,百度将为苹果今年发布的 iPhone16、Mac 系统和 iOS18 提供 AI 功能。 苹果曾与阿里以及另外一家国产大模型公司进行过洽谈,最后确定由百度提供这项服务,苹果预计采取 API 接口的方式计费。 苹果将…

深入了解直播美颜技术:美颜SDK的性能优化与算法创新

美颜技术的核心是美颜SDK,它不仅仅是简单的滤镜应用,更是依托着先进的算法和性能优化实现的。接下来,小编将深度探讨美颜SDK的性能优化与算法创新,带您了解这一领域的最新进展。 一、美颜技术的发展历程 随着移动设备性能的提升和…

weindos的docker 运行Hyperf 日志

weindos的docker 运行日志 进入cmd窗口 docker run --name hyperf -v D:\phpstudy_pro\WWW\hyperf.com\hyperf-skeleton:/data/project -p 9501:9501 -it --privileged -u root --entrypoint /bin/sh hyperf-skeleton:latest D:\phpstudy_pro\WWW\hyperf.com\hyperf-skeleton是…

vscode添加gitee

1.创建仓库 2.Git 全局设置 3.初始化仓库 2.1 打开vscode打开需要上传到给git的代码文件 2.2.点击左边菜单第三个的源代码管理->初始化仓库 4.点击加号暂存所有更改 5.添加远程仓库 5.1 添加地址,回车 5.2 填写库名,回车 6.提交和推送 6.1 点击✔提交…

安防监控视频汇聚平台EasyCVR在银河麒麟V10系统中的启动异常及解决方法

安防监控视频平台EasyCVR具备较强的兼容性,它可以支持国标GB28181、RTSP/Onvif、RTMP,以及厂家的私有协议与SDK,如:海康ehome、海康sdk、大华sdk、宇视sdk、华为sdk、萤石云sdk、乐橙sdk等。平台兼容性强,支持Windows系…

从0到1:校园生活圈小程序开发笔记(一)

可行性研究 校园生活圈小程序是一种面向大学或学院校园的社交平台,旨在为校园内的师生提供交流、分享、互助和信息发布等功能。 为校园内的师生提供一个便捷的平台,帮助他们更好地了解校园生活、参与校园活动、交流学习和共享资源。 功能分解 公告资讯…

关于RPC

初识RPC RPC VS REST HTTP Dubbo Dubbo 特性: 基于接口动态代理的远程方法调用 Dubbo对开发者屏蔽了底层的调用细节,在实际代码中调用远程服务就像调用一个本地接口类一样方便。这个功能和Fegin很类似,但是Dubbo用起来比Fegin还要简单很多&a…

Vue3 + Vite + TS + Element-Plus + Pinia项目(5)对axios进行封装

1、在src文件夹下新建config文件夹后,新建baseURL.ts文件,用来配置http主链接 2、在src文件夹下新建http文件夹后,新建request.ts文件,内容如下 import axios from "axios" import { ElMessage } from element-plus im…

Pillow教程05:NumPy数组和PIL图像的相互转化

---------------Pillow教程集合--------------- Python项目18:使用Pillow模块,随机生成4位数的图片验证码 Python教程93:初识Pillow模块(创建Image对象查看属性图片的保存与缩放) Pillow教程02:图片的裁…

Qt Design Studio 软件怎么用(详细+通俗+有趣)

建议:本文长期更新,建议点赞/收藏! 1. 啥是Qt Design Studio? Qt Design Studio 是一个用于设计和开发用户界面的工具,特别适合开发跨平台应用程序。它结合了UI设计和开发的工作流程,使得设计师和开发者可…

Unity 视频组件 VideoPlayer

组件添加: 在自己定义的组件下(例如:Panel) 点击 Inspector 面板中的 AddComponent ,输入“VideoPlayer”。 资源 这里 视频资源有两种形式,第一种是 VideoClip ,需要将视频文件拖拽到该属性字段…

CI/CD实战-jenkins结合docker 5

实验准备: 在docker主机要下载git工具 禁掉key的校验 确保在立即构建项目时不会出现任何报错: 自动化构建docker镜像 在server3上安装docker-ce 修改内核参数 拷贝证书 添加默认仓库 添加harbor仓库的解析 测试拉取 登录harbor私有仓库 在jenkins安装d…

解锁未知领域:探索Web3技术的无限可能性

随着数字化时代的持续发展,Web3技术作为下一代互联网的重要组成部分,正呈现出无限的创新可能性。本文将深入探索Web3技术所带来的无限可能性,揭示其在各个领域的应用前景和潜力。 1. 区块链技术的革命性 Web3的核心是区块链技术,…

SpringBoot集成WebSocket(实时消息推送)

🍓 简介:java系列技术分享(👉持续更新中…🔥) 🍓 初衷:一起学习、一起进步、坚持不懈 🍓 如果文章内容有误与您的想法不一致,欢迎大家在评论区指正🙏 🍓 希望这篇文章对你有所帮助,欢…

机器学习 - 神经网络分类

什么叫做分类问题? A classification problem involves predicting whether something is one thing or another. Problem typeWhat is it?ExampleBinary classificationTarget can be one of two options, e.g. yes or noPredict whether or not someone has hea…

UDP实现聊天室

现象&#xff1a; 源码&#xff1a; 服务器&#xff1a; #include<myhead.h>struct sockaddr_in serveraddr,caddr; enum type_t//枚举 {Login,Chat,Quit, }; typedef struct MSG {char type;//L C Qchar name[32];//char text[128];// }msg_t;typedef struct NODE//链…

【C语言基础】:内存操作函数

文章目录 一、memcpy函数的使用和模拟实现1.1 memcpy函数的使用1.2 memcpy函数的模拟实现 二、memmove函数的使用和模拟实现2.1 memmove函数的使用2.2 memmove函数的模拟实现 三、memset函数的使用3.1 menset函数的使用 四、memcmp函数的使用4.1 memcmp函数的使用 学海无涯苦作…

HarmonyOS模拟器调试

1 、设置 -> 系统设置 -> 关于手机 快速点击 5 次 HarmonyOS 版本开启开发者模式。 2 、设置 -> 系统和更新 -> 开发人员选项 到开发人员选项后往下拉有 USB 调试 &#xff0c;把 USB 调试开关打开。 源自&#xff1a;HarmonyOS HarmonyOS Next 仿小米商城App入门…