瑞芯微(EASY EAI)RV1126B 模型转换教程示例
1. 模型转换为RKNNEASY EAI Monster支持.rknn后缀的模型的评估及运行对于常见的tensorflow、tensroflow lite、caffe、darknet、onnx和Pytorch模型都可以通过我们提供的 toolkit 工具将其转换至 rknn 模型而对于其他框架训练出来的模型也可以先将其转至 onnx 模型再转换为 rknn 模型。模型转换操作流程入下图所示:2. 模型转换Demo下载下载百度网链接https://pan.baidu.com/s/1l5vcbS-w4dGetSdKQdhAuA?pwd1234 提取码:1234。把yolov5_model_convert.tar.bz2和quant_dataset.zip解压到虚拟机如下图所示:3. 进入模型转换工具docker环境执行以下指令把工作区域映射进docker镜像其中/home/developer/rknn-toolkit2/model_convert为工作区域/test为映射到docker镜像/dev/bus/usb:/dev/bus/usb为映射usb到docker镜像docker run -t -i --privileged -v /dev/bus/usb:/dev/bus/usb -v /home/developer/rknn-toolkit2/model_convert:/test rknn-toolkit2:2.3.2-cp38 /bin/bash执行成功如下图所示:4. 模型转换操作说明4.1 模型转换Demo目录结构模型转换测试Demo由yolov5_model_convert和quant_dataset组成。yolov5_model_convert存放软件脚本quant_dataset存放量化模型所需的数据。如下图所示:yolov5_model_convert文件夹存放以下内容如下图所示4.2 生成量化图片列表在docker环境切换到模型转换工作目录:cd /test/yolov5_model_convert如下图所示:执行gen_list.py生成量化图片列表:python gen_list.py命令行现象如下图所示:生成“量化图片列表”如下文件夹所示:4.3 onnx模型转换为rknn模型rknn_convert.py脚本默认进行int8量化操作脚本代码清单如下所示import os import urllib import traceback import time import sys import numpy as np import cv2 from rknn.api import RKNN ONNX_MODEL best.onnx RKNN_MODEL ./yolov5_mask_rv1126b.rknn DATASET ./pic_path.txt QUANTIZE_ON True if __name__ __main__: # Create RKNN object rknn RKNN(verboseTrue) if not os.path.exists(ONNX_MODEL): print(model not exist) exit(-1) # pre-process config print(-- Config model) rknn.config(mean_values[[0, 0, 0]], std_values[[255, 255, 255]], target_platform rv1126b) print(done) # Load ONNX model print(-- Loading model) ret rknn.load_onnx(modelONNX_MODEL) if ret ! 0: print(Load yolov5 failed!) exit(ret) print(done) # Build model print(-- Building model) ret rknn.build(do_quantizationQUANTIZE_ON, datasetDATASET) if ret ! 0: print(Build yolov5 failed!) exit(ret) print(done) # Export RKNN model print(-- Export RKNN model) ret rknn.export_rknn(RKNN_MODEL) if ret ! 0: print(Export yolov5rknn failed!) exit(ret) print(done)把onnx模型best.onnx放到yolov5_model_convert目录并执行rknn_convert.py脚本进行模型转换python rknn_convert.py生成模型如下图所示此模型可以在rknn环境和EASY EAI Nano-TB环境运行