从零开始将onnx转为ncnn所需要的.param和.bin

首先我们需要一个onnx格式的模型文件,如果不会的话可以参考我的这篇博客.h5转onnx
在此基础上我们需要进行基础的环境配置

环境配置

CMake

具体安装可以参考这篇博客https://blog.csdn.net/m0_55048235/article/details/122277696。需要注意的是一定要选择合适版本的CMake,Windows10 64位系统记得选带win64_x64后缀的文件安装,具体可以参考这篇博客https://blog.csdn.net/qq_34303218/article/details/115727450

Protobuf编译配置

下载网址:https://github.com/protocolbuffers/protobuf/releases。下载里面的all即可。
Ps. 如果遇到这个报错:error in configuration process, project files may be invalid可以参考这篇博客:https://blog.csdn.net/u011218356/article/details/104058408
如果实在解决不了,使用最简单的方式:

vcpkg install protobuf protobuf:x64-windows

这个方法需要先安装vcpkg,可以参考这篇博客https://blog.csdn.net/weixin_44210987/article/details/110198738。然后可能遇到找不到PowerShell的问题,这时候可以将PowerShell添加到系统的环境变量来解决。

NCNN编译

到这里基本上快结束了。

git clone https://github.com/Tencent/ncnn.git

下载ncnn文件,然后开始编译,和Protobuf一样,通过CMake编译,不过注意Browse Source有一定不一样,具体看下图
在这里插入图片描述
这里不能选择cmake文件夹。然后正常来说会报错,会告诉你缺了两个,一个是Protobuf_INCULDE_DIR,另一个是Protobuf_LIBRARIES。具体可以按下面配置了,这里需要重点注意Protobuf_INCULDE_DIR不要选里面子文件夹的google\protobuf,会报错!!!
在这里插入图片描述
然后点击Builds文件夹(CMake的编译目标地址)下的ncnn.sln,然后选择INSTALL的生成即可,可以切换为Release版本。
在这里插入图片描述

实际转换

到这里基本上就可以宣告结束了。
我们首先需要找到onnx2ncnn.exe
在这里插入图片描述
然后拖到cmd里面,第一个是onnx后面两个是需要转换到的文件。

E:\EnhanceTools\ncnn-master\Builds\tools\onnx\Release\onnx2ncnn.exe facenet.onnx facenet.parma facenet.bin

Ps.如果只想文件转换可以考虑直接下载官方编译好的包,

猜你喜欢

转载自blog.csdn.net/u012421101/article/details/125250851