YOLO-从环境配置到ONNX模型输出(超详细,纯小白向)

部署运行你感兴趣的模型镜像

在这里插入图片描述
推荐阅读WIKI:
https://wiki.seeedstudio.com/real_time_yolo_object_detection_using_recamera_based_on_cpp/
Github源码库
https://github.com/Seeed-Studio/OSHW-reCamera-Series
内含超多AI Sensing相关资料,欢迎关注和讨论!将视觉检测算法真正部署于终端,将你的idea应用于生活。

在本地电脑上配置深度学习环境

一、配置Conda环境

使用虚拟环境进行任务运行是非常重要的,既能保护主机,又能避免不同的软件包之间冲突>

Windows 下载Anaconda

有两种下载方式一是官网下载,二是镜像下载。官网下载太慢一般都是用镜像下载
1.官网下载:conda官网(Download Anaconda Distribution | Anaconda)
https://www.anaconda.com/download
在这里插入图片描述

2.镜像下载:清华开源镜像
https://mirrors.tuna.tsinghua.edu.cn/anaconda/archive/
在这里插入图片描述

安装Anaconda

注意事项:
1.选择为所有用户授权
在这里插入图片描述

配置环境变量

将如下路径添加到系统path,这里的路径为前面anaconda的安装路径,我的安装路径为E:\anaconda3,如果不同替换为自己的安装路径即可

E:\ANACONDA
E:\ANACONDA\Scripts
E:\ANACONDA\Library\mingw-w64\bin
E:\ANACONDA\Library\bin

在系统搜索栏,搜索“系统属性”,选择系统变量path,点击编辑,点击新建

在这里插入图片描述
在这里插入图片描述

检查是否配置成功

win+r 然后输入cmd打开终端页面,输入下边几条指令
conda --version
conda info

在这里插入图片描述

Linux 下载Anaconda

在Linux系统上安装完整的Anaconda(而不是Miniconda)的步骤如下:

  1. 下载Anaconda安装脚本
    在这里插入图片描述

访问 Anaconda官方下载页面 获取最新的Linux安装脚本链接,或者直接使用以下命令下载.官网的最新版本可以向下兼容低等级的Python,如果想下载旧版本可以前往上文的清华源镜像站。

wget https://repo.anaconda.com/archive/Anaconda3-2025.06-0-Linux-x86_64.sh

请根据你的需求选择合适的版本。

  1. 运行安装脚本
    下载完成后,运行安装脚本:
bash Anaconda3-2025.06-0-Linux-x86_64.sh
  1. 阅读并接受许可协议
    安装脚本会显示许可协议,按 Enter 键滚动阅读,然后输入 yes 接受协议。

  2. 选择安装路径
    安装程序会提示你选择安装路径。默认路径是 ~/anaconda3,你可以按 Enter 使用默认路径,或指定其他路径。

  3. 初始化Anaconda
    安装完成后,安装程序会询问是否要初始化Anaconda。输入 yes,这样Anaconda会自动将路径添加到你的 ~/.bashrc 文件中。
    Do you wish the installer to initialize Anaconda3 by running conda init? [yes|no] [no] >>> yes

  4. 激活Anaconda
    为了使更改生效,你需要重新加载 ~/.bashrc 文件:

source ~/.bashrc
  1. 验证安装
    你可以通过以下命令验证Anaconda是否安装成功:
conda --version

如果安装成功,会显示Conda的版本号。

二、配置CUDA环境

创建虚拟环境

创建虚拟环境:

conda create --name tensorflow python=3.11

tensorflow可以改成你想要的名字
Python的版本也可以修改

查看环境列表:

conda env list

激活环境:

conda activate (输入你的环境名字)

之后的环境配置统一进入虚拟环境再按 conda install 来下载

Pytorch,CUDA,Python版本兼容表

在这里插入图片描述


CUDA配置

在下载CUDA与Torch之前,先查看显卡驱动
终端输入:

nvidia-smi

在这里插入图片描述

进入英伟达官网选择适合的版本
https://developer.nvidia.com/cuda-toolkit-archive

Windows CUDA

在这里插入图片描述

之后执行exe文件安装就好

在这里插入图片描述

