# RapidDoc **Repository Path**: RapidAI/RapidDoc ## Basic Information - **Project Name**: RapidDoc - **Description**: No description available - **Primary Language**: Unknown - **License**: Apache-2.0 - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 0 - **Created**: 2025-08-01 - **Last Updated**: 2026-06-28 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # RapidDoc - 高速文档解析系统 [English](README_EN.md) | [中文](README.md) ## 😺 项目介绍 **RapidDoc 是一个轻量级、专注于文档解析的开源框架,支持 **OCR、版面分析、公式识别、表格识别和阅读顺序恢复** 等多种功能,支持将复杂 PDF 文档转换为 Markdown、JSON、WORD、HTML 格式。** **支持docx/doc、pptx/ppt、xlsx/xls的原生解析(不使用模型)。** **框架基于 [Mineru](https://github.com/opendatalab/MinerU) 二次开发,移除 VLM,专注于 Pipeline 产线下的高效文档解析,在 CPU 上也能保持不错的解析速度。** **本项目所使用的默认模型主要来源于 [PaddleOCR](https://github.com/PaddlePaddle/PaddleOCR) 的 [PP-StructureV3](https://www.paddleocr.ai/main/version3.x/pipeline_usage/PP-StructureV3.html) 系列(OCR、版面分析、公式识别、阅读顺序恢复,以及部分表格识别模型),并已全部转换为 ONNX 格式,支持在 CPU/GPU 上高效推理。** **同时支持自定义OCR、公式、表格模型,需实现 CustomBaseModel 的 batch_predict 方法,目前内置 [PaddleOCRVL](https://www.paddleocr.ai/main/version3.x/pipeline_usage/PaddleOCR-VL.html) 系列模型的集成。** **KittyDoc 已经成为 RapidAI 开源家族成员** --- > ✨如果该项目对您有帮助,您的star是我不断优化的动力!!! > > - [github点击前往](https://github.com/RapidAI/RapidDoc) > - [gitee点击前往](https://gitee.com/hzkitty/KittyDoc) ## 👏 项目特点 - **OCR 识别** - 使用 [RapidOCR](https://github.com/RapidAI/RapidOCR) 支持多种推理引擎 - CPU 下默认使用 OpenVINO(速度快,内存占用较高),GPU 下默认使用 torch - **版面识别** - 模型使用 `PP-DocLayout` 系列 ONNX 模型(v2、plus-L、L、M、S) - **PP-DocLayoutV3**:自带阅读顺序,支持异形框,默认使用 - **PP-DocLayoutV2**:自带阅读顺序 - **PP-DocLayout_plus-L**:效果好运行稳定 - **PP-DocLayout-L**:速度快,效果也不错 - **PP-DocLayout-S**:速度极快,存在部分漏检 - **公式识别** - 使用 `PP-FormulaNet_plus` 系列 ONNX 模型(L、M、S) - **PP-FormulaNet_plus-L**:速度慢,支持onnx - **PP-FormulaNet_plus-M**:默认使用,支持onnx和torch - **PP-FormulaNet_plus-S**:速度最快,支持onnx,复杂公式精度不够 - 支持配置只识别行间公式 - cuda环境,默认使用torch推理,公式模型onnx gpu推理会报错,暂时无人解决 [PaddleOCR/issues/15125](https://github.com/PaddlePaddle/PaddleOCR/issues/15125), [PaddleX/issues/4238](https://github.com/PaddlePaddle/PaddleX/issues/4238), [Paddle2ONNX/issues/1593](https://github.com/PaddlePaddle/Paddle2ONNX/issues/1593) - **表格识别** - 基于 [rapid_table_self](rapid_doc/model/table/rapid_table_self) 增强,在原有基础上增强为多模型串联方案: - **表格分类**(区分有线/无线表格) - **[有线表格识别UNET](https://github.com/RapidAI/TableStructureRec)** + SLANET_plus/UNITABLE(作为无线表格识别) - **阅读顺序恢复** - PP-DocLayoutV2和PP-DocLayoutV3使用版面模型自带的阅读顺序 - 其余版面模型,使用 PP-StructureV3 阅读顺序恢复算法,基于xycut算法和版面的结果 - **推理方式** - 所有模型通过 ONNXRuntime 推理,OCR可配置其他推理引擎 - 除了 OCR 和 PP-DocLayout-M/S 模型,OpenVINO推理会报错,暂时难以解决。[PaddleOCR/issues/16277](https://github.com/PaddlePaddle/PaddleOCR/issues/16277) --- ## 基准测试结果 ### 1. OmniDocBench 以下是RapidDoc在 OmniDocBench v1.6 上的评估结果。 Pipeline 模型使用 PP-DocLayoutV3、PP-OCRv6-small、PP-FormulaNet_plus-M、UNET_SLANET_PLUS。
Comprehensive evaluation of document parsing on OmniDocBench (v1.6_full)
Model Type Methods Size Overall↑ TextEdit FormulaCDM TableTEDS TableTEDS-S Read OrderEdit
MinerU2.5-Pro Specialized VLMs 1.2B 95.75 0.036 97.45 93.42 95.92 0.120
GLM-OCR Specialized VLMs 0.9B 95.22 0.044 97.18 92.83 95.39 0.133
PaddleOCR-VL-1.5 Specialized VLMs 0.9B 94.93 0.038 96.89 91.67 94.37 0.130
PaddleOCR-VL Specialized VLMs 0.9B 94.18 0.040 95.91 90.65 93.74 0.135
Youtu-Parsing Specialized VLMs 2.5B 93.74 0.044 93.63 92.02 95.00 0.116
Qianfan-OCR Specialized VLMs 4B 93.90 0.04 95.08 90.53 93.31 0.13
Ovis2.6-30B-A3B General VLMs 30B 93.70 0.035 95.17 89.44 92.40 0.135
Logics-Parsing-v2 Specialized VLMs 4B 93.33 0.041 95.65 88.42 91.98 0.137
ABot-OCR Specialized VLMs 2B 93.30 0.037 94.86 88.69 91.87 0.137
FireRed-OCR Specialized VLMs 2B 93.26 0.037 95.44 88.04 91.06 0.131
MinerU-2.5 Specialized VLMs 1.2B 93.04 0.045 95.77 87.88 91.47 0.130
Gemini 3 Pro General VLMs - 92.91 0.064 95.99 89.15 92.96 0.165
Gemini 3 Flash General VLMs - 92.62 0.066 95.16 89.29 93.51 0.172
dots.ocr Specialized VLMs 3B 90.77 0.048 89.95 87.18 90.58 0.138
OpenDoc-0.1B Specialized VLMs 0.1B 90.67 0.049 93.02 83.88 87.45 0.140
DeepSeek-OCR 2 Specialized VLMs 3B 90.25 0.050 91.84 83.89 87.75 0.144
RapidDoc Pipeline Tools - 90.157 0.047 93.777 81.394 88.402 0.136
HunyuanOCR Specialized VLMs 1B 89.95 0.088 87.68 91.01 93.23 0.171
Qwen3-VL-235B General VLMs 235B 89.78 0.063 92.55 83.07 86.75 0.166
Dolphin-v2 Specialized VLMs 3B 89.50 0.069 91.01 84.40 87.44 0.150
OCRVerse Specialized VLMs 4B 88.60 0.063 89.61 82.44 86.27 0.163
MonkeyOCR-pro-3B Specialized VLMs 3B 88.57 0.074 88.74 84.35 88.62 0.189
GPT-5.2 General VLMs - 86.59 0.114 88.21 82.95 87.93 0.193
Dolphin-1.5 Specialized VLMs 0.3B 86.52 0.094 87.49 81.43 84.82 0.167
MinerU-Pipeline Pipeline Tools - 86.47 0.055 83.07 81.88 88.68 0.153
olmOCR Specialized VLMs 7B 85.74 0.139 88.10 83.00 87.17 0.216
Mistral OCR Specialized VLMs - 85.66 0.097 89.91 76.78 80.93 0.171
Kimi K2.5 General VLMs 1T 84.53 0.107 83.50 80.76 84.00 0.211
InternVL3.5-241B General VLMs 241B 83.76 0.130 89.95 74.35 79.78 0.215
Nanonets-OCR-s Specialized VLMs 3B 83.61 0.108 81.46 80.18 84.51 0.213
POINTS-Reader Specialized VLMs 3B 83.37 0.096 85.72 73.98 77.40 0.198
Marker Pipeline Tools - 78.44 0.157 85.24 65.77 73.24 0.243
## 🛠️ 安装RapidDoc #### 使用pip安装 ```bash pip install rapid-doc[cpu] -i https://mirrors.aliyun.com/pypi/simple 或 pip install rapid-doc[gpu] -i https://mirrors.aliyun.com/pypi/simple ``` #### 通过源码安装 ```bash # 克隆仓库 git clone https://github.com/RapidAI/RapidDoc.git cd RapidDoc # 安装依赖 pip install -e .[cpu] -i https://mirrors.aliyun.com/pypi/simple 或 pip install -e .[gpu] -i https://mirrors.aliyun.com/pypi/simple ``` #### 使用gpu推理 ```python # rapid-doc[gpu] 默认安装 onnxruntime-gpu 最新版 # 需要确定onnxruntime-gpu与GPU对应,参考 https://onnxruntime.ai/docs/execution-providers/CUDA-ExecutionProvider.html#requirements # 在 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" ``` #### 使用PaddleOCRVL系列推理 vl模型的部署,参考[官方文档](https://www.paddleocr.ai/main/version3.x/pipeline_usage/PaddleOCR-VL.html#31-vlm) ```python import os os.environ['PADDLEOCRVL_VERSION'] = "v1.6" os.environ['PADDLEOCRVL_VL_REC_BACKEND'] = "vllm-server" os.environ['PADDLEOCRVL_VL_VL_REC_SERVER_URL'] = "http://localhost:8118/v1" from rapid_doc.model.layout.rapid_layout_self import ModelType as LayoutModelType from rapid_doc.model.custom.paddleocr_vl.paddleocr_vl import PaddleOCRVLTableModel, PaddleOCRVLOCRModel, PaddleOCRVLFormulaModel layout_config = { "model_type": LayoutModelType.PP_DOCLAYOUTV3, } ocr_config = { "custom_model": PaddleOCRVLOCRModel() } formula_config = { "custom_model": PaddleOCRVLFormulaModel() } table_config = { "custom_model": PaddleOCRVLTableModel() } ``` #### 使用docker部署RapidDoc RapidDoc提供了便捷的docker部署方式,这有助于快速搭建环境并解决一些棘手的环境兼容问题。 您可以在文档中获取 [Docker部署说明](docker/README.md),镜像已推送至 [Docker Hub](https://hub.docker.com/r/hzkitty/rapid-doc)。 --- ### 📋 使用 ```python import os from pathlib import Path from rapid_doc import RapidDoc __dir__ = Path(__file__).resolve().parent.parent output_dir = os.path.join(__dir__, "output") doc_path_list = [ __dir__ / "demo/pdfs/示例1-论文模板.pdf", __dir__ / "demo/docx/test.docx", ] engine = RapidDoc() outputs = engine(doc_path_list, output_dir=output_dir) for output in outputs: print(output.markdown) ``` --- ## 在线体验 ### 基于Gradio的在线demo 基于gradio开发的webui,界面简洁,仅包含核心解析功能,免登录 - [![ModelScope](https://img.shields.io/badge/Demo_on_ModelScope-purple?logo=data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjIzIiBoZWlnaHQ9IjIwMCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KCiA8Zz4KICA8dGl0bGU+TGF5ZXIgMTwvdGl0bGU+CiAgPHBhdGggaWQ9InN2Z18xNCIgZmlsbD0iIzYyNGFmZiIgZD0ibTAsODkuODRsMjUuNjUsMGwwLDI1LjY0OTk5bC0yNS42NSwwbDAsLTI1LjY0OTk5eiIvPgogIDxwYXRoIGlkPSJzdmdfMTUiIGZpbGw9IiM2MjRhZmYiIGQ9Im05OS4xNCwxMTUuNDlsMjUuNjUsMGwwLDI1LjY1bC0yNS42NSwwbDAsLTI1LjY1eiIvPgogIDxwYXRoIGlkPSJzdmdfMTYiIGZpbGw9IiM2MjRhZmYiIGQ9Im0xNzYuMDksMTQxLjE0bC0yNS42NDk5OSwwbDAsMjIuMTlsNDcuODQsMGwwLC00Ny44NGwtMjIuMTksMGwwLDI1LjY1eiIvPgogIDxwYXRoIGlkPSJzdmdfMTciIGZpbGw9IiMzNmNmZDEiIGQ9Im0xMjQuNzksODkuODRsMjUuNjUsMGwwLDI1LjY0OTk5bC0yNS42NSwwbDAsLTI1LjY0OTk5eiIvPgogIDxwYXRoIGlkPSJzdmdfMTgiIGZpbGw9IiMzNmNmZDEiIGQ9Im0wLDY0LjE5bDI1LjY1LDBsMCwyNS42NWwtMjUuNjUsMGwwLC0yNS42NXoiLz4KICA8cGF0aCBpZD0ic3ZnXzE5IiBmaWxsPSIjNjI0YWZmIiBkPSJtMTk4LjI4LDg5Ljg0bDI1LjY0OTk5LDBsMCwyNS42NDk5OWwtMjUuNjQ5OTksMGwwLC0yNS42NDk5OXoiLz4KICA8cGF0aCBpZD0ic3ZnXzIwIiBmaWxsPSIjMzZjZmQxIiBkPSJtMTk4LjI4LDY0LjE5bDI1LjY0OTk5LDBsMCwyNS42NWwtMjUuNjQ5OTksMGwwLC0yNS42NXoiLz4KICA8cGF0aCBpZD0ic3ZnXzIxIiBmaWxsPSIjNjI0YWZmIiBkPSJtMTUwLjQ0LDQybDAsMjIuMTlsMjUuNjQ5OTksMGwwLDI1LjY1bDIyLjE5LDBsMCwtNDcuODRsLTQ3Ljg0LDB6Ii8+CiAgPHBhdGggaWQ9InN2Z18yMiIgZmlsbD0iIzM2Y2ZkMSIgZD0ibTczLjQ5LDg5Ljg0bDI1LjY1LDBsMCwyNS42NDk5OWwtMjUuNjUsMGwwLC0yNS42NDk5OXoiLz4KICA8cGF0aCBpZD0ic3ZnXzIzIiBmaWxsPSIjNjI0YWZmIiBkPSJtNDcuODQsNjQuMTlsMjUuNjUsMGwwLC0yMi4xOWwtNDcuODQsMGwwLDQ3Ljg0bDIyLjE5LDBsMCwtMjUuNjV6Ii8+CiAgPHBhdGggaWQ9InN2Z18yNCIgZmlsbD0iIzYyNGFmZiIgZD0ibTQ3Ljg0LDExNS40OWwtMjIuMTksMGwwLDQ3Ljg0bDQ3Ljg0LDBsMCwtMjIuMTlsLTI1LjY1LDBsMCwtMjUuNjV6Ii8+CiA8L2c+Cjwvc3ZnPg==&labelColor=white)](https://www.modelscope.cn/studios/RapidAI/RapidDoc) --- ## 📋 使用示例 - [代码示例](./demo/demo.py) - [参数介绍](./docs/analyze_param.md) - [FastAPI 示例](./docker/README_API.md) --- ## 模型下载 不指定模型路径,初次运行时,会自动下载 - [RapidDoc 模型集(版面/公式/表格)](https://www.modelscope.cn/models/RapidAI/RapidDoc) - [RapidOCR 模型](https://www.modelscope.cn/models/RapidAI/RapidOCR) - [部分表格模型RapidTable](https://www.modelscope.cn/models/RapidAI/RapidTable) --- ## 📌 TODO - [x] 跨页表格合并 - [x] 复选框识别,使用opencv(默认关闭、opencv识别存在误检) - [x] 提供 fastapi,支持cpu和gpu版本的docker镜像构建 - [x] 文本型pdf,表格非OCR文本提取 - [x] 文本型pdf,使用pypdfium2提取文本框bbox - [x] 文本型pdf,支持0/90/270度三个方向的表格解析 - [x] 文本型pdf,使用pypdfium2提取原始图片(默认截图会导致清晰度降低和图片边界可能丢失部分) - [x] 表格内公式提取,表格内图片提取 - [x] 优化阅读顺序,支持多栏、竖排等复杂版面恢复 - [x] 公式支持torch推理,可用GPU加速 - [x] 版面、表格模型支持openvino - [x] markdown转docx、html - [x] 支持 PP-DocLayoutV2 版面识别+阅读顺序 - [x] OmniDocBench评测 - [x] 支持自定义的ocr、table、公式。支持PaddleOCR-VL系列 - [x] 支持docx/doc、pptx/ppt、xlsx/xls的原生解析(不使用模型) - [x] 支持印章文本检测 - [x] 文档方向90°、270°矫正(默认关闭),表格方向90°、270°矫正(默认开启) ## 🙏 致谢 - [MinerU](https://github.com/opendatalab/MinerU) - [PaddleOCR](https://github.com/PaddlePaddle/PaddleOCR) - [RapidOCR](https://github.com/RapidAI/RapidOCR) ## Star History Star History Chart ## ⚖️ 开源许可 基于 [MinerU](https://github.com/opendatalab/MinerU) 改造而来,已**移除原项目中的 YOLO 模型**,并替换为 **PP-StructureV3 系列 ONNX 模型**。 由于已移除 AGPL 授权的 YOLO 模型部分,本项目整体不再受 AGPL 约束。 该项目采用 [Apache 2.0 license](LICENSE) 开源许可证。