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)。
Apache License 2.0
472 stars 87 forks source link

firefly rk3588 占用低,帧率低 #38

Closed UApocalypse closed 6 months ago

UApocalypse commented 7 months ago

RK3588平台,帧率像一条线锁死在5fps cpu平均占用在10%,NPU平均占用在3%(定频了) sdk 1.6.0 driver 0.8.8 opencv 4.9.0 摄像头是海康的一款1080p 30fps的 项目无大改,为了测试修改了修改了线程数,同时还加了capture.set来改变帧率

大致情况是这样,摄像头接入后使用v4l2查看摄像头参数 stream parameters videos capture 就变为30fps 但是启动程序后再查看就变为5fps 然后使用capture.set提高到30fps 再跑程序仍然是5fps,不知道是哪里设置出现了问题。 这个摄像头之前跑python api时是正常的,在c api出现了问题

leafqycc commented 7 months ago

RK3588平台,帧率像一条线锁死在5fps cpu平均占用在10%,NPU平均占用在3%(定频了) sdk 1.6.0 driver 0.8.8 opencv 4.9.0 摄像头是海康的一款1080p 30fps的 项目无大改,为了测试修改了修改了线程数,同时还加了capture.set来改变帧率

大致情况是这样,摄像头接入后使用v4l2查看摄像头参数 stream parameters videos capture 就变为30fps 但是启动程序后再查看就变为5fps 然后使用capture.set提高到30fps 再跑程序仍然是5fps,不知道是哪里设置出现了问题。 这个摄像头之前跑python api时是正常的,在c api出现了问题

c++设置opencv参数不全?(比如说视频流格式未设置,v4l2查看摄像头参数应该是可以看见编解码参数等) 亦或者是自行编译的opencv4.9.0缺少硬解?

UApocalypse commented 6 months ago

RK3588平台,帧率像一条线锁死在5fps cpu平均占用在10%,NPU平均占用在3%(定频了) sdk 1.6.0 driver 0.8.8 opencv 4.9.0 摄像头是海康的一款1080p 30fps的 项目无大改,为了测试修改了修改了线程数,同时还加了capture.set来改变帧率 大致情况是这样,摄像头接入后使用v4l2查看摄像头参数 stream parameters videos capture 就变为30fps 但是启动程序后再查看就变为5fps 然后使用capture.set提高到30fps 再跑程序仍然是5fps,不知道是哪里设置出现了问题。 这个摄像头之前跑python api时是正常的,在c api出现了问题

c++设置opencv参数不全?(比如说视频流格式未设置,v4l2查看摄像头参数应该是可以看见编解码参数等) 亦或者是自行编译的opencv4.9.0缺少硬解?

最终问题为缺少硬解,rk官方已经停止维护ffmpeg rk了,github开源的几个支线版本的我使用了,但在最终opencv的编译中会报函数已经废弃的错误,支线版本的issue中作者也表示不会添加相关支持。最终使用了firefly的ffmedia解决了问题。感谢作者回复