首页 > 系统相关 >迅为RK3588在 Linux 系统中使用 NPU

迅为RK3588在 Linux 系统中使用 NPU

时间:2023-09-08 14:35:14浏览次数:42  
标签:rknn yolov5 RK3588 demo 迅为 开发板 Linux RKNN

下载 rknpu2 并拷贝到虚拟机 Ubuntu,RKNPU2 提供了访问 rk3588 芯片 NPU的高级接口。

下载地址为“iTOP-3588 开发板\02_【iTOP-RK3588 开发板】开发资料\12_NPU 使用配套资料\01_rknpu2 工具” 对于 RK3588 来说,Linux 平台 RKNN SDK 库文件为 librknnrt.so, RK3588 平台 RKNN SDK 包含了 API 使用示例程序、NPU 运行库、服务程序、文档。

迅为RK3588在 Linux 系统中使用 NPU _开发板

服务程序称为 rknn_server,是在开发板上常驻的服务进程,用于连板推理。在 RKNN SDK 中提供了 Linux 平台的 MobileNet 图像分类、SSD 目标检测、YOLOv5 目标检测示例。这些Demo 能够为客户基于 RKNN SDK 开发自己的 AI 应用提供参考。

在 rknpu2/examples 中还有很多其他例子,下面以 rknpu2/examples 下的 rknn_yolov5_demo 在 RK3588 Linux 64 位平台(buildroot 系统)上运行为例,来讲解如何快速上手运行。整体思路分为三步:

1 在虚拟机Ubuntu20.04上交叉编译 demo程序 rknn_yolov5_demo(demo已经默认是rknn, 无需进行模型转换)

2 部署到 iTOP-RK3588 开发板

3 在开发板上运行 demo

设置交叉编译器

1 安装 gcc 交叉编译器,编译器下载地址是网盘资料“iTOP-3588 开发板\02_【

iTOP-RK3588 开发板】开发资料\12_NPU 使用配套资料\03_编译所需工具\Linux”。

拷贝 gcc-arm-10.3-2021.07-x86_64-aarch64-none-linux-gnu.tar.gz 到 Ubuntu 的/opt/tool_chain 目录下,这里拷贝的路径要和作者保持一致,后面要用到交叉编译器的绝对路径。

2 解压交叉编译器压缩包

tar -vxf gcc-arm-10.3-2021.07-x86_64-aarch64-none-linux-gnu.tar.gz 解压完成后备用!

修改编译工具路径

1 因为此章节以 rknn_yolov5_demo 在 RK3588 Linux 64 位平台上运行为例,所以修改

examples/rknn_yolov5_demo/build-XXX.sh 的编译工具路径,

2 修改 build-linux_RK3588.sh 文件,将 TOOL_CHAIN 修改为

gcc-arm-10.3-2021.07-x86_64-aarch64-none-linux-gnu 的解压路径并保存修改文件,

TOOL_CHAIN=/opt/tool_chain/gcc-arm-10.3-2021.07-x86_64-aarch64-none-linux-gnu

GCC_COMPILER=$TOOL_CHAIN/bin/aarch64-none-linux-gnu

更新 RKNN 模型

RKNN 是 Rockchip NPU 平台(也就是开发板)使用的模型类型,是以.rknn 结尾的模型文件。

RKNN SDK 提 供 的 demo 程 序 中 默 认 自 带 了 RKNN 模 型 , 在 RKNN SDK 的

examples/rknn_yolov5_demo/model/RK3588/目录下,

如使用自己的模型需要转换成 rknn 模型,转换方法可以参考第 5 章节。

在得到 RKNN 模型之后,demo 程序使用 C 接口在 RK3588 平台开发应用,

3.1.4 编译 demo

1 在终端命令窗口进入 rknn_yolov5_demo 文件夹,输入以下命令:

cd examples/rknn_yolov5_demo/

2 运行 build-linux_RK3588.sh 脚本编译程序

./build-linux_RK3588.sh

3 编译完成之后,编译好的程序一般放在 install 目录

4 网 盘 中 也 提 供 了 编 译 好 的 Demo , 可 以 在 网 盘 资 料 资 料 “iTOP-3588 开 发 板 \02_ 【iTOP-RK3588 开发板】开发资料\12_NPU 使用配套资料\02_NPU demo\Linux”下载。

开发板运行 demo

1 通过 U 盘拷贝 RKNPU2 工具中的 runtime/RK3588/Linux/librknn_api/aarch64/目录下的文件到开发板的/usr/lib 目录下。

2 把编译好的程序 rknn_yolov5_demo_Linux 通过 U 盘拷贝到开发板的根目录上,开发板上要 烧写 linux 系统(buildroot)。

3 设置库文件的路径,输入以下命令:

