yolov5训练的pt模型,转换为rknn并部署在瑞芯微RK3588开发板

news2024/9/23 17:17:02

一、下载源码

在GitHub中搜索并下载yolov5的源代码,然后放在自己部署好的项目环境。

直接用下面的命令即可部署适合yolov5的环境,至于缺什么库,什么版本不对的可以百度查一下。

 pt模型转onnx模型

我这里已经把源码下载好并加载好了我的虚拟环境了

 注意

要把models/yolo.py文件的class Detect(nn.Module)里的前向传播函数改成下面的

注意:如果改了这里的前向传播的话那么运行export.py文件的时候还会报一个错,也是需要改的

注意:在训练时不要修改yolo.py的这段代码,训练完成后使用export.py进行模型导出转换时一定要进行修改,不然会导致后面的rknn模型转换失败! 

    def forward(self, x):
            z = []  # inference output
            for i in range(self.nl):
                x[i] = self.m[i](x[i])  # conv

            return x

 运行export.py报错的话也要把下面被我注释掉的替换红色框的,此时再运行export.py文件就不会有错了。

    if isinstance(y, list):
        shape = tuple(y[0].shape if hasattr(y[0], 'shape') else [1])
    else:
        shape = tuple(y.shape)

 

然后直接使用命令去执行,其中yolov5s.pt是权重文件,onnx是我们要输出以onnx结尾的权重文件,可以看到下面export.py文件开头里面写了,还可以输出其他文件结尾的

python export.py --weights yolov5s.pt --include onnx

 执行完就会在当前目录下就会出现一个名字和yolov5s一样的名字,但是结尾是.onnx结尾的文件

 

 onnx模型转rknn模型

 然后再转去我们之前搭配好的转rknn的环境,至于怎么搭建可以看我博客里的另一篇文章。

写文章-CSDN创作中心

我现在已经切换到部署好转rknn的环境了,看看你部署好的环境是否有rknn-toolkit2这个库。

 然后去GitHub把这个下面这个源码下载下来

地址:rockchip-linux/rknn-toolkit2 (github.com)

 下载下来并且进入到下面图片的目录下。,并且把刚才上面生成的onnx结尾的文件放到下面的目录来

 修改该目录下的test的内容

 然后直接用命令运行这个test.py文件

python test.py

 运行完之后就从原来的onnx文件结尾的转到了我们要的rknn结尾的了

  在这个test.py的main函数中可以了解到这个python文件的作用:

      【 配置——加载onnx模型—导出rknn模型——rknn模型推理——后处理——输出结果

 下面是运行出来的结果,基本和在板子上运行出来是没什么区别的,此时就可以把这个rknn文件烧录到板子上了,然后要自己写一个推理的文件。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1966606.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Redis CLI常用命令

Redis CLI常用命令 1. 设置和获取数据 SET Redis 中的数据是以键值对的形式存储的,所以需要指定一个键和一个值,键和值用空格隔开; Redis 中默认使用字符串存储数据; 3. 删除键 DEL 4. 判断键是否存在 exists 5. 查找键 KEYS 查…

环境参数自动调节设备:智能生活的绿色守护者

在当今社会,随着科技的飞速发展和人们生活水平的不断提升,对居住环境的要求也日益增高。一个舒适、健康的生活空间,不仅关乎温度、湿度、空气质量等基本环境因素,还涉及到光照、噪音控制等多个维度。为了满足这些多元化的需求&…

【Docomo】5G

