RapidOCR 离线 OCR 完全指南:安装、识别、调参,一篇讲透

📅 发布时间:2026/9/20 19:24:58
RapidOCR 离线 OCR 完全指南:安装、识别、调参,一篇讲透
RapidOCR 离线 OCR 完全指南安装、识别、调参一篇讲透【免费下载链接】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光学字符识别工具包。它把 PaddleOCR 的模型转成 ONNX 等通用格式基于 ONNX Runtime、OpenVINO、MNN、PaddlePaddle、TensorRT、PyTorch 六种推理引擎运行默认即可识别中英文无需联网、无需 API Key。对新手最友好的一点是两条命令安装几行 Python 代码就能从一张图片里拿到文字、坐标和置信度。快速上手环境准备与一键安装步骤 环境要求很简单Python 3.8 及以上Windows、macOS、Linux 均可。RapidOCR 本体只是一个轻量封装真正干活的模型和推理由onnxruntime完成所以安装时两个包要一起装。pip install rapidocr onnxruntime如果你希望直接读源码或跑测试用例也可以克隆仓库后在 python/ 目录下以源码方式安装git clone https://gitcode.com/GitHub_Trending/ra/RapidOCR cd RapidOCR/python pip install -e . onnxruntime装完后不用手动下载任何模型。首次调用时RapidOCR 会自动从云端拉取默认模型检测、方向分类、识别三个模型并缓存到包内的 python/rapidocr/models/ 目录之后全部离线可用。最小可用调用5 行代码完成第一次 OCR 识别先写一个最小脚本作用是实例化引擎 → 对图片执行识别 → 打印结果。这里直接用仓库自带的日文测试图效果更有代表性from rapidocr import RapidOCR engine RapidOCR() # 首次调用会自动下载并缓存模型 result engine(python/tests/test_files/japan.jpg) print(result)读懂返回结果boxes、txts、scores 三件套调用后返回的是一个RapidOCROutput对象核心字段含义如下字段含义boxes每行文字的坐标点4 个角点与原图对齐txts识别出的文本与 boxes 一一对应scores每行文本的置信度0~1elapse检测、分类、识别三段耗时之和word_results开启词级框后每个词/字的文本、置信度与坐标它还提供to_json()和to_markdown()两个方法可以一键把识别结果转成结构化 JSON 或 Markdown 文本方便直接喂给大模型或写入文档。保存带框可视化结果想在原图上看到识别框给结果对象传个路径调用vis即可result.vis(vis_result.jpg) # 在原图上画出文本框并保存进阶定制多语言、阈值与推理引擎配置默认配置中文、onnxruntime、small 模型写在 python/rapidocr/config.yaml 里但大多数定制场景不需要改文件——RapidOCR()构造器接受params字典用「段落.键名」的形式覆盖任意配置项。切换识别语言一次调用一个语言参数识别语言由Rec.lang_type控制。想识别日文在初始化时传入参数即可engine RapidOCR(params{Rec.lang_type: japan})除默认中文外常见的lang_type还包括japan、korean、latin、en、arabic、cyrillic、devanagari印地语等、chinese_cht繁体、th、el、eslav、ta、te、ka等。PP-OCRv6 的多语言模型multi前缀甚至支持中英混合场景。检测模型的语言维度则通过Det.lang_typech/en/multi区分。完整模型清单和语言对照可以参考 python/rapidocr/default_models.yaml。调整置信度阈值与输出粒度调用engine(img)时还能临时覆盖一批参数适合「同一引擎、不同图片不同策略」的场景text_score过滤低置信度结果的阈值默认 0.5调低会多召回、调高会少而精use_det/use_cls/use_rec按需关闭检测、方向分类、识别三段中的某一段return_word_box返回词级单词/字坐标适合做精确排版还原box_thresh/unclip_ratio检测段的后处理参数控制文本框的宽松程度在 6 种推理引擎之间切换每个任务Det/Cls/Rec都可以独立指定engine_type可选值onnxruntime默认、openvino、paddle、pytorch、tensorrt、mnn。例如在带 GPU 的服务器上把识别段交给 TensorRTengine RapidOCR(params{Rec.engine_type: tensorrt})各引擎的线程数、GPU 设备号等细节都在config.yaml的EngineConfig段里例如 onnxruntime 的use_cuda、tensorrt 的use_fp16。也支持通过config_path传入一份自定义 YAML 一次性替换默认配置工程化部署时更干净。命令行方式快速验证不想写代码时装包后会自带rapidocr命令可直接识别图片并输出可视化rapidocr -img japan.jpg --lang_type japan --text_score 0.5 -vis --vis_save_dir ./out另外还有两个实用子命令rapidocr check验证安装完整性rapidocr download_models提前预下载模型。实战场景与常见问题排查这套「检测 → 方向分类 → 识别」的流水线特别适合文档电子化扫描版 PDF 转可检索文本、聊天/游戏截图文本抓取、以及完全离线的内网环境模型本地缓存后不再需要网络。下面是几个高频坑。空图或无文字图片返回空结果是正常的 如果图片里没有任何文字txts会是空元组boxes为None而不是抛异常。比如这张全黑测试图写业务代码时先判空if result.txts:再遍历就不会报错。透明背景、特殊字体颜色导致识别异常测试目录里专门有透明底 深色/浅色字的对抗样例说明文字颜色与背景对比度不足时检测段容易漏检如果你的截图是透明 PNG建议先用 OpenCV 或 PIL 合成一个浅色底再送识别能显著提升召回。EXIF 旋转图识别歪掉怎么办手机拍的图常带 EXIF 方向标记物理像素实际是旋转 90° 的这类图如果识别顺序或结果异常确认加载图片时是否应用了 EXIF 旋转Pillow 的ImageOps.exif_transpose可以一键纠正再交给 RapidOCR 即可。第一次调用很慢正常吗正常的。模型采用懒加载首次调用才触发下载离线缓存时则跳过和推理引擎初始化之后复用。多线程场景下引擎内部有锁保护多个线程同时首调也不会重复加载。批量处理时建议把RapidOCR()实例放在模块级复用不要每张图都 new 一次。离线内网部署怎么办在一台能联网的机器上执行rapidocr download_models或正常跑一次识别把models/目录连同安装包拷到内网机器即可全程不需要外网。需要 GPU 加速镜像的话docker/ 目录提供了 onnxruntime-gpu、tensorrt、openvino 等多种 Dockerfile 可直接构建。上手路径总结pip install→RapidOCR()(img)→ 读txts/boxes/scores→ 按需传params换语言、调阈值、切引擎。更多细节可以看仓库内的 docs/CONTRIBUTING-CN.md 了解参与贡献测试用例集中在 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),仅供参考