当前位置:   article > 正文

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

yolov8 pt转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)
  • 1
  • 2

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


onnx 转换为 ncnn

方法一

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

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

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

方法二

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


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

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

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

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/知新_RL/article/detail/863102
推荐阅读
相关标签
  

闽ICP备14008679号