# rknn-cpp-Multithreading **Repository Path**: onlymolin/rknn-cpp-Multithreading ## Basic Information - **Project Name**: rknn-cpp-Multithreading - **Description**: No description available - **Primary Language**: Unknown - **License**: Apache-2.0 - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2024-06-21 - **Last Updated**: 2024-06-21 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## 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