【树莓派部署Ultralytics YOLO保姆级教程——B站视频同步】手把手教学,小白友好!

请添加图片描述

B站视频同步教程

B站同步视频教程:树莓派部署Ultralytics YOLO(1)环境配置与烧录
B站同步视频教程:树莓派部署Ultralytics YOLO(2)ssh安装与连接
B站同步视频教程:树莓派部署Ultralytics YOLO(3)Miniconda安装
B站同步视频教程:树莓派部署Ultralytics YOLO(4)Ultralytics YOLO环境配置
B站同步视频教程:树莓派部署Ultralytics YOLO(5)系统镜像备份


1. 镜像烧录

Ubuntu 24.01树莓派镜像:下载地址
win32diskimager:镜像写入工具官网下载地址
SD Card Formatter:格式化工具官网下载地址

user:pi
passwd:123456

查看设备型号文件:在终端中运行以下命令可以查看设备型号

cat /sys/firmware/devicetree/base/model

查看架构信息

uname -m

查看Ubuntu 的版本信息

lsb_release -a

2. 远程连接

2.1 更换软件源(可选)

# 做个备份
sudo cp /etc/apt/sources.list  /etc/apt/sources.list.bak
# 编辑文件内容 把文件里的内容全部替换成下面的清华源
sudo nano /etc/apt/sources.list
# 这个时候你会发现更新速度很快很快
sudo apt-get update		    # apt的资源列表,没有真正的对系统执行更新
sudo apt-get upgrade		# 把本地已安装的软件,与刚下载的软件列表里对应软件进行对比,如果发现已安装的软件版本太低,就会提示你更新。

armv7清华源

deb https://mirrors.tuna.tsinghua.edu.cn/raspbian/raspbian/ bullseye main non-free contrib rpi

Ubuntu清华源

# 默认注释了源码镜像以提高 apt update 速度,如有需要可自行取消注释
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ jammy main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ jammy main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ jammy-updates main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ jammy-updates main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ jammy-backports main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ jammy-backports main restricted universe multiverse

# deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ jammy-security main restricted universe multiverse
# # deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ jammy-security main restricted universe multiverse

deb http://ports.ubuntu.com/ubuntu-ports/ jammy-security main restricted universe multiverse
# deb-src http://ports.ubuntu.com/ubuntu-ports/ jammy-security main restricted universe multiverse

# 预发布软件源,不建议启用
# deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ jammy-proposed main restricted universe multiverse
# # deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ jammy-proposed main restricted universe multiverse

2.2 安装ssh

sudo apt install openssh-server
sudo systemctl start ssh
sudo systemctl status ssh

2.3 安装vim

sudo apt-get update
sudo apt install vim

3. 深度学习环境搭建

3.1 安装Miniconda

3.1.1 下载

Miniconda清华源镜像,选择aarch64版本,该操作系统对应的miniconda3的版本不要超过4.10

wget https://mirrors.tuna.tsinghua.edu.cn/anaconda/miniconda/Miniconda3-py39_4.9.2-Linux-aarch64.sh
3.1.2 安装
chmod +x ./Miniconda3-py39_4.9.2-Linux-aarch64.sh
./Miniconda3-py39_4.9.2-Linux-aarch64.sh

source ~/.bashrc

source后进入base环境即安装成功

3.1.3 换源

conda换源

conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/msys2/
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/conda-forge
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/pytorch/
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/
conda config --set show_channel_urls yes

pip 换源

# 中科大源
pip config set global.index-url https://pypi.mirrors.ustc.edu.cn/simple
# 清华源
pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple/
# 阿里源和豆瓣源有些包不全
3.1.4 创建环境
conda create -n yolov8 python=3.9	# 创建环境
conda activate yolov8				# 激活环境
conda env remove --name yolov8		# 删除环境
conda create -n pytorch --clone base # 克隆环境
3.1.5 设置默认启动环境(可选择)
# 非自动启动base环境
conda config --set auto_activate_base false

# 指定默认启动环境
vim ~/.bashrc
conda activate yolov8	# 在.bashrc文件末尾添加
source ~/.bashrc

4. Ultralytics YOLO部署

安装依赖

# clone慢的话直接下载到本地
git clone https://github.com/ultralytics/ultralytics
cd ultralytics
pip install -e .

