- 此仓库为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类的构造函数
- 使用performance.sh进行CPU/NPU定频尽量减少误差
- 测试模型来源:
- yolov5s-silu
- yolov5s-relu
- 测试视频可见于 bilibili
模型\线程数 | 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