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

避坑指南!RK3588香橙派yolov5生成RKNN模型!

地址1,转换模型

地址2,转换模型

地址3,解决ppa

下载k2

本文目录

  • 一、将.pt模型转为onnx模型文件。(Windows)
  • 二、将.onnx模型转为.rknn模型文件。(Linux)
  • 三、将.rknn模型部署到开发板RK3588中。(ARM)

  

一、将.pt模型转为onnx模型文件。(Windows)

前提:下载源码。源码下载地址~

  1. models/yolo.py中的Detect类下的forward函数改为下面内容:
def forward(self, x):z = []  # inference outputfor i in range(self.nl):x[i] = self.m[i](x[i])  # convreturn x
  1. 修改export.py文件
    原内容:
    在这里插入图片描述
    修改为:shape = tuple(y[0].shape) # model output shape
    在这里插入图片描述

  2. 将训练好的模型文件best.pt文件放入export.py文件的同级目录下。
    使用命令:python export.py --weights best.pt --img 640 --batch 1 --include onnx。将.pt模型转为.onnx模型。

二、将.onnx模型转为.rknn模型文件。(Linux)

  1. 为了减少不必要的麻烦,请下载Ubuntu新版本,如22.04版本。Ubuntu下载地址!
    在这里插入图片描述
  2. 安装miniconda:
wget https://repo.anaconda.com/miniconda/Miniconda3-py38_4.9.2-Linux-aarch64.sh
bash Miniconda3-py38_4.9.2-Linux-aarch64.sh

这里创建环境就不多赘述,详情查看创建环境教程地址。这里我们创建python=3.9的环境。

3.下载转换文件。 下载文件地址。
   在windows上下载好转换文件,然后移到Ubuntu系统上。然后使用命令: cd rknn-toolkit2-master/rknn-toolkit2/packages,进入packages文件夹中,安装以下文件。(因为我们安装的环境是python3.9)

**加粗样式**

使用命令:

pip install rknn_toolkit2-1.6.0+81f21f4d-cp39-cp39-linux_x86_64.whl -i https://pypi.doubanio.com/simple/
pip install -r requirements_cp39-1.6.0.txt -i https://pypi.doubanio.com/simple/

   安装完成后,使用命令:python,然后使用命令from rknn.api import RKNN,若没有报错,则说明安装成功。

   坑1:使用源时一定要使用:-i https://pypi.doubanio.com/simple/,因为其他很多源里没有一些安装的依赖文件,所以会出错,这里我也浪费了很多时间,所以一定要使用本文中的命令。避免出现一些错误。
   坑2:有时在安装时会出现错误并暂停,有时是因为下载速度的原因导致的错误,这时多执行几次安装命令即可。

  1. 将.onnx模型存放在ylov5文件夹中。
    使用命令: cd rknn-toolkit2-master/rknn-toolkit2/examples/onnx/yolov5移到到该文件夹下,将windows下生成的.onnx放到该目录下。如下所示。
    在这里插入图片描述
  2. 修改test.py文件。

在这里插入图片描述
自定义类别中,要与训练模型时的类别一致。
在这里插入图片描述

在这里插入图片描述

  1. 生成.rknn模型
    运行test.py,使用命令:python test.py。运行完成后,文件目录下生成了.rknn模型。
    在这里插入图片描述

三、将.rknn模型部署到开发板RK3588中。(ARM)

http://www.lryc.cn/news/346922.html

相关文章:

  • 算法学习笔记(Nim游戏)
  • 第13节 第二种shellcode编写实战(2)
  • 【QuikGraph】C#调用第三方库实现迪杰斯特拉(Dijkstra)算法功能
  • 查看ubuntu当前路径的剩余存储空间
  • 利用预训练模型和迁移学习打造智能狗门
  • 常用Linux命令详细总结
  • 基于SpringBoot的竹宣非遗宣传网站
  • 怎么清理服务器的C盘?
  • 动态规划----股票买卖问题(详解)
  • Unity射线检测不到MeshCollider的原因
  • ssrf初步
  • linux 安装 mangodb 并设置服务开机自启
  • Virtualbox7.0.10+Ubuntu20.04网络配置
  • 设计模式之服务定位器模式
  • 冯喜运:5.12黄金回撤继续上涨,下周原油走势分析
  • JavaEE企业级开发中常用的JDK7和JDK8的时间类
  • leetcode 2316.统计无向图中无法互相到达点对数
  • WPS二次开发系列:如何使用WPS返回的FileUri
  • python删除一个文件夹所有文件
  • overflow:hidden对解决外边距塌陷的个人理解
  • 【linux软件基础知识】- 文件的概念:Linux 中的文件
  • Context capture/Pix4Dmapper/AutoCAD/CASS/EPS软件的安装流程与使用方法;土方量计算;无人机摄影测量数据处理
  • 算法系列之堆排序实践哪家强
  • 01-win10安装Qt5
  • mybatis使用及配置相关,仅做个人记录
  • 【STM32 |新建一个工程】基于标准库(库函数)新建工程
  • C#利用ClearScript执行Javascript脚本
  • 住宅ip与数据中心ip代理的区别是什么
  • 【计算机网络】数据链路层的功能
  • 信号线电路串联电阻