MNN简介
MNN是一个轻量级的深度神经网络推理引擎,在端侧加载深度神经网络模型进行推理预测
MNN应用流程

- 训练
在开源框架上基于训练数据训练自己的模型,如TensorFlow、Pytorch等 - 转换
将其他训练框架模型转换为MNN模型。MNN当前支持Tensorflow(Lite)、Caffe和ONNX的模型转换。支持的算子 - 推理
端侧加载MNN模型进行推理。端侧运行库的编译支持平台:ios、Android、Linux/macOS/Ubuntu 、Windows;同时提供有API接口文档
应用实例
- 下载MNN代码
git clone https://github.com/alibaba/MNN.git
- 编译(此处为linux系统)
cd path/to/MNN
cd schema && ./generate.sh
mkdir build && build
cmake -DMNN_BUILD_DEMO=ON ..
make -j8
- Demo示例(姿态检测)
代码:demo/exec/multiPose.cpp
- 下载原始Tensorflow模型 pose model
- 转换工具编译,参考
- 使用模型转换工具转为MNN模型TensorFlow ->MNN
#./MNNConvert -f TF --modelFile XXX.pb --MNNModel XXX.mnn --bizCode biz
./MNNConvert -f TF --modelFile models/model-mobilenet_v1_075.pb --MNNModel models/model-mobilenet_v1_075.mnn --bizCode biz
- 执行姿态检测
./multiPose.out model.mnn input.jpg pose.png
- 结果


- 其他说明
以上的示例demo是官方给出的demo,我在linux下实现了一遍,multipose.out是官方编译生成的二进制可执行文件,源码在demo文件夹下可以找到。当我们在具体的项目中使用MNN的时候主要就是编写对应项目的main函数,当用MNN模型转换的时候遇到不支持的层时此时需要自己手写对应的算子实现,支持的算子可以在上面的链接中查看到。后面我会将我用facebox的人脸检测模型用MNN转换实现也更新上来。
Reference
https://www.yuque.com/mnn/cn/usage
本文介绍了轻量级深度神经网络推理引擎MNN,它可在端侧加载模型推理预测。阐述了其应用流程,包括在开源框架训练模型、将其他框架模型转换为MNN模型、端侧加载推理。还给出姿态检测应用实例,提及使用时编写main函数及处理不支持层的方法。
1079

被折叠的 条评论
为什么被折叠?



