瑞芯微 Rockchip rknn 模型在线预编译

news2024/11/15 10:36:27

瑞芯微 Rockchip rknn 模型在线预编译

flyfish

主机Host环境

Distributor ID:	Ubuntu
Description:	Ubuntu 22.04.2 LTS
Release:	22.04
Codename:	jammy

开发板Target环境

RV1126

一 主机连接开发板

用线连起来后,查看usb信息
在这里插入图片描述
在这里插入图片描述
没权限的提示

no permissions (user in plugdev group; are your udev rules wrong?); see [http://developer.android.com/tools/device.html]

解决方法
新建一个名为update_rv1126_usb_rule.sh的文件

update_rv1126_usb_rule.sh的内容如下

cat <<EOF > "91-rv1126-ai-cs.rules"
SUBSYSTEM=="usb", ATTR{idVendor}=="2207", MODE="0666"
EOF

sudo cp -f 91-rv1126-ai-cs.rules /etc/udev/rules.d/
sudo udevadm control --reload-rules
sudo udevadm trigger
sudo ldconfig
rm 91-rv1126-ai-cs.rules

然后执行

sudo  ./update_rv1126_usb_rule.sh

2207是通过lsusb命令查看的idVender是厂商标识
MODE是设备权限
(666) 所有用户都有文件读、写权限,也可以换成
(777) 所有用户都有读、写、执行权限。

重新插拔下
在这里插入图片描述
没有了没有权限的提示

二 在线预编译模型

# -*- coding: utf-8 -*- 

import sys

#if __name__ == '__main__':

if len(sys.argv) != 3:
    print('Usage: python {} xxx.rknn xxx.hw.rknn'.format(sys.argv[0]))
    print('Such as: python {} yolov5.rknn yolov5.pre.rknn'.format(sys.argv[0]))
    exit(1)

from rknn.api import RKNN

orig_rknn = sys.argv[1]
hw_rknn = sys.argv[2]

# Create RKNN object
rknn = RKNN()

# Load rknn model
print('--> Loading RKNN model')
ret = rknn.load_rknn(orig_rknn)
if ret != 0:
    print('Load RKNN model failed!')
    exit(ret)
print('done')

# Init runtime environment
print('--> Init runtime environment')


ret = rknn.init_runtime(target='rv1126', rknn2precompile=True)
if ret != 0:
    print('Init runtime environment failed')
    exit(ret)
print('done')

ret = rknn.export_rknn_precompile_model(hw_rknn)

rknn.release()

使用实例

python rknn_precompile.py yolov5.rknn  yolov5.pre.rknn

问题

 File "rknn/base/acuitylib/optimize/optimizer.py", line 114, in init rknn.base.acuitylib.optimize.optimizer
  File "rknn/base/acuitylib/optimize/rules/hack_for_driver/cumsum_to_conv2d.py", line 1, in init rknn.base.acuitylib.optimize.rules.hack_for_driver.cumsum_to_conv2d
  File "/home/a/anaconda3/envs/rknn/lib/python3.6/site-packages/cv2/__init__.py", line 181, in <module>
    bootstrap()
  File "/home/a/anaconda3/envs/rknn/lib/python3.6/site-packages/cv2/__init__.py", line 153, in bootstrap
    native_module = importlib.import_module("cv2")
  File "/home/a/anaconda3/envs/rknn/lib/python3.6/importlib/__init__.py", line 126, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
ImportError: /home/a/anaconda3/envs/rknn/bin/../lib/libstdc++.so.6: version `GLIBCXX_3.4.30' not found (required by /home/a/anaconda3/envs/rknn/lib/python3.6/site-packages/cv2/cv2.abi3.so)
strings /usr/lib/x86_64-linux-gnu/libstdc++.so.6 | grep GLIBCXX

GLIBCXX_3.4
GLIBCXX_3.4.1
GLIBCXX_3.4.2
GLIBCXX_3.4.3
GLIBCXX_3.4.4
GLIBCXX_3.4.5
GLIBCXX_3.4.6
GLIBCXX_3.4.7
GLIBCXX_3.4.8
GLIBCXX_3.4.9
GLIBCXX_3.4.10
GLIBCXX_3.4.11
GLIBCXX_3.4.12
GLIBCXX_3.4.13
GLIBCXX_3.4.14
GLIBCXX_3.4.15
GLIBCXX_3.4.16
GLIBCXX_3.4.17
GLIBCXX_3.4.18
GLIBCXX_3.4.19
GLIBCXX_3.4.20
GLIBCXX_3.4.21
GLIBCXX_3.4.22
GLIBCXX_3.4.23
GLIBCXX_3.4.24
GLIBCXX_3.4.25
GLIBCXX_3.4.26
GLIBCXX_3.4.27
GLIBCXX_3.4.28
GLIBCXX_3.4.29
GLIBCXX_3.4.30
GLIBCXX_DEBUG_MESSAGE_LENGTH
ln -sf /usr/lib/x86_64-linux-gnu/libstdc++.so.6 /home/a/anaconda3/envs/rknn/bin/../lib/libstdc++.so.6

测试
在这里插入图片描述
遇到的错误

 allocator.cc:107] Allocation of 1105920000 exceeds 10% of system memory

设置 rknn.config的batch_size参数

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/440283.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

微信小程序笔记(1)

小程序笔记 小程序一个页面为什么有四个文件&#xff1f; [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ZVdz4I1W-1681982063887)(C:\Users\26387\AppData\Roaming\Typora\typora-user-images\image-20230419170019877.png)] wxss&#xff1a;写页…

对学历贬值的再观察

最近在求职市场上观察到这样一个现象&#xff0c;有些4年前硕士学历就能进入的职业&#xff0c;现在都要博士了&#xff0c;不免让人有一种4年书白读的感觉。所以想再观察一下学历贬值&#xff0c;平复一下心情&#xff08;不是&#xff09;。 学历贬值的原因&#xff1a;供大于…

day1 Flappy bird项目介绍

项目介绍 功能分析&#xff1a; 1、按下空格小鸟上升&#xff0c;不按下落&#xff1b; 2、搭建小鸟需要穿过的管道&#xff1b; 3、管道自动左移和创建&#xff1b; 4、小鸟触碰到管道游戏结束&#xff1b; 知识储备&#xff1a; 1、C语言&#xff1b; 2、数据结构 -…

【Vue2源码】响应式原理

【Vue2源码】响应式原理 文章目录 【Vue2源码】响应式原理Vue响应式的核心设计思路整体流程响应式中的关键角色检测变化注意事项响应式原理数据观测重写数组7个变异方法增加__ob__属性__ob__有两大用处&#xff1a; Vue.js 基本上遵循 MVVM&#xff08;Model–View–ViewModel&…

[oeasy]python0135_变量名与下划线_dunder_声明与赋值

变量定义 回忆上次内容 变量 就是 能变的量上次研究了 变量标识符的 规则 第一个字符 应该是 字母或下划线合法的标识符可以包括 大小写字母数字下划线 还研究了字符串(str)的函数 isidentifier查询字符串 是否为合法标识符 最后发现 这个isidentifier函数有时候不好使&…

实战iOS App 重签名

熟悉iOS开发的同学都知道,iOS应用的上架流程主要分为以下几步: 创建开发者账号借助辅助工具appuploader创建证书,描述文件iTunes connect创建App打包IPA上传App Store等待审核在签名的流程中,有一个App重签名的步骤,主要针对的是一些大公司有多个App的情况,多个App一个申…

Linux设备驱动开发 - S3C2440时钟分析

By: fulinux E-mail: fulinuxsina.com Blog: https://blog.csdn.net/fulinus 喜欢的盆友欢迎点赞和订阅&#xff01; 你的喜欢就是我写作的动力&#xff01; 目录 系统框架图FLCK,HCLK,PCLK时钟源的选择 时钟体系流程流程分析驱动中的clk 系统框架图 2440是一个SOC(system on …

【网络编程】网络编程 和 Socket 套接字认识

✨个人主页&#xff1a;bit me&#x1f447; ✨当前专栏&#xff1a;Java EE初阶&#x1f447; 目 录 &#x1f3a7;一. 网络编程基础&#x1f3ba;1. 为什么需要网络编程&#xff1f;&#x1f3b7;2. 什么是网络编程&#x1f3b8;3. 网络编程中的基础概念 &#x1f3bf;二. So…

继续学习Easyx

画圆角矩形函数&#xff1a;roundrect&#xff0c;前四个参数是和矩形一样的&#xff0c;表示先画一个矩形&#xff0c;然后就是要画它的圆角了&#xff0c;要怎么画它的圆角&#xff1f;这里使用四个一样的椭圆来将它的四个角画出来&#xff0c;而在这个里面的椭圆不再需要四个…

MySQL8.0.33主从复制配置记录

目录 1. 下载2. 解压3.重命名4.创建存储数据文件5. 设置用户组并赋权6. 初始化MySQL7.配置文件8. 启动MySQL9. 设置软连接&#xff0c;并重启MySQL10. 登录并更改密码11. 开放远程连接12. 连接工具测试连接MySQL13. 开机自启配置14.从服务器配置15. 主库配置16. 从库配置17. 测…

功率MOS管烧毁,有这些原因

功率MOS管烧毁的原因以及相应的预防措施。在本文中&#xff0c;我将会介绍功率MOS管的基本结构、工作原理&#xff0c;以及可能导致功率MOS管烧毁的原因&#xff0c;并提供相应的解决方案。 1. 功率MOS管的基本结构和工作原理 功率MOS管是一种常用的功率电子器件&#xff0c;…

SpringBoot集成MyBatis-plus

SpringBoot集成MyBatis-plus 一、Mybatis-Plus简介1.简介2.特性3.官网及文档地址 二、入门案例1.开发环境2.创建数据库及表3.创建Springboot项目导入依赖4.配置application.yml5.启动类6.实体类7.添加mapper8.添加UserController9.日志配置 三、CURD1.BaseMapper2.通用Service …

事件主循环

一、事件主循环 1、事件处理主流程 libevent的事件循环主要是通过event_base_loop函数来完成&#xff0c;其主要的操作如下&#xff1a; 1、根据timer-heap中的事件最小超时时间&#xff0c;计算系统I/O demultiplexer的最大等待时间。例如&#xff1a;当底层使用的是Linux提供…

Android系统启动流程--system_server进程的启动流程

紧接上一篇zygote进程的启动流程&#xff0c;上一篇的结尾提到zygote进程中会fock出一个system_server进程&#xff0c;用于启动和管理Android系统中大部分的系统服务&#xff0c;本篇就来分析system_server进程是如何创建并运行的以及它都做了哪些重要的工作。 //文件路径&am…

Show, Attend, and Tell | a PyTorch Tutorial to Image Captioning代码调试(跑通)

Show, Attend, and Tell | a PyTorch Tutorial to Image Captioning代码调试&#xff08;跑通&#xff09; 文章目录 Show, Attend, and Tell | a PyTorch Tutorial to Image Captioning代码调试&#xff08;跑通&#xff09;前言1. 创建、安装所用的包1.1 创建环境&#xff0c…

【深度学习】OCR文本识别

OCR文字识别定义 OCR&#xff08;optical character recognition&#xff09;文字识别是指电子设备&#xff08;例如扫描仪或数码相机&#xff09;检查纸上打印的字符&#xff0c;然后用字符识别方法将形状翻译成计算机文字的过程&#xff1b;即&#xff0c;对文本资料进行扫描…

【数据结构】二叉树经典oj题

&#x1f680;write in front&#x1f680; &#x1f4dc;所属专栏&#xff1a;初阶数据结构 &#x1f6f0;️博客主页&#xff1a;睿睿的博客主页 &#x1f6f0;️代码仓库&#xff1a;&#x1f389;VS2022_C语言仓库 &#x1f3a1;您的点赞、关注、收藏、评论&#xff0c;是对…

B. Make Them Equal(Codeforces Round 673 (Div. 1))

传送门 题意&#xff1a; 思路&#xff1a; 首先判断是否能够操作达到目的&#xff1a;即所有的数都相等。 不能达到有两种情况&#xff1a; 1&#xff1a;所有数之和对n取余不等于0 2: 每个ai都是小于i的&#xff0c;例如n5, a[]{0,1,2,3,4}。因为每个数都是小于 i 的&am…

idea中的 debug 中小功能按钮都代表的意思

1.step over 步过----->一行一行的往下走,如果这一行中有方法那么不会进入该方法,直接一行一行往下走,除非你在该方法中打入断点 2.step into 步入—>可以进入方法内部,但是只能进入自己写的方法内部,而不会进入方法的类库中 3.Force step into 强制步入---->可以步…

编译livox ros driver2(ROS2、livox、rviz、ubuntu22.04)

1. 编译Livox-SDK2 官方地址&#xff1a;https://github.com/Livox-SDK/Livox-SDK2 执行一下命令&#xff1a; git clone https://github.com/Livox-SDK/Livox-SDK2.git cd ./Livox-SDK2/ mkdir build cd build cmake .. && make sudo make install 如上就安装完成了…