RapidDoc 是一个轻量级、专注于文档解析的开源框架,支持 OCR、版面分析、公式识别、表格识别和阅读顺序恢复 等多种功能。
框架基于 Mineru 二次开发,移除 VLM,专注于 Pipeline 产线下的高效文档解析,在 CPU 上也能保持不错的解析速度。
本项目所使用的核心模型主要来源于 PaddleOCR 的 PP-StructureV3 系列(OCR、版面分析、公式识别、阅读顺序恢复,以及部分表格识别模型),并已全部转换为 ONNX 格式,支持在 CPU/GPU 上高效推理。
KittyDoc 已经成为 RapidAI开源家族成员
✨如果该项目对您有帮助,您的star是我不断优化的动力!!!
-
OCR 识别
- 使用 RapidOCR 支持多种推理引擎
- CPU 下默认使用 OpenVINO,GPU 下默认使用 torch
-
版面识别
- 模型使用
PP-DocLayout
系列 ONNX 模型(plus-L、L、M、S)- PP-DocLayout_plus-L:效果最好,速度稍慢
- PP-DocLayout-L:速度快,效果也不错,默认使用
- PP-DocLayout-S:速度极快,可能存在部分漏检
- 模型使用
-
公式识别
- 使用
PP-FormulaNet_plus
系列 ONNX 模型(L、M、S)- PP-FormulaNet_plus-L:速度慢
- PP-FormulaNet_plus-S:速度最快,默认使用
- 支持配置只识别行间公式
- cuda环境默认不使用gpu,公式模型onnx gpu推理会报错,暂时无人解决 PaddleOCR/issues/15125, PaddleX/issues/4238, Paddle2ONNX/issues/1593
- 使用
-
表格识别
- 基于 rapid_table_self 增强,在原有基础上增强为多模型串联方案:
- 表格分类(区分有线/无线表格)
- SLANeXt 系列 表结构识别 + 单元格检测
- 有线表格识别UNET + SLANET_plus/UNITABLE(作为无线表格识别)
- 基于 rapid_table_self 增强,在原有基础上增强为多模型串联方案:
-
阅读顺序恢复
- 使用 PP-StructureV3 阅读顺序
xycut++
算法简化 - 速度快且阅读顺序恢复效果不错
- 使用 PP-StructureV3 阅读顺序
-
推理方式
- 所有模型通过 ONNXRuntime 推理,OCR可配置其他推理引擎
- 除了 OCR 和 PP-DocLayout-M/S 模型,OpenVINO推理会报错,暂时难以解决。PaddleOCR/issues/16277
pip install rapid-doc -i https://mirrors.aliyun.com/pypi/simple
# 克隆仓库
git clone https://github.com/RapidAI/RapidDoc.git
cd RapidDoc
# 安装依赖
pip install -r requirements.txt -i https://mirrors.aliyun.com/pypi/simple
# 在安装完 rapid_doc 之后,卸载 cpu 版的 onnxruntime
pip uninstall onnxruntime
# 这里一定要确定onnxruntime-gpu与GPU对应
# 可参见https://onnxruntime.ai/docs/execution-providers/CUDA-ExecutionProvider.html#requirements
pip install onnxruntime-gpu
# 在 Python 中指定 GPU(必须在导入 rapid_doc 之前设置)
import os
# 使用默认 GPU(cuda:0)
os.environ['MINERU_DEVICE_MODE'] = "cuda"
# 或指定 GPU 编号,例如使用第二块 GPU(cuda:1)
os.environ['MINERU_DEVICE_MODE'] = "cuda:1"
不指定模型路径,初次运行时,会自动下载
- 表格非OCR文本提取
- 跨页表格合并
- 复选框识别,使用opencv(默认关闭、opencv识别存在误检)
- 复选框识别,使用模型
- 四方向分类旋转表格解析 rapid_orientation
- 表格内公式提取
- 表格内图片提取
- 公式识别支持gpu
- 版面、表格、公式支持openvino
- RapidDoc4j(Java版本)
基于 MinerU 改造而来,已移除原项目中的 YOLO 模型,并替换为 PP-StructureV3 系列 ONNX 模型。
由于已移除 AGPL 授权的 YOLO 模型部分,本项目整体不再受 AGPL 约束。
该项目采用 Apache 2.0 license 开源许可证。