之前写过两次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++时耗
本篇部署方法时耗