Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/leafqycc/rknn-cpp-Multithreading
A simple demo of yolov5s running on rk3588/3588s using c++ (about 142 frames). / 一个使用c++在rk3588/3588s上运行的yolov5s简单demo(142帧/s)。
https://github.com/leafqycc/rknn-cpp-Multithreading
Last synced: 4 months ago
JSON representation
A simple demo of yolov5s running on rk3588/3588s using c++ (about 142 frames). / 一个使用c++在rk3588/3588s上运行的yolov5s简单demo(142帧/s)。
- Host: GitHub
- URL: https://github.com/leafqycc/rknn-cpp-Multithreading
- Owner: leafqycc
- License: apache-2.0
- Created: 2023-05-05T13:56:42.000Z (almost 2 years ago)
- Default Branch: main
- Last Pushed: 2024-04-09T09:59:05.000Z (11 months ago)
- Last Synced: 2024-08-01T03:16:13.661Z (7 months ago)
- Language: C
- Homepage:
- Size: 30.5 MB
- Stars: 394
- Watchers: 6
- Forks: 76
- Open Issues: 40
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
- awesome-yolo-object-detection - leafqycc/rknn-cpp-Multithreading - cpp-Multithreading?style=social"/> : A simple demo of yolov5s running on rk3588/3588s using c++ (about 142 frames). / 一个使用c++在rk3588/3588s上运行的yolov5s简单demo(142帧/s)。 (Lighter and Deployment Frameworks)
- awesome-yolo-object-detection - leafqycc/rknn-cpp-Multithreading - cpp-Multithreading?style=social"/> : A simple demo of yolov5s running on rk3588/3588s using c++ (about 142 frames). / 一个使用c++在rk3588/3588s上运行的yolov5s简单demo(142帧/s)。 (Lighter and Deployment Frameworks)
README
# 简介
* 此仓库为c++实现, 大体改自[rknpu2](https://github.com/rockchip-linux/rknpu2), python快速部署见于[rknn-multi-threaded](https://github.com/leafqycc/rknn-multi-threaded)
* 使用[线程池](https://github.com/senlinzhan/dpool)异步操作rknn模型, 提高rk3588/rk3588s的NPU使用率, 进而提高推理帧数
* [yolov5s](https://github.com/rockchip-linux/rknpu2/tree/master/examples/rknn_yolov5_demo/model/RK3588)使用relu激活函数进行优化,提高推理帧率# 更新说明
* 修复了cmake找不到pthread的问题
* 新增nosigmoid分支,使用[rknn_model_zoo](https://github.com/airockchip/rknn_model_zoo/tree/main/models)下的模型以达到极限性能提升
* 将RK3588 NPU SDK 更新至官方主线1.5.0, [yolov5s-silu](https://github.com/rockchip-linux/rknn-toolkit2/tree/v1.4.0/examples/onnx/yolov5)将沿用1.4.0的旧版本模型, [yolov5s-relu](https://github.com/rockchip-linux/rknpu2/tree/master/examples/rknn_yolov5_demo/model/RK3588)更新至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](https://github.com/rockchip-linux/rknpu2/tree/master/examples/rknn_yolov5_demo/model/RK3588)
* 测试视频可见于 [bilibili](https://www.bilibili.com/video/BV1zo4y1x7aE/?spm_id_from=333.999.0.0)| 模型\线程数 | 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
* https://github.com/rockchip-linux/rknpu2
* https://github.com/senlinzhan/dpool
* https://github.com/ultralytics/yolov5
* https://github.com/airockchip/rknn_model_zoo