基于PaddleDetection的ppyolo模型转化配置到树莓派的方法(待修改)

树莓派5安装YOLOv8使用jupyterlab运行示例 YOLOv8,这是备受好评的实时目标检测和图像分割模型的最新版本。YOLOv8基于深度学习和计算机视觉的前沿进展,提供了无与伦比的速度和准确性表现。它的精简设计使其适用于各种应用,并且可以轻松适应不同的硬件平台,从边缘设备到云API。我们使用树莓派5来探索YOLOv8,看一看她在机器学习上的潜力。JupyterLab是Jupyter Notebook的全面升级。事实上,JupyterLab 是一个集 Jupyter Notebook、文本编辑器、终端以及各种个性化组件于一体的全能IDE。 阅读详情

前言:

本方案采用ppyolo模型,实际检测效率极低,并无法直接使用,但可作为paddle平台其他模型部署的简易教程,实际使用更推荐EasyDL的SDK离线部署。

前置环境:

树莓派上ubuntu18.04 server (arrch64,arm64,armv8,配置环境更方便)

步骤一:模型转化

此处假设已有一个训练好的ppyolo模型,

python -u tools/export_model.py -c /home/aistudio/work/ppyolo.yml --output_dir=./inference_model_final -o weight=/home/aistudio/output/ppyolo/best_model.pdparams

-o weight 最好指定下所需模型位置,避免找不到,一般导出的都是best_model,有需要可更换。
执行完后,可以在PaddleDetection文件夹内看到inference_model_final 文件夹,进入最深处,看到如下三个文件。
在这里插入图片描述

%cd /home/aistudio/
#复制opt文件到相应目录下
!cp opt /home/aistudio/PaddleDetection/inference_model_final/ppyolo
#进入预测模型文件夹
%cd /home/aistudio/PaddleDetection/inference_model_final/ppyolo
#下载opt文件,opt最好下载最新版本,可以支持更多的op,以免报错
# 很多旧的教材都是使用2.3.0版本的,基本不支持比较新的模型
#!wget https://github.com/PaddlePaddle/Paddle-Lite/releases/download/v2.9.0/opt
#给opt加上可执行权限
!chmod +x opt
#使用opt进行模型转化,将__model__和__params__转化为model.nb
!./opt --model_file=__model__ --param_file=__params__ --optimize_out_type=naive_buffer   --optimize_out=./model
!ls
# Error: This model is not supported, because 4 ops are not supported on 'arm'. These unsupported ops are: 'clip, deformable_conv, matrix_nms, pow'.
# 上述报错只因opt2.3版本过老,更换为2.9即可

在这里插入图片描述
获取到model.nb,下载到树莓派上。

步骤二:在树莓派上编译Paddle Lite

官方安装流程如下:

# 1. Install basic software
sudo apt update
sudo apt-get install -y --no-install-recomends \
  gcc g++ make wget python unzip

# 2. install cmake 3.10 or above
wget https://www.cmake.org/files/v3.10/cmake-3.10.3.tar.gz
tar -zxvf cmake-3.10.3.tar.gz
cd cmake-3.10.3
./configure
make
sudo make install

正常上述是不需要配置的,确认cmake > 3.10即可。上述apt-get install -y这块内容还是都运行下比较好。

下一步,下载paddle lite 和paddle lite demo包,为后续编译。
下载地址:

https://github.com/PaddlePaddle/Paddle-Lite/releases/tag/v2.9.1
https://github.com/PaddlePaddle/Paddle-Lite-Demo

paddle-lite编译注意要项:
先运行文件夹内lite/tools/build.sh或者build_linux.sh。

./lite/tools/build.sh \
--build_extra=ON \
--arm_os=armlinux \
--arm_abi=armv8 \
--arm_lang=gcc \
full_publish

由于ppyolo模型使用算子较多较新,因此必须使用build_extra 和 full_publish,否则会缺少组件。
此处耗时较长,容易失败,可试试多次尝试。如果想要使用python版本,可再添加一个--build_python=ON的选项,如果编译成功,会生成对应python版本的whl文件,再使用pip可直接安装。但树莓派上很难成功编译python选项。

同理,build_linux.sh 使用类似的编译选项,名称会有所改变,按照源码中的指示修改。

步骤三:修改demo

使用官方的demo进行编译运行会出现错误,报错原因是demo中的input与ppyolo模型的input 在数量上并不对应,因此需要手动修改demo中的.cc源文件。

首先获取模型的input:
请添加图片描述

通过使用netron 可视化模型,查看到模型的输入与输出,需要对应模型的input进行使用。本模型输入为两个,一个image为【0】,一个img_size【1】,由于demo缺少了img_size ,所以运行失败。
修改完后存在推理的时间过长的问题,每个目标都要5000ms,导致无法直接使用。

