news 2026/9/20 12:40:45

RapidOCR 文本识别快速上手:从安装到跑通离线 OCR 只要三行代码

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
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/RapidOCR

RapidOCR 是一款完全开源、可离线运行的多语言 OCR(光学字符识别)工具库。它把 PaddleOCR 的模型转成 ONNX 格式,让文字识别摆脱对特定深度学习框架的强依赖,一套代码在 Windows、Linux、macOS 上都能跑。这篇文章面向第一次接触 RapidOCR 的开发者,带你走完安装、首次识别和常用配置这三个环节。

RapidOCR 是什么:一条"检测—方向—识别"的流水线

RapidOCR 的核心思路是把 OCR 拆成三段独立的模块,每一段都可以单独开关:

  • 文本检测:在整张图里框出文字区域,对应 检测模块源码
  • 文本方向分类:判断文字是正向还是旋转 180 度,避免"倒着认"
  • 文本识别:对裁剪出的文字条做逐行识别,输出最终文本

工程上它的两个特点是:

  1. 推理引擎可插拔。默认走 ONNX Runtime,也内置了 OpenVINO、PaddlePaddle、TensorRT、PyTorch、MNN 等后端,同一套调用代码按配置切换即可。
  2. 多语言模型按需切换。默认配置面向中英文(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.tomlproject.scripts),临时扫一张图不必每次都写脚本。

RapidOCR 配置文件解析:影响准确率与速度的三类设置

所有行为的默认值集中在 config.yaml 里,构造RapidOCR()时可以通过config_path传入自定义配置文件,也可以用params字典零散覆盖某几项;单次调用时还能再传use_dettext_score等参数临时压过全局配置。值得关注的设置分三类:

1. 流水线开关use_detuse_clsuse_rec三项分别控制检测、方向分类、识别。如果你的输入已经是裁剪好的文字条,关掉use_det能省掉一步推理,速度立刻上来。

2. 阈值与输出粒度text_score(默认 0.5)是识别置信度门槛,低于它的结果会被丢弃——背景干净时可以调高保精度,模糊截图上可适当调低防漏字。return_word_boxreturn_single_char_box两个开关决定返回框的粒度:行级、词级还是单字符级,做文字定位对齐时按需打开。

3. 引擎与硬件加速每个模块(Det/Cls/Rec)的engine_type决定用哪个后端,默认onnxruntimeEngineConfig段里为各引擎预留了性能参数:ONNX Runtime 的线程数与 CUDA/DirectML 开关、TensorRT 的 fp16 与 workspace 大小、OpenVINO 的线程与调度等。纯 CPU 机器用 ONNX Runtime 即可,有 NVIDIA GPU 且追求吞吐时,TensorRT 路线(docker/下就有对应镜像)值得试。

排错与延伸

几个新手常碰到的点:

  • 识别结果偏少或偏多:先调text_score,再看检测相关的box_threshunclip_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),仅供参考

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/9/20 12:40:38

docker 安装 Minio

数据迁移(离线迁移)tmux new -s sync_miniorsync -av --partial -e ‘ssh -p 目标端口’ /mnt/vdb1/minio root目标ip:/目标路径查看进度:tmux a -t sync_jianguan查看列表:tmux ls验证是否传输完毕(看文件数是否一致&…

作者头像 李华
网站建设 2026/9/20 12:40:25

PrgFormDesigner:用可视化拖拽拯救xBase老系统界面维护

简介:PrgFormDesigner 是一款采用 C# 编写的可视化界面设计工具,面向使用 xHarbour、wxHarbour、dBase、FoxPro 等传统数据库及 Harbour 系列框架的开发者。借助拖拽组件、属性面板与多布局方式,可快速生成从简单表单到复杂多窗口界面&#x…

作者头像 李华
网站建设 2026/9/20 12:35:11

ACS880-11变频器快速安装调试要点与Modbus RTU通讯实战指南

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华
网站建设 2026/9/20 12:34:13

OpenClaw 报 HTTP 401 Incorrect API key provided?TaoToken 的 Base URL 这样填

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华