{"id":18273610,"url":"https://github.com/rapidai/rapiddoc","last_synced_at":"2026-05-24T16:01:06.981Z","repository":{"id":256103333,"uuid":"844788028","full_name":"RapidAI/RapidDoc","owner":"RapidAI","description":"📝 针对文档类图像做内容提取，将文档类图像一比一输出到Word或者Txt中，便于进一步使用或处理。后续计划支持输入PDF/图像，输出对应json格式、Txt格式、Word格式和Markdown格式。","archived":false,"fork":false,"pushed_at":"2024-11-01T00:27:45.000Z","size":800,"stargazers_count":189,"open_issues_count":3,"forks_count":8,"subscribers_count":8,"default_branch":"main","last_synced_at":"2025-04-05T01:04:49.966Z","etag":null,"topics":["layout-analysis","layout-recover"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/RapidAI.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-08-20T01:09:04.000Z","updated_at":"2025-04-03T07:42:47.000Z","dependencies_parsed_at":"2024-09-09T02:39:29.645Z","dependency_job_id":"01375091-5bc8-4f03-be76-86aadc038ce3","html_url":"https://github.com/RapidAI/RapidDoc","commit_stats":null,"previous_names":["rapidai/rapidlayoutrecover","rapidai/rapiddoc"],"tags_count":1,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/RapidAI%2FRapidDoc","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/RapidAI%2FRapidDoc/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/RapidAI%2FRapidDoc/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/RapidAI%2FRapidDoc/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/RapidAI","download_url":"https://codeload.github.com/RapidAI/RapidDoc/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247271520,"owners_count":20911587,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["layout-analysis","layout-recover"],"created_at":"2024-11-05T12:07:04.322Z","updated_at":"2026-05-24T16:01:06.969Z","avatar_url":"https://github.com/RapidAI.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# RapidDoc – 高速文档解析系统\n\n## 😺 项目介绍\n\n**RapidDoc 是一个轻量级、专注于文档解析的开源框架，支持 **OCR、版面分析、公式识别、表格识别和阅读顺序恢复** 等多种功能，支持将复杂 PDF 文档转换为 Markdown、JSON、WORD、HTML 格式。**\n\n**支持docx/doc、pptx/ppt、xlsx/xls的原生解析（不使用模型）。**\n\n**框架基于 [Mineru](https://github.com/opendatalab/MinerU) 二次开发，移除 VLM，专注于 Pipeline 产线下的高效文档解析，在 CPU 上也能保持不错的解析速度。**\n\n**本项目所使用的默认模型主要来源于 [PaddleOCR](https://github.com/PaddlePaddle/PaddleOCR) 的 [PP-StructureV3](https://www.paddleocr.ai/main/version3.x/pipeline_usage/PP-StructureV3.html) 系列（OCR、版面分析、公式识别、阅读顺序恢复，以及部分表格识别模型），并已全部转换为 ONNX 格式，支持在 CPU/GPU 上高效推理。**\n\n**同时支持自定义OCR、公式、表格模型，需实现 CustomBaseModel 的 batch_predict 方法，目前内置 [PaddleOCRVL](https://www.paddleocr.ai/main/version3.x/pipeline_usage/PaddleOCR-VL.html) 系列模型的集成。**\n\n**KittyDoc 已经成为 RapidAI 开源家族成员**\n\n---\n\n\u003e ✨如果该项目对您有帮助，您的star是我不断优化的动力！！！\n\u003e\n\u003e - [github点击前往](https://github.com/RapidAI/RapidDoc)\n\u003e - [gitee点击前往](https://gitee.com/hzkitty/KittyDoc)\n\n## 👏 项目特点\n\n- **OCR 识别**\n  - 使用 [RapidOCR](https://github.com/RapidAI/RapidOCR) 支持多种推理引擎\n  - CPU 下默认使用 OpenVINO（速度快，内存占用较高），GPU 下默认使用 torch\n  \n- **版面识别**\n  - 模型使用 `PP-DocLayout` 系列 ONNX 模型（v2、plus-L、L、M、S）\n    - **PP-DocLayoutV2**：自带阅读顺序，效果最好，默认使用\n    - **PP-DocLayoutV3**：自带阅读顺序，支持异形框\n    - **PP-DocLayout_plus-L**：效果好运行稳定\n    - **PP-DocLayout-L**：速度快，效果也不错\n    - **PP-DocLayout-S**：速度极快，存在部分漏检\n\n- **公式识别**\n  - 使用 `PP-FormulaNet_plus` 系列 ONNX 模型（L、M、S）\n    - **PP-FormulaNet_plus-L**：速度慢，支持onnx  \n    - **PP-FormulaNet_plus-M**：默认使用，支持onnx和torch    \n    - **PP-FormulaNet_plus-S**：速度最快，支持onnx，复杂公式精度不够\n  - 支持配置只识别行间公式\n  - 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)\n\n- **表格识别**\n  - 基于 [rapid_table_self](rapid_doc/model/table/rapid_table_self) 增强，在原有基础上增强为多模型串联方案：  \n    - **表格分类**（区分有线/无线表格）\n    - **[有线表格识别UNET](https://github.com/RapidAI/TableStructureRec)** + SLANET_plus/UNITABLE（作为无线表格识别）\n\n- **阅读顺序恢复**\n  - PP-DocLayoutV2和PP-DocLayoutV3使用版面模型自带的阅读顺序\n  - 其余版面模型，使用 PP-StructureV3 阅读顺序恢复算法，基于xycut算法和版面的结果\n\n- **推理方式**\n  - 所有模型通过 ONNXRuntime 推理，OCR可配置其他推理引擎\n  - 除了 OCR 和 PP-DocLayout-M/S 模型，OpenVINO推理会报错，暂时难以解决。[PaddleOCR/issues/16277](https://github.com/PaddlePaddle/PaddleOCR/issues/16277)\n---\n\n## 基准测试结果\n\n### 1. OmniDocBench\n\n以下是RapidDoc在 OmniDocBench 上的评估结果。\n\nPipeline 模型使用 PP-DocLayoutV2、PP-OCRv5-mobile、PP-FormulaNet_plus-M、UNET_SLANET_PLUS。\n\u003ctable style=\"width:100%; border-collapse: collapse;\"\u003e\n    \u003ccaption\u003eComprehensive evaluation of document parsing on OmniDocBench (v1.5)\u003c/caption\u003e\n    \u003cthead\u003e\n        \u003ctr\u003e\n            \u003cth\u003eModel Type\u003c/th\u003e\n            \u003cth\u003eMethods\u003c/th\u003e\n            \u003cth\u003eSize\u003c/th\u003e\n            \u003cth\u003eOverall\u0026#x2191;\u003c/th\u003e\n            \u003cth\u003eText\u003csup\u003eEdit\u003c/sup\u003e\u0026#x2193;\u003c/th\u003e\n            \u003cth\u003eFormula\u003csup\u003eCDM\u003c/sup\u003e\u0026#x2191;\u003c/th\u003e\n            \u003cth\u003eTable\u003csup\u003eTEDS\u003c/sup\u003e\u0026#x2191;\u003c/th\u003e\n            \u003cth\u003eTable\u003csup\u003eTEDS-S\u003c/sup\u003e\u0026#x2191;\u003c/th\u003e\n            \u003cth\u003eRead Order\u003csup\u003eEdit\u003c/sup\u003e\u0026#x2193;\u003c/th\u003e\n        \u003c/tr\u003e\n    \u003c/thead\u003e\n    \u003ctbody\u003e\n        \u003ctr\u003e\n            \u003ctd rowspan=\"16\"\u003e\u003cstrong\u003eSpecialized\u003c/strong\u003e\u003cbr\u003e\u003cstrong\u003eVLMs\u003c/strong\u003e\u003c/td\u003e\n            \u003ctd\u003ePaddleOCR-VL\u003c/td\u003e\n            \u003ctd\u003e0.9B\u003c/td\u003e\n            \u003ctd\u003e\u003cstrong\u003e92.86\u003c/strong\u003e\u003c/td\u003e\n            \u003ctd\u003e\u003cstrong\u003e0.035\u003c/strong\u003e\u003c/td\u003e\n            \u003ctd\u003e\u003cstrong\u003e91.22\u003c/strong\u003e\u003c/td\u003e\n            \u003ctd\u003e\u003cstrong\u003e90.89\u003c/strong\u003e\u003c/td\u003e\n            \u003ctd\u003e\u003cstrong\u003e94.76\u003c/strong\u003e\u003c/td\u003e\n            \u003ctd\u003e\u003cstrong\u003e0.043\u003c/strong\u003e\u003c/td\u003e\n        \u003c/tr\u003e\n            \u003ctd\u003eMinerU2.5\u003c/td\u003e\n            \u003ctd\u003e1.2B\u003c/td\u003e\n            \u003ctd\u003e\u003cins\u003e90.67\u003c/ins\u003e\u003c/td\u003e\n            \u003ctd\u003e\u003cins\u003e0.047\u003c/ins\u003e\u003c/td\u003e\n            \u003ctd\u003e\u003cins\u003e88.46\u003c/ins\u003e\u003c/td\u003e\n            \u003ctd\u003e\u003cins\u003e88.22\u003c/ins\u003e\u003c/td\u003e\n            \u003ctd\u003e\u003cins\u003e92.38\u003c/ins\u003e\u003c/td\u003e\n            \u003ctd\u003e\u003cins\u003e0.044\u003c/ins\u003e\u003c/td\u003e\n        \u003c/tr\u003e\n        \u003ctr\u003e\n            \u003ctd\u003eMonkeyOCR-pro-3B\u003c/td\u003e\n            \u003ctd\u003e3B\u003c/td\u003e\n            \u003ctd\u003e88.85\u003c/td\u003e\n            \u003ctd\u003e0.075\u003c/td\u003e\n            \u003ctd\u003e87.25\u003c/td\u003e\n            \u003ctd\u003e86.78\u003c/td\u003e\n            \u003ctd\u003e90.63\u003c/td\u003e\n            \u003ctd\u003e0.128\u003c/td\u003e\n        \u003c/tr\u003e\n        \u003ctr\u003e\n            \u003ctd\u003eOCRVerse\u003c/td\u003e\n            \u003ctd\u003e4B\u003c/td\u003e\n            \u003ctd\u003e88.56\u003c/td\u003e\n            \u003ctd\u003e0.058\u003c/td\u003e\n            \u003ctd\u003e86.91\u003c/td\u003e\n            \u003ctd\u003e84.55\u003c/td\u003e\n            \u003ctd\u003e88.45\u003c/td\u003e\n            \u003ctd\u003e0.071\u003c/td\u003e\n        \u003c/tr\u003e\n        \u003ctr\u003e\n            \u003ctd\u003edots.ocr\u003c/td\u003e\n            \u003ctd\u003e3B\u003c/td\u003e\n            \u003ctd\u003e88.41\u003c/td\u003e\n            \u003ctd\u003e0.048\u003c/td\u003e\n            \u003ctd\u003e83.22\u003c/td\u003e\n            \u003ctd\u003e86.78\u003c/td\u003e\n            \u003ctd\u003e90.62\u003c/td\u003e\n            \u003ctd\u003e0.053\u003c/td\u003e\n        \u003c/tr\u003e\n        \u003ctr\u003e\n            \u003ctd\u003eMonkeyOCR-3B\u003c/td\u003e\n            \u003ctd\u003e3B\u003c/td\u003e\n            \u003ctd\u003e87.13\u003c/td\u003e\n            \u003ctd\u003e0.075\u003c/td\u003e\n            \u003ctd\u003e87.45\u003c/td\u003e\n            \u003ctd\u003e81.39\u003c/td\u003e\n            \u003ctd\u003e85.92\u003c/td\u003e\n            \u003ctd\u003e0.129\u003c/td\u003e\n        \u003c/tr\u003e\n        \u003ctr\u003e\n            \u003ctd\u003eDeepseek-OCR\u003c/td\u003e\n            \u003ctd\u003e3B\u003c/td\u003e\n            \u003ctd\u003e87.01\u003c/td\u003e\n            \u003ctd\u003e0.073\u003c/td\u003e\n            \u003ctd\u003e83.37\u003c/td\u003e\n            \u003ctd\u003e84.97\u003c/td\u003e\n            \u003ctd\u003e88.80\u003c/td\u003e\n            \u003ctd\u003e0.086\u003c/td\u003e\n        \u003c/tr\u003e\n        \u003ctr\u003e\n            \u003ctd\u003eMonkeyOCR-pro-1.2B\u003c/td\u003e\n            \u003ctd\u003e1.2B\u003c/td\u003e\n            \u003ctd\u003e86.96\u003c/td\u003e\n            \u003ctd\u003e0.084\u003c/td\u003e\n            \u003ctd\u003e85.02\u003c/td\u003e\n            \u003ctd\u003e84.24\u003c/td\u003e\n            \u003ctd\u003e89.02\u003c/td\u003e\n            \u003ctd\u003e0.130\u003c/td\u003e\n        \u003c/tr\u003e\n        \u003ctr\u003e\n            \u003ctd\u003eNanonets-OCR-s\u003c/td\u003e\n            \u003ctd\u003e3B\u003c/td\u003e\n            \u003ctd\u003e85.59\u003c/td\u003e\n            \u003ctd\u003e0.093\u003c/td\u003e\n            \u003ctd\u003e85.90\u003c/td\u003e\n            \u003ctd\u003e80.14\u003c/td\u003e\n            \u003ctd\u003e85.57\u003c/td\u003e\n            \u003ctd\u003e0.108\u003c/td\u003e\n        \u003c/tr\u003e\n        \u003ctr\u003e\n            \u003ctd\u003eMinerU2-VLM\u003c/td\u003e\n            \u003ctd\u003e0.9B\u003c/td\u003e\n            \u003ctd\u003e85.56\u003c/td\u003e\n            \u003ctd\u003e0.078\u003c/td\u003e\n            \u003ctd\u003e80.95\u003c/td\u003e\n            \u003ctd\u003e83.54\u003c/td\u003e\n            \u003ctd\u003e87.66\u003c/td\u003e\n            \u003ctd\u003e0.086\u003c/td\u003e\n        \u003c/tr\u003e\n        \u003ctr\u003e\n            \u003ctd\u003eolmOCR\u003c/td\u003e\n            \u003ctd\u003e7B\u003c/td\u003e\n            \u003ctd\u003e81.79\u003c/td\u003e\n            \u003ctd\u003e0.096\u003c/td\u003e\n            \u003ctd\u003e86.04\u003c/td\u003e\n            \u003ctd\u003e68.92\u003c/td\u003e\n            \u003ctd\u003e74.77\u003c/td\u003e\n            \u003ctd\u003e0.121\u003c/td\u003e\n        \u003c/tr\u003e\n        \u003ctr\u003e\n            \u003ctd\u003eDolphin-1.5\u003c/td\u003e\n            \u003ctd\u003e0.3B\u003c/td\u003e\n            \u003ctd\u003e83.21\u003c/td\u003e\n            \u003ctd\u003e0.092\u003c/td\u003e\n            \u003ctd\u003e80.78\u003c/td\u003e\n            \u003ctd\u003e78.06\u003c/td\u003e\n            \u003ctd\u003e84.10\u003c/td\u003e\n            \u003ctd\u003e0.080\u003c/td\u003e\n        \u003c/tr\u003e\n        \u003ctr\u003e\n            \u003ctd\u003ePOINTS-Reader\u003c/td\u003e\n            \u003ctd\u003e3B\u003c/td\u003e\n            \u003ctd\u003e80.98\u003c/td\u003e\n            \u003ctd\u003e0.134\u003c/td\u003e\n            \u003ctd\u003e79.20\u003c/td\u003e\n            \u003ctd\u003e77.13\u003c/td\u003e\n            \u003ctd\u003e81.66\u003c/td\u003e\n            \u003ctd\u003e0.145\u003c/td\u003e\n        \u003c/tr\u003e\n        \u003ctr\u003e\n            \u003ctd\u003eMistral OCR\u003c/td\u003e\n            \u003ctd\u003e-\u003c/td\u003e\n            \u003ctd\u003e78.83\u003c/td\u003e\n            \u003ctd\u003e0.164\u003c/td\u003e\n            \u003ctd\u003e82.84\u003c/td\u003e\n            \u003ctd\u003e70.03\u003c/td\u003e\n            \u003ctd\u003e78.04\u003c/td\u003e\n            \u003ctd\u003e0.144\u003c/td\u003e\n        \u003c/tr\u003e\n        \u003ctr\u003e\n            \u003ctd\u003eOCRFlux\u003c/td\u003e\n            \u003ctd\u003e3B\u003c/td\u003e\n            \u003ctd\u003e74.82\u003c/td\u003e\n            \u003ctd\u003e0.193\u003c/td\u003e\n            \u003ctd\u003e68.03\u003c/td\u003e\n            \u003ctd\u003e75.75\u003c/td\u003e\n            \u003ctd\u003e80.23\u003c/td\u003e\n            \u003ctd\u003e0.202\u003c/td\u003e\n        \u003c/tr\u003e\n        \u003ctr\u003e\n            \u003ctd\u003eDolphin\u003c/td\u003e\n            \u003ctd\u003e0.3B\u003c/td\u003e\n            \u003ctd\u003e74.67\u003c/td\u003e\n            \u003ctd\u003e0.125\u003c/td\u003e\n            \u003ctd\u003e67.85\u003c/td\u003e\n            \u003ctd\u003e68.70\u003c/td\u003e\n            \u003ctd\u003e77.77\u003c/td\u003e\n            \u003ctd\u003e0.124\u003c/td\u003e\n        \u003c/tr\u003e\n        \u003ctr\u003e\n            \u003ctd rowspan=\"6\"\u003e\u003cstrong\u003eGeneral\u003c/strong\u003e\u003cbr\u003e\u003cstrong\u003eVLMs\u003c/strong\u003e\u003c/td\u003e\n            \u003ctd\u003eQwen3-VL-235B-A22B-Instruct\u003c/td\u003e\n            \u003ctd\u003e235B\u003c/td\u003e\n            \u003ctd\u003e89.15\u003c/td\u003e\n            \u003ctd\u003e0.069\u003c/td\u003e\n            \u003ctd\u003e88.14\u003c/td\u003e\n            \u003ctd\u003e86.21\u003c/td\u003e\n            \u003ctd\u003e90.55\u003c/td\u003e\n            \u003ctd\u003e0.068\u003c/td\u003e\n        \u003c/tr\u003e\n            \u003ctd\u003eGemini-2.5 Pro\u003c/td\u003e\n            \u003ctd\u003e-\u003c/td\u003e\n            \u003ctd\u003e88.03\u003c/td\u003e\n            \u003ctd\u003e0.075\u003c/td\u003e\n            \u003ctd\u003e85.82\u003c/td\u003e\n            \u003ctd\u003e85.71\u003c/td\u003e\n            \u003ctd\u003e90.29\u003c/td\u003e\n            \u003ctd\u003e0.097\u003c/td\u003e\n        \u003c/tr\u003e\n        \u003ctr\u003e\n            \u003ctd\u003eQwen2.5-VL\u003c/td\u003e\n            \u003ctd\u003e72B\u003c/td\u003e\n            \u003ctd\u003e87.02\u003c/td\u003e\n            \u003ctd\u003e0.094\u003c/td\u003e\n            \u003ctd\u003e88.27\u003c/td\u003e\n            \u003ctd\u003e82.15\u003c/td\u003e\n            \u003ctd\u003e86.22\u003c/td\u003e\n            \u003ctd\u003e0.102\u003c/td\u003e\n        \u003c/tr\u003e\n        \u003ctr\u003e\n            \u003ctd\u003eInternVL3.5\u003c/td\u003e\n            \u003ctd\u003e241B\u003c/td\u003e\n            \u003ctd\u003e82.67\u003c/td\u003e\n            \u003ctd\u003e0.142\u003c/td\u003e\n            \u003ctd\u003e87.23\u003c/td\u003e\n            \u003ctd\u003e75.00\u003c/td\u003e\n            \u003ctd\u003e81.28\u003c/td\u003e\n            \u003ctd\u003e0.125\u003c/td\u003e\n        \u003c/tr\u003e\n        \u003ctr\u003e\n            \u003ctd\u003eInternVL3\u003c/td\u003e\n            \u003ctd\u003e78B\u003c/td\u003e\n            \u003ctd\u003e80.33\u003c/td\u003e\n            \u003ctd\u003e0.131\u003c/td\u003e\n            \u003ctd\u003e83.42\u003c/td\u003e\n            \u003ctd\u003e70.64\u003c/td\u003e\n            \u003ctd\u003e77.74\u003c/td\u003e\n            \u003ctd\u003e0.113\u003c/td\u003e\n        \u003c/tr\u003e\n        \u003ctr\u003e\n            \u003ctd\u003eGPT-4o\u003c/td\u003e\n            \u003ctd\u003e-\u003c/td\u003e\n            \u003ctd\u003e75.02\u003c/td\u003e\n            \u003ctd\u003e0.217\u003c/td\u003e\n            \u003ctd\u003e79.70\u003c/td\u003e\n            \u003ctd\u003e67.07\u003c/td\u003e\n            \u003ctd\u003e76.09\u003c/td\u003e\n            \u003ctd\u003e0.148\u003c/td\u003e\n        \u003c/tr\u003e\n        \u003ctr\u003e\n            \u003ctd rowspan=\"4\"\u003e\u003cstrong\u003ePipeline\u003c/strong\u003e\u003cbr\u003e\u003cstrong\u003eTools\u003c/strong\u003e\u003c/td\u003e\n            \u003ctd\u003e\u003cstrong\u003eRapidDoc\u003c/strong\u003e\u003c/td\u003e\n            \u003ctd\u003e-\u003c/td\u003e\n            \u003ctd\u003e87.81\u003c/td\u003e\n            \u003ctd\u003e0.065\u003c/td\u003e\n            \u003ctd\u003e89.348\u003c/td\u003e\n            \u003ctd\u003e80.59\u003c/td\u003e\n            \u003ctd\u003e87.90\u003c/td\u003e\n            \u003ctd\u003e0.053\u003c/td\u003e\n        \u003c/tr\u003e\n        \u003ctr\u003e\n            \u003ctd\u003ePP-StructureV3\u003c/td\u003e\n            \u003ctd\u003e-\u003c/td\u003e\n            \u003ctd\u003e86.73\u003c/td\u003e\n            \u003ctd\u003e0.073\u003c/td\u003e\n            \u003ctd\u003e85.79\u003c/td\u003e\n            \u003ctd\u003e81.68\u003c/td\u003e\n            \u003ctd\u003e89.48\u003c/td\u003e\n            \u003ctd\u003e0.073\u003c/td\u003e\n        \u003c/tr\u003e\n        \u003ctr\u003e\n            \u003ctd\u003eMineru2-pipeline\u003c/td\u003e\n            \u003ctd\u003e-\u003c/td\u003e\n            \u003ctd\u003e75.51\u003c/td\u003e\n            \u003ctd\u003e0.209\u003c/td\u003e\n            \u003ctd\u003e76.55\u003c/td\u003e\n            \u003ctd\u003e70.90\u003c/td\u003e\n            \u003ctd\u003e79.11\u003c/td\u003e\n            \u003ctd\u003e0.225\u003c/td\u003e\n        \u003c/tr\u003e\n        \u003ctr\u003e\n            \u003ctd\u003eMarker-1.8.2\u003c/td\u003e\n            \u003ctd\u003e-\u003c/td\u003e\n            \u003ctd\u003e71.30\u003c/td\u003e\n            \u003ctd\u003e0.206\u003c/td\u003e\n            \u003ctd\u003e76.66\u003c/td\u003e\n            \u003ctd\u003e57.88\u003c/td\u003e\n            \u003ctd\u003e71.17\u003c/td\u003e\n            \u003ctd\u003e0.250\u003c/td\u003e\n        \u003c/tr\u003e\n    \u003c/tbody\u003e\n\u003c/table\u003e\n\n## 🛠️ 安装RapidDoc\n\n#### 使用pip安装\n```bash\npip install rapid-doc[cpu] -i https://mirrors.aliyun.com/pypi/simple\n或\npip install rapid-doc[gpu] -i https://mirrors.aliyun.com/pypi/simple\n```\n\n#### 通过源码安装\n```bash\n# 克隆仓库\ngit clone https://github.com/RapidAI/RapidDoc.git\ncd RapidDoc\n\n# 安装依赖\npip install -e .[cpu] -i https://mirrors.aliyun.com/pypi/simple\n或\npip install -e .[gpu] -i https://mirrors.aliyun.com/pypi/simple\n```\n#### 使用gpu推理\n```python\n# rapid-doc[gpu] 默认安装 onnxruntime-gpu 最新版\n# 需要确定onnxruntime-gpu与GPU对应，参考 https://onnxruntime.ai/docs/execution-providers/CUDA-ExecutionProvider.html#requirements\n\n# 在 Python 中指定 GPU（必须在导入 rapid_doc 之前设置）\nimport os\n# 使用默认 GPU（cuda:0）\nos.environ['MINERU_DEVICE_MODE'] = \"cuda\"\n# 或指定 GPU 编号，例如使用第二块 GPU（cuda:1）\nos.environ['MINERU_DEVICE_MODE'] = \"cuda:1\"\n```\n#### 使用PaddleOCRVL系列推理\nvl模型的部署，参考[官方文档](https://www.paddleocr.ai/main/version3.x/pipeline_usage/PaddleOCR-VL.html#31-vlm) \n```python\nimport os\nos.environ['PADDLEOCRVL_VERSION'] = \"v1.5\"\nos.environ['PADDLEOCRVL_VL_REC_BACKEND'] = \"vllm-server\"\nos.environ['PADDLEOCRVL_VL_VL_REC_SERVER_URL'] = \"http://localhost:8118/v1\"\n\nfrom rapid_doc.model.layout.rapid_layout_self import ModelType as LayoutModelType\nfrom rapid_doc.model.custom.paddleocr_vl.paddleocr_vl import PaddleOCRVLTableModel, PaddleOCRVLOCRModel, PaddleOCRVLFormulaModel\nlayout_config = {\n    \"model_type\": LayoutModelType.PP_DOCLAYOUTV3,\n}\nocr_config = {\n    \"custom_model\": PaddleOCRVLOCRModel()\n}\nformula_config = {\n    \"custom_model\": PaddleOCRVLFormulaModel()\n}\ntable_config = {\n    \"custom_model\": PaddleOCRVLTableModel()\n}\n```\n\n#### 使用docker部署RapidDoc\nRapidDoc提供了便捷的docker部署方式，这有助于快速搭建环境并解决一些棘手的环境兼容问题。\n\n您可以在文档中获取 [Docker部署说明](docker/README.md)，镜像已推送至 [Docker Hub](https://hub.docker.com/r/hzkitty/rapid-doc)。\n\n---\n### 📋 使用\n\n```python\nimport os\nfrom pathlib import Path\nfrom rapid_doc import RapidDoc\n__dir__ = Path(__file__).resolve().parent.parent\noutput_dir = os.path.join(__dir__, \"output\")\n\ndoc_path_list = [\n    __dir__ / \"demo/pdfs/示例1-论文模板.pdf\",\n    __dir__ / \"demo/docx/test.docx\",\n]\nengine = RapidDoc()\noutputs = engine(doc_path_list, output_dir=output_dir)\nfor output in outputs:\n    print(output.markdown)\n```\n---\n\n## 在线体验\n\n### 基于Gradio的在线demo\n基于gradio开发的webui，界面简洁，仅包含核心解析功能，免登录\n\n- [![ModelScope](https://img.shields.io/badge/Demo_on_ModelScope-purple?logo=data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjIzIiBoZWlnaHQ9IjIwMCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KCiA8Zz4KICA8dGl0bGU+TGF5ZXIgMTwvdGl0bGU+CiAgPHBhdGggaWQ9InN2Z18xNCIgZmlsbD0iIzYyNGFmZiIgZD0ibTAsODkuODRsMjUuNjUsMGwwLDI1LjY0OTk5bC0yNS42NSwwbDAsLTI1LjY0OTk5eiIvPgogIDxwYXRoIGlkPSJzdmdfMTUiIGZpbGw9IiM2MjRhZmYiIGQ9Im05OS4xNCwxMTUuNDlsMjUuNjUsMGwwLDI1LjY1bC0yNS42NSwwbDAsLTI1LjY1eiIvPgogIDxwYXRoIGlkPSJzdmdfMTYiIGZpbGw9IiM2MjRhZmYiIGQ9Im0xNzYuMDksMTQxLjE0bC0yNS42NDk5OSwwbDAsMjIuMTlsNDcuODQsMGwwLC00Ny44NGwtMjIuMTksMGwwLDI1LjY1eiIvPgogIDxwYXRoIGlkPSJzdmdfMTciIGZpbGw9IiMzNmNmZDEiIGQ9Im0xMjQuNzksODkuODRsMjUuNjUsMGwwLDI1LjY0OTk5bC0yNS42NSwwbDAsLTI1LjY0OTk5eiIvPgogIDxwYXRoIGlkPSJzdmdfMTgiIGZpbGw9IiMzNmNmZDEiIGQ9Im0wLDY0LjE5bDI1LjY1LDBsMCwyNS42NWwtMjUuNjUsMGwwLC0yNS42NXoiLz4KICA8cGF0aCBpZD0ic3ZnXzE5IiBmaWxsPSIjNjI0YWZmIiBkPSJtMTk4LjI4LDg5Ljg0bDI1LjY0OTk5LDBsMCwyNS42NDk5OWwtMjUuNjQ5OTksMGwwLC0yNS42NDk5OXoiLz4KICA8cGF0aCBpZD0ic3ZnXzIwIiBmaWxsPSIjMzZjZmQxIiBkPSJtMTk4LjI4LDY0LjE5bDI1LjY0OTk5LDBsMCwyNS42NWwtMjUuNjQ5OTksMGwwLC0yNS42NXoiLz4KICA8cGF0aCBpZD0ic3ZnXzIxIiBmaWxsPSIjNjI0YWZmIiBkPSJtMTUwLjQ0LDQybDAsMjIuMTlsMjUuNjQ5OTksMGwwLDI1LjY1bDIyLjE5LDBsMCwtNDcuODRsLTQ3Ljg0LDB6Ii8+CiAgPHBhdGggaWQ9InN2Z18yMiIgZmlsbD0iIzM2Y2ZkMSIgZD0ibTczLjQ5LDg5Ljg0bDI1LjY1LDBsMCwyNS42NDk5OWwtMjUuNjUsMGwwLC0yNS42NDk5OXoiLz4KICA8cGF0aCBpZD0ic3ZnXzIzIiBmaWxsPSIjNjI0YWZmIiBkPSJtNDcuODQsNjQuMTlsMjUuNjUsMGwwLC0yMi4xOWwtNDcuODQsMGwwLDQ3Ljg0bDIyLjE5LDBsMCwtMjUuNjV6Ii8+CiAgPHBhdGggaWQ9InN2Z18yNCIgZmlsbD0iIzYyNGFmZiIgZD0ibTQ3Ljg0LDExNS40OWwtMjIuMTksMGwwLDQ3Ljg0bDQ3Ljg0LDBsMCwtMjIuMTlsLTI1LjY1LDBsMCwtMjUuNjV6Ii8+CiA8L2c+Cjwvc3ZnPg==\u0026labelColor=white)](https://www.modelscope.cn/studios/RapidAI/RapidDoc)\n\n---\n\n## 📋 使用示例\n\n- [代码示例](./demo/demo.py)\n\n- [参数介绍](./docs/analyze_param.md)\n\n- [FastAPI 示例](./docker/README_API.md)\n---\n\n## 模型下载\n不指定模型路径，初次运行时，会自动下载\n- [RapidDoc 模型集（版面/公式/表格）](https://www.modelscope.cn/models/RapidAI/RapidDoc)  \n- [RapidOCR 模型](https://www.modelscope.cn/models/RapidAI/RapidOCR)  \n- [部分表格模型RapidTable](https://www.modelscope.cn/models/RapidAI/RapidTable) \n\n---\n\n## 📌 TODO\n\n- [x] 跨页表格合并\n- [x] 复选框识别，使用opencv（默认关闭、opencv识别存在误检）\n- [x] 提供 fastapi，支持cpu和gpu版本的docker镜像构建\n- [x] 文本型pdf，表格非OCR文本提取\n- [x] 文本型pdf，使用pypdfium2提取文本框bbox\n- [x] 文本型pdf，支持0/90/270度三个方向的表格解析\n- [x] 文本型pdf，使用pypdfium2提取原始图片（默认截图会导致清晰度降低和图片边界可能丢失部分）\n- [x] 表格内公式提取，表格内图片提取\n- [x] 优化阅读顺序，支持多栏、竖排等复杂版面恢复\n- [x] 公式支持torch推理，可用GPU加速\n- [x] 版面、表格模型支持openvino\n- [x] markdown转docx、html\n- [x] 支持 PP-DocLayoutV2 版面识别+阅读顺序\n- [x] OmniDocBench评测\n- [x] 支持自定义的ocr、table、公式。支持PaddleOCR-VL系列\n- [x] 支持docx/doc、pptx/ppt、xlsx/xls的原生解析（不使用模型）\n- [x] 支持印章文本检测\n- [x] 文档方向90°、270°矫正（默认关闭），表格方向90°、270°矫正（默认开启）\n\n## 🙏 致谢\n\n- [MinerU](https://github.com/opendatalab/MinerU)\n- [PaddleOCR](https://github.com/PaddlePaddle/PaddleOCR)\n- [RapidOCR](https://github.com/RapidAI/RapidOCR)\n\n## Star History\n\n\u003ca href=\"https://www.star-history.com/?repos=RapidAI%2FRapidDoc\u0026type=date\u0026legend=top-left\"\u003e\n \u003cpicture\u003e\n   \u003csource media=\"(prefers-color-scheme: dark)\" srcset=\"https://api.star-history.com/image?repos=RapidAI/RapidDoc\u0026type=date\u0026theme=dark\u0026legend=top-left\" /\u003e\n   \u003csource media=\"(prefers-color-scheme: light)\" srcset=\"https://api.star-history.com/image?repos=RapidAI/RapidDoc\u0026type=date\u0026legend=top-left\" /\u003e\n   \u003cimg alt=\"Star History Chart\" src=\"https://api.star-history.com/image?repos=RapidAI/RapidDoc\u0026type=date\u0026legend=top-left\" /\u003e\n \u003c/picture\u003e\n\u003c/a\u003e\n\n## ⚖️ 开源许可\n\n基于 [MinerU](https://github.com/opendatalab/MinerU) 改造而来，已**移除原项目中的 YOLO 模型**，并替换为 **PP-StructureV3 系列 ONNX 模型**。  \n由于已移除 AGPL 授权的 YOLO 模型部分，本项目整体不再受 AGPL 约束。\n\n该项目采用 [Apache 2.0 license](LICENSE) 开源许可证。\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frapidai%2Frapiddoc","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Frapidai%2Frapiddoc","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frapidai%2Frapiddoc/lists"}