ARTICLE · INTELLIGENCE

战地情报 · 详情页

来自尧图项目组的一线实战观察与深度解析

RapidOCR 十分钟上手:从一张图到多语言文字识别

RapidOCR 十分钟上手:从一张图到多语言文字识别 RapidOCR 十分钟上手从一张图到多语言文字识别【免费下载链接】RapidOCR Awesome OCR multiple programing languages toolkits based on ONNX Runtime, OpenVINO, MNN, PaddlePaddle, TensorRT and PyTorch.项目地址: https://gitcode.com/GitHub_Trending/ra/RapidOCRRapidOCR 是一款主打离线、轻量、多引擎的 OCR 文字识别工具。它把 PP-OCRv4/v5/v6 系列模型转成 ONNX 等通用格式默认走 ONNX Runtime 推理CPU 上速度也不慢。教程按装好 → 跑通 → 换语言 → 外置参数 → 换引擎的路径走一遍代码都可以照抄。十分钟装好 RapidOCR 并识别第一张图第一步装依赖两个 pip 包就够pip install rapidocr onnxruntime。模型不用手动下载首次用到时会自动拉取到rapidocr/models目录。仓库里备了现成的测试图。想动手跑先把仓库克隆下来git clone https://gitcode.com/GitHub_Trending/ra/RapidOCR测试素材在python/tests/test_files/。然后写几行业务代码from rapidocr import RapidOCR engine RapidOCR() result engine(python/tests/test_files/img_exif_orientation.jpg) print(result.txts) result.vis(vis_result.png)RapidOCR()一个参数都不传就能工作检测、方向分类、识别三步默认全开。engine(...)的入参可以是图片路径、URL、numpy 数组或字节串。不放心安装环境时终端执行rapidocr check它会拿一张内置图做完整识别并校验结果通过会打印成功提示。认识返回结果txts、boxes、scores 各是什么engine(...)返回一个RapidOCROutput对象定义在 python/rapidocr/utils/output.py。常用字段一张表看清字段 / 方法内容result.txts按行排列的识别文字result.boxes每行文字的检测框坐标result.scores每行文字的置信度result.elapse检测 分类 识别的总耗时秒result.to_json()转成 JSON 列表方便入库或走接口result.to_markdown()转成 Markdown可直接贴进文档result.vis(path)在原图上画框存图肉眼验收最直观置信度低于阈值的行会被自动过滤默认阈值是 0.5对应配置项Global.text_score所以txts里不会出现低质量结果。三步流水线的耗时还会分别记在result.elapse_list里后面定位瓶颈会用到。一行参数切换语言ch、en、korean、arabic 都能跑默认识别中文。想换语言不用动配置文件构造引擎时用params传模块.字段格式的键即可。以韩语为例from rapidocr import RapidOCR, LangRec, ModelType, OCRVersion engine RapidOCR(params{ Rec.lang_type: LangRec.KOREAN, Rec.ocr_version: OCRVersion.PPOCRV5, Rec.model_type: ModelType.MOBILE, }) result engine(python/tests/test_files/korean.jpg, use_detFalse, use_clsFalse) print(result.txts)Rec.lang_type只改识别模块的语言检测和分类模块不受影响。纯文字的干净截图没有版式use_detFalse, use_clsFalse可以跳过检测和分类直接进识别速度更快。换日语、阿拉伯语、西里尔字母是同一套写法把LangRec.JAPAN、LangRec.ARABIC填进去即可对应模型会自动下载。日语场景拿仓库里的japan.jpg验证最直接。python/tests/test_rec_language.py 覆盖了十几种语言的标准答案可以当验收清单。把参数外置成 YAML语言、阈值与模型目录一次配好参数一多硬编码在代码里就不便于团队协作了。RapidOCR构造函数接收两个口config_path指定自定义 YAML 文件params做最后覆盖——先读 YAML再用params批量覆盖同名字段。engine RapidOCR( config_pathmy_config.yaml, params{Global.text_score: 0.6}, # 临时调高置信度阈值 )不传config_path时走包内默认配置 python/rapidocr/config.yaml。嫌它太长可以先在终端执行rapidocr config把完整模板拷成本地文件再改。自定义模型目录是外置配置最常见的动机涉及三类键Global.model_root_dir所有模型统一存放的根目录Det.model_path/Rec.model_path/Cls.model_path单模块直接指向某个模型文件EngineConfig.引擎名线程数、GPU 开关等推理选项仓库测试目录里的test_config.yaml就是一份现成样例它把model_root_dir指到了./test_models。裁剪流水线只检测、只分类或只识别RapidOCR 内部是检测 → 方向分类 → 识别三段流水线。Global.use_det / use_cls / use_rec控制默认开关调用时还能单次覆盖engine(img, use_detTrue, use_clsFalse, use_recTrue)几个典型用法只要文字框、不要内容use_recFalse水平排版的干净截图use_detFalse, use_clsFalse, use_recTrue省掉最重的检测步骤只判断文字是否倒置 180°use_detFalse, use_clsTrue, use_recFalse每步耗时分别落在result.elapse_list里调优时看它就能定位慢在哪一步。换推理引擎ONNX Runtime 之外的五张牌默认引擎是 ONNX RuntimeCPU 场景开箱即用。每个模块的engine_type都能单独指定可选值对应python/rapidocr/inference_engine/下的六个子目录onnxruntime、openvino、paddle、torch、tensorrt、mnn。engine RapidOCR(params{Rec.engine_type: EngineType.OPENVINO})记得先from rapidocr import EngineType。GPU 加速改的是 YAML 里的EngineConfigONNX Runtime 打开use_cuda: true并设置cuda_ep_cfg.device_idTensorRT 默认use_fp16: true还能配 profile 形状做引擎缓存。不想在宿主机装环境的话docker/ 目录为每个引擎都备了 Dockerfile 和 compose 文件按说明构建即可。命令行同样完整rapidocr -img 图片路径 --lang_type ch --text_score 0.6 -vis可直接出图rapidocr download_models支持离线预拉模型。到这里安装、识别、换语言、外置参数、换引擎全走通了。建议下一步打开 python/demo.py 对照官方最小示例再翻翻python/tests/里的用例当集成参考。【免费下载链接】RapidOCR Awesome OCR multiple programing languages toolkits based on ONNX Runtime, OpenVINO, MNN, PaddlePaddle, TensorRT and PyTorch.项目地址: https://gitcode.com/GitHub_Trending/ra/RapidOCR创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
RELATED READING

延伸阅读

更多一线实战笔记与深度复盘,助您持续精进