RapidOCR 快速上手:三步跑通 OCR 文字识别的完整指南
2026/9/20 8:48:36 网站建设 项目流程

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 文字识别工具包:把深度学习识别模型转成可移植的 ONNX 格式,跑在 ONNX Runtime 推理引擎上,本地离线即可识别图片里的文字,默认支持中英文。会写 Python 就能上手——本文带你用 3 步拿到第一个识别结果。

🔍 它是什么:调起来就能识别本地图片的 OCR 引擎

RapidOCR 解决一个具体问题:把图片里的文字"抠"出来。内部流程分三步——文本检测(定位文字在图中的位置)、方向分类(判断文字是否旋转)、文本识别(把裁出的文字图转成字符串)。你不需要懂这三步,传入一张图,返回字符串和置信度就完事。

适合谁看:想在脚本、爬虫、文档处理工具或小 Web 应用里内嵌文字提取的开发者。不用部署服务、不用调接口,推理全在你本机跑。

⚡ 三步跑通 RapidOCR:装依赖、初始化、拿第一个结果

第一步:一行命令装好依赖

pip install rapidocr onnxruntime

第二步:导入并初始化引擎

from rapidocr import RapidOCR ocr = RapidOCR()

默认开启"检测 + 分类 + 识别"全流程,语言为中文,零参数。

第三步:传入图片,打印识别结果

result = ocr("python/tests/test_files/japan.jpg") print(result.txts)

返回对象里:txts是识别出的文字,boxes是每段文字的位置,scores是置信度。想保存一张画好框的可视化图,一行搞定:

result.vis("vis_result.jpg")

下面是仓库自带的日文标题测试图(位于 tests/test_files 目录)。引擎还接受网络 URL、bytes 和 numpy 数组,本地路径不是唯一输入方式。

说明:早期教程里的rapidocr_onnxruntime是该工具包的前身包,现在统一用rapidocr安装。

📋 参数速查表:换语言、换模型、开 GPU 就改这几个键

所有参数通过构造函数的params字典传入,键名格式为"区块.参数名":

ocr = RapidOCR(params={ "Rec.lang_type": "japan", "Global.text_score": 0.3, })
键名示例值作用
Rec.lang_type"ch"/"en"/"japan"识别语言,决定加载哪个识别模型,可选 japan、korean、chinese_cht 等
Rec.model_path"/path/rec_ch.onnx"自己指定识别模型文件,不再自动下载
Global.model_root_dir"./models"模型自动下载的存放目录
Global.text_score0.5置信度阈值,低于它的识别结果会被丢弃
Global.use_det/use_cls/use_rectrue/false检测、分类、识别三个环节各自的开关
EngineConfig.onnxruntime.use_cudatrue开启 GPU 推理(需装 GPU 版 onnxruntime)
EngineConfig.onnxruntime.cuda_ep_cfg.device_id0指定使用第几块显卡

全量参数见仓库默认配置:python/rapidocr/config.yaml。

🧩 常见场景:三段代码覆盖大部分用法

场景一:批量识别一整个文件夹

from pathlib import Path engine = RapidOCR() for img in Path("images").glob("*.jpg"): print(img.name, engine(img).txts)

引擎只初始化一次,模型只加载一次,后面逐张识别没有额外开销。

场景二:切换模型路径(用自训或更小的模型)

from rapidocr import RapidOCR, EngineType engine = RapidOCR(params={ "Rec.engine_type": EngineType.ONNXRUNTIME, "Rec.model_path": "./my_models/rec_ch.onnx", })

场景三:用 JSON 配置文件集中管理参数

import json from rapidocr import RapidOCR params = json.load(open("ocr_params.json", encoding="utf-8")) engine = RapidOCR(params=params)

ocr_params.json与上面表格完全同格式:

{ "Rec.lang_type": "ch", "Global.text_score": 0.5, "EngineConfig.onnxruntime.use_cuda": true }

切换测试/生产环境,换一份 JSON 文件即可,代码不动。

❓ 踩坑 FAQ

Q1:语言参数为什么写lang不生效?当前版本的键名是Rec.lang_type,不是顶层lang。检测模型只支持ch/en/multi,识别模型则多得多:japan、korean、cyrillic、arabic、latin 等。

Q2:传图片路径提示找不到文件?相对路径是相对脚本运行目录解析的,改用绝对路径,或核对相对路径。拿不准时可以先传 URL 或 bytes 验证流程。

Q3:设了use_cuda: true为什么还在 CPU 上跑?默认安装的 onnxruntime 是 CPU 版,需换成pip install onnxruntime-gpu,并确认 CUDA/cuDNN 版本匹配;多卡时用cuda_ep_cfg.device_id指定卡号。

Q4:第一次识别为什么特别慢?首次运行会把模型文件自动下载到 models 目录,之后走本地就快了。环境受限时可预先放好模型文件,用model_path指向。

Q5:识别结果为空?先确认图中确有文字、文字够大,再把text_score从 0.5 降到 0.3 试一次;仍为空则检查use_det是否为 true。

更多示例可参考仓库里的 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),仅供参考

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询