站点图标 高效码农

颠覆传统!MonkeyOCR如何用SRR范式引爆文档解析效率革命?

MonkeyOCR:开启文档解析新范式

在当今数字化信息爆炸的时代,文档解析技术的重要性日益凸显。无论是学术研究、商业报告还是日常办公,我们都需要高效、准确地从各类文档中提取关键信息。然而,传统的文档解析方法往往存在效率低下、准确性不足等问题。今天,我要向大家介绍一款名为 MonkeyOCR 的文档解析工具,它采用独特的 Structure-Recognition-Relation(SRR)三元组范式,为文档解析领域带来了全新的解决方案。

MonkeyOCR 是什么?

MonkeyOCR 是一款由 Zhang Li、Yuliang Liu 等研究人员开发的文档解析工具。它创新性地采用了 SRR(结构 – 识别 – 关系)三元组范式,旨在简化传统模块化方法的多工具流程,同时避免使用大型多模态模型处理整页文档时的低效问题。

MonkeyOCR 的优势

  • 高效性能 :在与基于管道的方法 MinerU 相比时,MonkeyOCR 在九种中英文文档类型上平均提升了 5.1%,在公式方面更是取得了 15.0% 的显著进步,在表格方面也有 8.6% 的提升。与端到端模型相比,其 3B 参数模型在英文文档上展现了最佳的平均性能,超越了 Gemini 2.5 Pro 和 Qwen2.5 VL-72B 等模型。在多页文档解析的速度上,MonkeyOCR 达到了每秒 0.84 页,超过了 MinerU 的 0.65 页和 Qwen2.5 VL-7B 的 0.12 页。
  • 支持多种文档类型 :MonkeyOCR 目前支持多种类型的中文和英文文档解析,包括书籍、幻灯片、财务报告、教科书、试卷、杂志、学术论文、笔记和报纸等。

快速安装与使用

环境搭建

  • 创建并激活 Conda 环境:使用以下命令创建名为 MonkeyOCR 的 Python 3.10 环境,并激活该环境。
conda create -n MonkeyOCR python=3.10
conda activate MonkeyOCR
  • 克隆项目仓库:将 MonkeyOCR 的项目仓库克隆到本地。
git clone https://github.com/Yuliang-Liu/MonkeyOCR.git
cd MonkeyOCR
  • 安装 PyTorch:根据你的 CUDA 版本,在👉PyTorch 官网找到合适的安装命令。例如,如果你使用的是 CUDA 12.4,可以运行以下命令安装 PyTorch 2.5.1、torchvision 0.20.1 和 torchaudio 2.5.1。
pip install torch==2.5.1 torchvision==0.20.1 torchaudio==2.5.1 --index-url https://download.pytorch.org/whl/cu124
  • 安装项目依赖:在项目根目录下,执行以下命令安装项目所需的依赖包。
pip install .

下载模型权重

  • 安装 HuggingFace Hub:使用 pip 安装 HuggingFace Hub 库。
pip install huggingface_hub
  • 下载模型权重:运行以下命令下载 MonkeyOCR 的模型权重文件。
python download_model.py

运行推理任务

  • 基本推理命令:确保你在 MonkeyOCR 项目根目录下,然后运行以下命令对指定的 PDF 文件进行解析。
python parse.py path/to/your.pdf
  • 指定模型路径和配置文件:如果你已经下载了 MonkeyChat 路径和模型配置文件,可以使用以下命令进行推理。
python parse.py path/to/your.pdf -m model_weight/Recognition -c config.yaml

使用 Gradio 演示

  • 安装 Gradio 和 pdf2image:在你的环境中安装 Gradio 和 pdf2image 库,以支持演示功能。
pip install gradio==5.23.3
pip install pdf2image==1.17.0
  • 启动演示:运行以下命令启动 Gradio 演示服务。
python demo/demo_gradio.py

这样,你就可以通过 Gradio 界面上传 PDF 或图像文件,并直观地看到 MonkeyOCR 对文档的解析效果。

基准测试结果

不同任务的端到端评估结果

在 OmniDocBench 数据集上,MonkeyOCR-3B 和 MonkeyOCR-3B* 模型在多个任务指标上取得了优异的成绩。以下表格展示了不同模型在各项任务上的表现:

