(手把手)rknn-toolkit以及rknpu_sdk环境搭建--以rk3588为例

参考文档-----------------------------------------------

《Rockchip_RKNPU_User_Guide_RKNN_API_*.pdf》

《Rockchip_User_Guide_RKNN_Toolkit2_*.pdf》

知识点学习---------------------------------------------

1:rk3588内置6Tops的NPU,若要使用需要下载rknn sdk;

2:用户可以通过rknn sdk将算法模型转化为.rknn为后缀的模型文件;

安装conda--------------------------------------------------------------------------------------

1:首先下载 Index of /

拷贝至ubuntu

bash Anaconda3-2022.10-Linux-x86_64.sh

 

 

在安装目录下可以使用conda list查看

vim ~/.bashrv

写入 export PATH="/home/warren/anaconda3/bin:$PATH":

source ~/.bashrv

查看版本 conda --version

cnda env list 查看已创建的环境

conda list 查看已安装的包

换源

conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/conda-forge/

conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/

conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/

# 搜索时显示通道地址

conda config --set show_channel_urls yes

conda info 查看源

安装rknn-toolkit-docker方式-----------------------------------------------------------

均在pc端虚拟机运行

ubuntu18.04

准备好RK_NPU_SDK_1.3.0

1:首先ubuntu安装docker

export DOWNLOAD_URL="https://mirrors.tuna.tsinghua.edu.cn/docker-ce"

wget -O- https://get.docker.com/ | sh

若安装过docker,先删除

sudo apt-get remove docker docker-engine docker.io containerd runc

安装依赖项

sudo apt-get install apt-transport-https ca-certificates curl gnupg2 software-properties-common

信任docker的GPG公钥

curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg

添加软件仓库

echo \

  "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://mirrors.tuna.tsinghua.edu.cn/docker-ce/linux/ubuntu \

  $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

安装

sudo apt-get update

sudo apt-get install docker-ce

2:进入rknn-toolkit2-1.3.0的docker文件夹

cd /home/warren/RK_NPU_SDK_1.3.0/rknn-toolkit2-1.3.0/docker

ls

加载镜像

docker load --input rknn-toolkit2-1.3.0-cp36-docker.tar.gz

加载完成后查看当前所有docker镜像

sudo docker images

运行docker容器,其中蓝色字体为你的example里的文件红色为进入环境后名称,可以任取,紫色为toolkit版本号

sudo docker run -t -i --privileged -v /dev/bus/usb:/dev/bus/usb -v /home/warren/RK_NPU_SDK_1.3.0/rknn-toolkit2-1.3.0/examples/onnx/yolov5:/rknn_yolo5_demo rknn-toolkit2:1.3.0-cp36 /bin/bash

进入后可以看到创建的文件

 

 

在运行之前我们先改一下test.py的代码,在最后加一句

cv2.imwrite(“result.jpg”,img_1)

这样可以直接导出结果图片

python3 ./testpy

运行完成后可以看到生成了rknn模型文件以及result.jpg文件

 

至此rknn-toolkit2安装完成

rknn连板调试--------------------------------------------------

准备一根typec线连接板子和pc

ubuntu确认下载了adb,如果没有--sudo apt-get install adb

确认板子连到了虚拟机,如果红色框为灰色则表示未连接到虚拟机,可以点击一下连接到虚拟机

打开终端

adb dedvices,可以看到设备的id,表示连接成功

此时,因为我们的编译是要到容器内进行的,但adb只能在一处使用,所以需要线kill掉adb

adb kill-sever

再次进入容器

sudo docker run -t -i --privileged -v /dev/bus/usb:/dev/bus/usb -v /home/warren/RK_NPU_SDK_1.3.0/rknn-toolkit2-1.3.0/examples/onnx/yolov5:/rknn_yolo5_demo rknn-toolkit2:1.3.0-cp36 /bin/bash

此时,我们仍然需要更改test.py的代码

注意红色部分,其中9249b8a0b4e08c45是之前adb devices查看的id号

保存 运行python3 ./test.py

运行成功

rknpu2的编译以及使用----------------------------------------

1:下载交叉编译工具

git clone https://gitlab.com/firefly-linux/prebuilts/gcc/linux-x86/aarch64/gcc-buildroot-9.3.0-2020.03-x86_64_aarch64-rockchip-linux-gnu.git

2:打开~/RK_NPU_SDK_1.3.0/rknpu2_1.3.0/examples/rknn_yolov5_demo

vim build-linux_RK3588.sh添加交叉编译器的目录

./build-linux_RK3588.sh

至此编译完成;下面我们把之前转换好的rknn模型文件放到

~/RK_NPU_SDK_1.3.0/rknpu2_1.3.0/examples/rknn_yolov5_demo/model/RK3588下

回到之前目录继续./build-linux_RK3588.sh

接下来~/RK_NPU_SDK_1.3.0/rknpu2_1.3.0/examples/rknn_yolov5_demo/install目录下

把rknn_yolov5_demo_Linux拷贝到板端,新建data目录保存

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

查看

 

猜你喜欢

转载自blog.csdn.net/warren103098/article/details/130145966