资讯动态

PaddleHub 日文轻量级 OCR 模型 japan_ocr_db_crnn_mobile:安装、预测与 Serving 部署实战指南

发布时间:2026/9/24 23:27:58 来源:尧图企业网站定制
人工智能大模型微调模型推理服务【免费下载链接】PaddleFormersPaddleFormers is an easy-to-use library of pre-trained large language model zoo based on PaddlePaddle.项目地址https://gitcode.com/gh_mirrors/pa/PaddleFormers点击查看免费下载本文以 PaddleFormers 仓库中的 japan_ocr_db_crnn_mobile 模块文档为主体系统讲解该轻量级日文 OCR 模型的网络结构与工作原理、PaddleHub 安装方式、命令行与 Python API 两种预测方式、PaddleHub Serving 在线服务部署流程并结合仓库源码剖析其底层实现DB 文本检测 角度分类 CRNN 文本识别。读完本文你将能够独立完成该模型的安装、单张/批量图片日文识别、结果可视化与 HTTP 服务化部署并掌握每个关键参数的实际作用与调优方法。一、模型基本信息项目内容模型名称japan_ocr_db_crnn_mobile类别图像-文字识别网络Differentiable Binarization CRNN数据集icdar2015 数据集是否支持 Fine-tuning否模型大小8MB最新更新日期2021-04-15数据指标-1. 模型介绍japan_ocr_db_crnn_mobile是一个专门用于识别图片中日文文字的 PaddleHub 模块。其工作流程为首先借助文本检测模块默认是 chinese_text_detection_db_mobile检测图片中的文本框位置对检测到的文本框进行角度分类最终使用 CRNNConvolutional Recurrent Neural Network卷积递归神经网络识别文本框中的日文文字。CRNN 是 DCNN深度卷积神经网络与 RNN循环神经网络的组合专门用于识别图像中的序列式对象与 CTC loss 配合使用进行文字识别可以直接从文本词级或行级的标注中学习无需详细的字符级标注。该模块是一个识别日文的轻量级8MBOCR 模型支持直接预测。2. 源码实现视角从源码结构看该模块是对multi_languages_ocr_db_crnn多语言 OCR 模块的封装。在 module.py 中JapanOCRDBCRNNMobile类通过moduleinfo装饰器声明模块信息name 为japan_ocr_db_crnn_mobileversion 为1.1.0类型为cv/text_recognition并在__init__中直接实例化self.model hub.Module( namemulti_languages_ocr_db_crnn, langjapan, detdet, recrec, use_angle_clsuse_angle_cls, enable_mkldnnenable_mkldnn, use_gpuuse_gpu, box_threshbox_thresh, angle_classification_threshangle_classification_thresh)也就是说日文模型本质上是多语言模型在langjapan下的具体实例。而 multi_languages_ocr_db_crnn/module.py 底层调用的是 PaddleOCR 引擎self.engine PaddleOCR( langlang, detdet, recrec, use_angle_clsuse_angle_cls, enable_mkldnnenable_mkldnn, use_gpuuse_gpu, det_db_box_threshbox_thresh, cls_threshangle_classification_thresh)其中det_db_box_thresh即文本框检测置信度阈值DB 二值化阈值cls_thresh为方向分类置信度阈值。整个 OCR 流水线由「DB 文本检测 → 角度分类 → CRNN 文本识别」三部分构成与 README 中的网络描述一致。二、安装1. 环境依赖paddlepaddle 2.0.2paddlehub 2.0.0PaddleHub 的安装方法可参考 如何安装 paddlehub。此外当前仓库中该模块的 requirements.txt 还声明了以下运行依赖paddleocr2.3.0.2 paddle2onnx0.9.0 shapely pyclipper其中shapely与pyclipper是 DB 文本检测算法计算文本框多边形与二值化后处理所必需的第三方库paddle2onnx用于将模型导出为 ONNX 格式仅在需要导出时使用。2. 安装模块$ hub install japan_ocr_db_crnn_mobile如安装时遇到问题可参考零基础 Windows 安装零基础 Linux 安装零基础 MacOS 安装指定历史版本安装如 1.1.0 优化版模型$ hub install japan_ocr_db_crnn_mobile1.1.0三、模型 API 预测1. 命令行预测$ hub run japan_ocr_db_crnn_mobile --input_path /PATH/TO/IMAGE通过命令行方式即可直接完成日文文字识别模型的调用--input_path为待识别图片路径。更多命令行指令说明见 PaddleHub 命令行指令。从 multi_languages_ocr_db_crnn/module.py 的参数解析器可以看到hub run实际支持以下可调参数--input_path必填、--use_gpu、--output_dir默认ocr_result、--visualization、--lang、--det默认 True、--rec默认 True、--use_angle_cls默认 False、--enable_mkldnn默认 False、--box_thresh默认 0.6、--angle_classification_thresh默认 0.9。例如可以这样组合使用$ hub run japan_ocr_db_crnn_mobile --input_path /PATH/TO/IMAGE --det True --rec True --use_angle_cls True --box_thresh 0.7 --angle_classification_thresh 0.8 --visualization True2. 预测代码示例import paddlehub as hub import cv2 ocr hub.Module(namejapan_ocr_db_crnn_mobile, enable_mkldnnTrue) # mkldnn加速仅在CPU下有效 result ocr.recognize_text(images[cv2.imread(/PATH/TO/IMAGE)]) # or # result ocr.recognize_text(paths[/PATH/TO/IMAGE])images与paths两种输入方式二选一。从 multi_languages_ocr_db_crnn/module.py 的输入校验逻辑可以看出传入imageslist 类型且paths为空时直接使用内存中的图片数据传入pathslist 类型且images为空时通过read_images读取磁盘图片两者同时传入或同时为空时会抛出TypeError异常提示输入数据不符合预期。3. API 详解构造方法def __init__(text_detector_moduleNone, enable_mkldnnFalse)构造JapanOCRDBCRNNMobile对象。参数说明text_detector_module(str)文字检测 PaddleHub Module 名字。如设置为None则默认使用 chinese_text_detection_db_mobile 模块其作用为检测图片中的文本位置enable_mkldnn(bool)是否开启 MKLDNN 加速 CPU 计算。该参数仅在 CPU 运行下设置有效默认值为False。补充说明当前仓库 module.py 中的实际构造函数为__init__(self, detTrue, recTrue, use_angle_clsFalse, enable_mkldnnFalse, use_gpuFalse, box_thresh0.6, angle_classification_thresh0.9)与 README 中记载的早期版本签名略有差异use_gpu、box_thresh、angle_classification_thresh等参数已被移入构造阶段而非预测阶段。使用时可结合当前安装的 PaddleHub 版本以help(hub.Module(namejapan_ocr_db_crnn_mobile))查看实际签名。预测方法def recognize_text(images[], paths[], use_gpuFalse, output_dirocr_result, visualizationFalse, box_thresh0.5, text_thresh0.5, angle_classification_thresh0.9)预测 API检测并识别输入图片中的所有日文文本。参数说明paths(list[str])图片的路径列表images(list[numpy.ndarray])图片数据列表ndarray.shape 为[H, W, C]BGR 格式use_gpu(bool)是否使用 GPU若使用 GPU请先设置CUDA_VISIBLE_DEVICES环境变量output_dir(str)可视化结果的保存目录默认设为ocr_resultbox_thresh(float)检测文本框置信度的阈值对应 DB 检测的 box threshold默认 0.5~0.6text_thresh(float)识别日文文本置信度的阈值angle_classification_thresh(float)文本角度分类置信度的阈值默认 0.9用于判断文本是否倒置 180 度visualization(bool)是否将识别结果保存为图片文件。返回结果返回res(list[dict])为识别结果的列表列表中每一个元素为 dict各字段为data(list[dict])识别文本结果列表中每一个元素为 dict各字段为text(str)识别得到的文本confidence(float)识别文本结果置信度text_box_position(list)文本框在原图中的像素坐标为 4×2 矩阵依次表示文本框左下、右下、右上、左上顶点的坐标。如果无识别结果则data为[]save_path(str, optional)识别结果的保存路径如未开启可视化保存则save_path为。从 multi_languages_ocr_db_crnn/module.py 的实现可以看到模块对每张输入图片依次调用self.engine.ocr(...)再根据det/rec/use_angle_cls的开启组合将底层返回的(box, (text, score))组织为上述统一字典结构当visualizationTrue且存在识别结果时调用save_result_image绘制带文本框与文字的标注图并返回保存路径。仓库中的 test.py 测试用例给出了输出结构的真实样例results[0][data] [ {text: GIVE., confidence: 0.9509806632995605, text_box_position: [[283, 162], [352, 162], [352, 202], [283, 202]]}, {text: THANKS, confidence: 0.9943129420280457, text_box_position: [[261, 202], [376, 202], [376, 239], [261, 239]]}]4. ONNX 模型导出当前版本的模块还提供了export_onnx_model方法见 module.py可分别导出检测det、识别rec、方向分类cls三个子模型为 ONNX 格式ocr.export_onnx_model(dirnameonnx, input_shape_dictNone, opset_version10)导出依赖paddle2onnx0.9.0且opset_version需大于等于 10。仓库测试用例验证了导出产物为japan_ocr_db_crnn_mobile_{cls,det,rec}.onnx三个文件对应多语言模块的 test_export_onnx_model。这为后续在 ONNX Runtime 等推理框架中部署提供了便利。四、服务部署PaddleHub Serving 可以将该模块部署为一个在线文字识别服务。第一步启动 PaddleHub Serving$ hub serving start -m japan_ocr_db_crnn_mobile执行上述命令即完成了一个文字识别服务化 API 的部署默认端口号为8866。NOTE:如使用 GPU 预测需要在启动服务之前设置CUDA_VISIBLE_DEVICES环境变量仅使用 CPU 则无需设置。第二步发送预测请求配置好服务端后以下代码即可发送预测请求并获取预测结果import requests import json import cv2 import base64 def cv2_to_base64(image): data cv2.imencode(.jpg, image)[1] return base64.b64encode(data.tostring()).decode(utf8) # 发送HTTP请求 data {images:[cv2_to_base64(cv2.imread(/PATH/TO/IMAGE))]} headers {Content-type: application/json} url http://127.0.0.1:8866/predict/japan_ocr_db_crnn_mobile r requests.post(urlurl, headersheaders, datajson.dumps(data)) # 打印预测结果 print(r.json()[results])请求体中的images字段为 base64 编码后的图片数据。服务端在收到请求后会经 serving_method 将 base64 字符串解码为图像base64_to_cv2再调用recognize_text完成识别并返回结构化结果返回数据格式与上文「返回结果」章节一致可直接通过r.json()[results]获取。五、更新历史1.0.0初始发布。1.1.0优化模型。可通过hub install japan_ocr_db_crnn_mobile1.1.0安装该版本。六、总结japan_ocr_db_crnn_mobile是一个基于 DBDifferentiable Binarization文本检测 角度分类 CRNN与 CTC loss 配合文本识别架构的轻量级日文 OCR 模块仅约 8MB支持命令行、Python API 与 PaddleHub Serving 三种使用方式。其底层复用了多语言 OCR 引擎langjapan输出结构统一为「文本内容 置信度 四顶点文本框坐标」便于后续二次开发与集成。对于需要快速在 CPU 环境部署日文图片文字识别能力的场景该模块是一个开箱即用的选择。赞分享人工智能大模型微调模型推理服务【免费下载链接】PaddleFormersPaddleFormers is an easy-to-use library of pre-trained large language model zoo based on PaddlePaddle.项目地址https://gitcode.com/gh_mirrors/pa/PaddleFormers点击查看免费下载相关推荐基于 PaddleHub 的 telugu_ocr_db_crnn_mobile泰卢固文轻量级 OCR 模型安装、预测与 Serving 部署全指南基于 PaddleHub 的 telugu_ocr_db_crnn_mobile泰卢固文轻量级 OCR 模型安装、预测与 Serving 部署全指南 本指南以人工智能大模型微调模型推理服务PaddleHub korean_ocr_db_crnn_mobile 韩文轻量级 OCR 模型安装、预测 API 与服务化部署实战指南PaddleHub korean_ocr_db_crnn_mobile 韩文轻量级 OCR 模型安装、预测 API 与服务化部署实战指南 导读 本文围绕 P人工智能大模型微调模型推理服务基于 PaddleHub 的 ESNet_x0_25 轻量级图像分类模型实战指南安装、预测与 Serving 部署基于 PaddleHub 的 ESNet_x0_25 轻量级图像分类模型实战指南安装、预测与 Serving 部署 导读 esnet_x0_25_imagen人工智能大模型微调模型推理服务上一篇如何安全恢复微信聊天记录完整本地解密方案下一篇LizzieYzy围棋AI分析工具终极指南让AI成为你的专属围棋教练创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

读完文章,也想定制专属网站?

尧图设计师 24 小时内与您沟通定制方案

免费获取报价