export LD_LIBRARY_PATH=./lib

4 进入程序所在的目录,输入以下命令:

cd /rknn_yolov5_demo_Linux

5 运行程序来识别相应的图片中物体,输入以下命令:

./rknn_yolov5_demo ./model/RK3588/yolov5s-640-640.rknn ./model/bus.jpg

6 运行完生成结果图片 out.jpg,

7 拷贝生成的 out.jpg 到 U 盘中,

8 在 windows 下查看 out.jpg,

迅为RK3588在 Linux 系统中使用 NPU _交叉编译器_02


标签:rknn,yolov5,RK3588,demo,迅为,开发板,Linux,RKNN
From: https://blog.51cto.com/u_15600198/7409639

相关文章

  • 迅为RK3588在 Linux 系统中使用 NPU
     下载rknpu2并拷贝到虚拟机Ubuntu,RKNPU2提供了访问rk3588芯片NPU的高级接口。下载地址为“iTOP-3588开发板\02_【iTOP-RK3588开发板】开发资料\12_NPU使用配套资料\01_rknpu2工具”对于RK3588来说,Linux平台RKNNSDK库文件为librknnrt.so,RK3588平台RKNNSD......
  • linux 中 awk命令实现文件按列精确匹配合并
     001、[root@pc1test01]#cata.txtA:10B:5C:12[root@pc1test01]#catb.txt100A50B88K99Y42C[root@pc1test01]#awk'{if(NR==FNR){ay[$1]=$2}else{print$2,$1,ay[$2]}}'FS=":"a.txtFS=""b.txtA10010......
  • linux 中awk命令同时多多个文件指定分隔符
     001、正确做法[root@pc1test01]#lsa.txtb.txt[root@pc1test01]#cata.txtA:10B:5C:12[root@pc1test01]#catb.txt100A50B42C[root@pc1test01]#awk'{if(NR==FNR){print$2}else{print$1}}'FS=":"a.txtFS=""b......
  • linux 中 awk命令实现文件按列匹配
     001、方法1[root@pc1test01]#lsa.txtb.txt[root@pc1test01]#cata.txtA:10B:5C:12[root@pc1test01]#catb.txt100A50B42C[root@pc1test01]#awk-F"[:]"'{if(NR==FNR){ay[$1]=$2}else{print$2,$1,ay[$2]}}'a.txtb......
  • linux 中awk命令指定读入分隔符
     001、-F指定[root@pc1test01]#lsa.txt[root@pc1test01]#cata.txta:b:c3:8:kf:6:3[root@pc1test01]#awk-F":"'{print$1}'a.txta3f 002、-vFS变量指定[root@pc1test01]#lsa.txt[root@pc1test01]#cata.txta:b:c3:8:k......
  • Linux shell 环境变量 All In One
    Linuxshell环境变量AllInOne全局环境变量,systemwideenvironment系统级环境变量局部环境变量,localwideenvironment用户自定义环境变量shell的3种启动方式登录默认的交互式shell非登录的交互式shell运行脚本的非交互式shellshell的常见类型shba......
  • heijin_linux驱动笔记
    驱动程序的作用:1)向linux内核注册/注销设备号,创建/删除设备节点文件(这个操作可以分离出来),供应用程序调用。(设备节点文件中的设备号要与驱动程序申请注册的设备号一致)2)将物理地址转为虚拟地址进行设备操作,将应用程序的文件调用转为对自定义的驱动函数调用;驱动的创建:配置环境变量(......
  • Linux命令(74)之unzip
    linux命令之unzip1.unzip介绍linux命令是用来解压缩名称后缀为".zip"的文件2.unzip用法unzip[参数]filenname.zipunzip常用参数参数说明-l显示压缩文件内所包含的文件-t检查备份文件是否正确无误-v显示命令执行详细过程-q不显示命令执行过程-P<密码>使用unzip的密码选项-d......
  • linux centos 安装 openssl和httpd错误。
    一、出现如下错误;ab.o:Infunction`ssl_print_cert_info':/srv/httpd-2.4.57/support/ab.c:666:undefinedreferenceto`X509_get_version'/srv/httpd-2.4.57/support/ab.c:668:undefinedreferenceto`X509_getm_notBefore'/srv/httpd-2.4.57/support/ab.c......
  • linux命令行常用快捷键
    在Linux终端中,常见的行跳转指令和技巧:使用Ctrl键加上其他按键:Ctrl+A:将光标移至当前行的开头。Ctrl+E:将光标移至当前行的末尾。Ctrl+U:删除光标位置到行首的所有内容。Ctrl+K:删除光标位置到行尾的所有内容。Ctrl+L:清屏(清除终端上的内容,不是行内跳转)。使用Ctrl键加上左......