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

2024-05-12 18:28

本文主要是介绍避坑指南!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)

这篇关于避坑指南!RK3588香橙派yolov5生成RKNN模型!的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/983394

相关文章

Python+FFmpeg实现视频自动化处理的完整指南

《Python+FFmpeg实现视频自动化处理的完整指南》本文总结了一套在Python中使用subprocess.run调用FFmpeg进行视频自动化处理的解决方案,涵盖了跨平台硬件加速、中间素材处理... 目录一、 跨平台硬件加速:统一接口设计1. 核心映射逻辑2. python 实现代码二、 中间素材处

Java使用Spire.Barcode for Java实现条形码生成与识别

《Java使用Spire.BarcodeforJava实现条形码生成与识别》在现代商业和技术领域,条形码无处不在,本教程将引导您深入了解如何在您的Java项目中利用Spire.Barcodefor... 目录1. Spire.Barcode for Java 简介与环境配置2. 使用 Spire.Barco

Java 队列Queue从原理到实战指南

《Java队列Queue从原理到实战指南》本文介绍了Java中队列(Queue)的底层实现、常见方法及其区别,通过LinkedList和ArrayDeque的实现,以及循环队列的概念,展示了如何高效... 目录一、队列的认识队列的底层与集合框架常见的队列方法插入元素方法对比(add和offer)移除元素方法

Spring Boot基于 JWT 优化 Spring Security 无状态登录实战指南

《SpringBoot基于JWT优化SpringSecurity无状态登录实战指南》本文介绍如何使用JWT优化SpringSecurity实现无状态登录,提高接口安全性,并通过实际操作步骤... 目录Spring Boot 实战:基于 JWT 优化 Spring Security 无状态登录一、先搞懂:为什

Nginx概念、架构、配置与虚拟主机实战操作指南

《Nginx概念、架构、配置与虚拟主机实战操作指南》Nginx是一个高性能的HTTP服务器、反向代理服务器、负载均衡器和IMAP/POP3/SMTP代理服务器,它支持高并发连接,资源占用低,功能全面且... 目录Nginx 深度解析:概念、架构、配置与虚拟主机实战一、Nginx 的概念二、Nginx 的特点

SpringBoot集成iText快速生成PDF教程

《SpringBoot集成iText快速生成PDF教程》本文介绍了如何在SpringBoot项目中集成iText9.4.0生成PDF文档,包括新特性的介绍、环境准备、Service层实现、Contro... 目录SpringBoot集成iText 9.4.0生成PDF一、iText 9新特性与架构变革二、环

C#实现插入与删除Word文档目录的完整指南

《C#实现插入与删除Word文档目录的完整指南》在日常的办公自动化或文档处理场景中,Word文档的目录扮演着至关重要的角色,本文将深入探讨如何利用强大的第三方库Spire.Docfor.NET,在C#... 目录Spire.Doc for .NET 库:Word 文档处理利器自动化生成:C# 插入 Word

Python列表去重的9种方法终极指南

《Python列表去重的9种方法终极指南》在Python开发中,列表去重是一个常见需求,尤其当需要保留元素原始顺序时,本文为大家详细介绍了Python列表去重的9种方法,感兴趣的小伙伴可以了解下... 目录第一章:python列表去重保持顺序方法概述使用字典去重(Python 3.7+)使用集合辅助遍历性能

在SpringBoot+MyBatis项目中实现MySQL读写分离的实战指南

《在SpringBoot+MyBatis项目中实现MySQL读写分离的实战指南》在SpringBoot和MyBatis项目中实现MySQL读写分离,主要有两种思路:一种是在应用层通过代码和配置手动控制... 目录如何选择实现方案核心实现:应用层手动分离实施中的关键问题与解决方案总结在Spring Boot和

idea-java序列化serialversionUID自动生成方式

《idea-java序列化serialversionUID自动生成方式》Java的Serializable接口用于实现对象的序列化和反序列化,通过将对象转换为字节流来存储或传输,实现Serializa... 目录简介实现序列化serialVersionUID配置使用总结简介Java.io.Seripyth