5. 参考文献

  1. torch for aarch64

  2. 树莓派4B64位系统安装miniconda(折腾了几天终于解决)

  3. 查看Debian版本号的方法

  4. 树莓派软件源在线配置工具

  5. E: 无法修正错误,因为您要求某些软件包保持现状,就是它们破坏了软件包间的依赖关系

  6. Linux系统nano编辑器快捷键和使用完全指南

### Ultralytics YOLO to ONNX Conversion Tutorial Ultralytics YOLO 是一个基于 PyTorch 的目标检测框架,广泛用于实时目标检测任务。为了提高模型的跨平台兼容性和推理速度,常常需要将 YOLO 模型转换为 ONNX(Open Neural Network Exchange)格式。ONNX 格式支持多种深度学习框架之间的模型互操作性,使得模型可以部署到不同平台(如 ONNX Runtime、TensorRT 等)中[^2]。 以下是一个详细的 Ultralytics YOLO 模型转换为 ONNX 格式的教程。 --- #### 1. 准备环境 在开始转换之前,确保你的环境中安装了必要的库和依赖项。以下是一个典型的软硬件环境配置: - **操作系统**:Ubuntu 20.04 或 Windows 10 - **Python**:3.8 - 3.11 - **PyTorch**:1.13.1 或更高版本(推荐使用与 CUDA 兼容的版本) - **Ultralytics YOLO**:`yolov8` 版本(可通过 pip 安装) - **ONNX**:1.14.0 或更高版本 - **CUDA**:11.7 或 11.8(可选,用于 GPU 支持) - **TensorRT**:如果后续需要部署到 TensorRT,则需要安装对应版本(如 8.6.1) ```bash # 安装 Ultralytics 和 ONNX pip install ultralytics onnx ``` --- #### 2. 导出 YOLOv8 模型为 ONNX 格式 Ultralytics 提供了内置的模型导出功能,支持将 `.pt` 模型直接导出为 ONNX 格式。 ```python from ultralytics import YOLO # 加载预训练的 YOLOv8 模型 model = YOLO("yolov8s.pt") # 你可以替换为 yolov8n.pt, yolov8m.pt 等 # 导出为 ONNX 格式 model.export(format="onnx") # 默认导出路径为当前目录下的 *.onnx 文件 ``` 导出的 ONNX 模型默认保存在与 `.pt` 模型相同的目录中,文件名格式为 `yolov8s.onnx`。 --- #### 3. 自定义导出参数 你可以通过设置导出参数来控制导出过程,例如输入图像大小、是否动态轴等。 ```python model.export( format="onnx", imgsz=640, # 输入图像大小,默认为 640x640 dynamic=True, # 启用动态输入维度(适用于不同大小的输入) simplify=True # 使用 onnxsim 简化模型结构 ) ``` - `imgsz`:指定输入图像的尺寸,通常为 `(640, 640)`。 - `dynamic`:设置为 `True` 可以支持动态尺寸输入,适用于不同分辨率的图像。 - `simplify`:使用 `onnxsim` 工具对模型进行简化,减少冗余操作,提升推理效率。 --- #### 4. 验证 ONNX 模型 使用 ONNX Runtime 验证导出的模型是否正确。 ```python import onnx import onnxruntime as ort import numpy as np # 加载 ONNX 模型 onnx_model = onnx.load("yolov8s.onnx") onnx.checker.check_model(onnx_model) # 创建 ONNX Runtime 推理会话 ort_session = ort.InferenceSession("yolov8s.onnx") # 构造输入数据 inputs = np.random.random((1, 3, 640, 640)).astype(np.float32) # 推理 outputs = ort_session.run( None, {"images": inputs}, ) print("输出形状:", [o.shape for o in outputs]) ``` --- #### 5. 使用 ONNX 模型进行推理 你可以使用 `onnxruntime` 或其他支持 ONNX 的推理引擎(如 TensorRT)进行部署。 ```python from ultralytics import YOLO # 加载 ONNX 模型并进行推理 model = YOLO("yolov8s.onnx") results = model("path/to/image.jpg") # 显示结果 results.show() ``` --- #### 6. 使用 TensorRT 加速推理(可选) 如果你希望进一步提升推理速度,可以将 ONNX 模型转换为 TensorRT 引擎。 ```bash # 使用 trtexec 工具将 ONNX 模型转换为 TensorRT 引擎 trtexec --onnx=yolov8s.onnx --saveEngine=yolov8s.engine --fp16 ``` 之后你可以使用 TensorRT 进行高性能推理。 --- ###
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

一只云卷云舒

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值