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

在这里插入图片描述

教学视频地址

B站

前文

关于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--------------------------------------------------------------------------------------------

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
要将YOLO模型转换为权重pt文件转换为ONNX格式,你需要按照以下步骤进行操作: 1. 首先,使用PyTorch将权重pt文件加载到模型中。 2. 然后,使用torch.onnx.export()函数将PyTorch模型转换为ONNX模型。你需要指定输入张量的形状,并将输出的ONNX模型保存到磁盘上的一个文件中。 3. 接下来,你需要使用onnx2ncnn工具将ONNX模型转换为ncnn模型。onnx2ncnn是一个开源的工具,它可以将ONNX模型转换为ncnn的二进制文件和参数文件。你需要在命令行中使用onnx2ncnn工具,并提供ONNX模型文件的路径以及输出ncnn模型文件的路径。 4. 在转换过程中,你需要注意指定模型的输入和输出张量的名称和形状。你可以在转换脚本或命令行中进行设置,确保输入和输出与原始模型的定义相匹配。 5. 最后,你可以将生成的ncnn模型部署到手机端(安卓、iOS)上进行推理和应用。 请注意,在进行模型转换的过程中,确保路径和文件名的正确性,并根据你自己的环境和需求进行相应的设置。 <span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [yolo模型转换权重pt文件onnx(1)](https://blog.csdn.net/m0_60657960/article/details/129404179)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] - *2* *3* [yolo模型转换权重onnx文件ncnn(2)](https://blog.csdn.net/m0_60657960/article/details/129405561)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值