端侧部署

1. MACE 部署流程

1)编译库文件:获取各版本对应的 so、a 文件,以及相对应的头文件。
2)yml 配置:通过 yml 文件配置模型的位置、输入输出,以此来转换为 MACE 的模型。
3)Convert 文件转换:通过 convert 和 yml 转换为 mace 文件(pb 或者 .a 格式)。
4)命令行检测模型的正确性。
5)Android 客户端部署。

2. PaddleLite 预测流程

1)准备推理模型。
2)模型优化,通过 opt 工具优化为 nb 模型。
命令如下:

chmod +x opt_mac

./opt_mac --model_file=/Users/ddz/PycharmProjects/github/paddlelite_release/inference/ch_ppocr_mobile_v2.0_cls_infer/inference.pdmodel \
--param_file=/Users/ddz/PycharmProjects/github/paddlelite_release/inference/ch_ppocr_mobile_v2.0_cls_infer/inference.pdiparams \
--optimize_out_type=naive_buffer  \
--optimize_out=./ch_ppocr_mobile_v2.0_cls_opt2.9.1

3)编译库文件:获取 so、a 文件。也可以直接在官网下载编译好的文件。
4)C++ 检测模型正确性:https://github.com/PaddlePaddle/PaddleOCR/blob/release%2F2.3/deploy/lite/readme.md
5)Android 客户端部署。

3. MNN 部署流程

3.1. 转化为MNN模型

编译转化工具文档:https://www.yuque.com/mnn/cn/cvrt_linux_mac

  1. 准备好文档中提到的 Cmake和 gcc 的环境后,进行源码编译,生成模型转化工具。
cmake .. -DMNN_BUILD_CONVERTER=true -DMNN_BUILD_SHARED_LIBS=ON && make -j4
  1. 模型转化命令:(ONNX 模型转化为 MNN 模型)
./MNNConvert -f ONNX --modelFile model.onnx --MNNModel model.mnn --bizCode biz

3.2. 编译Android推理so库

参考文档:https://mnn-docs.readthedocs.io/en/latest/compile/engine.html

  1. 准备好环境,cmake,ndk等

  2. 编译命令

cd /path/to/MNN
cd project/android
# 编译armv7动态库
mkdir build_32 && cd build_32 && ../build_32.sh
# 编译armv8动态库
mkdir build_64 && cd build_64 && ../build_64.sh

3.3 编译Android训练so库

  1. 准备dataset文件
    参考:https://mnn-docs.readthedocs.io/en/latest/train/data.htmlhttps://www.yuque.com/mnn/cn/gsdegf
  2. 打开训练开关
    追加 -DMNN_BUILD_TRAIN=ON 即可编译 MNN 训练框架

4. 参考文献

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容