选择安装位置 接着下一步,默认即可,但是要记住这个地址,下面手动配置环境变量要用到。
在这里插入图片描述

之后在系统配置环境变量
在这里插入图片描述

终端输入来检测是否安装成功

nvcc -V

在这里插入图片描述

Linux CUDA

在Nvidia Toolkit官网下载时选择Linux runfile选项

在这里插入图片描述

执行下面两行代码,进行下载与运行

wget https://developer.download.nvidia.com/compute/cuda/12.4.0/local_installers/cuda_12.4.0_550.54.14_linux.run
sudo sh cuda_12.4.0_550.54.14_linux.run

终端输入来检测是否安装成功

nvcc -V

在这里插入图片描述

三、配置Pytorch环境

进入pytorch官网选择合适的版本下载(查看前面的版本对照图)
官网地址:https://pytorch.org/
我们选用合适自己电脑配置的指令进行下载,我使用的是Python3.11, CUDA 12.4 所以要转到先前版本里面下载。

在这里插入图片描述
在这里插入图片描述

# Windows 与 Linux 通用
# CUDA 11.8
conda install pytorch==2.5.1 torchvision==0.20.1 torchaudio==2.5.1  pytorch-cuda=11.8 -c pytorch -c nvidia
# CUDA 12.1
conda install pytorch==2.5.1 torchvision==0.20.1 torchaudio==2.5.1 pytorch-cuda=12.1 -c pytorch -c nvidia
# CUDA 12.4
conda install pytorch==2.5.1 torchvision==0.20.1 torchaudio==2.5.1 pytorch-cuda=12.4 -c pytorch -c nvidia
# CPU Only
conda install pytorch==2.5.1 torchvision==0.20.1 torchaudio==2.5.1 cpuonly -c pytorch

查看版本 以下图为例,torch版本为2.1.2+cu121,cu121即表示支持cuda12.1的torch版本

python
import torch
print(torch.__version__)
print(torch.cuda.is_available())

在这里插入图片描述

四、配置YOLO环境

此章节以Yolov8为例进行讲解,但适应于所有yolo算法,只需修改指令命令行指向的模型即可。

#启动虚拟环境 查看环境配置
conda activate yolov8 (yolov8换成你的环境名字)
conda list

Yolov8所需的函数库如下:
对照自己缺少的库,进行conda install 进行安装。

# Ultralytics requirements
# Usage: pip install -r requirements.txt

# Base ----------------------------------------
matplotlib>=3.2.2
numpy>=1.22.2 # pinned by Snyk to avoid a vulnerability
opencv-python>=4.6.0
pillow>=7.1.2
pyyaml>=5.3.1
requests>=2.23.0
scipy>=1.4.1
torch>=1.7.0
torchvision>=0.8.1
tqdm>=4.64.0

# Logging -------------------------------------
# tensorboard>=2.13.0
# dvclive>=2.12.0
# clearml
# comet

# Plotting ------------------------------------
pandas>=1.1.4
seaborn>=0.11.0

# Export --------------------------------------
# coremltools>=6.0,<=6.2  # CoreML export
# onnx>=1.12.0  # ONNX export
# onnxsim>=0.4.1  # ONNX simplifier
# nvidia-pyindex  # TensorRT export
# nvidia-tensorrt  # TensorRT export
# scikit-learn==0.19.2  # CoreML quantization
# tensorflow>=2.4.1  # TF exports (-cpu, -aarch64, -macos)
# tflite-support
# tensorflowjs>=3.9.0  # TF.js export
# openvino-dev>=2023.0  # OpenVINO export

# Extras --------------------------------------
psutil  # system utilization
py-cpuinfo  # display CPU info
# thop>=0.1.1  # FLOPs computation
# ipython  # interactive notebook
# albumentations>=1.0.3  # training augmentations
# pycocotools>=2.0.6  # COCO mAP
# roboflow

安装完配置文件在安装一下yolov8在python>=3.8版本必要安装包

pip install ultralytics

在Ultralytics官网下载模型权重文件
https://docs.ultralytics.com/zh/models/yolov8/

下载训练模型,推荐yolov8s.pt或者yolov8n.pt,模型小,下载快,下载完成后,将模型放在主文件夹下,

