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
📖 先说结论,再跑起来
古籍数字化 OCR 绕不开两个词:竖排和离线。RapidOCR 是一个完全开源免费的 OCR 工具包,基于 ONNX Runtime、OpenVINO、MNN、PaddlePaddle 等主流推理引擎(人话:不管你这台机器是什么硬件,它都能跑),默认支持中英文识别,还能处理繁体和日文书法体。它适合两类人:要把古籍扫描件批量转成文本的开发者,和只是想先看到识别效果的普通用户。
🚀 最快环境搭建:一条命令装好
不想折腾推理环境的话,CPU 上跑 ONNX Runtime 是最短路径。一条安装命令搞定:
pip install rapidocr onnxruntime🐍 一次最小调用
装完直接写三行代码。第一次调用时,它会自动把默认模型下载到本地缓存,之后就是纯离线推理,不会再联网:
from rapidocr import RapidOCR engine = RapidOCR() result = engine("你的古籍图片路径.jpg") print(result)结果里每行文字都带四角坐标框和置信度,拿坐标就能做版面还原。想要更直观的图,把 demo 脚本 里的result.vis("vis_result.jpg")加上,识别框会直接画回原图。
🧩 能力盘点:它能帮你解决哪件具体的事
别背参数表,直接看每个能力和古籍场景的对应关系:
| 它能做的事 | 对古籍场景意味着什么 |
|---|---|
| 竖排文字检测与逐字框输出 | 古籍正文是一列一列的,打开return_word_box=True后,识别结果逐字返回、每字带独立坐标框,做对齐和校对时不用再猜 |
| 识别模型按语言切换 | 繁体古籍把Rec.lang_type设为chinese_cht即可换用繁体识别模型,代码路径见 识别模块 |
| 检测 → 方向分类 → 识别的三级流水线可单独开关 | 拍歪的书页由方向分类模型自动转正;只要版面定位不要文字时,关掉识别还能省时间 |
| 六个推理引擎任选(onnxruntime / openvino / paddle / pytorch / tensorrt / mnn) | 办公电脑用 ONNX,服务器批量跑可以换 TensorRT,配置都写在 python/rapidocr/config.yaml |
| 结果可导出 JSON、Markdown | 批量转文本后直接落盘成结构化文件,方便喂给后续检索 |
🔍 场景走通:透明底书法图逐字识别
拿项目自带的测试图走一遍真实流程:这张图是透明底、黑色字体的「我是中国人」,模拟古籍局部扫描件。
调用时只需多传一个参数:
result = engine("python/tests/test_files/black_font_color_transparent.png", return_word_box=True)项目的测试用例 tests/test_return_word.py 断言的就是这个场景:五个字逐字命中,每个字都能取到独立的字框。竖排图同理,测试集里的text_vertical_words.png跑出来是「已取之時不參一人見而」,一字不差——这就是古籍逐字对齐的底气。
⚠️ 避坑与调优
跑起来之后,这四个参数是你最可能要动的:
- 首次运行卡住?那是模型在下载,确认网络通畅;完全离线的机器用
rapidocr download_models提前拉好模型,或用model_root_dir指定本地模型目录。 - 图片尺寸有边界:预处理会把图片压缩或放大到
min_side_len: 30~max_side_len: 2000之间,原图坐标会自动映射回去。所以古籍扫描件建议 1200px 以上再喂进去,别让模型替你放大。 - 漏检还是误检,调不同的旋钮:漏文字行就调低检测的
box_thresh(默认 0.5)或调大unclip_ratio(默认 1.6,控制框向外扩张的幅度);反过来冒出很多噪点框,就调高text_score(默认 0.5)过滤低置信度结果。 - 竖排别关方向分类:
use_cls: true默认是开着的,它负责把歪斜的文本行转正,古籍拍摄件务必保留这一步。
✅ 收个尾
一句话总结:古籍 OCR 的活儿,就是"装包、调引擎、拧参数"三件事,RapidOCR 把前两件的门槛压到了一条命令。下一步就一个动作:拿你手上最糊的一页书跑一遍return_word_box=True,看逐字框的置信度分布——哪里低,哪里就是你接下来要调的地方。
项目源码在 https://gitcode.com/GitHub_Trending/ra/RapidOCR ,需要对照实现细节时直接 clone 下来翻python/rapidocr/目录就行。
【免费下载链接】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),仅供参考