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

在国产芯片上实现YOLOv5/v8图像AI识别-【2.4】导出RKNN模型(第一部分:模型修改)更多内容见视频

本专栏主要是提供一种国产化图像识别的解决方案,专栏中实现了YOLOv5/v8在国产化芯片上的使用部署,并可以实现网页端实时查看。根据自己的具体需求可以直接产品化部署使用。

B站配套视频:https://www.bilibili.com/video/BV1or421T74f
在这里插入图片描述

基础背景

我们在之前的课程里面已经把如何训练和如何部署运行说了一下。接下来就是将这两块内容进行拼接,如何使用自己的数据集进行训练导出可以在RK3588上运行的模型。

还不知道如何训练的朋友可以看我之前的CSDN博客,或者看的B站视频。

在国产芯片上实现YOLOv5/v8图像AI识别-【1.3】YOLOv5的介绍及使用(训练、导出)

在国产芯片上实现YOLOv5/v8图像AI识别-【2.2】RK3588上C++开发环境准备及测试

PS:如果想要基础代码的可以私信我,我会逐一发送给大家。

模型修改和导出onnx

在之前的课程里面说过整个推理过程分为预处理、推理、后处理三个部分。对于常规使用GPU的yolo项目来说,可以把后处理放在GPU上运行,所以模型部分会有后处理部分的逻辑描述。而NPU受到性能限制,所以需要将后处理进行剥离。

所以我们需要对后处理部分模型结构进行修改。此处给出的是YOLOv5版本的模型修改方式,关于V8的修改方式会在后面课程里面说明。

知道原理后我们大致可以知道,需要修改后处理部分代码,和导出部分的代码。我们首先修改后处理部分代码。…/yolov5/models/yolo.py大概在50~60行左右的位置。
在这里插入图片描述
在forward中直接将推理的结果信息全部输出,不需要模型继续操作。

z = []  # inference output
for i in range(self.nl):z.append(self.m[i](x[i]))return z

之后修改根目录下的export.py,由于我们将后处理部分的结构进行了调整,变成了一个队列,所以我们需要将队列可以输出。
在这里插入图片描述

完成以上操作之后就可以按照之前的课程内容进行模型导出,导出成onnx模型。

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

重点提醒:在进行再次训练时候一定要还原yolo.py的修改内容否则训练会报错。

通过这种方法,我们就可以看到导出的模型产生了变化。
在这里插入图片描述

修改后的onnx模型修改到此已经完成,在下一篇博客我们会将模型从onnx量化成rknn。

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • Midjourney研究笔记丨05图生图:垫图,让机器人为你提供有效关键词
  • LabVIEW中的Reverse String函数与字节序转换
  • MySQL4多表查询 内连接
  • 支付宝开放平台竟出现一张神秘人脸!
  • uniapp(scroll-view)设置show-scrollbar无效
  • RHCA III之路---EX436-5
  • 在Quartz.Net中使用Scoped Service
  • Vue:使用html2canvas将数据导出到PDF上(含分页)
  • docker部署xxl-job
  • Shell脚本-DNS域名解析格式化
  • Element学习(布局组件、案例操作)(4)
  • Android:Uniapp平台中接入即构RTC+相芯美颜
  • Linux 下 perf 的使用
  • Kafka整合SpringBoot
  • HookNet- 用于病理全切片图像的多分辨率语义分割模型|顶刊精析·24-08-08
  • Angularjs之国际化
  • java2019面试题北京
  • JavaScript服务器推送技术之 WebSocket
  • JavaScript异步流程控制的前世今生
  • Java基本数据类型之Number
  • js算法-归并排序(merge_sort)
  • LintCode 31. partitionArray 数组划分
  • Python_OOP
  • React16时代,该用什么姿势写 React ?
  • tab.js分享及浏览器兼容性问题汇总
  • web标准化(下)
  • 阿里中间件开源组件:Sentinel 0.2.0正式发布
  • 成为一名优秀的Developer的书单
  • 第十八天-企业应用架构模式-基本模式
  • 漫谈开发设计中的一些“原则”及“设计哲学”
  • 面试总结JavaScript篇
  • 深入浅出webpack学习(1)--核心概念
  • 王永庆:技术创新改变教育未来
  • 移动端解决方案学习记录
  • 蚂蚁金服CTO程立:真正的技术革命才刚刚开始
  • 曾刷新两项世界纪录,腾讯优图人脸检测算法 DSFD 正式开源 ...
  • 智能情侣枕Pillow Talk,倾听彼此的心跳
  • ​io --- 处理流的核心工具​
  • ​iOS安全加固方法及实现
  • # Redis 入门到精通(九)-- 主从复制(1)
  • # 服务治理中间件详解:Spring Cloud与Dubbo
  • #Z0458. 树的中心2
  • (1/2)敏捷实践指南 Agile Practice Guide ([美] Project Management institute 著)
  • (10)ATF MMU转换表
  • (2015)JS ES6 必知的十个 特性
  • (4)(4.6) Triducer
  • (C语言)输入自定义个数的整数,打印出最大值和最小值
  • (笔试题)合法字符串
  • (博弈 sg入门)kiki's game -- hdu -- 2147
  • (附源码)计算机毕业设计ssm电影分享网站
  • (过滤器)Filter和(监听器)listener
  • (一)python发送HTTP 请求的两种方式(get和post )
  • (原創) 如何動態建立二維陣列(多維陣列)? (.NET) (C#)
  • (转)【Hibernate总结系列】使用举例
  • (转)母版页和相对路径