Monkeyocr Pro 1.2B
模型简介
模型特点
模型能力
使用案例
🚀 MonkeyOCR:基于结构-识别-关系三元组范式的文档解析
MonkeyOCR是一款创新的文档解析工具,采用结构-识别-关系(SRR)三元组范式,简化了模块化方法的多工具流程,避免了使用大型多模态模型处理全页文档的低效问题,在中英文文档解析任务中表现出色。
🚀 快速开始
1. 安装MonkeyOCR
conda create -n MonkeyOCR python=3.10
conda activate MonkeyOCR
git clone https://github.com/Yuliang-Liu/MonkeyOCR.git
cd MonkeyOCR
# 安装pytorch,根据你的cuda版本参考https://pytorch.org/get-started/previous-versions/
pip install torch==2.5.1 torchvision==0.20.1 torchaudio==2.5.1 --index-url https://download.pytorch.org/whl/cu124
pip install -e .
2. 下载模型权重
你可以从Huggingface下载我们的模型:
pip install huggingface_hub
python tools/download_model.py
也可以从ModelScope下载:
pip install modelscope
python tools/download_model.py -t modelscope
3. 推理
# 确保在MonkeyOCR目录下
python parse.py path/to/your.pdf
# 或者以图像作为输入
python parse.py path/to/your/image
# 指定输出路径和模型配置文件路径
python parse.py path/to/your.pdf -o ./output -c config.yaml
输出结果
MonkeyOCR会生成三种类型的输出文件:
- 处理后的Markdown文件 (
your.md
):最终解析的文档内容,以Markdown格式呈现,包含文本、公式、表格等结构化元素。 - 布局结果文件 (
your_layout.pdf
):在原始PDF上绘制的布局结果。 - 中间块结果文件 (
your_middle.json
):一个JSON文件,包含所有检测到的块的详细信息,包括:- 块的坐标和位置
- 块的内容和类型信息
- 块之间的关系信息
这些文件既提供了最终格式化的输出,也提供了详细的中间结果,便于进一步分析或处理。
4. Gradio演示
# 为Gradio准备环境
pip install gradio==5.23.3
pip install pdf2image==1.17.0
# 启动演示
python demo/demo_gradio.py
修复RTX 3090 / 4090等GPU上的共享内存错误(可选)
我们的3B模型在NVIDIA RTX 3090上运行高效。但是,当使用LMDeploy作为推理后端时,在RTX 3090 / 4090 GPU上可能会遇到兼容性问题,特别是以下错误:
triton.runtime.errors.OutOfResources: out of resource: shared memory
要解决此问题,可以应用以下补丁:
python tools/lmdeploy_patcher.py patch
⚠️ 注意:此命令将修改你环境中LMDeploy的源代码。 要恢复更改,只需运行:
python tools/lmdeploy_patcher.py restore
特别感谢@pineking提供的解决方案!
切换推理后端(可选)
你可以按照以下步骤将推理后端切换为transformers
:
- 安装所需的依赖项(如果尚未安装):
# 安装flash attention 2,你可以从https://github.com/Dao-AILab/flash-attention/releases/下载相应版本
pip install flash-attn==2.7.4.post1 --no-build-isolation
- 打开
model_configs.yaml
文件 - 将
chat_config.backend
设置为transformers
- 根据你的GPU内存容量调整
batch_size
,以确保性能稳定
示例配置:
chat_config:
backend: transformers
batch_size: 10 # 根据你可用的GPU内存进行调整
✨ 主要特性
- 创新的三元组范式:MonkeyOCR采用结构-识别-关系(SRR)三元组范式,简化了多工具流程,避免了使用大型多模态模型处理全页文档的低效问题。
- 优异的性能表现:
- 与基于管道的方法MinerU相比,在九种中英文文档类型上平均提高了5.1%,其中公式提高了15.0%,表格提高了8.6%。
- 与端到端模型相比,我们的3B参数模型在英文文档上取得了最佳平均性能,优于Gemini 2.5 Pro和Qwen2.5 VL - 72B等模型。
- 高效的多页处理:对于多页文档解析,我们的方法达到了每秒0.84页的处理速度,超过了MinerU(0.65)和Qwen2.5 VL - 7B(0.12)。
📚 详细文档
介绍
MonkeyOCR采用结构-识别-关系(SRR)三元组范式,简化了模块化方法的多工具流程,避免了使用大型多模态模型处理全页文档的低效问题。
- 与基于管道的方法MinerU相比,我们的方法在九种中英文文档类型上平均提高了5.1%,其中公式提高了15.0%,表格提高了8.6%。
- 与端到端模型相比,我们的3B参数模型在英文文档上取得了最佳平均性能,优于Gemini 2.5 Pro和Qwen2.5 VL - 72B等模型。
- 对于多页文档解析,我们的方法达到了每秒0.84页的处理速度,超过了MinerU(0.65)和Qwen2.5 VL - 7B(0.12)。
MonkeyOCR目前不支持拍摄的文档,但我们将在未来的更新中继续改进。请保持关注! 目前,我们的模型部署在单个GPU上,因此如果太多用户同时上传文件,可能会出现“此应用程序当前繁忙”等问题。我们正在积极支持Ollama和其他部署解决方案,以确保更多用户获得更流畅的体验。此外,请注意,演示页面上显示的处理时间不仅反映了计算时间,还包括结果上传和其他开销。在高流量期间,此时间可能会更长。MonkeyOCR、MinerU和Qwen2.5 VL - 7B的推理速度是在H800 GPU上测量的。
🚀🚀🚀 中文视频教程(感谢leo009分享!)
🔧 技术细节
基准测试结果
以下是我们的模型在OmniDocBench上的评估结果。MonkeyOCR - 3B使用DocLayoutYOLO作为结构检测模型,而MonkeyOCR - 3B*使用我们训练的结构检测模型,在中文性能上有所提升。
1. 不同任务的端到端评估结果
模型类型 | 方法 | 总体编辑距离(英文)↓ | 总体编辑距离(中文)↓ | 文本编辑距离(英文)↓ | 文本编辑距离(中文)↓ | 公式编辑距离(英文)↓ | 公式编辑距离(中文)↓ | 公式CDM(英文)↑ | 公式CDM(中文)↑ | 表格TEDS(英文)↑ | 表格TEDS(中文)↑ | 表格编辑距离(英文)↓ | 表格编辑距离(中文)↓ | 阅读顺序编辑距离(英文)↓ | 阅读顺序编辑距离(中文)↓ |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
管道工具 | 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 |
管道工具 | 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 |
管道工具 | 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 |
管道工具 | Docling | 0.589 | 0.909 | 0.416 | 0.987 | 0.999 | 1 | - | - | 61.3 | 25.0 | 0.627 | 0.810 | 0.313 | 0.837 |
管道工具 | 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 |
管道工具 | Unstructured | 0.586 | 0.716 | 0.198 | 0.481 | 0.999 | 1 | - | - | 0 | 0.06 | 1 | 0.998 | 0.145 | 0.387 |
管道工具 | 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 |
专家VLM模型 | 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 |
专家VLM模型 | 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 |
专家VLM模型 | 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 |
专家VLM模型 | 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 |
专家VLM模型 | 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 |
通用VLM模型 | 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 |
通用VLM模型 | 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 |
通用VLM模型 | 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 |
混合模型 | MonkeyOCR - 3B 权重 | 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 |
混合模型 | MonkeyOCR - 3B* 权重 | 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 |
2. 9种PDF页面类型的端到端文本识别性能
模型类型 | 模型 | 书籍 | 幻灯片 | 财务报告 | 教科书 | 试卷 | 杂志 | 学术论文 | 笔记 | 报纸 | 总体 |
---|---|---|---|---|---|---|---|---|---|---|---|
管道工具 | MinerU | 0.055 | 0.124 | 0.033 | 0.102 | 0.159 | 0.072 | 0.025 | 0.984 | 0.171 | 0.206 |
管道工具 | Marker | 0.074 | 0.340 | 0.089 | 0.319 | 0.452 | 0.153 | 0.059 | 0.651 | 0.192 | 0.274 |
管道工具 | Mathpix | 0.131 | 0.220 | 0.202 | 0.216 | 0.278 | 0.147 | 0.091 | 0.634 | 0.690 | 0.300 |
专家VLM模型 | GOT - OCR | 0.111 | 0.222 | 0.067 | 0.132 | 0.204 | 0.198 | 0.179 | 0.388 | 0.771 | 0.267 |
专家VLM模型 | Nougat | 0.734 | 0.958 | 1.000 | 0.820 | 0.930 | 0.830 | 0.214 | 0.991 | 0.871 | 0.806 |
通用VLM模型 | GPT4o | 0.157 | 0.163 | 0.348 | 0.187 | 0.281 | 0.173 | 0.146 | 0.607 | 0.751 | 0.316 |
通用VLM模型 | Qwen2.5 - VL - 7B | 0.148 | 0.053 | 0.111 | 0.137 | 0.189 | 0.117 | 0.134 | 0.204 | 0.706 | 0.205 |
通用VLM模型 | InternVL3 - 8B | 0.163 | 0.056 | 0.107 | 0.109 | 0.129 | 0.100 | 0.159 | 0.150 | 0.681 | 0.188 |
混合模型 | MonkeyOCR - 3B 权重 | 0.046 | 0.120 | 0.024 | 0.100 | 0.129 | 0.086 | 0.024 | 0.643 | 0.131 | 0.155 |
混合模型 | MonkeyOCR - 3B* 权重 | 0.054 | 0.203 | 0.038 | 0.112 | 0.138 | 0.111 | 0.032 | 0.194 | 0.136 | 0.120 |
3. MonkeyOCR与闭源和超大型开源VLM模型的比较
📄 许可证
文档中未提及相关内容,故跳过该章节。
💻 使用示例
可视化演示
立即体验我们的演示:点击进入
我们的演示简单易用:
- 上传一个PDF或图像。
- 点击“解析 (解析)”,让模型对输入文档进行结构检测、内容识别和关系预测。最终输出将是一个Markdown格式的文档。
- 选择一个提示并点击“按提示测试”,让模型根据所选提示对图像进行内容识别。
公式文档示例
表格文档示例
报纸示例
财务报告示例
📚 引用
如果你想引用此处发布的基线结果,请使用以下BibTeX条目:
@misc{li2025monkeyocrdocumentparsingstructurerecognitionrelation,
title={MonkeyOCR: Document Parsing with a Structure-Recognition-Relation Triplet Paradigm},
author={Zhang Li and Yuliang Liu and Qiang Liu and Zhiyin Ma and Ziyang Zhang and Shuo Zhang and Zidun Guo and Jiarui Zhang and Xinyu Wang and Xiang Bai},
year={2025},
eprint={2506.05218},
archivePrefix={arXiv},
primaryClass={cs.CV},
url={https://arxiv.org/abs/2506.05218},
}










