本文主要是介绍关于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的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!