首页 > 其他分享 >RK3562 NPU开发环境搭建

RK3562 NPU开发环境搭建

时间:2024-07-21 10:30:32浏览次数:17  
标签:bin rknn RK3562 rknpu 如下 NPU model disk 搭建

如何在Ubuntu系统(PC)上搭建RK3562 Buildroot Linux的NPU开发环境?即电脑端运行Ubuntu系统,而RK3562板卡运行Buildroot Linux系统的情况下,搭建RK3562 NPU开发环境。

下面是相应的步骤(对应的命令):

1、下载RKNN相关仓库

在Ubuntu电脑端执行如下命令:

mkdir -p ~/bigger_disk/rknpu
cd ~/bigger_disk/rknpu
git clone https://github.com/airockchip/rknn-toolkit2.git --depth 1
git clone https://github.com/airockchip/rknn_model_zoo.git --depth 1

2、安装RKNN-Toolkit2环境

在Ubuntu电脑端执行如下命令:

wget -c https://mirrors.bfsu.edu.cn/anaconda/miniconda/Miniconda3-latest-Linux-x86_64.sh
chmod 777 Miniconda3-latest-Linux-x86_64.sh
bash Miniconda3-latest-Linux-x86_64.sh
source ~/miniconda3/bin/activate
conda create -n toolkit2 python=3.8
conda activate toolkit2
cd ~/bigger_disk/rknpu/rknn-toolkit2/rknn-toolkit2
pip install -r packages/requirements_cp38-2.0.0b0.txt
pip install packages/rknn_toolkit2-2.0.0b0+9bab5682-cp38-cp38-linux_x86_64.whl

3、安装编译工具

在Ubuntu电脑端执行如下命令:

sudo apt update
sudo apt install cmake
cd ~/bigger_disk/rknpu
wget -c https://releases.linaro.org/components/toolchain/binaries/6.3-2017.05/aarch64-linux-gnu/gcc-linaro-6.3.1-2017.05-x86_64_aarch64-linux-gnu.tar.xz
tar xvf gcc-linaro-6.3.1-2017.05-x86_64_aarch64-linux-gnu.tar.xz

4、确认板端RKNPU2环境

在RK3562板端执行如下命令:

dmesg | grep -i rknpu

执行完命令,会打印如下:

可以看到RK3562板上RKNPU驱动的版本为0.9.3,KRK建议RKNPU2驱动版本 >= 0.9.2,能满足要求。

接下来再在RK3562板端执行如下命令,确认应用层面的服务和库的版本:

strings /usr/bin/rknn_server | grep -i "rknn_server version" 
strings /usr/lib/librknnrt.so | grep -i "librknnrt version"

打印如下:

rknn_server和librknnrt.so的版本都为1.6.0,能满足目前的需求。如果版本太旧,可以将电脑与RK3562的OTG口相连,通过ADB更新板端的文件,命令如下:

