paddleocr Android推理

举报
风吹稻花香 发表于 2022/05/04 22:34:40 2022/05/04
【摘要】 目录 官方Android推理示例 导出ncnn 1.导出inference 2.导出onnx 上面命令报错,后来删掉最后两个参数,导出onnx ok 3.onnx转ncnn 导出Android nb文件: 官方Android推理示例 模型路径: src/main/assets/models/ocr_v2_for...

目录

官方Android推理示例

导出ncnn

1.导出inference

2.导出onnx

上面命令报错,后来删掉最后两个参数,导出onnx ok

3.onnx转ncnn

导出Android nb文件:


官方Android推理示例

模型路径:

src/main/assets/models/ocr_v2_for_cpu 

模型:

src/main/assets/models/ocr_v2_for_cpu/ch_ppocr_mobile_v2.0_det_opt.nb

导出ncnn

步骤:先导出inference,再导出onnx,最后导出ncnn模型

1.导出inference

```
# -c 后面设置训练算法的yml配置文件
# -o 配置可选参数
# Global.pretrained_model 参数设置待转换的训练模型地址,不用添加文件后缀 .pdmodel,.pdopt或.pdparams。
# Global.save_inference_dir参数设置转换的模型将保存的地址。

python tools/export_model.py -c configs/det/ch_ppocr_v2.0/ch_det_mv3_db_v2.0.yml -o Global.pretrained_model=./ch_lite/ch_ppocr_mobile_v2.0_det_train/best_accuracy Global.save_inference_dir=./inference/det_db/
```

python tools/export_model.py -c ./configs/det/ch_ppocr_v2.0/ch_det_mv3_db_v2.0_kuaidi.yml -o Global.pretrained_model=./tools/output/ch_db_mv3_train/best_accuracy Global.save_inference_dir=./inference/det_db/



2.导出onnx

paddle2onnx --model_dir=./inference/det_db/ --model_filename=inference.pdmodel --params_filename=inference.pdiparams --save_file=./inference/det_mobile_onnx/model.onnx --opset_version=10 --input_shape_dict="{'x': [-1, 3, -1, -1]}" --enable_onnx_checker=True

上面命令报错,后来删掉最后两个参数,导出onnx ok

paddle2onnx --model_dir=./inference/det_db/ --model_filename=inference.pdmodel --params_filename=inference.pdiparams --save_file=./inference/det_mobile_onnx/model.onnx --opset_version=10

3.onnx转ncnn

下载转换工具:ncnn-20220420-windows-vs2017.zip

Releases · Tencent/ncnn · GitHub

转ncnn模型:

E:\project\xxxx\ncnn-20220420-windows-vs2017\x64\bin\onnx2ncnn model.onnx det_sim.param det_sim.bin

转成功会有det_sim.param和det_sim.bin生成

 

导出Android nb文件:

1,打开cmd 输入 pip install paddlelite 回车,安装paddlelite工具;


2,运行 main.py文件

# paddle模型导出安卓端可以运行的nb文件
#paddlehub模型库网址:https://www.paddlepaddle.org.cn/hublist
 
# 引用Paddlelite预测库
from paddlelite.lite import *
 
def convert():
    # 1. 创建opt实例
    opt = Opt()
    # 2. 指定输入模型地址
    opt.set_model_file(r"D:\project\pymodel\pandel\inference_model\__model__")
    opt.set_param_file(r"D:\project\pymodel\pandel\inference_model\__params__")
    # opt.set_model_dir(r"D:\project\nb\model\ace2p\ace2p_human_parsing")
    
    # 3. 指定转化类型: arm、x86、opencl、npu
    opt.set_valid_places("arm")
    # 4. 指定模型转化类型: naive_buffer、protobuf
    opt.set_model_type("naive_buffer")
    # 4. 输出模型地址
    opt.set_optimize_out("model_opt")
    # 5. 执行模型优化
    opt.run()
    # opt.run_optimize("", "", "model.pdparams", "arm,npu", "deepl3p_opt")
 
if __name__ == '__main__':
    print('导出模型开始....')
    convert()
    print('导出结束.....')



原文链接:https://blog.csdn.net/zdb1314/article/details/119187219

文章来源: blog.csdn.net,作者:AI视觉网奇,版权归原作者所有,如需转载,请联系作者。

原文链接:blog.csdn.net/jacke121/article/details/124564802

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。