YOLOv8 可以在命令行界面(CLI)中直接使用,使用yolov8自带经典图片进行测试:首先cd进入yolov8主文件夹下,运行下面命令

#可以选择直接从Github下载yolo项目库,不下载,如果依赖库齐全,模型文件齐全也能执行检测,缺少的部分会自动下载
git clone https://github.com/ultralytics/ultralytics.git

无显卡驱动
yolo predict model=yolov8n.pt source='ultralytics/assets/bus.jpg' device=cpu

有显卡驱动(看扩展的部分,安装gpu版本torch才能运行)
yolo predict model=yolov8n.pt source='ultralytics/assets/bus.jpg' device=0
#可以修改source成你想检测的图片

我的结果保存在runs\detect\predict4中,你们的看Results saved to 存放地址,结果如下图

在这里插入图片描述
在这里插入图片描述

如果出现上面图片即成功

在本地电脑上训练YOLO模型

首先在yolov8主文件夹内创建data文件夹,创建一个data.yaml文件:

train: ../train/images  #//xxx/xxx为训练集图片根目录地址
val: ../valid/images
test: ../test/images

nc: 3 #标签数量
names: ['Chair', 'Sofa', 'Table'] #标签名称

conda在主文件夹下运行下面命令:
关于如何制作自己的数据集,请移步"数据集制作"教程

yolo train data=data/data.yaml model=yolov8s.pt epochs=300 imgsz=640 batch=8 workers=0 device=cpu

data为yaml配置文件
model为下载的模型,放在主文件下
epochs为训练轮数
imagez为训练时ai看到的图片大小,检查大图片建议使用640,小图片可以320 越大越吃性能
batch为一轮训练中每一次放入图片数量,越大越快效果越好,但是对性能要求越高
device为使用的设备,使用cpu练就写cpu,使用显卡大多数都是0,多显卡就0,1,2,3,...多少显卡往后写多少

运行出现下面效果即为成功
在这里插入图片描述

得到的模型权重文件地址在输出日志中会显示出来,我的是 runs/detect/train/weights/best.pt

训练完成后转化成onnx模型

执行以下Python代码将训练好的YOLOv8模型导出为ONNX格式,并修改IR版本为8,opset版本为17,同时进行性能测试:

from ultralytics import YOLO

import onnx

# 加载PyTorch模型
model = YOLO("yolov8_best.pt")

# 2. 导出ONNX模型(使用Ultralytics支持的参数)
model.export(
    format="onnx",
    opset=17,          # 指定Opset版本
    simplify=True,     # 启用模型简化
    imgsz=640,         # 固定输入尺寸
    dynamic=False,     # 禁用动态维度
    batch=1            # 单批次推理
)

# 3. 后处理修改IR版本
def set_onnx_ir_version(onnx_path, ir_version=8):
    model = onnx.load(onnx_path)
    model.ir_version = ir_version
    onnx.save(model, onnx_path)

# 4. 修改导出的ONNX文件的IR版本
set_onnx_ir_version("yolov8_best.onnx")

# Load the exported ONNX model
#onnx_model = YOLO("yolov8_best.onnx")

# Run inference
#results = onnx_model("https://ultralytics.com/images/bus.jpg")


'''
from ultralytics import YOLO
'''
# 加载模型(显式指定任务类型)
onnx_model = YOLO("yolov8_best.onnx", task="detect")  # 关键修改:添加task参数

# 运行本地图片推理(自动保存+显示)
results = onnx_model(
    "test_chair.jpg",  # 改为你的本地图片
    save=True,         # 自动保存结果到runs/detect/exp
    show=True,         # 弹出结果窗口
    conf=0.3,          # 调低置信度阈值提高召回率
    imgsz=640,         # 指定推理尺寸(与导出时一致)
    device='cpu'      # 强制使用CPU(如需GPU改为0)
)

运行后会在当前目录下生成一个名为 yolov8_best.onnx 的文件,这就是转换后的ONNX模型。

您可能感兴趣的与本文相关的镜像

PyTorch 2.5

PyTorch 2.5

PyTorch
Cuda

PyTorch 是一个开源的 Python 机器学习库,基于 Torch 库,底层由 C++ 实现,应用于人工智能领域,如计算机视觉和自然语言处理

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值