ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

PaddleOCR 接入 Android:从克隆仓库到出字只需四步

PaddleOCR 接入 Android:从克隆仓库到出字只需四步 PaddleOCR 接入 Android从克隆仓库到出字只需四步【免费下载链接】PaddleOCRTurn any PDF or image document into structured data for your AI. A powerful, lightweight OCR toolkit that bridges the gap between images/PDFs and LLMs. Supports 100 languages.项目地址: https://gitcode.com/GitHub_Trending/pa/PaddleOCRPaddleOCR 是百度开源的文字识别与文档解析工具包把文本检测、方向分类和文本识别串成一条流水线支持 100 多种语言。它的 Android Demo 让你把整条 OCR 流程装进手机 App离线运行不需要任何云服务。本文以仓库中的deploy/ppocr-android工程为主线讲清它的能力边界、四步跑通流程、一个具体用例以及上真机前值得调整的几项参数。检测、分类、识别三级流水线如何配合移动端 Demo 的识别流程分三段文本检测在整张图片上定位每个文本框方向分类判断文本行是否倒置或旋转先把方向摆正文本识别把裁剪后的文本行转成字符串并给出置信度。官方预训练的检测与识别模型都以 ONNX 格式提供下载后放进 App 的 assets 目录即可推理全程不依赖网络。PP-OCRv6 提供 tiny、small、medium 三档模型参数量从 1.5M 到 34.5M分别面向手机、平板和服务器场景手机上一般选 small。这一代还把 50 种语言收进同一个识别模型中英日加 46 种拉丁语种的多语言文档不需要切换模型。四步跑通 PP-OCR Android Demo克隆仓库git clone https://gitcode.com/GitHub_Trending/pa/PaddleOCR在 Android StudioLadybug 及以上JDK 17中打开deploy/ppocr-android准备模型把 PP-OCRv6 small 的检测模型放入ppocr-sdk/src/main/assets/models/det/识别模型连同inference.yml放入models/rec/编译安装执行./gradlew :app:installDebug或直接在 Android Studio 点运行出字在 Demo 里从相册选图点击运行模型图上叠加文本框下方显示识别文本和分阶段耗时。Demo 的主界面同时提供拍照识别与选取图片两个入口并支持在检测加分类加识别、检测加识别等 6 种运行模式之间切换方便单独验证某一个环节。用方向分类修正旋转文本上面这张图是仓库内置的测试素材一条旋转 270 度的文本行。走检测加分类加识别模式时方向分类阶段先把文本转正再进入识别最终输出正确朝向的文字如果只走检测加识别这行字会以侧倒状态进识别模型结果不可用。这个用例的价值在于手机拍照时用户几乎不可能保证每次拍摄角度方向分类是移动端比桌面端更刚需的一环。把 SDK 集成进自己的 App集成有两种方式把ppocr-sdk模块作为源码依赖拷进工程或者构建 AAR 后按依赖引入AAR 不传递依赖需手动补上 ONNX Runtime 1.21.1 和 OpenCV 4.5.3。API 面很小核心三步初始化PaddleOCR.create时指定 det、rec 两个模型路径以及线程数等引擎配置注意调用前要先执行OpenCVUtils.init(context)识别recognize()是挂起函数需要放在协程里调用传入 Bitmap 或图片字节释放页面销毁时调用release()否则推理引擎持有的内存不会回收。返回结果包含每条文本的text、confidence、文本框坐标以及detectionTimeMs与recognitionTimeMs两段计时可直接用于过滤低置信度结果和性能监控。真机上的耗时构成与三个调优点在 PP-OCRv6 Android demo 自带的 benchmark 中骁龙 695 级 SoC 的 GM1900 设备Android 910 次正式测量加 3 次预热一次完整流程平均约 420ms阶段平均耗时说明检测含预处理与后处理约 349ms全流程的主要耗时识别约 66ms输入是检测裁出的文本行管线开销约 6ms调度与拷贝调优优先看三个地方控制输入分辨率手机原图动辄 4000 像素以上先缩到 1080p 以内再送检测检测耗时主要取决于输入大小按机型选模型档位低端机或后台批量识别用 tiny 档前台交互用 small 档对齐线程数线程数与 SoC 大核数量一致通常最优SDK 默认 4 线程改完跑一遍run_benchmark.sh验证而不是凭感觉调。两类常见问题与排查方向加载模型报错或识别无任何输出检查 assets 中 det 是否有inference.onnx、rec 是否同时有inference.onnx与inference.yml确认OpenCVUtils.init(context)是否在create之前执行识别慢且卡顿多为输入图未压缩、线程数配置不当先缩图再调numThreads漏检或出现杂框适当上调detBoxThresh默认 0.6过滤低分候选框倒置文本读不出来则确认流程里包含了方向分类。集成之后还能往哪走替换模型文件即可扩展语种PP-OCRv6 的 50 语种统一模型已经把多语言文档支持做成了配置问题。识别结果转成 Markdown 或 JSON 后可以直接喂给 LLM 做 RAG这是仓库里 PaddleOCR-VL 与 PP-StructureV3 文档解析管线的方向。SDK 的分阶段计时也可以接进 CI每次换机型先跑一轮 benchmark 再上架。建议的第一步是把仓库 clone 下来用内置素材把 demo 完整跑一遍流程清楚了接入自己的 App 只是搬代码的事。【免费下载链接】PaddleOCRTurn any PDF or image document into structured data for your AI. A powerful, lightweight OCR toolkit that bridges the gap between images/PDFs and LLMs. Supports 100 languages.项目地址: https://gitcode.com/GitHub_Trending/pa/PaddleOCR创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表