当前位置: 首页 > news >正文

ONNX转RKNN的环境搭建和部署流程

将ONNX模型转换为RKNN模型的过程记录

工具准备

rknn-toolkit:https://github.com/rockchip-linux/rknn-toolkit
rknn-toolkit2:https://github.com/airockchip/rknn-toolkit2
rknn_model_zoo:https://github.com/airockchip/rknn_model_zoo
ultralytics_yolov8:https://github.com/airockchip/ultralytics_yolov8

这里存在一个需要注意的地方,rknn-toolkit2包里包含了rknn-toolkit2,而rknn-toolkit并不包含rknn-toolkit需要的package需要手动下载rknn-toolkit-v1.7.5-packages.zip

环境安装

rknn-toolkit:
  1. 新建requirements.txt
# conda create -n rknn1 python==3.8
# pip install -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple
numpy==1.19.5
protobuf==3.13.0
flatbuffers==1.10
requests==2.22.0
psutil==5.6.2
ruamel.yaml==0.15.81
scipy==1.4.1
tqdm==4.63.0
bfloat16==1.1
opencv-python==4.5.1.48
onnx==1.10.0
onnxoptimizer==0.3.13
onnxruntime==1.9.0
torch==1.10.1
torchvision==0.11.2
tensorflow==2.6.2
mxnet==1.5.0
  1. cd到下载好的packagepip install rknn_toolkit-1.7.5-cp38-cp38-linux_x86_64.whl
rknn-toolkit2:
  1. cd rknn-toolkit2-master/rknn-toolkit2/packages/x86_64
  • pip install -r requirements_cp38-2.3.0.txt -i https://pypi.tuna.tsinghua.edu.cn/simple
  • pip install rknn_toolkit2-2.3.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl

这里基本就完成了环境搭建想要验证可以测试from rknn.api import RKNN是否成功

pt模型转为onnx

  • 最好使用官方提供的yolov8仓库进行转换,否则量化会出现问题,具体解释参考这里YOLOv8部署至RK3588就不细说了。

这里我们配置好了环境并且得到了对应任务的onnx模型

Yolov8-OBB为例

1.修改convert.py指定数据路径和保持模型名称、以及是否启动量化
在这里插入图片描述
2. 执行命令python examples/yolov8_obb/python/convert.py yolov8n-obb_rknn.onnx rk3588
在这里插入图片描述
3. 测试是否成功可以运行examples/yolov8_obb/python/yolov8_obb.py

不同工具差异

  • 支持平台不同
    rknn-toolkit:rv1109、rv1126、rk1806、rk1808
    rknn-toolkit2:rv1103、rv1106、rk2118、rk3562、rk3562、rk3566、rk3568、rk3588
  • onnx
    rknn-toolkit:onnx的opset_version<=12
    rknn-toolkit2:貌似更高一些支持到19(未验证)
    总之这里存在一些内部底层的问题,同样的模型有的型号就可以转换成功,有的就不行,应该是rknn内部对不同的平台优化也有差异导致。

板子部署

参考1
参考2


http://www.mrgr.cn/news/92258.html

相关文章:

  • eclogy后台运维笔记(写的很乱,只限个人观看)
  • 大连本地知识库的搭建--数据收集与预处理_01
  • 图论入门算法:拓扑排序(C++)
  • 安全见闻4
  • 【Docker】如何在Linux、Windows、MacOS中安装Docker
  • 登录功能的实现
  • Redis基操
  • 项目一 - 任务3:搭建Java集成开发环境IntelliJ IDEA
  • cpp中的继承
  • 如何手动设置u-boot的以太网的IP地址、子网掩码、网关信息、TFTP的服务器地址,并进行测试
  • 计算机网络与通讯知识总结
  • 部署若依微服务遇到的坑
  • Android之图片保存相册及分享图片
  • blender bpy渲染禁用日志
  • 【前端基础】Day 1 HTML
  • 6层高速PCB设计入门第1~10讲
  • 首次使用WordPress建站的经验分享(一)
  • SQL笔记#函数、谓词、CASE表达式
  • 运行测试用例
  • Orange 开源项目 - 集成阿里云大模型