模型类型 方法 Overall Edit↓ Overall Edit↓ Text Edit↓ Text Edit↓ Formula Edit↓ Formula Edit↓ Formula CDM↑ Formula CDM↑ Table TEDS↑ Table TEDS↑ Table Edit↓ Table Edit↓ Read Order Edit↓ Read Order Edit↓
Model Type Methods EN ZH EN ZH EN ZH EN ZH EN ZH EN ZH EN ZH
Pipeline Tools MinerU 0.150 0.357 0.061 0.215 0.278 0.577 57.3 42.9 78.6 62.1 0.180 0.344 0.079 0.292
Pipeline Tools Marker 0.336 0.556 0.080 0.315 0.530 0.883 17.6 11.7 67.6 49.2 0.619 0.685 0.114 0.340
Pipeline Tools Mathpix 0.191 0.365 0.105 0.384 0.306 0.454 62.7 62.1 77.0 67.1 0.243 0.320 0.108 0.304
Pipeline Tools Docling 0.589 0.909 0.416 0.987 0.999 1 61.3 25.0 0.627 0.810 0.313 0.837
Pipeline Tools Pix2Text 0.320 0.528 0.138 0.356 0.276 0.611 78.4 39.6 73.6 66.2 0.584 0.645 0.281 0.499
Pipeline Tools Unstructured 0.586 0.716 0.198 0.481 0.999 1 0 0.06 1 0.998 0.145 0.387
Pipeline Tools OpenParse 0.646 0.814 0.681 0.974 0.996 1 0.11 0 64.8 27.5 0.284 0.639 0.595 0.641
Expert VLMs GOT-OCR 0.287 0.411 0.189 0.315 0.360 0.528 74.3 45.3 53.2 47.2 0.459 0.520 0.141 0.280
Expert VLMs Nougat 0.452 0.973 0.365 0.998 0.488 0.941 15.1 16.8 39.9 0 0.572 1.000 0.382 0.954
Expert VLMs Mistral OCR 0.268 0.439 0.072 0.325 0.318 0.495 64.6 45.9 75.8 63.6 0.600 0.650 0.083 0.284
Expert VLMs OLMOCR-sglang 0.326 0.469 0.097 0.293 0.455 0.655 74.3 43.2 68.1 61.3 0.608 0.652 0.145 0.277
Expert VLMs SmolDocling-256M 0.493 0.816 0.262 0.838 0.753 0.997 32.1 0.55 44.9 16.5 0.729 0.907 0.227 0.522
General VLMs GPT4o 0.233 0.399 0.144 0.409 0.425 0.606 72.8 42.8 72.0 62.9 0.234 0.329 0.128 0.251
General VLMs Qwen2.5-VL-7B 0.312 0.406 0.157 0.228 0.351 0.574 79.0 50.2 76.4 72.2 0.588 0.619 0.149 0.203
General VLMs InternVL3-8B 0.314 0.383 0.134 0.218 0.417 0.563 78.3 49.3 66.1 73.1 0.586 0.564 0.118 0.186
Mix MonkeyOCR-3B [Weight] 0.140 0.297 0.058 0.185 0.238 0.506 78.7 51.4 80.2 77.7 0.170 0.253 0.093 0.244
Mix MonkeyOCR-3B* [Weight] 0.154 0.277 0.073 0.134 0.255 0.529 78.5 50.8 78.2 76.2 0.182 0.262 0.105 0.183

从表中可以看出,MonkeyOCR-3B 在 Overall Edit(整体编辑距离)指标上,无论是英文还是中文,都取得了最低值,分别为 0.140 和 0.297,这表明它在整体文档解析的准确性上具有显著优势。在 Text Edit(文本编辑距离)方面,MonkeyOCR-3B 的英文和中文成绩分别为 0.058 和 0.185,同样是最低的,说明其文本识别的准确性很高。对于 Formula Edit(公式编辑距离),MonkeyOCR-3B 的英文和中文成绩分别为 0.238 和 0.506,虽然在英文方面不是最低,但在中文方面表现优异。在 Formula CDM(公式字符匹配率)指标上,MonkeyOCR-3B 在英文和中文的 Formula CDM 分别达到了 78.7% 和 51.4%,在英文方面表现最佳。在 Table TEDS(表格 TEDS 指标)上,MonkeyOCR-3B 取得了 80.2%(英文)和 77.7%(中文)的最高分,显示出其在表格解析方面的强大能力。在 Table Edit(表格编辑距离)和 Read Order Edit(阅读顺序编辑距离)方面,MonkeyOCR-3B 同样取得了最低值,分别为 0.170(英文)、0.253(中文)和 0.093(英文)、0.244(中文)。

不同 PDF 页面类型的文本识别性能

以下表格展示了不同模型在九种 PDF 页面类型上的文本识别性能:

