导出ncnn
1.导出inference
2.导出onnx
上面命令报错,后来删掉最后两个参数,导出onnx ok
3.onnx转ncnn
官方Android PaddleLite 推理示例
模型相关资源路径
导出Android PaddleLite nb文件:
步骤:先导出inference,再导出onnx,最后导出ncnn模型
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/
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
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
下载转换工具: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生成
模型路径:
src/main/assets/models/ocr_v2_for_cpu
模型:
src/main/assets/models/ocr_v2_for_cpu/ch_ppocr_mobile_v2.0_det_opt.nb
文字识别keys_v1.txt
src/main/assets/labels/ppocr_keys_v1.txt
项目资源列表
** c++推理代码:**
在Project视图中:
官方自带demo是用PaddleLite推理的
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
版权说明 : 本文为转载文章, 版权归原作者所有 版权申明
原文链接 : https://blog.csdn.net/jacke121/article/details/124564802
内容来源于网络,如有侵权,请联系作者删除!