leafqycc / rknn-multi-threaded Goto Github PK
View Code? Open in Web Editor NEWA simple demo of yolov5s running on rk3588/3588s using Python (about 72 frames). / 一个使用Python在rk3588/3588s上运行的yolov5s简单demo(大约72帧/s)。
License: Apache License 2.0
A simple demo of yolov5s running on rk3588/3588s using Python (about 72 frames). / 一个使用Python在rk3588/3588s上运行的yolov5s简单demo(大约72帧/s)。
License: Apache License 2.0
你好,请问这个包在哪里安装呢
想问一下为什么不是from rknnlite.api import RKNNLite or from rknn.api import RKNN像这样的?还是这意味它包含它们?
还有rknpu和rknnlite之间是什么关系?希望得到你的答案xiexie
I RKNN: [18:07:17.903] RKNN Runtime Information: librknnrt version: 1.5.0 (e6fe0c678@2023-05-25T08:09:20) I RKNN: [18:07:17.903] RKNN Driver Information: version: 0.8.8 I RKNN: [18:07:17.904] RKNN Model Information: version: 4, toolkit version: 1.5.0+1fa95b5c(compiler version: 1.5.0 (e6fe0c678@2023-05-25T16:15:03)), target: RKNPU v2, target platform: rk3588, framework name: PyTorch, framework layout: NCHW, model inference type: static_shape W RKNN: [18:07:17.905] Model initializer tensor data is empty, name: 762_Resize_input1 W RKNN: [18:07:17.905] Model initializer tensor data is empty, name: 762_Resize_input2 W RKNN: [18:07:17.905] Model initializer tensor data is empty, name: 863_Resize_input1 W RKNN: [18:07:17.905] Model initializer tensor data is empty, name: 863_Resize_input2 ./yolov5s_RK3588_i8.rknn done I RKNN: [18:07:18.350] RKNN Runtime Information: librknnrt version: 1.5.0 (e6fe0c678@2023-05-25T08:09:20) I RKNN: [18:07:18.350] RKNN Driver Information: version: 0.8.8 I RKNN: [18:07:18.351] RKNN Model Information: version: 4, toolkit version: 1.5.0+1fa95b5c(compiler version: 1.5.0 (e6fe0c678@2023-05-25T16:15:03)), target: RKNPU v2, target platform: rk3588, framework name: PyTorch, framework layout: NCHW, model inference type: static_shape W RKNN: [18:07:18.351] Model initializer tensor data is empty, name: 762_Resize_input1 W RKNN: [18:07:18.351] Model initializer tensor data is empty, name: 762_Resize_input2 W RKNN: [18:07:18.351] Model initializer tensor data is empty, name: 863_Resize_input1 W RKNN: [18:07:18.351] Model initializer tensor data is empty, name: 863_Resize_input2 ./yolov5s_RK3588_i8.rknn done I RKNN: [18:07:18.764] RKNN Runtime Information: librknnrt version: 1.5.0 (e6fe0c678@2023-05-25T08:09:20) I RKNN: [18:07:18.764] RKNN Driver Information: version: 0.8.8 I RKNN: [18:07:18.765] RKNN Model Information: version: 4, toolkit version: 1.5.0+1fa95b5c(compiler version: 1.5.0 (e6fe0c678@2023-05-25T16:15:03)), target: RKNPU v2, target platform: rk3588, framework name: PyTorch, framework layout: NCHW, model inference type: static_shape W RKNN: [18:07:18.765] Model initializer tensor data is empty, name: 762_Resize_input1 W RKNN: [18:07:18.765] Model initializer tensor data is empty, name: 762_Resize_input2 W RKNN: [18:07:18.765] Model initializer tensor data is empty, name: 863_Resize_input1 W RKNN: [18:07:18.765] Model initializer tensor data is empty, name: 863_Resize_input2 ./yolov5s_RK3588_i8.rknn done W RKNN: [18:07:19.259] Output(1304): size_with_stride larger than model origin size, if need run OutputOperator in NPU, please call rknn_create_memory using size_with_stride. W RKNN: [18:07:19.282] Output(1304): size_with_stride larger than model origin size, if need run OutputOperator in NPU, please call rknn_create_memory using size_with_stride. W RKNN: [18:07:19.319] Output(1304): size_with_stride larger than model origin size, if need run OutputOperator in NPU, please call rknn_create_memory using size_with_stride. W RKNN: [18:07:19.365] Output(1304): size_with_stride larger than model origin size, if need run OutputOperator in NPU, please call rknn_create_memory using size_with_stride. Traceback (most recent call last): File "main.py", line 35, in <module> frame, flag = pool.get() File "/home/cat/Code/rknn-multi-threaded/rknnpool.py", line 54, in get return fut.result(), True File "/usr/lib/python3.8/concurrent/futures/_base.py", line 444, in result return self.__get_result() File "/usr/lib/python3.8/concurrent/futures/_base.py", line 389, in __get_result raise self._exception File "/usr/lib/python3.8/concurrent/futures/thread.py", line 57, in run result = self.fn(*self.args, **self.kwargs) File "/home/cat/Code/rknn-multi-threaded/func.py", line 208, in myFunc input1_data = outputs[1].reshape([3, -1]+list(outputs[1].shape[-2:])) IndexError: list index out of range W RKNN: [18:07:19.433] Output(1304): size_with_stride larger than model origin size, if need run OutputOperator in NPU, please call rknn_create_memory using size_with_stride.
模型训练用的是从yolov5官方克隆下来的v7.0版本,使用默认export.py 导出torch模型后使用rknn_model_zoo中的model/CV/objection/yolo/RKNN_model_convert文件下的convert.sh文件进行转换
报错原因似乎是size不对?
大佬有空能不能指点一下
在firefly的RK3588开发板上,运行python的demo,帧率只有4,5帧,读取一帧视频流就快200ms了,博主知道咋结局这个问题嘛?
错误信息如下,求大佬指点,用的是项目自带的模型,板子是orange pi 5 plus
E Catch exception when setting inputs.
E Catch exception when setting inputs.
E Traceback (most recent call last):
File "/usr/local/lib/python3.10/dist-packages/rknnlite/api/rknn_lite.py", line 200, in inference
self.rknn_runtime.set_inputs(inputs, data_type, data_format, inputs_pass_through=inputs_pass_through)
File "rknnlite/api/rknn_runtime.py", line 1067, in rknnlite.api.rknn_runtime.RKNNRuntime.set_inputs
Exception: The input[0] need 4dims input, but 3dims input buffer feed.
E Traceback (most recent call last):
File "/usr/local/lib/python3.10/dist-packages/rknnlite/api/rknn_lite.py", line 200, in inference
self.rknn_runtime.set_inputs(inputs, data_type, data_format, inputs_pass_through=inputs_pass_through)
File "rknnlite/api/rknn_runtime.py", line 1067, in rknnlite.api.rknn_runtime.RKNNRuntime.set_inputs
Exception: The input[0] need 4dims input, but 3dims input buffer feed.
E Catch exception when setting inputs.
E Traceback (most recent call last):
File "/usr/local/lib/python3.10/dist-packages/rknnlite/api/rknn_lite.py", line 200, in inference
self.rknn_runtime.set_inputs(inputs, data_type, data_format, inputs_pass_through=inputs_pass_through)
File "rknnlite/api/rknn_runtime.py", line 1067, in rknnlite.api.rknn_runtime.RKNNRuntime.set_inputs
Exception: The input[0] need 4dims input, but 3dims input buffer feed.
E Catch exception when setting inputs.
E Traceback (most recent call last):
File "/usr/local/lib/python3.10/dist-packages/rknnlite/api/rknn_lite.py", line 200, in inference
self.rknn_runtime.set_inputs(inputs, data_type, data_format, inputs_pass_through=inputs_pass_through)
File "rknnlite/api/rknn_runtime.py", line 1067, in rknnlite.api.rknn_runtime.RKNNRuntime.set_inputs
Exception: The input[0] need 4dims input, but 3dims input buffer feed.
E Catch exception when setting inputs.
E Traceback (most recent call last):
File "/usr/local/lib/python3.10/dist-packages/rknnlite/api/rknn_lite.py", line 200, in inference
self.rknn_runtime.set_inputs(inputs, data_type, data_format, inputs_pass_through=inputs_pass_through)
File "rknnlite/api/rknn_runtime.py", line 1067, in rknnlite.api.rknn_runtime.RKNNRuntime.set_inputs
Exception: The input[0] need 4dims input, but 3dims input buffer feed.
Traceback (most recent call last):
File "/rknn-multi-threaded/main.py", line 35, in
frame, flag = pool.get()
File "/rknn-multi-threaded/rknnpool.py", line 54, in get
return fut.result(), True
File "/usr/lib/python3.10/concurrent/futures/_base.py", line 451, in result
return self.__get_result()
File "/usr/lib/python3.10/concurrent/futures/_base.py", line 403, in __get_result
raise self._exception
File "/usr/lib/python3.10/concurrent/futures/thread.py", line 58, in run
result = self.fn(*self.args, **self.kwargs)
File "/rknn-multi-threaded/func.py", line 207, in myFunc
input0_data = outputs[0].reshape([3, -1]+list(outputs[0].shape[-2:]))
TypeError: 'NoneType' object is not subscriptable
root@orangepi5plus:/rknn-multi-threaded#
在运行build-linux_RK3588.sh时报错
/usr/local/lib/libopencv_stitching.so.4.9.0: error adding symbols: 文件格式错误
修改CMkaelist.txt中OpenCV的路径之后报同样错,OpenCV版本为自己手动安装为4.9.0,请问应该如何修改呢
hi @leafqycc , do you try to add trackers like DeepSort? when I infer my model yolov6 + DeepSort, the final result will lag " TPEs + 1" frames. I print the detetction result and tracking results, then I find the detection result of "TPEs + 2" frame is same as the first frame. This leads to the final error. But I don' t know how to solve it.
您好,我设置并发数量>1 的时候就会出现报错
E RKNN: [06:51:01.403] failed to submit!, op id: 1, op name: Conv:Conv_0, flags: 0x5, task start: 0, task number: 170, run task counter: 0, int status: 0, please try updating to the latest version of the toolkit2 and runtime from: https://eyun.baidu.com/s/3eTDMk6Y (PWD: rknn)
同时查看NPU 使用情况会发现 他并不是使用多个 NPU, 而是单个NPU 100%
请问应该如何解决呢?
Hi, Very nice work and I am impressed by the result on this small RK3588 Sbc. What would be the simplest way to add a png mask.png file to perform the detecting only in the unmaked area and display the final result on the full video?
python推理yolov8s 发现不管是9线程还是6线程 npu占用率始终在80以下,改动了Func后处理部分其他代码均未改动,大佬有大概思路知道问题所在吗
W RKNN: [03:07:58.718] Output(output0): size_with_stride larger than model origin size, if need run OutputOperator in NPU, please call rknn_create_memory using size_with_stride.
W RKNN: [03:07:58.718] Output(283): size_with_stride larger than model origin size, if need run OutputOperator in NPU, please call rknn_create_memory using size_with_stride.
W RKNN: [03:07:58.718] Output(285): size_with_stride larger than model origin size, if need run OutputOperator in NPU, please call rknn_create_memory using size_with_stride.
W RKNN: [03:07:58.751] Output(output0): size_with_stride larger than model origin size, if need run OutputOperator in NPU, please call rknn_create_memory using size_with_stride.
W RKNN: [03:07:58.752] Output(283): size_with_stride larger than model origin size, if need run OutputOperator in NPU, please call rknn_create_memory using size_with_stride.
W RKNN: [03:07:58.752] Output(285): size_with_stride larger than model origin size, if need run OutputOperator in NPU, please call rknn_create_memory using size_with_stride.
echo "CPU0-3 可用频率:"
sudo cat /sys/devices/system/cpu/cpufreq/policy0/scaling_available_frequencies
sudo echo userspace > /sys/devices/system/cpu/cpufreq/policy0/scaling_governor
sudo echo 1992000 > /sys/devices/system/cpu/cpufreq/policy0/scaling_setspeed
echo "CPU0-3 当前频率:"
sudo cat /sys/devices/system/cpu/cpufreq/policy0/cpuinfo_cur_freq
echo "NPU 可用频率:"
sudo cat /sys/class/devfreq/fde40000.npu/available_frequencies
sudo echo userspace > /sys/class/devfreq/fde40000.npu/governor
sudo echo 900000000 > /sys/class/devfreq/fde40000.npu/userspace/set_freq
echo "NPU 当前频率:"
sudo cat /sys/class/devfreq/fde40000.npu/cur_freq
参照3588的定频脚本,对3568做了以上修改,帧率无变化。
貌似3568不支持多核,在rknnpool.py文件中都修改成了RKNNLite.NPU_CORE_AUTO
现在RKNNLite 为1.6版本,ubuntu20,
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.