目标检测:YOLOv11(Ultralytics)环境配置

发布于:2025-04-16 ⋅ 阅读:(24) ⋅ 点赞:(0)

1、前言

        YOLO11是Ultralytics公司YOLO系列实时目标检测器的最新迭代版本,它以尖端的准确性、速度和效率重新定义了可能实现的性能。在之前YOLO版本取得的显著进步基础上,YOLO11在架构和训练方法上进行了重大改进,使其成为各种计算机视觉任务中的通用选择。除了传统的目标检测外,YOLO11 还支持目标跟踪、实例分割、姿态估计、OBB定向物体检测(旋转目标检测)等视觉任务。

2、搭建环境

        硬件:RTX5080

        系统:Windows11

3、查看电脑状况

        深度学习若是采用cpu进行训练或是识别时速度较忙,而采用GPU训练或识别则会大幅度提高速度。因此在配置环境时,先打开任务管理器查看是否有独立显卡。如图所示。

         若是有独立显卡则安装GPU版本的pytorch,反之则安装cpu版本的pytorch。

4、安装所需要的软件

推荐安装minianaconda+vscode,两者都需要加入进环境变量,会安装或安装过了可跳到下一步。

4.1、minianaconda安装

        进入到Anaconda官网中,找到Windows安装教程.

4.2、vscode安装

        使用必应作为搜索引擎,通过其搜索vscode,找到其官网进行下载。如图所示。

5、安装环境 

5.1、安装cuda与cudnn

5.1.1 下载及安装cuda

        在安装pytorch之前需安装cuda,(若无显卡或intel的显卡则跳过,直接看4.2)下载cuda前需要先查看显卡支持的CUDA版本最高是多少,按下win+r键,输入cmd,在打开的页面输入:nvidia-smi ,即可查看。如图所示,红框表示cuda最高支持版本,本文撰写时所采用的显卡型号刚出不久鹅,因此cuda、cudnn皆应安装最新版本

CUDA Toolkit Archive | NVIDIA Developerhttps://developer.nvidia.com/cuda-toolkit-archive

        在这个网站根据自己的显卡版本进行下载。下载完之后运行安装,建议安装到默认路径,所以C盘需要留有20G以上的存储空间,一直点击下一步,直到出现这个界面点击自定义,然后全部勾选即可。

        将下图中选项全部勾选安装。

        安装完成后可以再次在cmd里输入命令:nvcc -V 查看,如下显示即安装成功

5.1.2 cudnn安装

         进入cudnn官网,选择合适版本的文件。进入后在文件列表中选择cudnn版本与上面cuda安装相匹配的版本,下载Windows版本的压缩包文件。如图所示。 

        将得到的压缩文件进行解压,解压后得到下图三个文件夹,全选复制进cuda的文件夹中进行覆盖替换,替换完成后即cudnn安装完成。按照本文教程安装的cuda的文件夹默认在 C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v12.8 目录下。

5.2、tensorRT安装

       TensorRT 10.x Download | NVIDIA Developerhttps://developer.nvidia.com/tensorrt/download/10x        在该网站找到相应的版本进行下载。下载完成后进行解压,将tensorRT中lib目录和include目录中的文件内容都拷贝到cuda对应的目录文件下。

5.2.1环境变量配置

        右键“此电脑”,点击"属性",点击“高级系统设置”,即可打开系统属性面板,也可以在搜索框输入“编辑系统环境变量”,也可打开下述面板,然后点击环境变量。

         用户变量一栏、双击path

          点击“新建”,将对应TensorRT解压的文件夹下的bin目录路径,以及cuda安装目录下的lib目录、include目录,以及lib下的x64目录路径设置进去,如下所示。

        然后逐步点击“确定”,直到所有面板关闭,一定不要直接点右上角关闭,否则配置会失败 .

6、创建虚拟环境

        按下Win键,输入anaconda prompt,打开下图所示的应用。

 6.1、更改默认的pip源和conda源

        默认进入的是base环境,base环境的版本与下载的anaconda3版本有关,因此不建议直接使用,需要新建环境,在新建环境之前建议更改默认的pip源和conda源可加速下载速度。

        更改代码如下,直接输入即可,这里选择更换的是中科大源,建议使用,亲测完美运行。

