Bootstrap

YOLOv11超详细环境搭建以及模型训练(GPU版本)

100多种【基于YOLOv8/v10/v11的目标检测系统】目录(python+pyside6界面+系统源码+可训练的数据集+也完成的训练模型)

YOLOv5/8/10/11改进目录

目录

1.安装CUDA和cuDNN

1.1安装CUDA

1.1.1查看当前你的电脑显卡支持的最高CUDA版本,后面的安装不能超过它

1.1.2 下载CUDA(官网或者百度网盘)

1.1.3 安装CUDA 11.8

1.2配置cuDNN

1.2.1下载cuDNN(官网或者百度网盘)

1.2.2 配置cuDNN

2.安装Anaconda

2.1 下载Anaconda

2.2 安装Anaconda

2.3 配置环境变量

3.创建python虚拟环境

3.1创建python虚拟环境

3.2 虚拟环境的路径设置( 常见问题以及解决方法)(如果3.1在创建虚拟环境的时候,路径不是anaconda3的安装路径下,而是总是在c盘,才需要进行3.2小节的设置,否则跳过3.2小节)

4.打开项目

4.1 然后打开yolov11项目

5.在Pycharm中调用yolov11环境

6.pycharm中添加镜像地址

7.安装GPU版本的torch

8.安装其他的项目依赖

9.以训练NEU-DET数据集为例训练模型

9.1创建数据集

9.2 创建数据集的配置文件NEU-DET.yaml文件

9.3 创建模型对象yolov11-neu-det.yaml

9.4 创建train.py文件方便后续的训练

9.5模型训练的成功截图

-----------------------------------------------------------------------------------------------------------------------------

1.安装CUDA和cuDNN

1.1安装CUDA

1.1.1查看当前你的电脑显卡支持的最高CUDA版本,后面的安装不能超过它

方法一:通过命令的方式查看

nvidia-smi

方法二:【鼠标右键桌面】--【显示更多选项】--【NVIDIA控制面板】--在控制面板的左下角点击【系统信息】--选择【组件】

NVIDIA CUDA 12.1.68 driver就是显卡支持的CUDA版本

1.1.2 下载CUDA(官网或者百度网盘)

(1)下载地址一(官网):

下载小于12.1版本都都可以,我这里下载的是11.8.0,然后点击【CUDA Toolkit 11.8.0】

  • 下载CUDA11.8

(2)下载地址二(百度网盘):

11.8.0版本的百度网盘下载地址:链接:https://pan.baidu.com/s/1EbYk6EYtofzkGnvg2o6vkg

提取码:h0tw

1.1.3 安装CUDA 11.8

  • 点击刚下载的CUDA进行安装

  • 下面的路径是提取地址,安装完后会自动删除,选择默认即可,点击【OK】

  • 等待提取完成

  • 点击【同意并继续】

  • 选择【自定义】,点击【下一步】

  • 驱动组件可以全部勾选,点击【下一步】

  • cmd命令【nvcc -V】查看CUDA是否安装成功,如果出现如下界面表示CUDA安装成功

1.2配置cuDNN

1.2.1下载cuDNN(官网或者百度网盘)

(1)下载地址一(官网)

下载cuDNN,先登录,按照提示流程注册、登录即可。

cuDNN选择支持CUDA的版本(刚刚下载的CUDA是哪个版本就选择对应的版本)(CUDA 11.x则代表支持CUDA11代版本的所有版本)

下载对应自己电脑系统的版本。

(2)下载地址一(百度网盘)

链接:百度网盘 请输入提取码

提取码:bwas

1.2.2 配置cuDNN

解压cuDNN压缩包,然后将cuDNN文件夹里面的几个文件复制到CUDA的安装目录下直接覆盖

覆盖

2.安装Anaconda

2.1 下载Anaconda

(1)Anaconda下载方式一(官网)

Anaconda下载官网:Anaconda | The Operating System for AI

点击下载【Free Download】即可

然后点击【Download】

(2)Anaconda下载方式二(百度网盘)

链接:百度网盘 请输入提取码

提取码:9hcx

2.2 安装Anaconda

点击安装包,然后点击【Next]

  • 点击【I Agree】

  • 点击【Next】

  • 安装路径的选择,点击【Next】

  • 点击【INstall】,然后等待安装完成

  • 点击【Next】

  • 点击【Next】

  • 点击【Finish】

2.3 配置环境变量

