PaddleOCR系列-训练模型并部署android手机
PaddleOCR
Awesome multilingual OCR toolkits based on PaddlePaddle (practical ultra lightweight OCR system, support 80+ languages recognition, provide data annotation and synthesis tools, support training and deployment among server, mobile, embedded and IoT devices)
项目地址:https://gitcode.com/gh_mirrors/pa/PaddleOCR
免费下载资源
·
PaddleOCR系列-训练模型并部署android手机
PaddleOCR系列-训练模型并部署android手机
1. 训练paddleocr模型
略
,参考另一篇博客:PaddleOCR系列-基础知识
2. ocr模型部署安卓手机
总体说明
- 封装为独立的Library,可以编译为aar,作为模块来调用;
- Native层以C++编写;
- Demo App以Kotlin-JVM编写;
- Android版与其它版本不同,包含了几个应用场景,包括相册识别、摄像头识别、手机IMEI号识别、摄像头身份证识别这几个功能页面;
- opencv 3.4.15,使用了opencv-mobile的代码,编译脚本在script文件夹里;
- onnxruntime动态库 1.6.0(因为当前模型不支持高版本)
2.1 AndroidStudio 2021.2.1或以上;
2.2. NDK下载,在SDK Tools中下载,版本选最新版;
2.3. cmake 3.4.1或以上,最好是3.18.1,在SDK Tools中下载;
2.4. 使用模型
下载预训练模型:模型下载,请在这个文章中下载模型、项目、源代码
使用自己的模型:略
- det模型用于分割文字块,有两种模型(server和mobile),其中server体积大且较慢但效果好,mobile体积小且较快但效果差点。
- cls模型用于检测文字方向,只有一种模型
- rec模型用于文字识别,有两种模型(server和mobile),其中server体积大且较慢但效果好,mobile体积小且较快但效果差点。
ocr_success/OcrLibrary/src/main/assets
├── ch_ppocr_mobile_v2.0_cls_infer.onnx
├── ch_PP-OCRv2_det_infer.onnx det二选一,推荐
├── ch_ppocr_server_v2.0_det_infer.onnx det二选一
├── ch_ppocr_mobile_v2.0_rec_infer.onnx rec二选一,推荐
├── ch_ppocr_server_v2.0_rec_infer.onnx rec二选一
└── ppocr_keys_v1.txt
- 代码中配置使用哪个模型
ocr/OcrLibrary/src/main/java/com/benjaminwan/ocrlibrary/OcrEngine.kt,在init方法中配置:
val ret = init(
context.assets, numThread,
"ch_PP-OCRv2_det_infer.onnx",
"ch_ppocr_mobile_v2.0_cls_infer.onnx",
"ch_ppocr_mobile_v2.0_rec_infer.onnx",
"ppocr_keys_v1.txt"
)
2.5. 下载opencv-mobile-3.4.15-android.7z
下载地址,请在这个文章中下载模型、项目、源代码, 解压后目录结构为
ocr_success/OcrLibrary/src/sdk
└── native
├── jni
└── staticlibs
2.6. 下载onnxruntime-1.6.0-android.7z
下载地址,请在这个文章中下载模型、项目、源代码
- 解压后目录结构为
ocr_success/OcrLibrary/src/main/onnx
├── ONNXConfig.cmake
├── arm64-v8a
│ └── libonnxruntime.so
├── armeabi-v7a
│ └── libonnxruntime.so
├── include
├── x86
│ └── libonnxruntime.so
└── x86_64
└── libonnxruntime.so
2.7. 编译
- 编译Release包
- mac/linux使用命令编译./gradlew assembleRelease
- win使用命令编译gradlew.bat assembleRelease
- 输出apk文件在app/build/outputs/apk
2.8. 重新编译
删除项目根目录下的如下缓存文件夹
.idea
build
app/build
OcrLibrary/.cxx
OcrLibrary/build
2.9. demo界面效果
下面为测试效果
3. 源码下载
3.1. 项目源代码结构
ocr_success
├── app # demo app
├── capture # 截图
├── common-aar # app引用的aar库
├── keystore # app签名密钥文件
├── OcrLibrary # Ocr引擎库,包含Jni和C++代码
└── scripts # 编译脚本
源码下载
下载:,请在这个文章中下载模型、项目、源代码
GitHub 加速计划 / pa / PaddleOCR
41.52 K
7.59 K
下载
Awesome multilingual OCR toolkits based on PaddlePaddle (practical ultra lightweight OCR system, support 80+ languages recognition, provide data annotation and synthesis tools, support training and deployment among server, mobile, embedded and IoT devices)
最近提交(Master分支:2 个月前 )
169ff4f0
17 小时前
93824f07
* update docs for release
* update 21 小时前
更多推荐
已为社区贡献4条内容
所有评论(0)