Model Type Models Book Slides Financial Report Textbook Exam Paper Magazine Academic Papers Notes Newspaper Overall
Pipeline Tools MinerU 0.055 0.124 0.033 0.102 0.159 0.072 0.025 0.984 0.171 0.206
Pipeline Tools Marker 0.074 0.340 0.089 0.319 0.452 0.153 0.059 0.651 0.192 0.274
Pipeline Tools Mathpix 0.131 0.220 0.202 0.216 0.278 0.147 0.091 0.634 0.690 0.300
Expert VLMs GOT-OCR 0.111 0.222 0.067 0.132 0.204 0.198 0.179 0.388 0.771 0.267
Expert VLMs Nougat 0.734 0.958 1.000 0.820 0.930 0.830 0.214 0.991 0.871 0.806
General VLMs GPT4o 0.157 0.163 0.348 0.187 0.281 0.173 0.146 0.607 0.751 0.316
General VLMs Qwen2.5-VL-7B 0.148 0.053 0.111 0.137 0.189 0.117 0.134 0.204 0.706 0.205
General VLMs InternVL3-8B 0.163 0.056 0.107 0.109 0.129 0.100 0.159 0.150 0.681 0.188
Mix MonkeyOCR-3B [Weight] 0.046 0.120 0.024 0.100 0.129 0.086 0.024 0.643 0.131 0.155
Mix MonkeyOCR-3B* [Weight] 0.054 0.203 0.038 0.112 0.138 0.111 0.032 0.194 0.136 0.120

在书籍、财务报告、教科书、试卷等页面类型的文本识别上,MonkeyOCR-3B 和 MonkeyOCR-3B* 均取得了最低的编辑距离值,表明其在这些特定文档类型上的文本识别准确性最高。例如,在书籍页面类型上,MonkeyOCR-3B 的编辑距离为 0.046,是所有模型中最低的;在财务报告页面类型上,其编辑距离为 0.024,同样最低。此外,在整体性能上,MonkeyOCR-3B 以 0.155 的编辑距离值位居榜首,展现了其在多样化文档类型上的卓越表现。

MonkeyOCR 的可视化演示

为了让大家更直观地了解 MonkeyOCR 的强大功能,项目团队提供了一个在线演示平台:👉http://vlrlabmonkey.xyz:7685 。你可以通过以下步骤体验 MonkeyOCR 的文档解析能力:

  1. 上传 PDF 或图像文件:点击上传按钮,选择你想要解析的文档文件。
  2. 解析文档:点击 “Parse(解析)” 按钮,MonkeyOCR 将对输入文档进行结构检测、内容识别和关系预测,并以 markdown 格式输出解析结果。
  3. 测试提示语:你可以选择预设的提示语,点击 “Test by prompt” 按钮,让模型根据提示语对图像内容进行识别。

通过这个演示平台,你可以清晰地看到 MonkeyOCR 如何将复杂的文档内容转化为结构化的 markdown 文本,方便你进一步编辑和使用。

常见问题解答

MonkeyOCR 支持哪些文档类型?

MonkeyOCR 目前支持多种类型的中文和英文文档,包括书籍、幻灯片、财务报告、教科书、试卷、杂志、学术论文、笔记和报纸等。

MonkeyOCR 对比其他文档解析工具的优势是什么?

MonkeyOCR 采用独特的 SRR(结构 – 识别 – 关系)三元组范式,简化了传统模块化方法的多工具流程,同时避免了大型多模态模型处理整页文档时的低效问题。在性能上,MonkeyOCR 在多个基准测试中取得了优异的成绩,无论是与基于管道的工具还是端到端模型相比,都展现出了更高的准确性和效率。

MonkeyOCR 的模型权重如何下载?

你可以通过以下命令下载 MonkeyOCR 的模型权重文件:

pip install huggingface_hub
python download_model.py

MonkeyOCR 的推理命令是什么?

确保你在 MonkeyOCR 项目根目录下,然后运行以下命令对指定的 PDF 文件进行解析:

python parse.py path/to/your.pdf

如果你已经下载了 MonkeyChat 路径和模型配置文件,可以使用以下命令进行推理:

python parse.py path/to/your.pdf -m model_weight/Recognition -c config.yaml

MonkeyOCR 的 Gradio 演示如何启动?

首先,在你的环境中安装 Gradio 和 pdf2image 库:

pip install gradio==5.23.3
pip install pdf2image==1.17.0

然后,运行以下命令启动 Gradio 演示服务:

python demo/demo_gradio.py

MonkeyOCR 支持手写文档吗?

目前,MonkeyOCR 不支持手写文档的解析,但项目团队表示将在未来更新中继续改进这一功能。

总结

MonkeyOCR 作为一款基于 SRR 三元组范式的文档解析工具,凭借其高效、准确的性能,在文档解析领域展现出了巨大的潜力。无论是对于学术研究、商业分析还是日常办公,MonkeyOCR 都能为用户提供了一个强大的文档解析解决方案。通过本文的介绍,相信你已经对 MonkeyOCR 有了全面的了解。如果你对文档解析技术感兴趣,不妨亲自尝试一下这个工具,体验它带来的便捷与高效。

希望 MonkeyOCR 能够在你的文档解析工作中发挥重要作用,帮助你更高效地提取和利用文档中的关键信息。

退出移动版