右键点击【我的电脑】(此电脑)--【属性】--点击【高级系统设置】--【高级】--【环境变量】-找到系统变量下的【Path】--右侧点击【新建】,按照我标红框的进行添加即可。(注意anaconda3的安装路径

3.创建python虚拟环境

3.1创建python虚拟环境

虚拟环境的作用:虚拟环境可以隔离不同项目的依赖项,避免不同项目之间的干扰,使项目更加稳定。

首先进入命令界面

输入如下命令:

conda create -n yolov11 python=3.11.4

其中:yolov11是虚拟环境名称(可以任意取名),python=3.11.4是指定python的版本(也可指定另外的版本)

输入【y】,之后回车开始安装

如果出现如下界面,表示安装完成。

输入命令可以查看虚拟环境否创建成功:conda env list

如下界面表示创建成功(虚拟环境名称以及虚拟环境的路径):

激活进入环境:activate yolov11

激活成功后,前面的base会替换成yolov11

备注:如果需要删除刚刚创建的虚拟环境,可以通过如下命令删除:

conda remove -n yolov11 --all

3.2 虚拟环境的路径设置( 常见问题以及解决方法)
(如果3.1在创建虚拟环境的时候,路径不是anaconda3的安装路径下,而是总是在c盘,才需要进行3.2小节的设置,否则跳过3.2小节)

解决方法参考:http://t.csdnimg.cn/OkQyN

4.打开项目

YOLO系列项目官网下载地址:https://docs.ultralytics.com/zh

yolov11官网下载地址:GitHub - ultralytics/ultralytics: Ultralytics YOLO11 🚀

yolov11百度网盘下载地址链接:YOLOv11.zip

链接:https://pan.baidu.com/s/1ldk_G3tFDbJDSygTq5RRjQ?pwd=i9wy

提取码:i9wy

yolov11压缩包下载完成之后,解压到某个路径下(可以解压在D盘)

4.1 然后打开yolov11项目

Pycharm前提已经安装完成(如果没有安装,可以网上搜索Pycharm的安装教程,有很多)

Pycharm软件中打开项目

5.在Pycharm中调用yolov11环境

点击【File】-->【setting】-->【Project】-->【Python Interpreter】-->【Add Interpreter】-->【Add Local Interpreter】

设置虚拟环境

备注:在Pycharm中如何查看当前项目使用的虚拟环境:

点击左下角的【Terminal】,可以看出使用的虚拟环境

或者在当前项目下新建一个test-p.py文件,输入如下代码并运行

import sys print(sys.prefix)

截图如下,可以看出使用的是yolov11虚拟环境以及虚拟环境的路径:

6.pycharm中添加镜像地址

添加镜像可以加快下载依赖包的速度。

点击图标【Python Packages】--点击设置按钮【Manage respositories】

点击【+】--在【Name】处随意更改名字,然后在【Repository URL】填上镜像源地址,最后点击【OK】

一些镜像地址:

1.清华大学镜像源:https://pypi.tuna.tsinghua.edu.cn/simple/

2.阿里云镜像源:http://mirrors.aliyun.com/pypi/simple/

3.中国科技大学镜像源:https://pypi.mirrors.ustc.edu.cn/simple/

7.安装GPU版本的torch

torch官网:Previous PyTorch Versions | PyTorch

选择和CUDA对应的torch版本(前面自己已经安装的版本),然后复制

  • 进入pycharm,点击【Teminal】,进入yolov11虚拟环境之后,粘贴上面复杂的torch版本进行安装(然后等待安装完成)

8.安装其他的项目依赖

左下角终端打开,安装项目依赖,执行命令:pip install -r requirements.txt

如果没有requirements.txt这个文件,可以直接在项目下新建这个文件,将下面的内容复制进去

certifi==2022.12.7
charset-normalizer==2.1.1
colorama==0.4.6
contourpy==1.2.0
cycler==0.12.1
filelock==3.9.0
fonttools==4.50.0
fsspec==2024.6.1
huggingface-hub==0.23.4
idna==3.4
Jinja2==3.1.2
kiwisolver==1.4.5
MarkupSafe==2.1.3
matplotlib==3.8.3
mpmath==1.3.0
networkx==3.2.1
numpy==1.26.3
opencv-python==4.9.0.80
packaging==24.0
pandas==2.2.1
pillow==10.2.0
psutil==5.9.8
py-cpuinfo==9.0.0
pyparsing==3.1.2
python-dateutil==2.9.0.post0
pytz==2024.1
PyYAML==6.0.1
requests==2.28.1
scipy==1.12.0
seaborn==0.13.2
six==1.16.0
sympy==1.12
thop==0.1.1.post2209072238
torch==2.0.0+cu118
torchaudio==2.0.1+cu118
torchvision==0.15.1+cu118
tqdm==4.66.2
typing_extensions==4.8.0
tzdata==2024.1
ultralytics==8.1.34
urllib3==1.26.13

9.以训练NEU-DET数据集为例训练模型

9.1创建数据集

链接:https://pan.baidu.com/s/1peB3kd6T7xNoKnjxsrKHuw?pwd=xqcm 
提取码:xqcm

然后将下载的数据集解压之后放在项目的data目录(如何没有此目录,自己创建一个)下。

9.2 创建数据集的配置文件NEU-DET.yaml文件

在项目的【ultralytics/cfg/datasets】目录下新建一个NEU-DET.yaml,内容如下

path: D:/YOLO/YOLOv11/data/NEU-DET # 注意修改自己NEU-DET数据集的路径
train: train/images  # train images
val: val/images  # val images
test: test/images  # test images

# Classes

names:
  0: crazing
  1: inclusion
  2: patches
  3: pitted_surface
  4: rolled-in_scale
  5: scratches

截图如下

9.3 创建模型对象yolov11-neu-det.yaml

在项目的【ultralytics/cfg/models/11】目录下新建一个yolov11-neu-det.yaml,代码如下

# Ultralytics YOLO 🚀, AGPL-3.0 license
# YOLO11 object detection model with P3-P5 outputs. For Usage examples see https://docs.ultralytics.com/tasks/detect

# Parameters
nc: 6 # number of classes
scales: # model compound scaling constants, i.e. 'model=yolo11n.yaml' will call yolo11.yaml with scale 'n'
  # [depth, width, max_channels]
  n: [0.50, 0.25, 1024] # summary: 319 layers, 2624080 parameters, 2624064 gradients, 6.6 GFLOPs

# YOLO11n backbone
backbone:
  # [from, repeats, module, args]
  - [-1, 1, Conv, [64, 3, 2]] # 0-P1/2
  - [-1, 1, Conv, [128, 3, 2]] # 1-P2/4
  - [-1, 2, C3k2, [256, False, 0.25]]
  - [-1, 1, Conv, [256, 3, 2]] # 3-P3/8
  - [-1, 2, C3k2, [512, False, 0.25]]
  - [-1, 1, Conv, [512, 3, 2]] # 5-P4/16
  - [-1, 2, C3k2, [512, True]]
  - [-1, 1, Conv, [1024, 3, 2]] # 7-P5/32
  - [-1, 2, C3k2, [1024, True]]
  - [-1, 1, SPPF, [1024, 5]] # 9
  - [-1, 2, C2PSA, [1024]] # 10

# YOLO11n head
head:
  - [-1, 1, nn.Upsample, [None, 2, "nearest"]]
  - [[-1, 6], 1, Concat, [1]] # cat backbone P4
  - [-1, 2, C3k2, [512, False]] # 13

  - [-1, 1, nn.Upsample, [None, 2, "nearest"]]
  - [[-1, 4], 1, Concat, [1]] # cat backbone P3
  - [-1, 2, C3k2, [256, False]] # 16 (P3/8-small)

  - [-1, 1, Conv, [256, 3, 2]]
  - [[-1, 13], 1, Concat, [1]] # cat head P4
  - [-1, 2, C3k2, [512, False]] # 19 (P4/16-medium)

  - [-1, 1, Conv, [512, 3, 2]]
  - [[-1, 10], 1, Concat, [1]] # cat head P5
  - [-1, 2, C3k2, [1024, True]] # 22 (P5/32-large)

  - [[16, 19, 22], 1, Detect, [nc]] # Detect(P3, P4, P5)

截图如下:

9.4 创建train.py文件方便后续的训练

在项目的根目录下创建train.py文件方便后续的训练,后面主需要运行train.py文件就可以再次进行训练了,不必每次都需要出入一次运行命令

import warnings
warnings.filterwarnings('ignore')
from ultralytics import YOLO

if __name__ == '__main__':
    model = YOLO('ultralytics/cfg/models/11/yolov11-neu-det.yaml')   # 指定YOLO模型对象,并加载指定配置文件中的模型配置
    #model.load('yolov11s.pt')      #加载预训练的权重文件'yolov11s.pt',加速训练并提升模型性能
    model.train(data='ultralytics/cfg/datasets/NEU-DET.yaml',   # 指定训练数据集的配置文件路径,这个.yaml文件包含了数据集的路径和类别信息
                cache=False,  # 是否缓存数据集以加快后续训练速度,False表示不缓存
                imgsz=640,    # 指定训练时使用的图像尺寸,640表示将输入图像调整为640x640像素
                epochs=200,   # 设置训练的总轮数为200轮
                batch=16,      # 设置每个训练批次的大小为16,即每次更新模型时使用16张图片
                close_mosaic=10,  # 设置在训练结束前多少轮关闭 Mosaic 数据增强,10 表示在训练的最后 10 轮中关闭 Mosaic
                workers=8,       # 设置用于数据加载的线程数为8,更多线程可以加快数据加载速度
                patience=50,     # 在训练时,如果经过50轮性能没有提升,则停止训练(早停机制)
                device='0',      # 指定使用的设备,'0'表示使用第一块GPU进行训练
                optimizer='SGD', #设置优化器为SGD(随机梯度下降),用于模型参数更新
                )

截图如下:

9.5模型训练的成功截图

模型训练的结果保存在项目的【run/detect】目录下

到此,环境的搭建以及模型的训练就完成了!!!

;