当前位置: 首页 > article >正文

泰山派3M-RK3576开发板部署YOLOv8目标检测模型实战指南

泰山派3M-RK3576开发板部署YOLOv8目标检测模型实战指南最近有不少朋友在问怎么把现在很火的YOLOv8目标检测模型部署到泰山派3M-RK3576这块开发板上跑起来。确实在嵌入式设备上跑AI模型尤其是目标检测是很多AIoT项目的核心需求。今天我就结合自己的实际项目经验手把手带大家走一遍完整的部署流程。咱们的目标很明确从零开始把官方的YOLOv8模型经过格式转换、交叉编译最终在泰山派开发板上跑起来并且能看到实际的检测效果。整个过程我会尽量讲得详细特别是容易踩坑的地方我都会重点提醒。1. 环境准备搭建开发“工作台”在开始模型转换和部署之前我们需要先把开发环境搭建好。这就像盖房子前要先准备好砖瓦和工具一样。整个过程都在你的Ubuntu PC建议22.04版本上进行。1.1 安装Python环境管理器Miniforge3为了避免不同Python项目之间因为依赖包版本冲突而“打架”我们使用Miniforge3来管理独立的Python环境。这比系统自带的Python要干净、方便得多。打开你的Ubuntu终端依次执行以下命令# 1. 下载Miniforge3安装脚本 wget -c https://mirrors.bfsu.edu.cn/github-release/conda-forge/miniforge/LatestRelease/Miniforge3-Linux-x86_64.sh # 2. 运行安装脚本 bash Miniforge3-Linux-x86_64.sh运行安装脚本后会有一系列交互提示按Enter键阅读许可协议。一直按空格键往下翻看完后输入yes同意。询问安装路径直接按Enter使用默认路径/home/你的用户名/miniforge3就行。最后会问是否要初始化conda输入yes。安装完成后需要激活一下环境变量让系统知道conda命令在哪source ~/miniforge3/bin/activate如果成功你会看到命令行最前面出现了一个(base)的标记这就说明Miniforge3已经准备就绪了。1.2 创建模型转换专用环境YOLOv8-RKNN-Toolkit2接下来我们需要一个专门用来做模型转换的环境。因为Rockchip官方提供的RKNN-Toolkit2工具链对Python和库的版本有特定要求单独的环境能避免污染其他项目。# 创建一个名为 YOLOv8-RKNN-Toolkit2 的新环境并指定Python版本为3.10 conda create -n YOLOv8-RKNN-Toolkit2 python3.10 # 创建过程中会提示 Proceed ([y]/n)?输入 y 确认即可创建好后激活并进入这个环境conda activate YOLOv8-RKNN-Toolkit2激活后命令行前缀会变成(YOLOv8-RKNN-Toolkit2)。然后在这个环境里安装模型转换的核心工具# 安装Rockchip官方的模型转换工具包 pip install rknn-toolkit2 -i https://mirrors.aliyun.com/pypi/simple # 安装指定版本的onnx库这是模型转换的中间格式 pip install onnx1.18.0 -i https://mirrors.aliyun.com/pypi/simple注意这里使用了阿里云的镜像源-i https://mirrors.aliyun.com/pypi/simple下载速度会快很多。安装完成后可以先退出这个环境我们接着准备下一个。conda deactivate1.3 创建YOLOv8模型导出环境Tspi3-YOLOv8模型转换需要先从PyTorch格式.pt导出为ONNX格式这个步骤需要在另一个包含YOLOv8官方代码的环境中进行。# 创建另一个名为 Tspi3-YOLOv8 的环境同样使用Python 3.10 conda create -n Tspi3-YOLOv8 python3.10 # 同样输入 y 确认激活新环境conda activate Tspi3-YOLOv8此时命令行前缀变为(Tspi3-YOLOv8)。在这个环境里我们需要安装YOLOv8运行和导出所依赖的包# 安装基础依赖包包括PyTorch、OpenCV等 pip install tqdm numpy opencv-python torch torchvision pillow matplotlib pyyaml requests scipy pandas seaborn -i https://mirrors.aliyun.com/pypi/simple # 安装 ultralytics 库这是YOLOv8的官方实现 pip install ultralytics -i https://mirrors.aliyun.com/pypi/simple安装完成后可以简单测试一下YOLO命令是否可用yolo -v如果输出版本号例如8.3.248说明环境配置成功。2. 模型获取与转换从通用到专用现在我们手头有两个准备好的Python环境。接下来就是核心步骤把通用的YOLOv8模型转换成泰山派RK3576芯片能高效运行的专用格式RKNN。2.1 第一步下载预训练模型.pt文件模型文件.pt就像是训练好的“大脑”没有它代码只是个空壳。我们去YOLOv8官方仓库下载一个现成的模型。这里以最小的yolov8n.ptnano版为例它在开发板上跑起来速度最快。确保你在Tspi3-YOLOv8环境下然后执行wget https://github.com/ultralytics/assets/releases/download/v8.3.0/yolov8n.pt下载完成后你当前目录下就会有一个yolov8n.pt文件。2.2 第二步导出为ONNX格式直接下载的YOLOv8官方代码导出的ONNX模型可能无法在Rockchip的NPU上获得最佳性能。幸运的是Rockchip官方已经提供了一个优化过的YOLOv8版本。克隆优化版仓库git clone https://github.com/airockchip/ultralytics_yolov8.git cd ultralytics_yolov8修改配置文件 我们需要告诉代码我们下载的模型文件在哪里。编辑ultralytics/cfg/default.yaml文件找到model:这一行把后面的路径改成你刚下载的yolov8n.pt的绝对路径。提示你可以用pwd命令查看当前绝对路径然后拼接上文件名。例如修改后这一行可能看起来像这样model: /home/your_username/workspace/yolov8n.pt设置Python路径并导出# 设置Python路径为当前目录确保代码能正确找到模块 export PYTHONPATH./ # 运行导出脚本 python ./ultralytics/engine/exporter.py运行成功后会在当前目录下生成一个yolov8n.onnx文件。这就是我们转换的中间成果。2.3 第三步转换为RKNN格式关键步骤ONNX模型还是通用格式要让它能在RK3576的NPU上“飞起来”必须转换成RKNN格式。这一步我们切换到之前准备好的YOLOv8-RKNN-Toolkit2环境。切换环境并获取转换工具# 退出当前环境 conda deactivate # 进入转换专用环境 conda activate YOLOv8-RKNN-Toolkit2 # 克隆Rockchip官方的模型仓库里面包含了转换脚本和Demo git clone https://github.com/airockchip/rknn_model_zoo.git cd rknn_model_zoo/examples/yolov8/python执行转换命令 转换脚本convert.py的使用语法如下python convert.py onnx_model_path [platform] [dtype] [output_rknn_path]platform: 指定平台我们的是rk3576。dtype: 指定数据类型。对于RK3576可以选择i8整数8位量化速度最快精度略有损失或fp浮点精度高速度稍慢。这里我们选择i8以追求性能。因此运行如下命令请将/home/lipeng/workspace/yolov8/yolov8n.onnx替换为你自己的ONNX文件实际路径python convert.py /home/your_username/workspace/yolov8n.onnx rk3576 i8转换成功后你会在rknn_model_zoo/examples/yolov8/model/目录下找到生成的yolov8n.rknn文件。这个文件就是最终要放到开发板上运行的模型3. 交叉编译Demo程序模型准备好了还需要一个能在开发板上调用这个模型、处理图片并显示结果的程序。Rockchip官方提供了C写的Demo我们需要在PC上为ARM架构的开发板编译这个程序这就是“交叉编译”。退出所有Conda环境conda deactivate看到命令行前缀变回(base)或没有前缀即可。安装交叉编译工具链 我们需要在x86的PC上编译出能在ARM架构的泰山派上运行的程序。sudo apt update sudo apt install -y cmake make gcc-aarch64-linux-gnu g-aarch64-linux-gnu编译Demo 进入rknn_model_zoo目录运行编译脚本。cd rknn_model_zoo/ # 给编译脚本添加执行权限 sudo chmod x ./build-linux.sh # 执行编译指定目标平台为rk3576架构为aarch64Demo名为yolov8 ./build-linux.sh -t rk3576 -a aarch64 -d yolov8注意-d后面的Demo名称必须和rknn_model_zoo/examples/目录下的文件夹名称一致这里是yolov8。编译过程需要一些时间。成功后会在当前目录下生成一个install/文件夹里面结构类似这样install/ -- rk3576_linux_aarch64 -- rknn_yolov8_demo |-- lib # 运行所需的动态库 | |-- librga.so | -- librknnrt.so |-- model # 模型和测试资源 | |-- bus.jpg # 测试图片 | |-- coco_80_labels_list.txt # 类别标签文件 | -- yolov8.rknn # 模型文件需要替换成我们自己的 |-- rknn_yolov8_demo # 主程序 -- rknn_yolov8_demo_zero_copy # 零拷贝版本程序4. 板端部署与运行演示最后一步就是把编译好的程序和我们的模型放到泰山派开发板上去运行了。4.1 文件传输到开发板首先我们需要用自己转换的yolov8n.rknn模型替换掉Demo里自带的那个。将rknn_model_zoo/examples/yolov8/model/yolov8n.rknn复制到install/rk3576_linux_aarch64/rknn_yolov8_demo/model/目录下覆盖原有的yolov8.rknn文件或者将自带的删除把我们的重命名为yolov8.rknn。然后将整个rknn_yolov8_demo文件夹传输到开发板。这里以使用ADB工具为例泰山派默认已开启ADB调试# 将demo文件夹推送到开发板的/home/lckfb/目录下 adb push install/rk3576_linux_aarch64/rknn_yolov8_demo /home/lckfb/4.2 在开发板上运行Demo通过ADB Shell或者SSH登录到你的泰山派开发板。进入Demo目录并设置库路径# 登录开发板后进入刚才传输的目录 cd /home/lckfb/rknn_yolov8_demo # 设置动态库查找路径非常重要否则会提示找不到.so文件 export LD_LIBRARY_PATH./lib给程序添加执行权限并运行# 添加执行权限 sudo chmod x rknn_yolov8_demo # 运行Demo程序 sudo ./rknn_yolov8_demo model/yolov8.rknn model/bus.jpg命令格式是./程序名 RKNN模型路径 输入图片路径。如果一切顺利程序会开始执行。你会在终端看到模型加载、推理耗时等信息。运行结束后会在当前目录生成一个名为out.png的结果图片。把这个图片拉取到电脑上打开或者如果开发板有桌面环境直接查看就能看到YOLOv8模型检测出的目标以及画出的边界框了。恭喜你至此你已经成功完成了YOLOv8模型在泰山派RK3576开发板上的完整部署流程。从环境搭建、模型转换、交叉编译到板端运行每一步都是实战中必须掌握的技能。你可以尝试更换不同的YOLOv8模型如yolov8s.pt或者使用自己的图片进行测试探索这块板子在AI视觉应用上的更多潜力。

