树莓派5部署自己训练的YOLOv8模型记录

实验平台:Raspberry Pi 5 8G 

使用软件:Real VNC Viewer, WinSCP,Visual Studio Code

配置环境:python3.10 

Part1:连接自己的树莓派 

连接使用的RealVNC Viewer

Start your free trial | RealVNC Connect

注册个账号 然后把这小玩意(RealVNC viewer)下了,登录账号后让树莓派连接你的电脑热点,再输入Pi的IP地址, 输入密码就可以进入Pi的图形界面了(记得在Pi先开启VNC权限,初始配置网上有很多资料)

Part2:搭建环境

第一步先换源

sudo nano /etc/apt/sources.list

deb https://mirrors.tuna.tsinghua.edu.cn/debian bookworm main contrib non-free-firmware
deb https://mirrors.tuna.tsinghua.edu.cn/debian-security bookworm-security main contrib non-free-firmware
deb https://mirrors.tuna.tsinghua.edu.cn/debian bookworm-updates main contrib non-free-firmware

sudo nano /etc/apt/sources.list.d/raspi.list

把下面的加上去

deb https://mirrors.tuna.tsinghua.edu.cn/raspberrypi bookworm main

sudo reboot

重启一下树莓派 然后

apt-get update
apt-get upgrade

自此 apt-get换源完毕

然后,安装相关包

sudo apt-get install cmake libopenblas-dev m4 libblas-dev
sudo apt-get install python3-pip python3-numpy python3-dev python3-opencv python3-matplotlib python3-torch python3-torchvision python3-torchaudio

下一步再完成miniconda的安装:

Miniconda — Anaconda documentation

下载aaarch64版本,使用bash指令安装

完成后,激活conda

conda activate

创建一个虚拟环境

conda create -n yolov8 python=3.10

自此,环境基本配置完毕,我们开始制作自己的训练集并在自己带GPU的电脑上训练模型

我使用的是WSL2环境,需要了解怎么配置可以看UP主:学不会电磁场

【yolov8】2024,半小时速通yolov8,2024最新,windows,ubuntu,wsl_哔哩哔哩_bilibili

Part3:准备模型

Roboflow: Computer vision tools for developers and enterprises

注册一个账号后建立一个工程

然后在工程里上传图片后就可以开始标注了,roboflow有AI标注功能,可以使用一下(免费的那个)

点Start Auto label

进入后会根据你的数据集给你匹配一个模型,你可以调整左上角的置信度来选择你觉得效果不错的模型帮你完成大部分的标注工作

这个AI标注使用下来感觉是越用越管用,好像是会边标注边训练,然后越标越准,你只需要标注漏标的再把误标的弄掉就行了。如果是大数据集建议用上

标注完点Generate,这些如果不需要数据增强的话直接点continue然后create就好。

点击右上角的Export Dataset,选择YOLOv8格式,下载zip即可。

现在我们就得到了自己制作的符合yolov8训练要求的数据集,可以开始训练了。

先安装我们模型需要的模块

pip3 install -r requirements.txt

这一步不出所料会出现许多次爆红...我的解决办法是看报错退出前最后一个正在下载的模块是什么.然后使用conda指令下载。报错的错误应该是pip库里没有对应的模块包 记得加上清华源或者直接换源。

使用训练代码:

#coding:utf-8
from ultralytics import YOLO

if __name__ == '__main__':
    model = YOLO('ultralytics/cfg/models/v8/yolov8-SPD-Conv.yaml') 
    model.load('yolov8n.pt') # loading pretrain weights
    model.train(data='datasets/data.yaml', epochs=150, batch=2)

开始训练:

完成后将项目通过WinSCP或RealVNC传至树莓派。

Part4:部署到树莓派并运行

conda activate yolov8

进入我们刚刚创建好的环境

记得再运行一次pip3 install -r requirements.txt

cd /home/qr/yolov8/ultralytics-8.0.227-SPV-Conv/ultralytics-8.0.227

进入项目路径

运行detect.py:

import cv2
from ultralytics import YOLO
from cv2 import getTickCount, getTickFrequency
# 加载 YOLOv8 模型
model = YOLO("runs/detect/train6/weights/best.pt")

# 获取摄像头内容,参数 0 表示使用默认的摄像头
cap = cv2.VideoCapture(0)

while cap.isOpened():
    loop_start = getTickCount()
    success, frame = cap.read()  # 读取摄像头的一帧图像

    if success:
        results = model.predict(source=frame) # 对当前帧进行目标检测并显示结果
    annotated_frame = results[0].plot()

    # 中间放自己的显示程序
    loop_time = getTickCount() - loop_start
    total_time = loop_time / (getTickFrequency())
    FPS = int(1 / total_time)
    # 在图像左上角添加FPS文本
    fps_text = f"FPS: {FPS:.2f}"
    font = cv2.FONT_HERSHEY_SIMPLEX
    font_scale = 1
    font_thickness = 2
    text_color = (0, 0, 255)  # 红色
    text_position = (10, 30)  # 左上角位置

    cv2.putText(annotated_frame, fps_text, text_position, font, font_scale, text_color, font_thickness)
    cv2.imshow('img', annotated_frame)
    # 通过按下 'q' 键退出循环
    if cv2.waitKey(1) & 0xFF == ord('q'):
        break