问题探究

  • 为了布置在性能有限的树莓派上,特意采用模型导出部署的方式,但可能仍因为模型所需性能超出树莓派能力,导致速度极慢。(博客中有人导出yolov3模型能够流畅使用,此处存疑)
  • demo中源码可能存在待优化的地方。

更为详细的内容参照如下应用博客:

Reference

https://blog.youkuaiyun.com/weixin_40973138/article/details/114780090
https://blog.youkuaiyun.com/qq_45779334/article/details/106715597

超详细的YOLOv8安装与测试指南:让计算机视觉任务变得简单 python3+、Anaconda3或Miniconda3 Ultralytics提供了多种安装方法,包括pip、conda和Docker。通过pip包安装最新稳定版的YOLOv8,或者克隆Ultralytics GitHub仓库以获取最新版本。Docker可用于在隔离容器中执行包,避免本地安装。 最简单直接的方式就是直接使用pip方法直接安装。 也可以直接从GitHub仓库安装包。如果你想要最新的开发版本,这可能会很有用。确保你的系统上安装了Git命令行工具 阅读详情

相关推荐

树莓派 Raspberry Pi 使用 YOLOv8 YOLOv10 YOLOv11进行目标检测及推理加速,Run YOLOv8 YOLOv10 YOLOv11 on Raspberry Pi

libcamera 是 linux 新增加用于访问 camera 的 API。树莓派参与了 libcamera 的开发,并且在新的摄像头软件中开始从依赖于固件的摄像头图像处理管道(Image processing pipeline, ISP)迁移到更加开放的 libcamera。当然这块用USB 摄像头应该也是可以的。

shiter编写程序的艺术 5568

树莓派从零开始到部署计算机视觉项目(yolov8项目)第一集

本人使用的是树莓派4b,但不同版本树莓派之间差异不大,本文侧重易踩坑点和主要步骤,重点在树莓派的部署,包括opencv的安装,pytorch的安装,yolo的配置等

m0_62174436的博客 1万+

yolov8部署在树莓派流程.zip

YOLOv8是YOLO(You Only Look Once)系列目标检测算法的最新版本,由Joseph Redmon和Ali Farhadi于2016年首次提出。YOLO是一种实时目标检测算法,其核心思想是将目标检测任务转化为一个回归问题,并通过一个单一的神经网络模型同时预测目标的类别和位置。 YOLOv8是YOLO系列算法的第八个版本,也是目前最先进的版本。相较于之前的版本,YOLOv8在检测精度和速度方面都有显著的改进。它采用了一种新的网络架构,包含多个连续的卷积层和池化层,以提取特征并减小输入数据的维度。此外,YOLOv8还引入了一些技术,如多尺度检测和筛选器裁剪,以进一步提高检测性能。 YOLOv8在训练和推理阶段都采用了全新的损失函数,能够优化目标检测的准确性和稳定性。此外,YOLOv8还可以检测出不同大小和比例的目标,并具备比较好的鲁棒性。 总的来说,YOLOv8是一种高效、准确且实时的目标检测算法,适用于多种应用场景,如智能监控、自动驾驶、工业检测等。

目标检测实战:PP-YOLOv2训练自己的数据集

记录使用PP-YOLOv2训练自己的数据集的过程。详细安装文档可参考官方文档。官方文档写的十分详细,包括数据准备、环境搭建、训练过程等,这里笔者根据个人操作进行总结。以上就是笔者要讲的内容,本文介绍了如何部署PaddleDetection,使用PPYOLOV2训练自己的数据集。PaddleDetection包含了不止一种目标检测的算法,里面也包括ppyoloe等其他yolo系列,训练配置、流程相差不大。

爱唱歌的卡卡西的博客 5206

基于树莓派4B的YOLOv5-Lite目标检测的资源包

基于树莓派4B的YOLOv5-Lite目标检测的移植与部署的资源包,搭配本人树莓派4B的镜像版本使用效果更佳!(积分不够的朋友点波关注,无偿提供)

从门禁到支付:Uniapp+NFC开发避坑指南(支持Mifare Classic)

本文详细介绍了Uniapp结合NFC技术开发门禁与支付系统的实战指南,特别针对Mifare Classic卡片进行深度优化。内容涵盖环境配置、设备兼容性处理、卡片安全机制解析以及高性能读写优化策略,帮助开发者快速实现跨平台的智能硬件交互解决方案。

t1u2v的博客 750

树莓派NCNN开发·yolov8

