RK3588 rknpu2及rknn-toolkit2使用说明

news/2024/6/15 2:19:37 标签: linux, ai, python, conda, pip
aidu_pl">

RKNN模型推理共有四种方式:
第一种是借助RKNN-Toolkit2的功能在模拟NPU上运行RKNN模型并获取推理结果(在PC端)
第二种是借助RKNN-Toolkit2的功能, 将板子与PC连接,将RKNN模型分发到指定的NPU设备进行推理并获取推理结果(网络推理在板端,脚本写在PC端)
第三种是调用RKNN SDK的C语言API进行测试代码编写,并使用交叉编译器进行编译,将得到的可执行文件拷贝到板子上运行(开发编译在PC端,运行在板端)2024.3.7已验证
第四种是在板端安装rknn-toolkit2-lite工具,使用python脚本在板端推理(代码开发运行都在板端)

安装conda
下载wget https://mirrors.bfsu.edu.cn/anaconda/archive/Anaconda3-2022.10-Linux-x86_64.sh --no-check-certificate
执行bash Anaconda3-2022.10-Linux-x86_64.sh
关闭自动进入conda,去除终端命令前(base):conda config --show | grep auto_activate_base; conda config --set auto_activate_base False(True)

PC上运行RKNN-Toolkit2(ubuntu20.04的python版本是3.8)
启动环境变量source ~/.bashrc
升级 conda update -n base -c defaults conda
新建并激活python3.6环境conda create -n rknnkit python=3.6; conda activate rknnkit(查看:conda info --envs  删除:conda remove -n rknnkit --all  关闭环境:conda deactivate)
cd rknn-toolkit2
pip install -r ./doc/requirements_cp36-1.4.0.txt
pip install torch==1.10.1 torchvision==0.11.2 -i https://pypi.tuna.tsinghua.edu.cn/simple(上一步会报错,切换源安装,后再重新执行上一步)
pip install ./packages/rknn_toolkit2-1.4.0_22dcfef4-cp36-cp36m-linux_x86_64.whl
判断是否安装成功:python; from rknn.api import RKNN
模型转换并推理:cd examples/onnx/yolov5;python test.py

开发板上运行rknn-toolkit-lite(ubuntu20.04的python版本是3.8)
bash Miniconda3-latest-Linux-aarch64.sh
conda create -n rknnlite python=3.9
conda activate rknnlite
cd rknn-toolkit2-1.3.0/rknn_toolkit_lite2/packages
pip install rknn_toolkit_lite2-1.3.0-cp39-cp39-linux_aarch64.whl
判断是否安装成功:python; from rknnlite.api import RKNNLite
推理:cd rknn-toolkit2-1.3.0/rknn_toolkit_lite2/examples/inference_with_lite;python test.py


http://www.niftyadmin.cn/n/5438457.html

相关文章

SpringBoot集成Jasypt实现敏感信息加密

项目场景: 在服务中不可避免的需要使用到一些秘钥(数据库、redis等)开发和测试环境还好,但生产如果采用明文配置将会有安全问题,jasypt是一个通用的加解密库,可以使用它。 在Spring Boot中使用Jasypt加密和…

算法练习第二十五天| 216.组合总和III、17.电话号码的字母组合

leetcode题目链接 17 216 216.组合总和III class Solution {List<Integer> path new ArrayList();List<List<Integer>> result new ArrayList();public List<List<Integer>> combinationSum3(int k, int n) {backTrace(k,n,1,0);return resu…

关于我的经历

技能 1 Java基础扎实&#xff0c;具备并发编程经验&#xff0c;熟悉JMM、线程通信线程安全、锁、原子类、阻塞队列、并发容器、线程池原理。清楚并发内容的实现原理。阅读过部分JDK源码。 深入了解JVM虚拟机&#xff1a;内存模型、GC、垃圾回收算法、以及垃圾回收器&#xff0…

UE5.1_自定义配置文件读取

UE5.1_自定义配置文件读取 读取配置文件时常规项目都会要求考虑的一个问题,然我接触过的UE类项目还真没考虑过,最近有个想法,奈何比较费劲,利用网上的教程跟进一下试试? 先基于Actor创建c++类(应该大家都会的吧),然后就是一下代码: MyConfig.h // Fill out your c…

Scala第七章节(继承和抽象类、匿名内部类的用法、类型转换的内容以及动物类案例)

Scala第七章节 章节目标 掌握继承和抽象类相关知识点掌握匿名内部类的用法了解类型转换的内容掌握动物类案例 1. 继承 1.1 概述 实际开发中, 我们发现好多类中的内容是相似的(例如: 相似的属性和行为), 每次写很麻烦. 于是我们可以把这些相似的内容提取出来单独的放到一个类…

【uniapp】表单验证不生效的解决方案

表单验证这个常见的功能&#xff0c;明明在element ui等框架已经用的很熟了&#xff0c;在uniapp开发时还是处处碰壁&#xff1f;这篇文章我会提示uni-forms表单验证的几个注意点&#xff0c;帮助大家排查。 示例 下面是一份包含普通验证和自定义验证的示例&#xff1a; <…

「Swift」AttributedString常见使用方法

前言&#xff1a;AttributedString是Apple推出的可以实现单个字符或字符范围带相应属性的字符串。属性提供了一些文本特性&#xff0c;可以让文本展示的样式更加丰富。在日常开发过程中&#xff0c;我通常用于同一个Label中包含不同的字体大小或字体颜色的样式编写中。 使用举…

力扣练习题2

2. 两数相加 给你两个 非空 的链表&#xff0c;表示两个非负的整数。它们每位数字都是按照 逆序 的方式存储的&#xff0c;并且每个节点只能存储 一位 数字。 请你将两个数相加&#xff0c;并以相同形式返回一个表示和的链表。 你可以假设除了数字 0 之外&#xff0c;这两个数…