Closed 1qingfeng-1 closed 10 months ago
修改的部分请看:https://github.com/1qingfeng-1/rknn-cpp-Multithreading.git
./rknn_yolov5_demo model/RK3588/yolov5s-640-640.rknn output.mp4
output.mp4 是640*640 60帧的视频
各个步骤耗时 测试结果: pre_process: 491 us infer: 19065 us post_process: 403 us get show: 13960 us pre_process: 183 us infer: 19784 us post_process: 366 us get show: 11874 us pre_process: 298 us infer: 18670 us post_process: 415 us get show: 11531 us pre_process: 475 us infer: 19163 us post_process: 369 us get show: 12630 us pre_process: 222 us infer: 19813 us post_process: 377 us get show: 13391 us
可以看到 前处理 不到1ms,推理不到20ms,后处理不到1ms, get show 是13ms(平均) 采用多线程加速,实际帧率是看get show,也就是平均13ms一帧, fps 76帧
跑之前定频了嘛,运行的时候可以查看一下NPU的使用率cat /sys/kernel/debug/rknpu/load 如果您希望跑到理论最大值的话,需要去增大src/main.cc下的threadNum变量,扩容线程池。仓库内threadNum=3的情况下我测试大概是98fps这样 之前测试的时候,图形界面的接口GTK和QT也会对结果产生影响,印象中一个比另一个强10%左右,反映到Ubuntu上大抵是wayland和xorg下的差异。不过fork中并没有用到显示,对于实际表现应该没啥影响?
修改的部分请看:https://github.com/1qingfeng-1/rknn-cpp-Multithreading.git
./rknn_yolov5_demo model/RK3588/yolov5s-640-640.rknn 输出.mp4
输出.mp4 是640*640 60帧的视频
各个步骤耗时 测试结果: pre_process: 491 US 推断: 19065 US post_process: 403 US 获取显示: 13960 US pre_process: 183 US 推断: 19784 US post_process: 366 US 获取显示: 11874 US pre_process: 298 US 推断: 18670 US post_process: 415 US 获取显示: 11531 US pre_process: 475 US 推断: 19163 US post_process: 369 美国 GET 显示:12630 US pre_process:222 US 推断:19813 US post_process:377 US GET 显示:13391 US
可以看到 前处理 不到1ms,推理不到20ms,后处理不到1ms, get show 是13ms(平均) 采用多线程加速,实际帧率是看get show,也就是平均13ms一帧, fps 76帧
首先定频
@leafqycc 定频拉到最高频率,三个npu每个负载42% 修改threadNum=3,6,8,12,实际不会有太大帧率提高,12和3相差不大 单个npu处理时间在22ms, 理论上rk3588最高帧率可以达到 45*3 136帧的
@leafqycc 定频拉到最高频率,三个npu每个负载42% 修改threadNum=3,6,8,12,实际不会有太大帧率提高,12和3相差不大 单个npu处理时间在22ms, 理论上rk3588最高帧率可以达到 45*3 136帧的
我自己写了一套实现的 定频 v5s relu 单核npu可以拉到92%定死92 FPS 60左右 模型越大效果越好 v5m v7可以超过官方的测速
@leafqycc 定频拉到最高频率,三个npu每个负载42% 修改threadNum=3,6,8,12,实际不会有太大帧率提高,12和3相差不大 单个npu处理时间在22ms, 理论上rk3588最高帧率可以达到 45*3 136帧的
有兴趣可以加我QQ 1281854907
@YCG1 npu就是跑不满,不知道是什么问题
@YCG1 你可以拉一下我修改的,测一下,多线程加跑不满npu
@YCG1 npu就是跑不满,不知道是什么问题
会是视频解码效率低导致推理阻塞吗?直接使用opencv播放视频看看解码效率呢?(就不进行推理直接返回结果)
修改的部分请看:https://github.com/1qingfeng-1/rknn-cpp-Multithreading.git
./rknn_yolov5_demo model/RK3588/yolov5s-640-640.rknn output.mp4
output.mp4 是640*640 60帧的视频
各个步骤耗时 测试结果: pre_process: 491 us infer: 19065 us post_process: 403 us get show: 13960 us pre_process: 183 us infer: 19784 us post_process: 366 us get show: 11874 us pre_process: 298 us infer: 18670 us post_process: 415 us get show: 11531 us pre_process: 475 us infer: 19163 us post_process: 369 us get show: 12630 us pre_process: 222 us infer: 19813 us post_process: 377 us get show: 13391 us
可以看到 前处理 不到1ms,推理不到20ms,后处理不到1ms, get show 是13ms(平均) 采用多线程加速,实际帧率是看get show,也就是平均13ms一帧, fps 76帧