基于ncnn的yolov8开发实战,可用于移动端、嵌入式端植入

烂笔头·张的博客 1430

保姆级避坑指南:用Livox官方工具搞定Mid-360多雷达自动标定(附源码Bug修复)

本文详细解析了使用Livox官方工具进行Mid-360多雷达自动标定的全流程,包括环境搭建、工具链配置、关键Bug修复及数据采集最佳实践。重点解决了PointCloudMapper.cpp边界检查缺失和calibration.cpp点云显示问题,提供了实用的代码修复方案和标定质量评估指标,帮助开发者高效完成激光雷达标定任务。

weixin_29053695的博客 281

基于PP-Human的来客分析案例教程

基于PP-Human完成来客分析整体流程。使用PP-Human完成来客分析中非常常见的场景: 1. 来客属性识别(单镜和跨境可视化);2. 来客行为识别(摔倒识别);

m0_63642362的博客 1473

机器学习面试笔试求职必背!八股文(1/5)

算法工程师,技术软件类求职机器学习必背八股文 更多算法/业务/HR面等笔试题面试题 —— >个性签名自取! 1. 特征工程: 1.1 为什么要对特征做归一化处理: Feature scaling,常见的提法有“特征归一化”、“标准化”,是数据预处理中的重要技术。特征间的单位(尺度)可能不同,比如身高和体重,比如摄氏度和华氏度,比如房屋面积和房间数,一个特征的变化范围可能是[ 1000 , 10000 ] [1000, 10000][1000,10000],另一个特征的变化范围可能是[ −.

大厂offer宝典 1万+

Project 编制进度计划【项目管理】

Project 项目管理编制进度计划详解。

m0_52861684的博客 5085

YOLO部署遇到的问题,Segmentation Fault

首先,我将服务器训练好的代码以及模型直接拷贝进树莓派上,然后配置环境上踩了坑,我使用的是树莓派板子上自带的python的base环境,因为Ros系统和Conda在板子我查阅相关资料说是会出现冲突,所以我就使用。创建了python虚拟环境,具体教程可见。,创建好之后我按照yolov4的。

猪猪侠的博客 1719

Armbian 国内源一键配置:告别卡顿,加速软件更新

本文详细介绍了如何为Armbian系统配置国内软件源,以解决默认国外源导致的更新缓慢、连接超时等问题。通过手动修改配置文件或使用高效的一键换源脚本,可将源切换至清华大学、阿里云等国内镜像站,实现apt更新与软件安装速度的质的飞跃,让Armbian开发体验更加流畅高效。

weixin_29215815的博客 243

基于PaddleLite实现yolov5的移动端部署

本项目是参加飞桨黑客松二期第63号任务,也是本人是上一个项目的续集,将yolov5部署到安卓手机

m0_63642362的博客 2395

2026年瑞芯微数字IC设计笔试试卷带答案

本文主要考察数字集成电路设计相关知识,包括低功耗设计、时序分析、跨时钟域处理、总线协议等内容。试题分为单选题、多选题、代码设计题和简答题四部分。 单选题涉及门控时钟降低动态功耗、静态时序分析的限制、跨时钟域同步方案、时序违例修复方法、AHB总线信号、异步FIFO设计、半导体工艺电阻特性、二进制数转换、同步/异步复位比较以及分频电路设计等知识点。 多选题重点考查动态功耗优化技术、亚稳态特性、异步FIFO设计规范、Verilog可综合代码编写要求以及AXI总线协议特点等。 代码设计题要求实现一个同步FIFO和3

Open 215

Allegro层叠中的介电常数如何填写指导说明

在用Allegro进行PCB设计的时候,需要在cross-section中设置好每个层的信息,包括层命名,每层的厚度等等信息。但是对于有仿真需求或者等长设计需要使用ps作为延时单位的设计的时候,需要额外在层叠中填写介电常数的值,如下图。按照经验值填写为2.8,因为外层和平面层不会被树脂填充,铜皮层还是完整的铜皮,如下图。对应层叠将每层介质的介电常数的数值填入到PCB中去,油墨的介电常数填4。层叠中只给出了每个介质的介电常数,铜皮的介电常数却没有给出。所以正确填写介电常数的结果如下图。需要按照下面的规则来。

weixin_54787054的博客 1392

【树莓派-yolov5/yolov8部署篇】

树莓派-yolov5,直接部署和onnx部署出现的问题和思考

nobug_girl的博客 9993

【人工智能时代】-什么是MCP?本地如何开发MCP Server

MCP(Model Context Protocol)全称模型上下文协议,是由 Anthropic 推出的一种开放标准,旨在统一大型语言模型(LLM)与外部数据源和工具之间的通信协议。掌握更多的信息控制更多的工具在没有联网搜索之前,大模型的数据来源只有训练数据的时候以及推理我们告诉他的东西。所以后来的rag、知识库都是让AI掌握更多的信息,而MCP的出现是为了让大模型控制更多的工具,赋予更多能力。在本篇文章中,基于 Python 完成了一个简单的 MCP Server 的开发。

xiaoli8748的专栏 1989

YOLOv8目标检测:使用ONNX模型进行推理

通过以上步骤,我们展示了如何使用YOLOv8进行目标检测的完整流程,从环境配置到代码实现和结果展示。此过程适用于YOLOv8目标检测任意模型进行检测任务。希望这篇博客能够帮助您理解和实现基于YOLOv8的目标检测项目。如果有任何问题或需要进一步的帮助,请随时留言讨论。

深度学习领域 1万+

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

在树莓派4B上部署yolov8环境完成高帧率检测任务

在我前面的文章里讲了如何用yolov8从0开始训练自己的模型,现在这篇文章将教大家如何在树莓派上部署yolov8的环境,以及如何实现高帧率的检测任务。

KevenDuan的博客 1万+

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

树莓派也可以部署基于YOLO的目标检测

YOLO目标检测结果在本文的第一部分中,我测试了YOLO(You Only Look Once)这一流行的目标检测库的“复古”版本。只使用OpenCV运行深度学习模型,而不使用“沉重”的框架如PyTorch或Keras,对于低功耗设备来说是有前途的,因此我决定深入研究这个主题,看看最新的YOLO v8模型在树莓派上的工作原理。让我们深入了解。硬件在云中运行任何模型通常不是问题,资源几乎是无限的。但...

Warmer_Sweeter 5294

接上文关于yolo的训练---树莓派部署并实现检测到物体点亮led(小白学习日记)

我训练的是自己的数据集,一个关于垃圾分类的数据集,最开始是在自己电脑上训练了100轮效果一般,后来又训练了100轮结果仍然一般,最后租了一台服务器训练了500轮,结果发现差不多在300轮左右就收敛了,但是精度非常差,准确率差不多在0.58左右。

qq_64310307的博客 1747

为Ollama添加自定义(huggingface)模型时遇到的报错

下面写一写在为ollama添加自定义模型的时候遇到的报错及可能的原因,希望可以提供一些帮助。

yulixixi的博客 2832

树莓派从零开始到部署计算机视觉项目(yolov8项目)第二集

当对于pc不同的是不能直接运行 pip install ultralytics,要在github下载源码到树莓派上,然后将你的代码和训练好的模型放到下载的文件夹下,然后安装yolo所需的依赖,就可以运行啦,不论是v8还是v5,都可以这样操作。不可以安装最新版本,最新版本有bug,推荐安装1.8.1版本。相对于64位安装比较麻烦,需要手动下载wheel文件然后安装。把这两个wheel文件下载到树莓派桌面上。pip3 install 自己下载的文件名。然后cd Desktop。

m0_62174436的博客 5214

在树莓派5+hailo-8上运行自建数据集的yolov8模型实现超高帧率(26tops超高端侧算力)-包含模型转换教程

目前hailo-8有两种模式,第一是左边的m2样式,一种是右边只能用于树莓派5的官方出品的样式个人觉得m2样式的最好,因为可以用于像rk3588这种自带m2接口的主板,也可以用给电脑使用,但是m2格式的26tops的版本价格很贵,在1300左右才能买到,而树莓派专用的只需要900左右,13tops的两者价格都差不多600左右,根据自身情况选择合适的版本即可。下面是详细数据。

qq_74903154的博客 8959

AI全栈实战 | 3.9-01 爬虫入门:requests 加 BeautifulSoup 三分钟跑通,但 90% 的人栽在这 4 个“礼貌“问题上

⚠️:本文内容仅用于。请遵守目标站点的服务条款与相关法律法规,不得对目标服务造成负担,不得采集、传播个人隐私数据。技术是中性的,边界在你手里。爬虫的入门技术(requests 发请求 + BeautifulSoup 解析)三分钟就能学会。真正区分"会用爬虫"和"会做爬虫的人"的,是这篇我们跑通"请求→解析→存储"的最小闭环,然后重点把"合规与礼貌"这根弦给你绷上。

源码获取 | 运行部署 | 定制二开修改,如果回复不及时请耐心等待,请见谅。 403
上一篇: EasyDL模型离线部署-新手教程(GPU基础版)
下一篇: WIN10网络打印机-打印失败解决方案
Merokes
博客等级 码龄7年 120粉丝 25原创
评论 4
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值