RK3562 NPU开发环境搭建

如何在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的开发环境也告一段落。

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

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

相关文章

DICOM CT\MR片子免费在线查看工具;python pydicom包加载查看;mayavi 3d查看

DICOM CT\MR片子免费在线查看工具 参考: https://zhuanlan.zhihu.com/p/668804209 dicom格式: DICOM(Digital Imaging and Communications in Medicine)是医学数字成像和通信的标准。它定义了医学图像(如CT、MRI、X…

蓝桥 双周赛算法赛【小白场】

博客主页:誓则盟约系列专栏:IT竞赛 专栏关注博主,后期持续更新系列文章如果有错误感谢请大家批评指出,及时修改感谢大家点赞👍收藏⭐评论✍ 蓝桥第14场小白入门赛T1/T2/T3 题目: T1照常还是送分题无需多…

ChatTTS超强的真人AI语音助手下载使用教程

简介 ChatTTS是专门为对话场景设计的文本转语音模型,支持多人同时对话,适用的场景非常丰富,比如LLM助手对话任务,视频配音、声音克隆等。同时支持英文和中文两种语言。最大的模型使用了10万小时以上的中英文数据进行训练&#xf…

AI 基于病理图像分析揭示了一种不同类型的子宫内膜癌| 文献速递-基于人工智能(AI base)的医学影像研究与疾病诊断

Title 题目 AI-based histopathology image analysisreveals a distinct subset of endometrialcancers AI 基于病理图像分析揭示了一种不同类型的子宫内膜癌。 01 文献速递介绍 子宫内膜癌(EC)有四种分子亚型,具有很强的预后价值和治疗…

如何安装Visual Studio Code

Visual Studio Code(简称 VS Code) Visual Studio Code 是一款由微软开发的免费、开源的现代化轻量级代码编辑器。 主要特点包括: 跨平台:支持 Windows、Mac 和 Linux 等主流操作系统,方便开发者在不同平台上保持一…

二叉树 初阶 总结

树的基础认知 结点的度:一个结点含有的子树的个数称为该结点的度; 如上图:A的为6 叶结点或终端结点:度为0的结点称为叶结点; 如上图:B、C、H、I...等结点为叶结点 非终端结点或分支结点:度不为0…

采用T网络反馈电路的运算放大器(运放)反相放大器

运算放大器(运放)反相放大器电路 设计目标 输入电压ViMin输入电压ViMax输出电压VoMin输出电压VoMaxBW fp电源电压Vcc电源电压Vee-2.5mV2.5mV–2.5V2.5V5kHz5V–5V 设计说明1 该设计将输入信号 Vin 反相并应用 1000V/V 或 60dB 的信号增益。具有 T 反馈网络的反相放大器可用…

【鸿蒙学习笔记】位置设置・position・绝对定位・子组件相对父组件

官方文档:位置设置 目录标题 position・绝对定位・子组件相对父组件Row Text position position・绝对定位・子组件相对父组件 正→ ↓ Row Text position Entry Component struct Loc_position {State message: string Hello World;build() {Column() {Co…

【Neural signal processing and analysis zero to hero】- 1

The basics of neural signal processing course from youtube: 传送地址 Possible preprocessing steps Signal artifacts (not) to worry about doing visual based artifact rejection so that means that before you start analyzing, you can identify those data epic…

Elasticsearch:如何选择向量数据库?

作者:来自 Elastic Elastic Platform Team 向量数据库领域是一个快速发展的领域,它正在改变我们管理和搜索数据的方式。与传统数据库不同,向量数据库以向量的形式存储和管理数据。这种独特的方法可以实现更精确、更相关的搜索,并允…

【HarmonyOS】关于鸿蒙消息推送的心得体会 (一)

【HarmonyOS】关于鸿蒙消息推送的心得体会(一) 前言 这几天调研了鸿蒙消息推送的实现方式,形成了开发设计方案,颇有体会,与各位分享。 虽然没做之前觉得很简单的小功能,貌似只需要和华为服务器通信&…

Unity XR Interaction Toolkit的安装(二)

提示:文章有错误的地方,还望诸位大神不吝指教! 文章目录 前言一、安装1.打开unity项目2.打开包管理器(PackageManage)3.导入Input System依赖包4.Interaction Layers unity设置总结 前言 安装前请注意:需要…

科技论文在线--适合练习期刊写作和快速发表科技成果论文投稿网站

中国科技论文在线这个平台可以作为练手的一个渠道,至少可以锻炼一下中文写作,或者写一些科研方向的简单综述性文章。当然,如果你的老师期末要求也是交一份科技论文在线的刊载证明的话,这篇文章可以给你提供一些经验。 中国科技论…

【Linux服务器Java环境搭建】011在linux中安装Nginx,以及停止或启动Nginx服务

系列文章目录 【Linux服务器Java环境搭建】 前言 又到了周五晚上了,最近工作上有些忙,忙于一个需求频繁变更的项目,都快吐血了,懂得都懂,哈哈,正好有时间了,继续写系列【Linux服务器Java环境搭…

linux远程主机和windows互传

一.winscp 最简单,但有时候会出现连不上 二 .MobaXterm 可以选择多种连接方式 二. 配置samba服务器 1. 新增samba用户 sudo pdbedit -L -v 查看当前samba用户 sudo smbpasswd -a guoziyi 添加samba用户 sudo smbpasswd -x guoziyi 删除samba用户 2. 编辑/etc…

加油卡APP系统开发:在线优惠加油,拓展市场

目前,我国汽车行业发展迅速,用车群体逐年扩大,因此,汽车加油市场规模呈现出了快速增长趋势。不过近年来,油价不断上涨,增加了居民的生活成本,为了节省汽车加油的支出,很多人都开始选…

使用idea创建Javaweb项目(步骤)

第一步创建Javaweb项目 File>New>Project 第二步 勾选Web Application >Next 然后就是进行起名,完成。 完成创建项目,检查是否文件齐全 配置tomcat 配置好,就能启动tomcat,显示首页 导入jar包。导入进项目&#xf…

【力扣】最小栈

🔥博客主页: 我要成为C领域大神🎥系列专栏:【C核心编程】 【计算机网络】 【Linux编程】 【操作系统】 ❤️感谢大家点赞👍收藏⭐评论✍️ 本博客致力于知识分享,与更多的人进行学习交流 设计一个支持 push…

信息系统是一个社会技术系统

一.管理信息系统定义 (1) 技术视角 信息系统是: ——由若干相互连接的部件组成的; ——对组织中的信息进行收集、处理、储存和传递的系统; ——用以支持组织制定决策和管理控制; ——还可以协助管理者与员工分析问题、可视…

【异常解决】Unable to start embedded Tomcat Nacos 启动报错

Unable to start embedded Tomcat Nacos 启动报错解决方案 一、背景描述二、原因分析三、解决方案 一、背景描述 Windows 本地启动 Nacos(2.2.0) 服务,控制台报错 Unable to start embedded Tomcat。 报错信息:Unable to start …