声明:笔记是毕设时根据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的关系是在项目开发过程中提供便捷的环境和工具支持,从而更高效地进行深度学习模型的开发和应用。
Minicondahttps://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镜像安装帮助https://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官网https://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官方githubhttps://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)http://t.csdnimg.cn/E2F88
OpenCV-Python专栏(付费9.9)http://t.csdnimg.cn/zK1jV
AI底层逻辑专栏(付费9.9)http://t.csdnimg.cn/zic0f
机器学习专栏(免费)http://t.csdnimg.cn/FaXzAFreeRTOS专栏(免费)http://t.csdnimg.cn/SjIqU电机控制专栏(免费)http://t.csdnimg.cn/FNWM7