首先从github上拉取仓库:https://github.com/airockchip/rknn-toolkit2.git
之后需要准备python环境,官方推荐的是python3.8,但是其中packeges目录下分别提供了3.63.11的安装包,所以理论上应该python3.63.11都可以,我这里使用的是python3.10.
进入 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}
并将CC
和CXX
修改如下
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端进行查看:
更多回帖