[Rock Pi] (三) RK3588S开发板部署yolov5模型(官方提供的模型)

参考

rockchip rknn-tookit2
rockchip rknpu2

开发环境介绍

宿主机 HostPC: 装有ubuntu22.04(其它亦可参考)
Docker: ubuntu20.04
开发板:rock 5a with rk3588s 芯片
宿主机环境配置
[Rock Pi 1] Rock pi 开启VNC远程桌面适用于VNC+KDE桌面
[Rock Pi 2] rknn宿主机端配置之docker开发环境部署

YOLO v5 模型部署(C++版)

源码下载(宿主机端)

#根据上篇文章创建的docker虚拟机编号执行下面指令进入docker虚拟机
dengml@dengml-SER:~$ sudo docker exec -it -u dengml -w /home/dengml 612c918d5027 /bin/bash
[sudo] dengml 的密码:
dengml@612c918d5027:~$ cd /data/ubuntu/rockpi/rknn-toolkit2
#执行以下命令使能之前创建的python虚拟环境(虽然本节似乎没用到宿主机的python)
dengml@612c918d5027:/data/ubuntu/rockpi/rknn-toolkit2$ source venv/bin/activate
#获取rknpu2源代码
(venv) dengml@612c918d5027:/data/ubuntu/rockpi$ git clone https://kgithub.com/rockchip-linux/rknpu2.git

此代码中包含yolo v5等多个模型的demo,这里我们先部署官方提供的rknn模型

安装交叉编译工具(宿主机端)

ubuntu软件库里已经包含了交叉aarch64-linux交叉编译工具链,因此本着一切从简的原则可以直接使用apt 安装如下:

$ sudo apt update
$ sudo apt-get install gcc-aarch64-linux-gnu
$ sudo apt-get install g++-aarch64-linux-gnu
#安装 cmake 编译工具
$ sudo apt install cmake

源码编译(宿主机端)

$ cd rknpu2/examples/rknn_yolov5_demo
$ ./build-linux_RK3588.sh
#代码通过scp到开发板端,也可以通过winscp、samba、等其他方式
$ scp -r install/rknn_yolov5_demo_Linux [email protected]:~/work

验证(开发板端)

编译后的二进制及模型文件scp到板子后,通过ssh登陆到开发板端
develop board

#打开cp过来的目录
rock@rock-5a:~$ cd work/rknn_yolov5_demo_Linux/
#添加运行依赖的动态库
rock@rock-5a:~/work/rknn_yolov5_demo_Linux$ export LD_LIBRARY_PATH=./lib
#执行识别命令
rock@rock-5a:~/work/rknn_yolov5_demo_Linux$ ./rknn_yolov5_demo model/RK3588/yolov5s-640-640.rknn model/bus.jpg

命令执行后结果如图所示
在这里插入图片描述

运行中的log如图所示,首先在moba界面点击SFTP文档管理器界面(标记为“1”处),点击“2”处一般可以直接打开右边终端所在的目录,如果不能自动打开,就在“3”处输入我们右边终端所在的目录,如上图所示。我们可以看到生成了一个新的文件out.jpg, 即模型生成的结果。至此,C++版本的rknn模型部署完成。双击打开,结果如下
result_by_c

YOLO v5 模型部署(Python 版)

开发板安装conda 虚拟环境

加载rknn-toolkit2仓库

运行示例

猜你喜欢

转载自blog.csdn.net/weixin_43328157/article/details/132678098
pi