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/RapidOCR
RapidOCR 是一款完全开源、可离线运行的多语言 OCR(光学字符识别)工具库。它把 PaddleOCR 的模型转成 ONNX 格式,让文字识别摆脱对特定深度学习框架的强依赖,一套代码在 Windows、Linux、macOS 上都能跑。这篇文章面向第一次接触 RapidOCR 的开发者,带你走完安装、首次识别和常用配置这三个环节。
RapidOCR 是什么:一条"检测—方向—识别"的流水线
RapidOCR 的核心思路是把 OCR 拆成三段独立的模块,每一段都可以单独开关:
- 文本检测:在整张图里框出文字区域,对应 检测模块源码
- 文本方向分类:判断文字是正向还是旋转 180 度,避免"倒着认"
- 文本识别:对裁剪出的文字条做逐行识别,输出最终文本
工程上它的两个特点是:
- 推理引擎可插拔。默认走 ONNX Runtime,也内置了 OpenVINO、PaddlePaddle、TensorRT、PyTorch、MNN 等后端,同一套调用代码按配置切换即可。
- 多语言模型按需切换。默认配置面向中英文(
lang_type: "ch"),日文、韩文等语言需要换用对应的识别模型;仓库测试集里就放着日文、韩文、阿拉伯文、西里尔文等多种语言的样例图,可见这是它日常回归覆盖的范围。
RapidOCR 安装:两条命令完成
Python 环境要求 3.8 及以上(官方分类器标注到 3.13)。最常规的路径是直接从 PyPI 装:
pip install rapidocr onnxruntime模型文件不需要手动下载,首次运行时会自动拉取到包内的models目录,后续调用就是纯离线推理。
如果要从源码装(比如要改代码),流程是克隆仓库、进入python目录、安装依赖后本地构建:
git clone https://gitcode.com/GitHub_Trending/ra/RapidOCR cd RapidOCR/python pip install -r requirements.txt最后用pip install .完成打包安装。另外,docker/ 目录为每种推理引擎都准备好了开发镜像(含 Dockerfile 和 docker-compose 编排),需要隔离环境或 GPU 引擎时可以直接用 Makefile 里的build-*、test-*目标。
RapidOCR 最小示例:三行代码出识别结果
装好后,识别一张图片只需要三行 Python:
from rapidocr import RapidOCR engine = RapidOCR() result = engine("photo.jpg")engine(...)的输入很宽泛:本地文件路径、网络图片地址、numpy数组或bytes都可以直接喂进去。返回值是结构化结果,文本内容在result.txts字段里;想留存证据图时,调用result.vis("vis_result.jpg")就能导出一张带检测框的可视化图,这一步在排查"框没框对"的问题时非常有用。
除了 Python API,包安装后还注册了rapidocr命令行入口(见pyproject.toml的project.scripts),临时扫一张图不必每次都写脚本。
RapidOCR 配置文件解析:影响准确率与速度的三类设置
所有行为的默认值集中在 config.yaml 里,构造RapidOCR()时可以通过config_path传入自定义配置文件,也可以用params字典零散覆盖某几项;单次调用时还能再传use_det、text_score等参数临时压过全局配置。值得关注的设置分三类:
1. 流水线开关use_det、use_cls、use_rec三项分别控制检测、方向分类、识别。如果你的输入已经是裁剪好的文字条,关掉use_det能省掉一步推理,速度立刻上来。
2. 阈值与输出粒度text_score(默认 0.5)是识别置信度门槛,低于它的结果会被丢弃——背景干净时可以调高保精度,模糊截图上可适当调低防漏字。return_word_box和return_single_char_box两个开关决定返回框的粒度:行级、词级还是单字符级,做文字定位对齐时按需打开。
3. 引擎与硬件加速每个模块(Det/Cls/Rec)的engine_type决定用哪个后端,默认onnxruntime。EngineConfig段里为各引擎预留了性能参数:ONNX Runtime 的线程数与 CUDA/DirectML 开关、TensorRT 的 fp16 与 workspace 大小、OpenVINO 的线程与调度等。纯 CPU 机器用 ONNX Runtime 即可,有 NVIDIA GPU 且追求吞吐时,TensorRT 路线(docker/下就有对应镜像)值得试。
排错与延伸
几个新手常碰到的点:
- 识别结果偏少或偏多:先调
text_score,再看检测相关的box_thresh、unclip_ratio;图片本身过小或模糊时,库会按use_preprocess_img做缩放预处理,长边默认限制在 2000 像素内。 - 验证安装是否完整:
cli.py里内置了自检逻辑(跑一张标准测试图并比对输出),从源码运行时可以直接借助它确认配置和模型文件齐全。 - 方向反了/图是横屏拍的:预处理阶段会读取 EXIF 旋转信息,测试集里就有带旋转标记的样例(
python/tests/test_files/img_exif_orientation.jpg),手机照片一般不需要手动转正。 - 需要定制领域词表:官方建议的路线是在 PaddleOCR 侧用自有数据微调模型,再把产物接入 RapidOCR 的部署流程,而不是改工程代码。
延伸方向上,仓库根目录的cpp/、jvm/、dotnet/、android/、ios/、ocrweb/各有独立 README,说明同一套模型已经移植到多种语言和端侧平台;本项目采用 Apache 2.0 许可(OCR 模型版权归百度所有)。卡参数时不必到处翻论坛,config.yaml本身带注释、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),仅供参考