按键精灵资讯站

返回资讯列表

按键精灵安卓/ios脚本开发辅助工具:yolo转换ncnn教程

2025-11-13 版权归原作者所有,如有侵权,请联系我们

转换教程:按键精灵开发文档

按键精灵安卓版:yolo函数需使用.ncnn格式模型

按键精灵iOS新版:yolo函数需使用.mlpackage或.mlmodel格式模型,未来会支持.ncnn,相同模型下苹果原生ml执行效率与性能消耗优于ncnn

准备工作

1、python v3.8或以上版本环境(通过Anaconda或Miniconda等虚拟环境管理软件可以切换python版本及环境,以避免环境冲突,非必要)

2、以上格式模型均由.pt模型转换,因此需先自行训练.pt模型

转换步骤(.pt转.ncnn)

步骤 1:安装必要依赖包

如已安装可以跳过

//安装ultralytics、pnnx、ncnn
pip install ultralytics pnnx ncnn -i https://mirrors.aliyun.com/pypi/simple/

//安装PyTorch(任选一种方式)
//方法一:使用 conda虚拟环境安装(推荐):
conda install pytorch torchvision torchaudio pytorch-cuda=11.8 -c pytorch -c nvidia
//方法二:使用 pip 安装:
pip install torch torchvision torchaudio

步骤 2:切换工作目录到模型目录

打开命令行终端输入:

//切换盘符
f:
//切换工作目录到.pt模型存放目录
cd yourModelDir

yourModelDir:为你的.pt模型存放目录,实际操作过程中替换成自己的目录,以下步骤中同义

yourModelName:为你的模型名称,实际操作过程中替换成自己的模型名称,以下步骤中同义

如未切换工作目录,后续操作需使用绝对路径

步骤 3:导出torchscript文件

yolo export model=yourModelName.pt format=torchscript

导出成功后将在工作目录yourModelDir下生成同名.torchscript 文件,即yourModelName.torchscript

步骤 4:静态形状转换

pnnx yourModelName.torchscript

转换成功后将在工作目录yourModelDir下生成:

Python模型定义文件,后续转换标准版模型需要用到:

yourModelName_pnnx.py

简化版模型文件,如只需简化版模型到这一步可以退出,yolo.setModel函数的modelType参数设置1,但会损失一定精度:

yourModelName.ncnn.bin

yourModelName.ncnn.param

步骤 5:修改 yourModelName_pnnx.py文件设置

不同yolo版本修改位置不同,以ncnn官方教程为准,以yolov8为例:

修改前:

v_165 = v_142.reshape(1, 87, 6400)
v_166 = v_153.reshape(1, 87, 1600)
v_167 = v_164.reshape(1, 87, 400)
v_168 = torch.cat((v_165, v_166, v_167), dim=2)

修改后:

v_165 = v_142.reshape(1, 87, -1).transpose(1, 2)
v_166 = v_153.reshape(1, 87, -1).transpose(1, 2)
v_167 = v_164.reshape(1, 87, -1).transpose(1, 2)
v_168 = torch.cat((v_165, v_166, v_167), dim=1)
return v_168

注意:v_165-v_168的reshape第1、第2个参数值不固定,修改前后需保持一致,即如修改前是1, 87,修改后还是保持1, 87

步骤 6:重新导出torchscript

python -c "import yourModelName_pnnx; yourModelName_pnnx.export_torchscript()"

输出成功后将在工作目录yourModelDir下生成:

yourModelName_pnnx.py.pt

步骤 7:动态形状转换

pnnx yourModelName_pnnx.py.pt inputshape=[1,3,640,640] inputshape2=[1,3,320,320]

转换成功后将在工作目录yourModelDir下生成:

标准版模型文件,yolo.setModel函数的modelType参数设置2,可以重命名为自己需要的名称,后缀名不能修改:

yourModelName_pnnx.py.ncnn.bin

yourModelName_pnnx.py.ncnn.param

按键精灵是一款专业的自动化智能领域编程软件,专注于电脑/安卓/iOS脚本开发,手机辅助工具开发。

按键手机助手下载 按键安卓版下载 按键iOS版下载 按键电脑版下载

声明:本站所有文章均为按键精灵所有,转载请注明出处: http://m.anjian.com/article_57.shtml