Giter Site home page Giter Site logo

vik0909 / rknn-cpp-multithreading Goto Github PK

View Code? Open in Web Editor NEW

This project forked from leafqycc/rknn-cpp-multithreading

0.0 0.0 0.0 31.21 MB

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

License: Apache License 2.0

Shell 2.84% C++ 43.26% C 51.86% CMake 2.04%

rknn-cpp-multithreading's Introduction

简介

  • 此仓库为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分支。
  • 新增v1.5.0分支(向下兼容1.4.0), main分支更新至v1.5.2, 修改了项目结构, 将rknn模型线程池封装成类(include/rknnPool.hpp)

使用说明

演示

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

部署应用

  • 参考include/rkYolov5s.hpp中的rkYolov5s类构建rknn模型类

多线程模型帧率测试

  • 使用performance.sh进行CPU/NPU定频尽量减少误差
  • 测试模型来源:
  • yolov5s-relu
  • 测试视频可见于 bilibili
模型\线程数 1 2 3 4 5 6 9 12
Yolov5s - relu 41.6044 71.6037 98.6057 98.0068 104.6001 114.7454 129.5693 140.8788

补充

  • 异常处理尚未完善, 目前仅支持rk3588/rk3588s下的运行

Acknowledgements

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.