我们想向您介绍第五代移动通信系统“5G”。 5G 什么是5G?支持5G的技术什么是 5G SA(独立)?实现高速率、大容量的5G新频段Docomo的“瞬时5G”使用三个宽广的新频段 什么是5G? 5G(第五代移动通信系统&#x…

技术设计评审的重要性及实战指南:让每一行代码都熠熠生辉

在这个快速迭代的软件开发时代,技术设计评审(Technical Design Review, 简称TDR)不仅是项目成功的关键一环,更是每位程序员职业生涯中不可或缺的“导航灯”。它如同一面镜子,让团队能够清晰地看到设计的全貌,及时修正偏差,确保项目朝着既定的目标稳健前行。关注【程序员…

服务器给根目录扩展磁盘(不使用lvm逻辑券)两种方式

因业务需求磁盘存储增加现在需要给/目录进行扩容,因为是云服务器直接在原有的磁盘增加了100G空间现在把新增的100G扩容到/目录分区。 有两种方法一种是使用growpart 工具扩容,一种是使用fdisk命令 使用growpart工具扩容 yum install -y cloud-utils-grow…

为什么我工作 10 年后转行当程序员?逆袭翻盘!

今天文章的主人公暂且称他为 A 君。不过 A 君有点特别,非科班,工作 10 年后才转行 iOS 程序员。今年 36 岁,目前在某行业头部企业任职前端负责人,管理 40 人的前端团队。 废话不多说,我们开始 A 君(为了描…

并发编程工具集——Future(二十七)

简介: 创建完线程池,该如何使用获取任务的执行结果(execute() 方法没有返回值)。 如何获取任务执行结果 Java 通过 ThreadPoolExecutor 提供的 3 个 submit() 方法和 1 个 FutureTask 工具类来支持获得任务执行结果的需求。三个su…

2024年哪些充电宝建议买?最建议买的四款充电宝排行榜!

在 2024 年,充电宝依然是我们生活中不可或缺的电子伴侣。然而,面对市场上众多的充电宝品牌和型号,要挑选到一款既实用又安全可靠的产品并非易事。充电宝的安全性至关重要,毕竟它与我们随身携带的电子设备紧密相连。劣质的充电宝可…

C++软件开发值得推荐的十大高效软件分析工具

目录 1、概述 2、高效软件工具介绍 2.1、窗口查看工具SPY++ 2.2、Dependency Walker 2.3、剪切板查看工具Clipbrd 2.4、GDI对象查看工具GDIView 2.5、Process Explorer 2.6、Prcoess Monitor 2.7、API Monitor 2.8、调试器Windbg 2.9、反汇编工具IDA 2.10、抓包工…

[240801] 类 C 语言 C3 是一种进化,而不是一场革命 | 趣文: find + mkdir 是图灵完备

目录 类 C 语言 C3 是一种进化,而不是一场革命C3 编程语言特征C3 设计原则安装 C3 编程语言第一个 C3 项目 趣文:find mkdir 是图灵完备 类 C 语言 C3 是一种进化,而不是一场革命 C3 是基于 C 的编程语言,它是 C 的一种演变&…

2024最新全开源付费进群系统源码二开修复版 支持易支付

内容目录 一、详细介绍二、效果展示1.部分代码2.效果图展示 三、学习资料下载 一、详细介绍 全开源付费进群系统源码,开源无加密无授权,优化电脑端访问布局,支持dai理,对接易支付通道,dai理可以配置自己易支付接口&am…

【北京迅为】《i.MX8MM嵌入式Linux开发指南》-第四篇 嵌入式Linux系统移植篇-第七十二章 内核配置屏幕驱动

i.MX8MM处理器采用了先进的14LPCFinFET工艺,提供更快的速度和更高的电源效率;四核Cortex-A53,单核Cortex-M4,多达五个内核 ,主频高达1.8GHz,2G DDR4内存、8G EMMC存储。千兆工业级以太网、MIPI-DSI、USB HOST、WIFI/BT…

ChatGPT:数据库不符合第二范式示例

ChatGPT:数据库不符合第二范式示例 这张图片为什么不符合数据库第二范式 这个表格不符合数据库第二范式(2NF)的原因如下: 1. 数据库第二范式(2NF)定义 第二范式要求一个数据库表格在满足第一范式&#xf…

【Hot100】LeetCode—169. 多数元素

目录 题目1- 思路2- 实现⭐169. 多数元素——题解思路 3- ACM 实现 题目 原题连接:169. 多数元素 1- 思路 定义两个变量 一个是 count:维护当前元素的出现次数一个是 ret :维护当前元素 思路 遍历整个数组**①如果 count 0 **&#xff…

了解对称加密与密钥协商技术

1.对称加密算法 加密的理论基础是替代和换位。替代主要用于扰乱,使用不同的位、字符或字符分组来替换原来的位、字符或字符分组。换位主要用于扩散,并不使用不同的文本来替换原来的文本,而是对原有的值进行置换,即重新排列原来的位…

Django开发企业官网

1.在本地创建一个website的文件夹,在vc里面打开文件夹 2.创建虚拟环境和安装django 终端执行命令 python -m venv venv(创建一个虚拟文件名字叫venv) venv\Scripts\activate(启动虚拟环境) pip install django(安装django&#x…

CRC的手算过程——MODBUS

软件计算结果: 原理参考下面的文章: https://www.cnblogs.com/esestt/archive/2007/08/09/848856.html https://blog.csdn.net/weixin_44256803/article/details/105805628 https://blog.csdn.net/d_leo/article/details/73572373 手算过程如下&#x…

Day27 | 贪心算法 452. 用最少数量的箭引爆气球 435. 无重叠区间 763.划分字母区间

语言 Java 452. 用最少数量的箭引爆气球 用最少数量的箭引爆气球 题目 有一些球形气球贴在一堵用 XY 平面表示的墙面上。墙面上的气球记录在整数数组 points ,其中points[i] [xstart, xend] 表示水平直径在 xstart 和 xend之间的气球。你不知道气球的确切 y 坐…

MATLAB(3)训练模型

前言 在MATLAB中训练模型通常涉及到选择一个合适的机器学习算法或深度学习框架,并准备相应的数据集。这里我将给出一个使用MATLAB的机器学习工具箱来训练一个简单的分类模型的示例代码。我们将使用逻辑回归(Logistic Regression)来分类一个简…

OpenCV 图像处理 轮廓检测基本原理

文章目录 基本原理关键函数和参数注意事项 示例代码示例效果代码详解findContours 函数原型findContours函数变体 基本原理 轮廓发现是图像处理中的一个重要步骤,用于检测物体的边界和形状。 图像预处理: 轮廓发现通常在灰度图像上进行。因此&#xff0…