基于PaddleOCR训练的新模型Android端部署全流程记录

目的

PaddleOCR的github中有对端侧部署有详细教程,但是我觉得里面讲解的还是不够详细,在我部署我自己新训练的模型的时候,还是遇到了一些问题,

1、paddlelite应该选择什么版本对新模型编译?

2、如何替换android_demo中有关paddlelite的so文件?

3、如何修改android_demo的包名?

基于以上问题,我会在本片文章中详细讲解下Android端如何部署PaddleOCR训练的新模型。

准备工作

为了不占用过多篇幅,这里不讲解Android studio如何下载和SDK配置,请自行查找资料。

1、准备一个Linux系统并安装Python 3.7或3.8

2、Android Studio 配置 NDK ,请根据 Android Studio 用户指南中的安装及配置 NDK 和 CMake 内容,预先配置好 NDK 。您可以选择最新的 NDK 版本,或者使用 Paddle Lite 预测库版本一样的 NDK。

3、下载官方提供的android_demo并导入Android studio中,然后运行会自动下载OpenCV和PaddleLite包,如下图所示:

PaddleOCR/deploy/android_demo at release/2.5 · PaddlePaddle/PaddleOCR (github.com)

部署新模型

1、确定PaddleLite版本

在android_demo下载界面确认推荐的PaddleLite版本,这里推荐的是v2.10版本

2、使用PaddleLite转换新模型为nb模型

在Linux上下载上面推荐的PaddleLite版本的代码

git clone -b release/v2.10 https://github.com/PaddlePaddle/Paddle-Lite.git

 然后切换Paddle-Lite目录编译PaddleLite

./lite/tools/build.sh build_optimize_tool

将新模型如下放置:

在Paddle-Lite目录下使用这个切换命令:

cd build.opt/lite/api/

开始转换新模型为nb模型

./opt --model_file=../../../ocr/ch_db_mv3_sfz/inference.pdmodel  --param_file=../../../ocr/ch_db_mv3_sfz/inference.pdiparams  --optimize_out=../../../ocr/ch_db_mv3_sfz/opt --valid_targets=arm  --optimize_out_type=naive_buffer

在上图中就可以看到新的nb模型了。

3、替换android studio中的老模型

将图中的nb模型替换成我们新训练的nb模型,到这一步,我们的新模型部署就完成了。

开篇问题解答

1、上述步骤中已经解答了第一个问题

2、替换android项目中的PaddleLite代码,官方已经给我们编译好了,不需要我们再进行编译直接下载即可:https://github.com/PaddlePaddle/Paddle-Lite/releases/tag/v2.10

下载armv7和armv8两个版本的

除了红框中的文件,其他都替换成我们从图中下载的,PaddlePredictor.jar和include中的代码只用替换一次,armv7或者armv8中的一个即可

3、修改包名中,native.cpp中也需要同步修改,否则项目将启动不起来。

将官方的_com_baidu_paddle_lite_demo_ocr_替换成我们自己的包名,如_com_yangy_ocr_,如下截图:

总结

相当来讲,PaddleOCR新模型Android端部署还是比较简单的,官方提供的教程都有,只是需要大量时间来学习和总结,还有一篇文章是关于如何将官方提供的代码转换成aar包,欢迎大家阅读,共同进步,感谢支持。

评论 16
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

番茄小能手

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值