相关文章:

泰山派3M-RK3576开发板部署YOLOv8目标检测模型实战指南

泰山派3M-RK3576开发板部署YOLOv8目标检测模型实战指南 最近有不少朋友在问,怎么把现在很火的YOLOv8目标检测模型,部署到泰山派3M-RK3576这块开发板上跑起来。确实,在嵌入式设备上跑AI模型,尤其是目标检测,是很多AIoT项…...

手把手教程:用mPLUG-Owl3-2B快速搭建你的专属图片聊天机器人

手把手教程:用mPLUG-Owl3-2B快速搭建你的专属图片聊天机器人 想不想拥有一个能看懂图片、还能跟你聊天的AI助手?比如你拍一张风景照,它能告诉你这是什么地方;或者上传一张产品图,它能帮你分析设计亮点。今天&#xff…...

基于ChatTTS在线的AI辅助开发实战:从语音合成到集成部署

最近在做一个需要语音播报功能的小项目,之前用过一些传统的TTS(文本转语音)服务,体验总是不太理想。要么是延迟太高,用户点了播放要等好几秒;要么是合成的语音听起来很机械,没有感情&#xff1b…...

Z-Image-Turbo-辉夜巫女企业级应用:低成本AI绘画方案助力IP视觉延展

Z-Image-Turbo-辉夜巫女企业级应用:低成本AI绘画方案助力IP视觉延展 1. 项目概述 Z-Image-Turbo-辉夜巫女是一款基于Xinference部署的文生图模型服务,专门用于生成具有辉夜巫女风格的图像。该模型采用Lora技术对基础模型进行微调,能够快速生…...

