主页 > 互联网  > 

rk3588部署yolov6

rk3588部署yolov6

介绍

github /airockchip/rknn-toolkit2/tree/v2.1.0

github /airockchip/rknn_model_zoo/tree/v2.1.0

rknn-toolkit2和rknn_model_zoo版本一致,都用v2.1.0

方式1

PC设备操作 搭建环境

本机PC设备(不是rk3588)下载rknn_toolkit2-2.1.0(即RKNPU2)

进入rknn-toolkit2-2.1.0\rknn-toolkit2\packages文件夹下

在终端激活环境,在终端输入

pip install -r requirements_cp38-2.1.0.txt -i pypi.tuna.tsinghua.edu /simple

然后再输入pip install rknn_toolkit2-2.1.0+708089d1-cp38-cp38-linux_x86_64.whl

然后,我们的转rknn环境就配置完成了。

模型转换onnx2rknn

参考rknn_model_zoo-2.1.0/examples/yolov6

cd rknn_model_zoo-2.1.0\examples/yolov6/python

python convert.py ../model/yolov6s.onnx rk3588

# output model will be saved as ../model/yolov6.rknn

交叉编译

docs/Compilation_Environment_Setup_Guide.md

docs/Compilation_Environment_Setup_Guide.md

查看设备架构

cat /proc/version

输出

Linux version 5.10.198 (fq@geniatech-184) (aarch64-none-linux-gnu-gcc (GNU Toolchain for the A-profile Architecture 10.3-2021.07 (arm-10.29)) 10.3.1 20210621, GNU ld (GNU Toolchain for the A-profile Architecture 10.3-2021.07 (arm-10.29)) 2.36.1.20210621) #9 SMP Thu Aug 15 08:59:29 CST 2024

rk3588架构是aarch64

下载交叉编译工具

aarch64: 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 -xJvf 文件名.tar.xz  

编译

执行权限

chmod +x build-linux.sh

cd rknn_model_zoo-2.1.0

export GCC_COMPILER=/home/aaa/myinstall/gcc-linaro-6.3.1-2017.05-x86_64_aarch64-linux-gnu/bin/aarch64-linux-gnu

./build-linux.sh -t rk3588 -a aarch64 -d yolov6

生成如下:

 

rk3588操作

将install目录新生成的文件传输到rk3588上,然后执行以下命令

cd rknn_yolov6_demo

export LD_LIBRARY_PATH=./lib

./rknn_yolov6_demo model/yolov6.rknn model/bus.jpg

会输出结果图片out.jpg

方式2

PC设备操作 搭建环境

本机PC设备(不是rk3588)下载rknn_toolkit2-2.1.0(即RKNPU2)

进入rknn-toolkit2-2.1.0\rknn-toolkit2\packages文件夹下

在终端激活环境,在终端输入

pip install -r requirements_cp38-2.1.0.txt -i pypi.tuna.tsinghua.edu /simple

然后再输入pip install rknn_toolkit2-2.1.0+708089d1-cp38-cp38-linux_x86_64.whl

然后,我们的转rknn环境就配置完成了。

模型转换onnx2rknn

参考rknn_model_zoo-2.1.0/examples/yolov6

cd rknn_model_zoo-2.1.0\examples/yolov6/python

python convert.py ../model/yolov6s.onnx rk3588

# output model will be saved as ../model/yolov6.rknn

rk3588板端操作 环境配置

需要下载rknn-toolkit2或者上传rknn-toolkit2

(1) rk3588板卡环境 rk3588的系统为Linux系统,版本为 ubuntu20.04 (2) npu2 驱动版本 连接上板卡输入 ,如图所示,npu驱动版本为 0.9.3

(3)npu环境 进入板卡系统,输入以下指令 查询 rknn server版本

strings /usr/bin/rknn_server | grep -i "rknn_server version"

查询 librknnrt.so库版本 

strings /usr/lib/librknnrt.so | grep -i "librknnrt version"  

遇到问题:没有任何输出 没有输出则下载rknn-toolkit2-master.zip

cp rknn-toolkit2-master/rknpu2/runtime/Linux/rknn_server/aarch64/usr/bin/* /usr/bin/ cp rknn-toolkit2-master/rknpu2/runtime/Linux/librknn_api/aarch64/* /usr/lib/

注意:二者的版本必须一致

若输出不一致,需要做以下处理,下载rknn_toolkit2,我使用的是rknn_toolkit2-v2.0.0版本

Release v2.0.0-beta0: Update RK3562/RK3566/RK3568/RK3576/RK3588/RV1103/RV1106 NPU SDK to V2… · airockchip/rknn-toolkit2 · GitHub

将下载下来的文件拷贝到板卡上,将下面对应文件拷贝对板卡的对应位置

sudo cp rknn-toolkit2/rknpu/runtime/Linux/rknn_server/aarch64/usr/bin/* /usr/bin/ sudo cp rknn-toolkit2/rknpu/runtime/Linux/librnkk_api/aarch64//* /usr/lib/

给rknn_server赋予可执行权限

sudo chmod +x /usr/bin/rknn_server sudo chmod +x /usr/bin/start_rknn.sh sudo chmod +x /usr/bin/restart_rknn.sh

紧接着重启服务

cd /usr/bin  

如图所示,打印出版本后,就可以用ctrl+c关闭掉

再次执行查询代码:一致!

c++部署

省去了下载交叉编译工具

rknn_model_zoo推送到板卡中,然后修改rknn_model_zoo中关于yolov6的代码

开始编译 进入rknn_model_zoo根目录下, 先给脚本权限 chmod 777 build-linux.sh 再编译 ./build-linux.sh -t rk3588 -a aarch64 -d yolov6 编译完成后会在跟目录下生成install文件夹

build文件夹

cd rknn_model_zoo-2.1.0/build/build_rknn_yolov6_demo_rk3588_linux_aarch64_Release

./rknn_yolov6_demo ../../install/rk3588_linux_aarch64/rknn_yolov6_demo/model/yolov6s.rknn ../../install/rk3588_linux_aarch64/rknn_yolov6_demo/model/bus.jpg   

成功1。  

失败:

export ./lib

./rknn_yolov6_demo model/yolov6.rknn model/bus.jpg

这个方法没有运行成功,输出

./rknn_yolov6_demo <model_path> <image_path>

./rknn_yolov6_demo ../../rk3588_linux_aarch64/rknn_yolov6_demo/model/transport_robot_20240131.rknn ../../rk3588_linux_aarch64/rknn_yolov6_demo/model/bus.jpg   

这个成功2。

当前目录下的模型和图像bus.jpg,不知为啥失败

 

标签:

rk3588部署yolov6由讯客互联互联网栏目发布,感谢您对讯客互联的认可,以及对我们原创作品以及文章的青睐,非常欢迎各位朋友分享到个人网站或者朋友圈,但转载请说明文章出处“rk3588部署yolov6