conda config --remove-key channels
conda config --add channels https://mirrors.ustc.edu.cn/anaconda/pkgs/main/
conda config --add channels https://mirrors.ustc.edu.cn/anaconda/pkgs/free/
conda config --add channels https://mirrors.bfsu.edu.cn/anaconda/cloud/pytorch/
conda config --set show_channel_urls yes
pip config set global.index-url https://mirrors.ustc.edu.cn/pypi/web/simple

        之后通过pip install 包名 方式安装的任何库( 除了pytorch及相关库),只要报错 ERROR: No matching distribution found for 包名 ,在python版本与本文一致的情况下,皆为源的访问速度慢导致的,可以通过以下方法临时换源下载安装,方法为 在安装包时通过  -i 参数指定镜像源,可多试几个确定哪个速度最快最稳定。。

pip install 包名 -i https://pypi.tuna.tsinghua.edu.cn/simple

清华大学
URL: https://pypi.tuna.tsinghua.edu.cn/simple

​阿里云
URL: https://mirrors.aliyun.com/pypi/simple

​中国科学技术大学(USTC)​
URL: https://pypi.mirrors.ustc.edu.cn/simple

​豆瓣(Douban)​
URL: https://pypi.doubanio.com/simple

​华为云
URL: https://repo.huaweicloud.com/repository/pypi/simple

​腾讯云
URL: https://mirrors.cloud.tencent.com/pypi/simple

 6.2、创建虚拟环境

         打开anaconda终端,使用命令进行pytorch的虚拟环境安装,并进入创建好的ptyorch_GPU虚拟环境。

conda create -n <name> python=3.10
conda activate <name>

#例如:
#conda create -n pytorch_GPU python=3.10
#conda activate pytorch_GPU

        注:Python版本选择Python 3.10具体原因为:在Step3中要导入 导入GPU版本的pytorch,在导入时,pytoecc官网中有明显提示Python版本要求在3.9及以上,因此在创建虚拟环境时,先跳到Step3中确认所需要的Python版本,再进行虚拟环境创建。如图所示。

6.2.1、查询CUDA版本号

        打开计算机终端(win+R,输入cmd,即可进入),输入:

nvidia-smi

        如图3所示,可以看到自己的 cudaversion的版本,也可以看到本机显卡的编号。记住自己的 cudaversion的版本,在6.2.2中需要用到。

图3 终端运行结果 

6.2.3、导入GPU版本的pytorch

        前往pytorch官网:PyTorch ,选择相应的GPU版本。根据自己的 cudaversion的版本选择相应的pytorch版本,例如本文的cudaversion的版本为12.4,因此可以选择12.4及以下,本文选择CUDA12.4。选择好后复制Run this Command 中的命令行,到上面创建好的虚拟环境pytorch_GPU中执行即可。如图所示。

        注:(1)conda安装方式在本文编写的时候,官网已经不再运行使用,故选择pip安装方式。

Step4:在vscode里面添加配置好的环境

                (2)本文撰写时,5080为较新的显卡需要使用没有发布的开发版本2.7.0.dev20250226+cu128.

pip install --pre torch torchvision  --index-url https://download.pytorch.org/whl/nightly/cu128

        打开vscode,在vscode底栏处,选择自己创建好的虚拟环境。如图5所示。

 7、安装ultralytics库

        这个库包含了几乎全部运行yolov11所需的环境,输入以下命令后耐心等待即可。

pip install ultralytics

         如果报错 ERROR: No matching distribution found for ultralytics 则输入以下指令安装

pip install ultralytics -i https://pypi.tuna.tsinghua.edu.cn/simple

8、源码及使用环境

 8.1、下载YOLOv11源码

        YOLOv11(ultralytics)源码地址:

 https://gitcode.com/gh_mirrors/ul/ultralytics?utm_source=csdn_github_accelerator&isLogin=1

 8.2、使用vscode进行打开

9、验证环境

        下载完成后将权重文件复制到ultralytics根目录下,即本文的ultralytics-8.3.20目录下,此时可以去网上下载一只猫猫的jpg图片(或者其它图片,根据自己喜好更改),修改文件名为cat.jpg。检测环境是否有问题可以在prompt里yolov11环境下运行。注意预训练权重的文件名与代码中的文件名对应,看清楚文件名,FileNotFoundError: xxxx   does not exist 类似这种报错都是文件没找到,自己细心一点就能避免。运行下面的指令需要cd到ultralytics-8.3.20目录,不然会报错。

yolo predict model=yolo11n.pt source='cat.jpg'

报错:

报错1:

ERROR: pip's dependency resolver does not currently take into account all the packages that are installed. This behaviour is the source of the following dependency conflicts.
torchaudio 2.6.0+cu126 requires torch==2.6.0+cu126, but you have torch 2.6.0 which is incompatible.
torchvision 0.21.0+cu126 requires torch==2.6.0+cu126, but you have torch 2.6.0 which is incompatible.

