RapidOCR 快速上手:3 步跑通本地图片文字识别
【免费下载链接】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(光学字符识别)工具库。你给它一张图片,它还你文字内容加位置坐标,全程不依赖云端接口。识别走"文本检测 → 方向分类 → 文字识别"三级流水线,支持中、英、日、韩、阿拉伯语等 15 种以上语种,默认基于 ONNX Runtime 在 CPU 上就能跑,也可以切换 PyTorch、TensorRT 等推理引擎。
三步让 RapidOCR 跑起来
这一步的目标:装好库,认出第一张图片里的字。
第一步,安装。它依赖 OpenCV 和 NumPy,安装时会自动带上:
pip install rapidocr第二步,写一个最小脚本。图片放哪都行,路径传进去即可:
from rapidocr import RapidOCR engine = RapidOCR() result = engine("your_image.jpg") print(result.txts)第三步,执行脚本。首次运行时,RapidOCR 会自动把默认模型下载到本地缓存目录,稍等片刻属正常现象。屏幕上应打印出类似('识别出的第一行文字', '第二行文字', ...)的元组,说明三级流水线全部走通。
想不写代码验证环境,也可以直接执行rapidocr check,它会跑通一次检测并报告依赖是否齐全。仓库里的 python/demo.py 是官方最小示例,和上面脚本几乎一致。
结果里有什么:文本、坐标和置信度
engine(...)返回的是RapidOCROutput对象,核心就三个字段:
txts:识别出的文字元组boxes:每段文字的四点坐标,用于在原图上画框scores:每段文字的置信度,0~1 之间的浮点数
它还有几个即插即用方法,覆盖常见导出需求:
result.to_json() # 转成 [{text, box, score}] 形式的 JSON 列表 result.to_markdown() # 转成 Markdown 纯文本 result.vis("vis.jpg") # 在原图上画框存图,返回可视化图片调用result.vis("vis.jpg")后,当前目录会生成一张标注好的图片,框、文字、置信度一目了然。这是判断"识别得对不对"最快的方式。
上面这类深色背景浅色字的图也支持。如果你只想跑部分环节(比如只要文字位置不要识别),在调用时传use_det=True, use_rec=False即可,内部机制见 python/rapidocr/main.py。
换语言识别:日语、韩语、阿拉伯语
默认配置面向中文场景,但识别环节可以换语种。语种由Rec.lang_type控制,通过params参数覆盖,不需要改文件:
from rapidocr import RapidOCR engine = RapidOCR(params={"Rec.lang_type": "japan"}) result = engine("japan.jpg") print(result.txts)支持值包括japan、korean、arabic、cyrillic、devanagari、chinese_cht等,完整清单在 python/rapidocr/utils/typings.py 的LangRec里。换成日语图再跑,txts里应输出日文文字,模型会在首次使用时自动下载对应语种的版本。
想固化一套配置,执行rapidocr config --save_cfg_file my.yaml生成配置模板,再用RapidOCR(config_path="my.yaml")加载。params优先级高于配置文件,两者可以叠加。完整配置项集中在 python/rapidocr/config.yaml。
切换推理引擎与指定模型路径
默认推理引擎是 ONNX Runtime,无需额外依赖。如果你的环境有 GPU 或已装其他框架,可以把三个环节分别换成对应引擎:
params = { "Det.engine_type": "torch", "Rec.engine_type": "torch", } engine = RapidOCR(params=params)可选值来自EngineType:onnxruntime、openvino、paddle、torch、tensorrt、mnn,各引擎的线程、显存等高级开关在config.yaml的EngineConfig段里,比如 TensorRT 的 FP16、CUDA 的设备号。想离线部署或预下载模型,可执行rapidocr download_models,模型清单和校验和见 python/rapidocr/default_models.yaml。
常见问题与踩坑提示
- 首次运行卡在下载:模型默认从 ModelScope 拉取,无外网环境会一直等待。用
rapidocr download_models在有网机器上预下载,再把models目录拷到目标机,或设Global.model_root_dir指向已有目录。 txts输出为空:先确认图上真的有大字。小字会被min_side_len、text_score(默认 0.5)过滤掉;把text_score调低到 0.3 重试,或检查图片是否超过max_side_len(默认 2000 边长上限)被缩放过。- 竖排文字识别乱:竖排文本依赖方向分类环节,确保
use_cls为true(默认开启)。参考测试图 python/tests/test_files/text_vertical_words.png。 - 想批量处理:对目录里每张图片循环调用
engine(...),累积result.to_json()即可;识别引擎本身可跨线程复用,模型加载带锁,不会重复加载。 - 接入 HTTP 服务:仓库的 api/ 目录指向配套的 RapidOCRAPI 项目,把本库包一层 FastAPI 即可对外提供识别接口;ocrweb/ 则是配套的 Web 演示页面。
更多用法细节参考官方文档目录 docs/,各语言端(Android、iOS、.NET、JVM)的封装分别在同名目录下有说明。
【免费下载链接】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),仅供参考