微信聊天记录全生命周期管理实战指南:从数据提取到价值挖掘的完整解决方案

微信聊天记录全生命周期管理实战指南:从数据提取到价值挖掘的完整解决方案 【免费下载链接】WeChatMsg 提取微信聊天记录,将其导出成HTML、Word、CSV文档永久保存,对聊天记录进行分析生成年度聊天报告 项目地址: https://gitcode.com/GitHu…...

用LinkBoy玩转Arduino流水灯:8个LED的炫酷效果(附完整电路图)

用LinkBoy玩转Arduino流水灯:8个LED的炫酷效果(附完整电路图) 当你第一次看到一排LED灯像水流一样依次点亮又熄灭,会不会觉得既神奇又有趣?这就是经典的流水灯效果,也是许多Arduino初学者入门电子制作的第一…...

NLP-StructBERT与图数据库Neo4j结合:构建知识图谱语义检索系统

NLP-StructBERT与图数据库Neo4j结合:构建知识图谱语义检索系统 想象一下,你面对一个庞大的知识库,里面有成千上万的实体和它们之间错综复杂的关系。你想问:“苹果公司的创始人是谁?”或者“治疗高血压的常用药物有哪些…...

造相-Z-Image-Turbo高可用架构:设计多节点负载均衡与故障转移方案

