关于YOLO8学习(四)模型转换为ncnn

2024-05-04 12:20
文章标签 学习 模型 转换 ncnn yolo8

本文主要是介绍关于YOLO8学习(四)模型转换为ncnn,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

在这里插入图片描述

前文

关于YOLO8学习(一)环境搭建,官方检测模型部署到手机
关于YOLO8学习(二)数据集收集,处理
关于YOLO8学习(三)训练自定义的数据集

简介

本文将会讲解:
(1)如何通过PyCharm,进行pt模型的转换,最后输出一个适合手机端使用的模型

开发环境

win10、python 3.11、cmake、pytorch2.0.1+cu117、pycharm、ultralytics==8.0.134
要特别注意,不要升级到python312,目前onnx还没支持到312,所以转换了,会导致转换模型失效。
对于上述环境如何配置,请看我之前的文章。

开发过程

ncnn是腾讯出厂的一个端到端库,通过不同的模型,最终转换为ncnn可用的格式,然后进行部署。ncnn支持安卓,苹果。而且特别对cpu做了相关的优化,所以博主选择这个模型作为部署到端的方案。


前面的文章中,已经得到了一个pt模型文件了,接下来,博主将会手把手,示范如何转换一个ncnn模型,下面开始发车:

注意,使用的yolo版本,是8.0.134,不要搞错了,不然源码是不一样的。特别是8.2+的版本,源码区别比较大!
转换之前,这里是需要修改yolo的源码的,具体步骤如下:

head.py文件:
在这里插入图片描述
block.py文件:
在这里插入图片描述

修改完上面两个文件后,执行下面的代码,

model = YOLO("yolov8n.pt")
model.export(format="onnx",imgsz=320, half=True, opset=12, optimize=True)

这样,就把pt文件,转换成了onnx文件了。


onnx 转换为 ncnn

方法一

这里的方法有很多,博主直接用tc官方的onnx2ncnn.exe进行转换:
下载链接:
官方资源地址:

下载完成后,找到onnx2ncnn.exe文件,然后执行下面的指令,就可以得到两个文件,两个文件就是对应的ncnn资源文件:

onnx2ncnn.exe xxxx.onnx targetxx.param targetxx.bin

方法二

通过在线的网址进行转换链接
在这里插入图片描述


上述就是转换的整个流程,总结一下:

(1)训练模型的时候,源码文件head.py,block.py是不用修改的
(2)转换模型为onnx的时候,需要先修改源码文件,然后进行转换
(3)从onnx转换为ncnn文件的时候,可以使用官方exe转换或者是在线网站进行转换

that’s all--------------------------------------------------------------------------------------------

这篇关于关于YOLO8学习(四)模型转换为ncnn的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



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

相关文章

Java实现将byte[]转换为File对象

《Java实现将byte[]转换为File对象》这篇文章将通过一个简单的例子为大家演示Java如何实现byte[]转换为File对象,并将其上传到外部服务器,感兴趣的小伙伴可以跟随小编一起学习一下... 目录前言1. 问题背景2. 环境准备3. 实现步骤3.1 从 URL 获取图片字节数据3.2 将字节数组

Java中数组转换为列表的两种实现方式(超简单)

《Java中数组转换为列表的两种实现方式(超简单)》本文介绍了在Java中将数组转换为列表的两种常见方法使用Arrays.asList和Java8的StreamAPI,Arrays.asList方法简... 目录1. 使用Java Collections框架(Arrays.asList)1.1 示例代码1.

Python使用PIL库将PNG图片转换为ICO图标的示例代码

《Python使用PIL库将PNG图片转换为ICO图标的示例代码》在软件开发和网站设计中,ICO图标是一种常用的图像格式,特别适用于应用程序图标、网页收藏夹图标等场景,本文将介绍如何使用Python的... 目录引言准备工作代码解析实践操作结果展示结语引言在软件开发和网站设计中,ICO图标是一种常用的图像

C#集成DeepSeek模型实现AI私有化的流程步骤(本地部署与API调用教程)

《C#集成DeepSeek模型实现AI私有化的流程步骤(本地部署与API调用教程)》本文主要介绍了C#集成DeepSeek模型实现AI私有化的方法,包括搭建基础环境,如安装Ollama和下载DeepS... 目录前言搭建基础环境1、安装 Ollama2、下载 DeepSeek R1 模型客户端 ChatBo

SpringBoot快速接入OpenAI大模型的方法(JDK8)

《SpringBoot快速接入OpenAI大模型的方法(JDK8)》本文介绍了如何使用AI4J快速接入OpenAI大模型,并展示了如何实现流式与非流式的输出,以及对函数调用的使用,AI4J支持JDK8... 目录使用AI4J快速接入OpenAI大模型介绍AI4J-github快速使用创建SpringBoot

Python3脚本实现Excel与TXT的智能转换

《Python3脚本实现Excel与TXT的智能转换》在数据处理的日常工作中,我们经常需要将Excel中的结构化数据转换为其他格式,本文将使用Python3实现Excel与TXT的智能转换,需要的可以... 目录场景应用:为什么需要这种转换技术解析:代码实现详解核心代码展示改进点说明实战演练:从Excel到

0基础租个硬件玩deepseek,蓝耘元生代智算云|本地部署DeepSeek R1模型的操作流程

《0基础租个硬件玩deepseek,蓝耘元生代智算云|本地部署DeepSeekR1模型的操作流程》DeepSeekR1模型凭借其强大的自然语言处理能力,在未来具有广阔的应用前景,有望在多个领域发... 目录0基础租个硬件玩deepseek,蓝耘元生代智算云|本地部署DeepSeek R1模型,3步搞定一个应

Deepseek R1模型本地化部署+API接口调用详细教程(释放AI生产力)

《DeepseekR1模型本地化部署+API接口调用详细教程(释放AI生产力)》本文介绍了本地部署DeepSeekR1模型和通过API调用将其集成到VSCode中的过程,作者详细步骤展示了如何下载和... 目录前言一、deepseek R1模型与chatGPT o1系列模型对比二、本地部署步骤1.安装oll

Java深度学习库DJL实现Python的NumPy方式

《Java深度学习库DJL实现Python的NumPy方式》本文介绍了DJL库的背景和基本功能,包括NDArray的创建、数学运算、数据获取和设置等,同时,还展示了如何使用NDArray进行数据预处理... 目录1 NDArray 的背景介绍1.1 架构2 JavaDJL使用2.1 安装DJL2.2 基本操

Spring AI Alibaba接入大模型时的依赖问题小结

《SpringAIAlibaba接入大模型时的依赖问题小结》文章介绍了如何在pom.xml文件中配置SpringAIAlibaba依赖,并提供了一个示例pom.xml文件,同时,建议将Maven仓... 目录(一)pom.XML文件:(二)application.yml配置文件(一)pom.xml文件:首