Skip to content

A simple demo of yolov5s running on rk3588/3588s using c++ (about 142 frames). / 一个使用c++在rk3588/3588s上运行的yolov5s简单demo(142帧/s)。

License

Notifications You must be signed in to change notification settings

gilbertchen/rknn-cpp-Multithreading

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

6 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

简介

  • 此仓库为c++实现, 大体改自rknpu2, python快速部署见于rknn-multi-threaded
  • 使用线程池异步操作rknn模型, 提高rk3588/rk3588s的NPU使用率, 进而提高推理帧数
  • yolov5s使用relu激活函数进行优化,提高推理帧率

更新说明

  • 修复了cmake找不到pthread的问题
  • 新建nosigmoid分支,使用rknn_model_zoo下的模型以达到极限性能提升
  • 将RK3588 NPU SDK 更新至官方主线1.5.0, yolov5s-silu将沿用1.4.0的旧版本模型, yolov5s-relu更新至1.5.0版本, 弃用nosigmoid分支。

使用说明

演示

  • 系统需安装有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 9 12
Yolov5s - silu 22.2211 46.6982 70.9794 64.7563 81.0925 96.2544 105.4083 108.8529
Yolov5s - relu 23.8122 54.6376 84.5434 82.5834 100.8524 112.6708 129.7348 142.2799

补充

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

Acknowledgements

About

A simple demo of yolov5s running on rk3588/3588s using c++ (about 142 frames). / 一个使用c++在rk3588/3588s上运行的yolov5s简单demo(142帧/s)。

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • C 50.0%
  • C++ 44.0%
  • Shell 3.5%
  • CMake 2.5%