实验室来了很多新同学,本来更新在实验室的,但是还是想在个人区存个档,详细介绍了win深度学习环境的搭建和YOLO模型的简单实践
环境配置前,不需要自行安装python。
Annocada 包管理器安装
参考教程
安装过程选择just me ,并将path加入环境,用for all 可能会无法添加path
将conda安装至C盘以外的盘,因为后续有许多包,所以会占用大量空间
CUDA安装
● 点击下载好的安装包,选择解压位置,默认安装完成/失败后会销毁解压文件,等待解压结束进入安装页面
● 此处建议使用简洁安装,会安装在默认的C盘中,当然也可以自定义安装位置,不过需要在系统环境中配置
● 安装完成
完成CUDA驱动安装,我的默认目录如下C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.4
cuDNN安装
解压安装包,直接复制该文件夹下的三个文件夹,至CUDA安装目录下默认为C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.4粘贴覆盖即可
项目地址
Ultralytics YOLOv8 是由 Ultralytics 开发的一个前沿的 SOTA 模型。它在以前成功的 YOLO 版本基础上,引入了新的功能和改进,进一步提升了其性能和灵活性。YOLOv8 基于快速、准确和易于使用的设计理念,使其成为广泛的目标检测、图像分割和图像分类任务的绝佳选择。
● 在win栏找到安装的Anaconda,右键以管理员方式启动,启动如右图。
● 创建一个新的虚拟环境,虚拟环境的意义在于项目的软件包隔离,由于不同软件包对于项目的支持不同,可能不同软件需要不同等级的软件包,太高版本或太低版本都会报错,所以,需要进行环境隔离。一般会自带一个base基础环境,这个环境无法删除,你可以往里堆你需要的所有包,但最好不要用作开发环境。
创建环境指令如下 conda create —n 环境名 python=需要的python等级
conda create -n yolo python=3.9
移除环境指令
conda remove -n yolo
● 等待conda就绪,键入y安装环境,此时会为你的环境配备基础包和相应等级的python
● 完成后激活环境
conda activate yolo
● 完成后激活环境,此时前端展示为你创建的yolo环境,我的叫yolov7所以显示为yolov7
● 此时,回到上面的github中下载代码,并解压。前面介绍了每个项目会有一个requirements.txt文件记录 所需的运行包,解压后记录这个文件的位置,我的位置在 “D:\ultralytics-main\requirements.txt”,打开该文件,删除下图中蓝色的俩个模块并保存,因为直接安装会安装cpu版本,我们有GPU需要安装GPU版本才能有效驱动GPU运算。
● 在刚刚的命令行中键入以下代码,等待自动安装时间结束,中途报错可重复输入,如果关闭了命令栏需重新激活环境后再输入,会智能续传。
pip install -r “D:\ultralytics-main\requirements.txt”
● 全部完成后我们继续安装刚才我们删除的torch
● https://pytorch.org/ 进入pytorch官网,寻找与我们CUDA对应版本的torch-GPU包,旧版本找下方连接进入,新版本直接复制命令,回到命令行安装,大小约为1.8G+。
●
● 安装完成后,YOLOv8运行环境搭建完成
环境的加载,以最新版pycharm为例
● 在我们的解压文件夹下右键,可以看到Open Folder as Pychamr Project,以项目方式打开文件夹。
● 设置中文pycharm包,进入settings,在Plugins插件中搜索中文安装即可
● 接下来开始加载环境,入口有很多
○ 1,setting->项目->python解释器
○ 进入后页面相同,如下,点击现有,点击’''进入选择,查找自己的虚拟环境位置,默认的在Anaconda3的安装目录下的envs中,找到自己的环境名字,在该文件夹下找到python.exe即可确认。等待软件索引所有软件包
从github页面下载预训练模型,点击该位置会下载,建议科学上网下载速度比较快,或者从我的百度网盘下载,并放到解压的文件夹下
链接:https://pan.baidu.com/s/1ziVKFOxSlSxm6wASwJcBBA?pwd=z1pi
提取码:z1pi
该云训练模型在COCO数据集上已经训练过,所以已经可以预测100多种东西,车鸟花。。。。
在目录下新建一个python文件,运行以下代码,尝试一次简单的模型检测
from ultralytics import YOLO
model = YOLO("yolov8n.yaml")
model = YOLO("yolov8n.pt")
result = model("https://ultralytics.com/images/bus.jpg",save=True)
这里的地址可以改成本地的任何文件
如:
result = model("E:\desktop\wallhaven-1kj7v1_1920x1080.png",save=True)
有以下运行结果,可以看到,结果被保存在了runs\detect\predict4下
from n params module arguments
0 -1 1 464 ultralytics.nn.modules.Conv [3, 16, 3, 2]
1 -1 1 4672 ultralytics.nn.modules.Conv [16, 32, 3, 2]
2 -1 1 7360 ultralytics.nn.modules.C2f [32, 32, 1, True]
3 -1 1 18560 ultralytics.nn.modules.Conv [32, 64, 3, 2]
4 -1 2 49664 ultralytics.nn.modules.C2f [64, 64, 2, True]
5 -1 1 73984 ultralytics.nn.modules.Conv [64, 128, 3, 2]
6 -1 2 197632 ultralytics.nn.modules.C2f [128, 128, 2, True]
7 -1 1 295424 ultralytics.nn.modules.Conv [128, 256, 3, 2]
8 -1 1 460288 ultralytics.nn.modules.C2f [256, 256, 1, True]
9 -1 1 164608 ultralytics.nn.modules.SPPF [256, 256, 5]
10 -1 1 0 torch.nn.modules.upsampling.Upsample [None, 2, 'nearest']
11 [-1, 6] 1 0 ultralytics.nn.modules.Concat [1]
12 -1 1 148224 ultralytics.nn.modules.C2f [384, 128, 1]
13 -1 1 0 torch.nn.modules.upsampling.Upsample [None, 2, 'nearest']
14 [-1, 4] 1 0 ultralytics.nn.modules.Concat [1]
15 -1 1 37248 ultralytics.nn.modules.C2f [192, 64, 1]
16 -1 1 36992 ultralytics.nn.modules.Conv [64, 64, 3, 2]
17 [-1, 12] 1 0 ultralytics.nn.modules.Concat [1]
18 -1 1 123648 ultralytics.nn.modules.C2f [192, 128, 1]
19 -1 1 147712 ultralytics.nn.modules.Conv [128, 128, 3, 2]
20 [-1, 9] 1 0 ultralytics.nn.modules.Concat [1]
21 -1 1 493056 ultralytics.nn.modules.C2f [384, 256, 1]
22 [15, 18, 21] 1 751702 ultralytics.nn.modules.Detect [2, [64, 128, 256]]
YOLOv8n summary: 225 layers, 3011238 parameters, 3011222 gradients, 8.2 GFLOPs
Ultralytics YOLOv8.0.35 Python-3.9.15 torch-1.12.1 CUDA:0 (NVIDIA GeForce RTX 3060, 12288MiB)
YOLOv8n summary (fused): 168 layers, 3151904 parameters, 0 gradients, 8.7 GFLOPs
image 1/1 E:\desktop\wallhaven-1kj7v1_1920x1080.png: 384x640 1 car, 1 bus, 16.0ms
Speed: 1.0ms pre-process, 16.0ms inference, 24.5ms postprocess per image at shape (1, 3, 640, 640)
Results saved to runs\detect\predict4