cap.release()  # 释放摄像头资源
cv2.destroyAllWindows()  # 关闭OpenCV窗口


python detect.py --source 0

成功运行:

后来成功用streamlit建立了一个前端页面,支持切换模型以及图片,视频流,本地摄像头监测。但没有AI算力的树莓派5跑yolov8还是逊...只有大概0.3fps,笔者最近也入手了Hailo-8l,得先将pt文件转为onnx文件再通过Hailo官方的DFC(数据流编译器)转化为其支持的hef文件,待我再摸索几日......

<think>好的,我需要帮助用户在树莓派部署YOLOv8模型。根据提供的引用内容,用户提到了几个相关的视频教程和步骤,我需要整合这些信息,提供一个清晰的步骤指南。首先,我需要确认用户的需求是部署YOLOv8,而引用中提到了YOLOv8的环境配置、Miniconda安装、系统镜像备份等,可能还涉及ncnn部署。 首先,我应该按照用户的引用内容,分步骤说明部署过程。可能包括系统准备、环境配置、安装依赖、模型部署等。同时要注意引用中的各个步骤,比如SSH连接、Miniconda安装、Ultralytics环境配置,以及可能的系统备份。此外,用户提供的引用中有提到树莓派4B和5部署,可能需要区分不同的硬件步骤。 需要确保所有行内数学公式用$...$,独立公式用$$...$$,但在这个问题中可能用不到数学公式。另外,要生成相关问题,可能需要围绕部署过程中可能遇到的挑战、优化方法、应用场景等提问。 需要注意用户的引用[1]到[4],特别是安装Miniconda、配置环境、系统备份以及可能的ncnn部署。此外,引用[4]提到配置yolov5环境的命令,可能类似适用于YOLOv8,但需要确认是否适用。 可能的结构: 1. 系统准备:烧录系统,SSH连接 2. 安装Miniconda:创建虚拟环境 3. 安装依赖:Ultralytics YOLO环境,可能涉及PyTorch的ARM版本 4. 部署YOLOv8:下载模型,运行测试 5. 优化部署:使用ncnn或其他库加速 6. 系统备份 需要检查每个步骤是否有对应的引用支持,比如引用[1]中的五个视频教程涵盖了环境配置到系统备份,引用[2]提到安装成功提示,引用[3]涉及ncnn部署,引用[4]是关于Python环境的配置。 可能的问题点:树莓派的ARM架构是否支持Ultralytics YOLO的官方库,是否需要编译特定版本的依赖。此外,安装过程中的依赖冲突,如何解决。引用[3]提到ncnn部署,可能用于加速推理,是否需要额外步骤。 现在需要将这些信息整理成步骤,确保每个步骤都有引用支持,并正确标注引用标记。例如,安装Miniconda参考引用[1],安装Ultralytics环境参考引用[2],ncnn部署参考引用[3],Python环境配置参考引用[4]。 生成相关问题可能需要涉及性能优化、常见问题解决、不同模型部署等。</think>### 树莓派部署YOLOv8模型完整教程 #### 一、系统准备与基础配置 1. **烧录系统镜像** 使用Raspberry Pi OS(64位)并烧录至SD卡,建议使用官方工具Raspberry Pi Imager[^1]。 2. **SSH连接配置** 首次启动后,通过`raspi-config`启用SSH服务,使用`ssh pi@<树莓派IP>`远程连接。 3. **系统更新** ```bash sudo apt update && sudo apt upgrade -y ``` #### 二、Miniconda环境安装 1. **下载与安装Miniconda** 选择ARM架构的Miniconda版本(如`Miniconda3-latest-Linux-aarch64.sh`): ```bash wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-aarch64.sh bash Miniconda3-latest-Linux-aarch64.sh ``` 安装后重启终端[^1][^4]。 2. **创建虚拟环境** ```bash conda create -n yolov8 python=3.8 conda activate yolov8 ``` #### 三、YOLOv8环境配置 1. **安装Ultralytics库** ```bash pip install ultralytics ``` 安装成功后显示`Successfully installed ultralytics-8.x.x`[^2]。 2. **验证PyTorch兼容性** 树莓派需安装ARM适配的PyTorch: ```bash pip install torch==2.0.1 torchvision==0.15.2 --extra-index-url https://download.pytorch.org/whl/rocm5.4.2 ``` #### 四、部署与运行YOLOv8 1. **测试推理代码** 创建`test.py`: ```python from ultralytics import YOLO model = YOLO("yolov8n.pt") results = model.predict(source="test_image.jpg", save=True) ``` 运行后模型将自动下载并在`runs/detect`生成结果。 2. **使用ncnn加速(可选)** 参考Qengineering的GitHub仓库编译ncnn库,替换默认推理后端以提高帧率[^3]: ```bash git clone https://github.com/Qengineering/YoloV8-ncnn-Raspberry-Pi-4.git cd YoloV8-ncnn-Raspberry-Pi-4 && mkdir build && cd build cmake .. && make -j4 ``` #### 五、系统镜像备份(可选) 使用`dd`或`Win32DiskImager`备份SD卡,避免重复配置。
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值