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

  • 11
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

stxinu

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值