PAL/NpuYoloV5/06_rknn-cpp-Multithreading-main
2025-04-28 14:56:31 +08:00
..
include Yolo v5推流程序编译完成 2025-04-28 14:56:31 +08:00
model HDMI输入直至Yolov5识别全流程代码 2025-04-28 14:48:28 +08:00
src HDMI输入直至Yolov5识别全流程代码 2025-04-28 14:48:28 +08:00
.gitignore HDMI输入直至Yolov5识别全流程代码 2025-04-28 14:48:28 +08:00
build-linux_RK3588.sh Yolo v5推流程序编译完成 2025-04-28 14:56:31 +08:00
CMakeLists.txt Yolo v5推流程序编译完成 2025-04-28 14:56:31 +08:00
LICENSE HDMI输入直至Yolov5识别全流程代码 2025-04-28 14:48:28 +08:00
performance.sh HDMI输入直至Yolov5识别全流程代码 2025-04-28 14:48:28 +08:00
README.md HDMI输入直至Yolov5识别全流程代码 2025-04-28 14:48:28 +08:00

简介

  • 此仓库为c++实现, 大体改自rknpu2, python快速部署见于rknn-multi-threaded
  • 使用线程池异步操作rknn模型, 提高rk3588/rk3588s的NPU使用率, 进而提高推理帧数
  • yolov5s使用relu激活函数进行优化,提高量化能力
  • rk3568等请自行修改include/rknnPool.hpp下的rknn_lite类和rknnPool的构造函数

更新说明

  • 修复了cmake找不到pthread的问题
  • 新建nosigmoid分支,使用rknn_model_zoo下的模型以达到极限性能提升

使用说明

演示

  • 系统需安装有OpenCV
  • 下载Releases中的测试视频于项目根目录,运行build-linux_RK3588.sh
  • 可切换至root用户运行performance.sh定频提高性能和稳定性
  • 编译完成后进入install运行命令./rknn_yolov5_demo 模型所在路径 视频所在路径/摄像头序号

部署应用

  • 修改include/rknnPool.hpp中的rknn_lite类
  • 修改inclue/rknnPool.hpp中的rknnPool类的构造函数

多线程模型帧率测试

模型\线程数 1 2 3 4 5 6 12
Yolov5s - silu 15.9269 32.9192 52.8330 46.6782 58.2921 71.8070
Yolov5s - relu 26.8601 58.0305 77.6904 80.7144 93.9126 101.1400 122.7334

补充

  • 异常处理尚未完善, 目前仅支持rk3588/rk3588s下的运行
  • relu版本相较于silu有着较大性能提升, 以及存在一些精度损失, 详情见于rknn_model_zoo

Acknowledgements