RapidOCR 古籍竖排文字识别实战指南:从安装到调参一次讲清
2026/9/20 2:34:06 网站建设 项目流程

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

RapidOCR 是一个完全开源免费的 OCR 文字识别库,把 PaddleOCR 的深度学习模型转成 ONNX 等通用格式,默认靠 onnxruntime 在 CPU 上离线推理,特别适合古籍数字化、扫描件转文本这类不想依赖 GPU 和在线服务的场景。

🎯 古籍数字化 OCR 的四个高频痛点

  • 当你拿到从右往左竖排的古籍扫描件,整列文字被通用 OCR 当噪声漏掉;
  • 当你处理透明底、深底白字的图,识别结果整行丢字;
  • 当你要把识别结果回填到校对界面,却只拿到整行文本,没有每个字的坐标;
  • 当你想在离线服务器、Windows 桌面、C++/Java 项目里跑同一套模型,不想为每台机器装不同依赖。

📦 RapidOCR 一键安装步骤与版本要求

最低要求 Python 3.8(pyproject 声明 >=3.8,<4),两条命令装完:

pip install rapidocr onnxruntime

首次调用会自动下载 PP-OCRv6 small 的检测与识别模型,缓存在 python/rapidocr/models 目录,之后全部走本地,断网也能跑。装完执行rapidocr check,它会跑一张测试图,首行输出“正品促销”即代表模型和依赖都正常。

🚀 核心功能实战:从整页识别到逐字坐标

三段流水线一键跑通:检测、分类、识别各管一段

场景:批量把扫描页转文本,不想手写检测后处理。做法参照 demo.py:

from rapidocr import RapidOCR engine = RapidOCR() result = engine("scan.png") result.vis("vis_result.jpg")

实际效果:检测(找文字框)、方向分类(纠正 0°/180° 颠倒)、识别(出文本)三段,分别由 PP-OCRv6 small 检测模型、PP-OCRv4 mobile 分类模型、PP-OCRv6 small 识别模型完成,全部在 CPU 上跑。仓库测试图 ch_en_num.jpg(323x430)走默认流水线出 18 行文本,每行带置信度和四点坐标,vis 一行生成标注图。

竖排窄列文字为什么漏检,vertical padding 怎么救

场景:古籍一列文字又细又长,检测模型对极窄区域响应弱,整列丢失。RapidOCR 在 config.yaml 里给了针对窄条的处理:use_vertical_padding 默认 true,min_height: 30 跳过高度不足 30px 的碎块,width_height_ratio: 8 对高宽比超过 8 的窄列左右补齐再送检测。实际效果:仓库测试图 text_vertical_words.png 就是一页竖排,开启逐字框后首列按序返回“已取之時不參一人見而”10 个字,竖列没有漏。

给每个字一个坐标:return_word_box 校对用法

场景:透明底白字图,或要把结果逐字回填校对 UI,光有整行文本不够。调用时加一个参数:engine("img.png", return_word_box=True),每个文本行都带上逐字坐标;再加return_single_char_box=True可拆到单字。实际效果:测试图 black_font_color_transparent.png(透明底“我是中国人”)按字返回 5 个带坐标的结果,透明背景不影响识别。

🔧 进阶调优:模型选择与检测参数怎么改

模型三件套在 config.yaml 的 Det/Cls/Rec 三段:ocr_version 选 PP-OCRv4/v5/v6,model_type 选 tiny/small/medium,lang_type 选语言。default_models.yaml 的清单覆盖 16 种语言:繁体古籍把 Rec.lang_type 设为 chinese_cht,版式复杂的文档可换 ch_doc 文档识别模型,日文书籍直接选 japan。

阈值参数四个最常用:Global.text_score 默认 0.5,低于它的行被丢弃,嫌漏结果就降到 0.3;Det.box_thresh 默认 0.5,调低(如 0.4)减少漏框但可能引入噪框;Det.unclip_ratio 默认 1.6,调大让检测框更宽,适合字距紧凑的古籍;Global.max_side_len 默认 2000,超长的图等比缩小再推理,高 DPI 原图不用白烧算力。引擎侧 engine_type 支持 onnxruntime、openvino、paddle、pytorch、tensorrt、mnn 六选一:有 N 卡换成 tensorrt 并开 use_fp16: true,Intel CPU 换 openvino 通常更省内存。

✅ 落地清单:5 条可执行建议

  1. 装完先跑rapidocr check,确认模型下载和依赖没问题再开工;
  2. 高 DPI 扫描页统一控制在长边 2000px 以内再进推理,精度损失可忽略、耗时明显下降;
  3. 竖排漏检多时,优先把 box_thresh 从 0.5 调到 0.4 复测,再考虑 unclip_ratio 加到 2.0;
  4. 繁体古籍固定Rec.lang_type: chinese_cht,别用默认 ch 模型硬扛;
  5. 接校对流程时开启return_word_box: true,逐字坐标直接驱动高亮和批注。

跑通这三段流水线,古籍转文本里最费人力的部分就能交给脚本,剩下的难字交给人工校对。

【免费下载链接】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),仅供参考

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

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

立即咨询