yolov8 瑞芯微 RKNN 的 C++部署,部署工程难度小、模型推理速度快

news/2024/7/10 23:39:01 标签: YOLO, c++, 开发语言

   之前写过两次yolov8目标检测部署,后续继续思考,针对部署还有优化空间,本示例的部署方式优化了部署难度,加快了模型推理速度(略微增加了后处理的时耗)。

特别说明:如有侵权告知删除,谢谢。

【完整代码】代码和模型

1、rknn模型准备

   onnx转rknn模型这一步就不再赘述,请参考上一篇 【yolov8n 瑞芯微RKNN和地平线Horizon芯片仿真测试部署,部署工程难度小、模型推理速度快】 。上一篇提供了完整的模型和代码,如果仅仅是想验证模型,可以直接拿提供的rknn模型进行后续的步骤,本篇也是基于上一篇转好的rknn模型进行的,在rk3588芯片部署测试。

2、C++代码准备

   本篇中的 C++ 代码基于瑞芯微官方提供的 rknpu2_1.3.0 进行的。官方提供的开源示例参考 ,提取码:rknn .

3、C++ 代码

   模型和图片读取部分参考官方提供的示例,详细代码请参本实例对应的github仓库,代码和模型 。本实例提供的完整代码也就只包含两个.c文件,阅读起来没啥难度。

## 4、编译运行
1)编译

```powershell
cd examples/rknn_yolov8_demo_dfl_open

bash build-linux_RK3588.sh

2)运行

cd install/rknn_yolov8_demo_Linux

./rknn_yolov8_demo

注意:修改模型、测试图像、保存图像的路径,所在文件为 src 下main.cc文件。

5、板端效果

冒号“:”前的数子是coco的80类对应的类别,后面的浮点数是目标得分。(类别:得分)
(注:图片来源coco128)
在这里插入图片描述

说明:推理测试预处理没有考虑等比率缩放,激活函数 SiLU 用 Relu 进行了替换。由于使用的是coco128的128张图片数据进行训练的,且迭代的次数不多,效果并不是很好,仅供测试流程用。换其他图片测试检测不到属于正常现象,最好选择coco128中的图像进行测试。

6、模型和后处理时耗

  C++完整部署代码和模型示例参考

  把板端C++代码的模型和时耗也给贴出来供大家参考,使用芯片rk3588。相对之前在rk3588上推理40ms,降到了17ms,后处理稍微有增加。

  上一篇【yolov8 瑞芯微 RKNN 的 C++部署】部署到rknn3588上的C++时耗
在这里插入图片描述
  本篇部署方法时耗
在这里插入图片描述
2024年1月12日:后处理代码有所优化,后处理时耗大幅度降低。(检测类别越多效果越明显,检测1个类别就没有优化效果,代码已同步到对应的代码仓中)
在这里插入图片描述


http://www.niftyadmin.cn/n/5319120.html

相关文章

武侠小说中的AI思想探析与未来启示

在传统中华文化语境中,武侠世界以其独特的魅力和深厚的人文内涵,展现了人们对力量、正义与智慧的追求。尽管“人工智能”这一概念并未直接出现在古代或近代武侠小说中,但透过对武侠人物、情节以及武学理念的深度剖析,可以发现其中…

Bytebase 2.13.1 - 支持 Apache Doris

🚀 新功能 支持 Apache Doris。支持在对 MySQL 执行 DML 之前备份数据。支持实例的最大连接数,用以控制每个实例的并发任务数量。支持对导出数据的压缩和加密。 🔔 重大变更 Bytebase API 的更改:重命名了预定义角色。如果您在…

在 Windows 7 上显示隐藏的文件

1. 打开文件资源管理器(可以通过按下 Windows键 E 快捷键打开)。 2. 在文件资源管理器窗口中,点击顶部菜单栏的 “组织”(Organize)。 3. 选择 “文件和搜索选项”(Folder and search options)…

C#使用Office原生库开发后的运行问题

目录 一、准备 二、测试Office2007 1、直接运行 2、安装VS2009 3、重新在“引用”库 4、安装“包” 5、报错修复 6、小结 三、测试office2010 1、在VS2019中打开原项目 2、添加“包” 3、重新添加引用 4、测试Word功能 5、测试卸掉那两个“包” 6、测试Excel功能…

判断一个括号串中的括号是否为匹配。

/** * 判断一个括号串中的括号是否为匹配。 * param exp: 括号串 * param n: 括号串的长度 */ Status matchBracketSequence(char* exp, int n); 有以下数据结构及其操作可用: #define MAXSIZE 20 #define INCREMENT 5 typedef int Status; typedef char ElemTyp…

主从版本升级_主从_8.0.32_安装路径非软链接_基于二进制日志文件

升级需求 将一套MySQL 8.0.32主从环境版本升级到8.0.35版本,主从环境如下: 主服务器 登录账号密码 端口 当前版本 目标版本 主服务器 192.168.40.160 root/mysql 3306 8.0.32 8.0.35 从服务器 192.168.40.161 root/mysql 3306 8.0.32 8…

Android Retrofit使用详情

一、 Retrofit是什么 Retrofit是Android用来接口请求的网络框架,内部是基于OkHttp实现的,retrofit负责接口请求的封装,retrofit可以直接将接口数据解析为Bean类、List集合等,直接简化了中间繁琐的数据解析过程 二、 Retrofit的简单…

YACS(上海计算机学会竞赛平台)2022年12月月赛——星号三角阵(二)

题目描述 给定一个整数 n,输出一个 n 行 n 列的星号三角阵,直角位于图形的左上角。例如当 n4 时,输出 **** *** ** *输入格式 单个整数表示 n。 输出格式 共 n 行:表示一个星号三角阵。 数据范围 1≤n≤100 样例数据 输入…