yolov8 瑞芯微 RKNN 的 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)编译

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,模型输入640x640,类别80类。相对之前在rk3588上推理40ms,降到了17ms,后处理稍微有增加。

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

yolov8是一种目标检测模型,而瑞芯微RKNN(Rockchip Neural Network)是一种用于在瑞芯微处理器上部署深度学习模型的工具。通过使用RKNN,可以将yolov8模型部署瑞芯微处理器上进行推理。 以下是使用RKNN部署yolov8的步骤: 1. 准备模型:首先,需要将yolov8模型转换为RKNN支持的格式。可以使用RKNN提供的转换工具将yolov8模型转换为RKNN模型。 2. 安装RKNN工具包:在进行模型转换之前,需要先安装RKNN工具包。可以通过以下命令在Linux系统上安装RKNN工具包: ```shell pip install rknn-toolkit ``` 3. 模型转换:使用RKNN提供的转换工具将yolov8模型转换为RKNN模型。可以使用以下命令进行转换: ```shell rknn-toolkit -i yolov8.onnx -o yolov8.rknn --model_type yolov3 ``` 其中,`yolov8.onnx`是原始的yolov8模型文件,`yolov8.rknn`是转换后的RKNN模型文件,`--model_type yolov3`指定了模型类型为yolov3。 4. 加载RKNN模型:在代码中加载RKNN模型,并进行初始化。可以使用以下代码加载RKNN模型: ```python import rknn # 创建RKNN对象 rknn = rknn.RKNN() # 加载RKNN模型 rknn.load_rknn('./yolov8.rknn') # 初始化RKNN模型 rknn.init_runtime() ``` 5. 进行推理:使用加载和初始化后的RKNN模型进行推理。可以使用以下代码进行推理: ```python # 输入数据 input_data = ... # 进行推理 outputs = rknn.inference(inputs=[input_data]) # 处理输出结果 ... ``` 通过以上步骤,就可以使用RKNN工具包将yolov8模型部署瑞芯微处理器上进行推理了。
评论 18
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值