cd ~/bigger_disk/rknpu/rknn-toolkit2/rknpu2
adb push runtime/Linux/rknn_server/aarch64/usr/bin/* /usr/bin
adb push runtime/Linux/librknn_api/aarch64/librknnrt.so /usr/lib
adb shell
export RKNN_SERVER_LOGLEVEL=5
chmod +x /usr/bin/rknn_server
chmod +x /usr/bin/start_rknn.sh
chmod +x /usr/bin/restart_rknn.sh
restart_rknn.sh

5、运行示例

1)Python Demo

下述命令是在电脑端执行,通过与板卡间OTG ADB通信来连板运行:

1.1)准备模型

cd ~/bigger_disk/rknpu/rknn_model_zoo/examples/yolov5/model
bash download_model.sh

1.2)模型转换

cd ~/bigger_disk/rknpu/rknn_model_zoo/examples/yolov5/python
python convert.py ../model/yolov5s_relu.onnx rk3562 i8 ../model/yolov5s_relu.rknn

1.3)运行Demo

cd ~/bigger_disk/rknpu/rknn_model_zoo/examples/yolov5/python
python yolov5.py --model_path ../model/yolov5s_relu.rknn --target rk3562 --img_show

        运行时有如下提示:

        按 rknn-toolkit2/doc/rknn_server_proxy.md at master · airockchip/rknn-toolkit2 · GitHub一文提及的如下内容:

    按上面要求,在开发板上执行netstat -n -t -u -a命令,没有5037端口,故按上述要求,更新板端ADBD工具,重启开发板后,每次连板远程跑模型前,需要板端先执行restart_rknn.sh重启RKNN服务。相应的更新adbd工具命令如下:

wget -O adbd.zip https://ftzr.zbox.filez.com/v2/delivery/data/7f0ac30dfa474892841fcb2cd29ad924/adbd.zip
unzip adbd.zip
adb push adbd/linux-aarch64/adbd /usr/bin/adbd
adb shell "chmod 755 /usr/bin/adbd"

        更新adbd后,再次运行python demo,成功运行时,会有如下打印输出:

并弹出如下图片显示出来:

2)C Demo

    准备模型和模型转换,与Python Demo一致。接下来主要是编译C例子:

cd ~/bigger_disk/rknpu/rknn_model_zoo

    修改build-linux.sh文件,在开头处添加如下内容(交叉编译链工具的路径对应的环境变量):

GCC_COMPILER=~/bigger_disk/rknpu/gcc-linaro-6.3.1-2017.05-x86_64_aarch64-linux-gnu/bin/aarch64-linux-gnu

    接下来就使用如下命令编译:

bash -e build-linux.sh -t rk356x -a aarch64 -d yolov5

    会提示如下:

 CMake 3.15 or higher is required.  You are running version 3.10.2

    需更新下cmake工具,版本较低,如下:             

wget -c https://github.com/Kitware/CMake/archive/refs/tags/v3.16.0.tar.gz
tar xvf v3.16.0.tar.gz -C CMake-3.16.0
rm -rf v3.16.0.tar.gz
cd CMake-3.16.0/
./configure
make
sudo make install

     更新CMake版本后,重新编译下C Demo,会在当前目录下生成install文件夹,接下来推到板端执行:

adb push install/rk356x_linux_aarch64/rknn_yolov5_demo /data/
adb shell
cd /data/rknn_yolov5_demo/
export LD_LIBRARY_PATH=./lib
./rknn_yolov5_demo model/yolov5s_relu.rknn model/bus.jpg

       执行后有如下打印:

    将生成的out.png文件拉到电脑上查看:

adb pull /data/rknn_yolov5_demo/out.png .

     板端拉到电脑的文件打开后显示如下:

上述操作,看到Python与C的Demo的运行状态,RKNPU的开发环境也告一段落。

标签:bin,rknn,RK3562,rknpu,如下,NPU,model,disk,搭建
From: https://blog.csdn.net/guochongxin/article/details/140547074

相关文章

  • springboot+vue前后端分离项目-项目搭建13-支付宝付款
    1.进入支付宝开放平台https://open.alipay.com/,选择网页应用开发,一路设置下一步创建完成,创建后生成、设置密钥,控制台可以看到创建的应用和沙箱环境  2.使用natapp创建公网访问地址,详见:https://www.cnblogs.com/xiexieyc/p/183126383.配置SDK,找到依赖,放到自己项目的pom......
  • 将 python 脚本的 stdin 重定向到 fifo 会导致 RuntimeError: input():lost sys.stdin
    我有这个python脚本,它的作用是充当服务器,它从重定向到fifo的stdin读取命令:test.py:whileTrue:try:line=input()exceptEOFError:breakprint(f'Received:{line}')在bash中运行命令:mkfifotestfifotest.py<testfifo......
  • 从零开始:如何使用GitHub与Hexo搭建个人博客
    搭建效果:[Dangrow的技术博客]https://tangwanying.xyz一、首先创建一个GitHub仓库如图,资源的名称可以是你的用户名+github+io(ps:因为我已经搭建过了,所以下图会出现仓库已存在的警告)二、本地安装git这里建议本地与GitHub采用SSH连接,防止经常连接不到的错误git官网连接三、......
  • ubuntu服务器网站搭建
    一、安装apache2sudoapt-getupdatesudoapt-getinstallapache2然后在地址栏输入公网IP看是否能访问到如下页面此时网站的页面在/var/www/html/目录下,修改即可二、配置多网站如果想要一个服务器配置多个网站比如jeanhua.cn和blog.jeanhua.cn(通过主机头来区分)在Ap......
  • 虚拟机centos9搭建wordpress
    利用nginx和MariaDB搭建wordpress 1.更换yum源更新系统软件包:1.1备份yum源1.1.1创建备份目录:创建一个目录来保存备份的仓库配置文件:sudomkdir-p/etc/yum.repos.d/backup1.1.2移动现有仓库配置文件到备份目录:将/etc/yum.repos.d/目录中的所有文件移动到备份......
  • 手把手教你搭建Mybatis框架
    目录Mybatis概述Mybatis环境搭建①在数据库里创建一张表②在maven项目中创建一个实体类③导入所需jar包 ④创建Mybatis核心配置文件⑤定义接口⑥ 创建sql映射文件⑦测试MybatisMybatisX插件Mybatis概述 • Mybatis原是apache的一个开源项目,起初叫iba......
  • 【开源分享】好用的在线客服系统|php在线客服系统源码 带搭建教程
    源码简介即时聊天:提供实时文本聊天功能,允许客服与客户进行即时互动,快速解答疑问或提供帮助。自动回复与机器人客服:利用AI技术实现自动回复常见问题,或配置智能机器人客服进行初步接待和筛选,减轻人工客服压力,提高响应速度。知识库管理:建立和维护产品知识库、FAQ等,方便客服人员快......
  • 详解Nacos集群搭建
    目录前言1.集群结构图 2.搭建集群2.1初始化数据库 2.2下载nacos 2.3配置Nacos2.4启动2.5nginx反向代理2.6优化前言在我们日常的开发当中,用的都是单点Nacos,这种模式,我们自己开发测试玩一玩还可以,但是到了企业的生产环境之下,你还这么玩的话,那肯定是要出......
  • Docker搭建BT-Tracker服务器贡献BT网络Tracker节点
    为畅享BT下载体验,(BT下载或做种)请添加Tracker:http://tracker.carlzeng.top:6969/announce长期自主自觉维护朗读全文Yourbrowserdoesnotsupporttheaudioelement.有什么用搭建BTTracker服务器,自建公共的BT网络Tracker节点为畅享更快BT下载体验,请给添加本站BTTrac......
  • 小白新手搭建个人网盘
    小白新手搭建个人网盘序云服务器ECS重置密码远程连接ECS实例安装OwnCloud安装Apache服务PHP运行环境NAS挂载挂载验证操作体验序阿里云文件存储NAS(ApsaraFileStorageNAS)是一个可大规模共享访问,弹性扩展的分布式文件系统。本文主要是介绍基于ECS挂载NAS实现个人网......