造相-Z-Image-Turbo高可用架构:设计多节点负载均衡与故障转移方案 当你的AI图像生成服务突然因为流量激增而卡顿,或者某个计算节点意外宕机导致用户排队等待时,那种感觉就像精心准备的晚宴突然停了电。对于“造相-Z-Image-Turbo”这类深度依…...

C语言集成MogFace-large推理引擎:高性能边缘计算方案

C语言集成MogFace-large推理引擎:高性能边缘计算方案 如果你是一名C/C开发者,正在为嵌入式设备、工业视觉或者自动驾驶系统寻找一个既准又快的人脸检测方案,那么这篇文章就是为你准备的。我们这次要聊的,是如何把MogFace-large这…...

机器人建模(URDF)与仿真配置

在我们搭建好了开发环境之后,下一步就是赋予机器人“身体”。URDF 就是这个身体的蓝图,而仿真配置则是让这个身体在虚拟世界中“活过来”的关键一步。 📝 第一部分:URDF——机器人的“骨骼”与“皮肤” URDF 的核心是描述机器人的…...

ANIMATEDIFF PROGPU算力优化:BF16推理+VAE Tiling技术深度解析

ANIMATEDIFF PROGPU算力优化:BF16推理VAE Tiling技术深度解析 1. 为什么你的文生视频总卡在“显存不足”? 你是不是也遇到过这样的情况:精心写好提示词,点击生成,进度条刚走到30%,控制台突然弹出一串红色…...

Nullnull

Null...

比迪丽AI绘画在微信小程序开发中的应用:个性化头像生成

比迪丽AI绘画在微信小程序开发中的应用:个性化头像生成 微信小程序与AI绘画的完美结合,让每个用户都能拥有独一无二的头像 1. 为什么需要个性化头像生成 你有没有遇到过这样的困扰:想换微信头像,但翻遍相册也找不到满意的图片&am…...

大龙虾OpenClaw的token不够吃了?用免费的 APIKey 续命

大龙虾OpenClaw的token不够吃了?用免费的 APIKey 续命 前言 最近一直在玩 OpenClaw 的朋友应该都有同感:大龙虾跑得越欢,Token 烧得越快,刚部署没多久就提示额度不足,想继续用就得充值,对个人开发者太不友…...

douyin-downloader:智能视频资源管理工具的全方位应用指南

douyin-downloader:智能视频资源管理工具的全方位应用指南 【免费下载链接】douyin-downloader 项目地址: https://gitcode.com/GitHub_Trending/do/douyin-downloader 在信息爆炸的数字时代,视频内容已成为知识传递和创作表达的重要载体。无论是…...

项目博客:山东大学软件学院项目实训-创新实训

项目实训...

vmbox虚拟机安装rknn-toolkit2,遇到illegal hardware instruction (core dumped) 需要avx指令支持

虚拟机中查看cat /proc/cpuinfo | grep avx 没输出就是没有,如果真机cpu是支持的(用CPU-Z查看是否支持),那请尝试按照以下处理: 步骤一:关闭Hyper-V虚拟 步骤二:vmbox虚拟机 启用嵌套VT-x/AMD-v 参考 步骤三:在cmd中执行bcdedi…...

【泛微系统】知识管理-查询文档页面默认显示全部文档

E9查阅文档默认显示:我的收藏改成默认全部目录: 解决方案: 注:0-全部目录;1-我的收藏 ecology/WEB-INF/prop/doc_full_search.properties属性文件里的参数配置为default_treenode0...

NFC无源驱动电子墨水屏:零电池高分辨率静态显示方案

