rknn实现yolo5目标检测

工具链安装

环境准备

  • ubuntu22.04
  • python3.10
  • RK3576

RKNN-Toolkit2

首先从github上拉取仓库:https://github.com/airockchip/rknn-toolkit2.git

python环境

之后需要准备python环境,官方推荐的是python3.8,但是其中packeges目录下分别提供了3.63.11的安装包,所以理论上应该python3.63.11都可以,我这里使用的是python3.10.

在这里插入图片描述

安装依赖和rknn-toolkit2

进入 rknn-toolkit2 目录,根据自己的python版本,选择合适的requirements.txt 安装依赖库,并通过 wheel 包安装 RKNN-Toolkit2

pip install -r packages/requirements_cp310-2.1.0.txt
pip install packages/rknn_toolkit2-2.1.0+708089d1-cp310-cp310-linux_x86_64.whl

如果安装速度太慢,可以在最后加上-i ``https://pypi.tuna.tsinghua.edu.cn/simple,换为国内镜像源进行加速。

安装验证

执行以下命令,若没有报错,则代表 RKNN-Toolkit2 环境安装成功。

python
from rknn.api import RKNN

在这里插入图片描述

模型转换

以官方model_zoo中的YOLOv5为例,进行模型的转换及测试

准备模型

首先我们需要克隆项目:https://github.com/airockchip/rknn_model_zoo.git

之后进入到examples/yolov5/model目录下,运行 download_model.sh 脚本,将YOLOv5 ONNX 模型下载至当前 model 目录下

cd examples/yolov5/model
bash ./download_model.sh

模型转换

onnx模型准备完成后,需要将其转换为rknn格式。进入 rknn_model_zoo/examples/yolov5/python 目录下,运行 convert.py 脚本,该脚本有几个参数如下:

其中platform为板卡平台的芯片类型,dtype为模型的精度,可以看到不同精度的模型适用的平台有所区别,在设置时需要注意。

在这里插入图片描述

不同的板卡需要要选择对应的精度类型

python convert.py ../model/yolov5s_relu.onnx rk3576 i8 ../model/yolov5s_relu.rknn

转换完成后,在model目录下就会多出一个yolov5s_relu.rknn,这个就是我们推理需要用到的模型文件了。

模型推理测试

进入 rknn_model_zoo/examples/yolov5/python 目录,运行 yolov5.py 脚本,便可通过连板调试的方式在板端运行 YOLOv5 模型

在这里插入图片描述

板端推理

完整运行一个 RKNN C Demo,需要先将 C/C++ 源代码编译成可执行文件,然后将可执行文件、模型文

件、测试图片等相关文件推送到板端上,最后在板端运行可执行文件。

首先进入 rknn_model_zoo 目录下,在其中的 build-linux.sh 脚本开头添加

CC_COMPILER=${CROSS_COMPILE}

并将CCCXX修改如下

export CC=${GCC_COMPILER}gcc
export CXX=${GCC_COMPILER}g++

运行 build-linux.sh 脚本

bash ./build-linux.sh -t rk3576 -a aarch64 -d yolov5

编译完成后,会在 rknn_model_zoo 目录下产生 install 文件夹, 其中有编译好的可执行文件,以及测试图

片等相关文件。

在这里插入图片描述

将 rknn_yolov5_demo 文件夹推送到板端并执行其中的rknn_yolov5_demo可执行文件:

# 进入 rknn_yolov5_demo 目录
cd /userdata/rknn_yolov5_demo/
# 设置依赖库环境
export LD_LIBRARY_PATH=./lib
# 运行可执行文件
# 用法: ./rknn_yolov5_demo <model_path> <input_path>
./rknn_yolov5_demo model/yolov5s_relu.rknn model/bus.jpg

输出结果如下:

在这里插入图片描述

将输出图片传输至PC端进行查看:

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

zxfeng~

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

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

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

打赏作者

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

抵扣说明:

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

余额充值