解决方案: 

1. 卸载冲突的包

        首先卸载当前安装的 torchtorchvision 和 torchaudio

pip uninstall torch torchvision torchaudio -y

2. 重新安装兼容版本

        根据你的 CUDA 版本,安装兼容的 torchtorchvision 和 torchaudio。访问 PyTorch 官方安装页面 获取正确的安装命令。

        例如,如果你使用的是 CUDA 12.6,可以运行以下命令:

pip install torch==2.6.0+cu126 torchvision==0.21.0+cu126 torchaudio==2.6.0+cu126 -f https://download.pytorch.org/whl/torch_stable.html

         如果你使用的是 CPU 而不是 GPU,可以安装 CPU 版本:

pip install torch==2.6.0 torchvision==0.21.0 torchaudio==2.6.0 -f https://download.pytorch.org/whl/torch_stable.html

        本文撰写时 PyTorch 官方可能尚未完全支持 CUDA 12.8,但可以尝试安装最新的兼容版本。运行以下命令: 

pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/nightly/cu128

 报错2:

RuntimeError: CUDA error: no kernel image is available for execution on the device
CUDA kernel errors might be asynchronously reported at some other API call, so the stacktrace below might be incorrect.
For debugging consider passing CUDA_LAUNCH_BLOCKING=1
Compile with TORCH_USE_CUDA_DSA to enable device-side assertions.

报错原因: 

        问题的根本原因是GPU(NVIDIA GeForce RTX 5080 Laptop GPU)与当前安装的 PyTorch 版本不兼容。

解决步骤:

        1. 检查 GPU 和 CUDA 支持

        根据错误信息,当前 PyTorch 安装支持的 CUDA 计算能力为 sm_50 到 sm_90,而你的 GPU 显示为 sm_120,这表明你的 GPU 可能是较新的型号,当前 PyTorch 版本尚未支持。

        解决方法:

  • 确保安装了支持你 GPU 的最新版本的 PyTorch 和 CUDA 工具包。
  • 访问 PyTorch 官方安装页面 并选择适合你 GPU 和 CUDA 版本的安装命令。
        2. 强制使用 CPU

        如果暂时无法解决 GPU 的兼容性问题,可以修改代码强制使用 CPU 运行 YOLO 模型。修改如下:

import cv2
from ultralytics import YOLO

# 强制使用 CPU
model = YOLO("/home/jetson/ultralytics/ultralytics/yolo11n.pt").to("cpu")

# Open the camera
cap = cv2.VideoCapture(0)
cap.set(6, cv2.VideoWriter.fourcc('M', 'J', 'P', 'G'))
cap.set(cv2.CAP_PROP_FRAME_WIDTH, 640)
cap.set(cv2.CAP_PROP_FRAME_HEIGHT, 480)

# 其余代码保持不变
        3. 设置环境变量调试 CUDA 错误

        如果需要进一步调试 CUDA 错误,可以尝试设置环境变量 CUDA_LAUNCH_BLOCKING=1,以便获得更准确的错误堆栈信息。运行以下命令:

set CUDA_LAUNCH_BLOCKING=1

        然后重新运行脚本。

        3.1、 永久设置环境变量

        如果需要永久设置环境变量,可以通过以下步骤:

  1. 打开系统环境变量设置界面

    • 按 Win + S,搜索 “环境变量”,然后点击 “编辑系统环境变量”
    • 在弹出的窗口中,点击 “环境变量” 按钮。
  2. 添加新的环境变量

    • 在 “系统变量” 或 “用户变量” 区域,点击 “新建”
    • 变量名CUDA_LAUNCH_BLOCKING
    • 变量值1
  3. 保存设置

    • 点击 “确定” 保存所有设置。
    • 重新启动终端或 IDE(如 VS Code),以使新环境变量生效。
        4. 检查 YOLO 模型兼容性

        确保你加载的 YOLO 模型(yolo11n.pt)与当前的 ultralytics 和 PyTorch 版本兼容。如果模型是自定义的,可能需要重新训练或转换为兼容的格式。

        5. 更新 ultralytics 和 PyTorch

        尝试更新 ultralytics 和 PyTorch 到最新版本:

pip install --upgrade ultralytics torch torchvision torchaudio

参考资料

目标检测:YOLOv11(Ultralytics)环境配置,适合0基础纯小白,超详细


网站公告

今日签到

点亮在社区的每一天
去签到