#AI挑战营第二站# 基于RV1106的ONNX到RKNN模型转换实践
[复制链接]
本帖最后由 maskmoo 于 2024-4-27 14:14 编辑
为了使用 RKNPU,需要先在计算机上部署好RKNN-Toolkit2 工具,将训练好的模型转换为 RKNN 格式的模型,然后在开发板上使用 RKNN C API 或 Python API 进行推理。
rockchip的不同系列芯片使用的工具链不同,针对RV1106需要使用
目前仅支持:
- Ubuntu 18.04 python 3.6/3.7
- Ubuntu 20.04 python 3.8/3.9
- Ubuntu 22.04 python 3.10/3.11
因此本次实验是在Ubuntu 20.04 LTS系统版本的虚拟器上进行的。
1 下载 RKNN 相关仓库
-
- mkdir rv1106
-
- cd rv1106
-
- git clone https:
-
- git clone https:
-
-
-
- 解压至该目录
2 安装 RKNN-Toolk
安装conda
- 安装 Conda
- 在计算机的终端窗口中执行以下命令,检查是否安装 Conda,若已安装则可省略此节步骤。
- conda -V
-
-
- 如果没有安装 Conda,可以通过下面的链接下载 Conda 安装包:
- wget -c https://mirrors.bfsu.edu.cn/anaconda/miniconda/Miniconda3-latest-Linux-x86_64.sh
- 然后通过以下命令安装 Conda:
- chmod 777 Miniconda3-latest-Linux-x86_64.sh
- bash Miniconda3-latest-Linux-x86_64.sh
使用 Conda 创建 Python 环境
在计算机的终端窗口中,执行以下命令进入 Conda base 环境:
- source ~/miniconda3/bin/activate
-
-
-
- conda create -n toolkit2 python=3.8
-
- conda activate toolkit2
-
-
安装依赖库和 RKNN-Toolkit2
-
- cd rv1106/rknn-toolkit2/rknn-toolkit2
-
-
- pip install -r packages/requirements_cpxx.txt
-
-
-
- 本号,请根据实际数值进行替换
- pip install packages/rknn_toolkit2-x.x.x+xxxxxxxx-cpxx-cpxxlinux_x86_64.whl
验证是否安装成功
-
-
-
- from rknn.api import RKNN
3 RKNN Model Zoo
RKNN Model Zoo 提供了示例代码,旨在帮助用户快速在 Rockchip 的开发板上运行各种常 用模型,整个工程的目录结构如下:
- rknn_model_zoo
- ├── 3rdparty
- ├── datasets
- ├── examples
- ├── utils
- ├── build-android.sh
- ├── build-linux.sh
- └── ..
examples 目录包括了一些常用模型的示例,例如 MobileNet 和 YOLO 等。每个模型 示例提供了 Python 和 C/C++ 两个版本的示例代码。
- rknn_model_zoo
- ├── examples
- │ └── yolov5
- │ ├── cpp
- │ ├── model
- │ ├── python
- │ └── README.md
- └── ...
4 下载模型
进入 rknn_model_zoo/examples/yolov5/model 目录,运行 download_model.sh 脚本,该脚本 将下载一个可用的 YOLOv5 ONNX 模型,并存放在当前 model 目录下,参考命令如下:
-
- cd rv1106/rknn_model_zoo/examples/yolov5/model
-
-
- chmod +x download_model.sh
- ./download_model.sh
5 模型转换
进入 rknn_model_zoo/examples/yolov5/python 目录,运行 convert.py 脚本,该脚本将原始的 ONNX 模型转成 RKNN 模型,参考命令如下:
-
- cd Projects/rknn_model_zoo/examples/yolov5/python
-
-
- python convert.py ../model/yolov5s_relu.onnx rv1106 i8 ../model/yolov5s_relu.rkn
|