4477|2

69

帖子

0

TA的资源

一粒金砂(高级)

楼主
 

#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 相关仓库
  • # 新建 rv1106文件夹
  • mkdir rv1106
  • # 进入该目录
  • cd rv1106
  • # 下载 RKNN-Toolkit2 仓库
  • git clone https://github.com/airockchip/rknn-toolkit2.git --depth 1
  • # 下载 RKNN Model Zoo 仓库
  • git clone https://github.com/airockchip/rknn_model_zoo.git --depth 1
  • # 注意:
  • # 1.参数 --depth 1 表示只克隆最近一次 commit
  • # 2.如果遇到 git clone 失败的情况,也可以直接在 github 中下载压缩包到本地,然后
  • 解压至该目录

 

 

2 安装 RKNN-Toolk

安装conda

  • 安装 Conda
  • 在计算机的终端窗口中执行以下命令,检查是否安装 Conda,若已安装则可省略此节步骤。
  • conda -V
  • # 参考输出信息:conda 23.9.0 ,表示 conda 版本为 23.9.0
  • # 如果提示 conda: command not found,则表示未安装 conda
  • 如果没有安装 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 # miniconda3 安装的目录
  • # 成功后,命令行提示符会变成以下形式:
  • # (base) xxx@xxx:~$
  • # 通过以下命令创建名称为 toolkit2 的 Python 3.8 环境:
  • conda create -n toolkit2 python=3.8
  • #激活 toolkit2 环境,后续将在此环境中安装 RKNN-Toolkit2:
  • conda activate toolkit2
  • # 成功后,命令行提示符会变成以下形式:
  • # (toolkit2) xxx@xxx:~

 

安装依赖库和 RKNN-Toolkit2

  • # 进入 rknn-toolkit2 目录
  • cd rv1106/rknn-toolkit2/rknn-toolkit2
  • # 请根据不同的 python 版本,选择不同的 requirements 文件
  • # 例如 python3.8 对应 requirements_cp38.txt
  • pip install -r packages/requirements_cpxx.txt
  • # 安装 RKNN-Toolkit2
  • # 请根据不同的 python 版本及处理器架构,选择不同的 wheel 安装包文件:
  • # 其中 x.x.x 是 RKNN-Toolkit2 版本号,xxxxxxxx 是提交号,cpxx 是 python 版
  • 本号,请根据实际数值进行替换
  • pip install packages/rknn_toolkit2-x.x.x+xxxxxxxx-cpxx-cpxxlinux_x86_64.whl

验证是否安装成功

  • # 执行以下命令,若没有报错,则代表 RKNN-Toolkit2 环境安装成功。
  • # 进入 Python 交互模式 python
  • # 导入 RKNN 类
  • from rknn.api import RKNN

 

 

3 RKNN Model Zoo

RKNN Model Zoo 提供了示例代码,旨在帮助用户快速在 Rockchip 的开发板上运行各种常 用模型,整个工程的目录结构如下:

  • rknn_model_zoo
  • ├── 3rdparty # 第三方库
  • ├── datasets # 数据集
  • ├── examples # 示例代码
  • ├── utils # 常用方法,如文件操作,画图等
  • ├── build-android.sh # 用于目标为 Android 系统开发板的编译脚本
  • ├── build-linux.sh # 用于目标为 Linux 系统开发板的编译脚本
  • └── ..

examples 目录包括了一些常用模型的示例,例如 MobileNet 和 YOLO 等。每个模型 示例提供了 Python 和 C/C++ 两个版本的示例代码。

  • rknn_model_zoo
  • ├── examples
  • │ └── yolov5
  • │ ├── cpp # C/C++ 版本的示例代码
  • │ ├── model # 模型、测试图片等文件
  • │ ├── python # 模型转换脚本和 Python 版本的示例代码
  • │ └── README.md
  • └── ...

4 下载模型

进入 rknn_model_zoo/examples/yolov5/model 目录,运行 download_model.sh 脚本,该脚本 将下载一个可用的 YOLOv5 ONNX 模型,并存放在当前 model 目录下,参考命令如下:

  • # 进入 rknn_model_zoo/examples/yolov5/model 目录
  • cd rv1106/rknn_model_zoo/examples/yolov5/model
  • # 运行 download_model.sh 脚本,下载 yolov5 onnx 模型
  • # 例如,下载好的 onnx 模型存放路径为 model/yolov5s_relu.onnx
  • chmod +x download_model.sh
  • ./download_model.sh

 

5 模型转换
进入 rknn_model_zoo/examples/yolov5/python 目录,运行 convert.py 脚本,该脚本将原始的 ONNX 模型转成 RKNN 模型,参考命令如下:
  • # 进入 rknn_model_zoo/examples/yolov5/python 目录
  • cd Projects/rknn_model_zoo/examples/yolov5/python
  • # 运行 convert.py 脚本,将原始的 ONNX 模型转成 RKNN 模型
  • # 用法: python convert.py model_path [rv1103|rv1106] [i8/fp] [output_path]
  • python convert.py ../model/yolov5s_relu.onnx rv1106 i8 ../model/yolov5s_relu.rkn

 

 

最新回复

兄弟这个是要转化mnist的模型,不是yolo  详情 回复 发表于 2024-4-30 00:45
点赞 关注

回复
举报

260

帖子

0

TA的资源

纯净的硅(初级)

沙发
 
兄弟这个是要转化mnist的模型,不是yolo

点评

yolo都有了,mnist还会远了  详情 回复 发表于 2024-5-1 11:26
 
 

回复

69

帖子

0

TA的资源

一粒金砂(高级)

板凳
 
qiao--- 发表于 2024-4-30 00:45 兄弟这个是要转化mnist的模型,不是yolo

yolo都有了,mnist还会远吗

 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/10 下一条
有奖直播报名| TI 面向楼宇和工厂自动化行业的毫米波雷达解决方案
【内容简介】TI 60GHz IWRL6432和 IWRL1432毫米波雷达传感器如何帮助解决楼宇和工厂自动化应用中的感应难题
【直播时间】5月28日(周三)上午10:00
【直播礼品】小米双肩包、contigo水杯、胶囊伞、安克充电器

查看 »

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

 
机器人开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网 12

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表