1. 项目概述本项目实现了一种无电池、纯近场通信(NFC)驱动的电子墨水屏显示终端。其核心创新在于:完全摒弃传统供电方式,通过 NFC 场强同时完成数据传输与能量耦合,使 MCU 和墨水屏在无外部电源、无内置电池的前提下完…...

Gemma-3-12b-it从零开始教程:无需Docker基础的本地部署流程

Gemma-3-12b-it从零开始教程:无需Docker基础的本地部署流程 1. 项目介绍 Gemma-3-12b-it是基于Google最新Gemma-3-12b-it大模型开发的多模态交互工具。这个工具最大的特点是能在你的本地电脑上运行,不需要联网,也不需要复杂的Docker环境&am…...

Stable-Diffusion-V1-5 生成科学插图:辅助学术论文与科普内容创作

Stable-Diffusion-V1-5 生成科学插图:辅助学术论文与科普内容创作 你有没有过这样的经历?为了给论文或科普文章配一张理想的示意图,在绘图软件里折腾半天,结果画出来的东西总感觉差了点意思。或者,想找一个能清晰展示…...

Nunchaku FLUX.1-dev 文生图性能实测:在不同GPU算力下的生成速度与质量对比

Nunchaku FLUX.1-dev 文生图性能实测:在不同GPU算力下的生成速度与质量对比 最近在折腾AI生图,发现一个挺有意思的现象:同一个模型,在不同的显卡上跑,效果和速度差别能有多大?正好手头有机会接触到不同规格…...

2026年,滴鸡精行业TOP10企业揭秘:谁在领跑“滴鸡肽”新赛道?

朋友们,最近我身边好几个朋友都在问我:“现在市面上滴鸡精、滴鸡肽产品这么多,到底该选哪家?” 说实话,这问题问得我挺感慨。几年前,滴鸡精还只是个小众滋补品,现在呢?市场规模据说已…...

口碑好的移动阳光房零售公司

在现代建筑装修领域,移动阳光房越来越受到人们的青睐,它不仅能增加生活空间的功能性和舒适性,还能提升建筑的美观度。然而,市场上移动阳光房零售公司众多,如何选择一家口碑好的公司成为了消费者面临的难题。下面就为大…...

工程师级USB-C多功能Hub硬件设计指南

1. 项目概述在轻薄型笔记本电脑持续迭代的背景下,USB接口精简已成为主流设计取向。多数OEM厂商仅保留单个全功能USB Type-C接口,以换取更紧凑的机身结构与更长的续航时间。这种设计虽提升了便携性,却显著削弱了外设扩展能力——用户不得不依赖…...

小区业主自治的深度剖析

小区业主自治在社区治理中扮演着关键角色,它对于提升居住环境和社区文明程度意义重大。深入了解业主自治的相关要点,能更好地保障业主权益,促进社区和谐发展。业主自治的核心保障业主自治的有效开展离不开信息的公开透明。业主大会和业委会应…...

微服务到底要不要上?中小项目如何低成本落地

微服务到底要不要上?中小项目如何低成本落地在2026年的今天,云原生技术已经像空气一样无处不在。DeepSeek等大模型的普及让AI辅助编程变得触手可及,Kubernetes(K8s)甚至成为了许多云厂商的“默认选项”。然而&#xff…...

基于立创GD32E230开发板的DS3231高精度RTC模块I2C驱动移植与时间管理实战

基于立创GD32E230开发板的DS3231高精度RTC模块I2C驱动移植与时间管理实战 最近在做一个需要精确计时的小项目,用到了DS3231这个高精度实时时钟模块。我发现很多朋友在把这类模块和国产的GD32E230开发板搭配使用时,总会卡在I2C通信和驱动移植上。今天我就…...

YOLO-v5快速入门:从镜像启动到完成检测,全程保姆级教学

YOLO-v5快速入门:从镜像启动到完成检测,全程保姆级教学 想用AI识别图片里的物体,但觉得深度学习环境搭建太麻烦?模型训练太复杂?今天,我们就来彻底解决这个问题。我将带你用最简单、最直接的方式&#xff…...

中文句子相似度分析:StructBERT工具部署与实战应用

中文句子相似度分析:StructBERT工具部署与实战应用 你是不是经常需要判断两段中文文字是不是在说同一件事?比如,在整理用户反馈时,要找出重复的意见;在审核内容时,要检查是否存在抄袭或高度相似的表述&…...