当前位置: 首页 > news >正文

MonkeyOCR: 基于结构-识别-关系三元组范式的文档解析

MonkeyOCR采用结构-识别-关系(SRR)三元范式,既简化了模块化方法的多工具流程,又避免了使用大型多模态模型处理整页文档的低效问题。

  1. 相比基于流程的MinerU方法,我们的方案在九类中英文文档上平均提升5.1%,其中公式识别提升15.0%,表格识别提升8.6%;
  2. 相比端到端模型,我们30亿参数的模型在英文文档上取得最佳平均性能,超越Gemini 2.5 Pro和Qwen2.5 VL-72B等模型;
  3. 在多页文档解析场景,我们的方法处理速度达0.84页/秒,优于MinerU(0.65)和Qwen2.5 VL-7B(0.12)。

在这里插入图片描述
MonkeyOCR目前暂不支持拍摄文件,但我们会在后续更新中持续改进,敬请期待!当前我们的模型部署在单张GPU上,因此如果太多用户同时上传文件,可能会出现“该应用当前繁忙”的情况。我们正在积极支持Ollama等部署方案,力求为更多用户提供更流畅的使用体验。另外请注意,演示页面上显示的处理时间不只是计算时间,还包括结果上传等开销,在流量高峰期可能会更长。MonkeyOCR、MinerU和Qwen2.5 VL-7B的推理速度是在H800 GPU上测得的。

新闻

2025.06.05 🚀 我们发布了MonkeyOCR,支持解析各类中英文文档。

快速入门

  1. 安装MonkeyOCR
conda create -n MonkeyOCR python=3.10
conda activate MonkeyOCRgit clone https://github.com/Yuliang-Liu/MonkeyOCR.git
cd MonkeyOCR# Install pytorch, see https://pytorch.org/get-started/previous-versions/ for your cuda version
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 .
  1. 下载模型权重
    从Huggingface下载我们的模型。
pip install huggingface_hubpython tools/download_model.py

你也可以从ModelScope下载我们的模型。

pip install modelscopepython tools/download_model.py -t modelscope
  1. 推理
# Make sure in MonkeyOCR directory
python parse.py path/to/your.pdf
# or with image as input
pyhton parse.py path/to/your/image
# Specify output path and model configs path
python parse.py path/to/your.pdf -o ./output -c config.yaml
输出结果

MonkeyOCR 生成三种类型的输出文件:

  1. 处理后的 Markdown 文件 (your.md):最终解析的文档内容,采用 markdown 格式,包含文本、公式、表格等结构化元素。
  2. 版面分析结果 (your_layout.pdf):在原始 PDF 上绘制的版面分析结果。
  3. 中间区块结果 (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等显卡的共享内存错误(可选)
我们的30亿参数模型可以在NVIDIA RTX 3090上高效运行。但使用LMDeploy作为推理后端时,在RTX 3090/4090显卡上可能会遇到兼容性问题,特别是以下错误:

triton.runtime.errors.OutOfResources: out of resource: shared memory

可以通过以下补丁解决该问题:

python tools/lmdeploy_patcher.py patch

⚠️ 注意:该命令会修改你环境中LMDeploy的源代码。如需恢复修改,只需运行:

python tools/lmdeploy_patcher.py restore

特别感谢 @pineking 提供的解决方案!

切换推理后端(可选)

您可以通过以下步骤将推理后端切换至 transformers:

  1. 安装必要依赖(如尚未安装):

    # install flash attention 2, you can download the corresponding version from https://github.com/Dao-AILab/flash-attention/releases/
    pip install flash-attn==2.7.4.post1 --no-build-isolation
    
  2. 打开 model_configs.yaml 文件

  3. 将 chat_config.backend 设置为 transformers

  4. 根据 GPU 内存容量调整 batch_size 以确保性能稳定

示例配置:

chat_config:backend: transformersbatch_size: 10  # Adjust based on your available GPU memory

基准测试结果

以下是我们模型在OmniDocBench上的评估结果。MonkeyOCR-3B使用DocLayoutYOLO作为结构检测模型,而MonkeyOCR-3B*使用我们训练的结构检测模型,在中文性能上有所提升。

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

http://www.xdnf.cn/news/998119.html

相关文章:

  • 客户端登录not foud的问题解决
  • PostgreSQL 用户名大小写处理规则
  • 黑龙江亿林网络启盛裸金属服务器评测:24 核 32G + 联通千兆共享,高负载业务的新利器
  • ​​​​​​​《TCP/IP协议卷1》第9章 IP选路
  • 鸟类识别与分类相关数据集(猫脸码客第252期)
  • 医疗行业网络安全的综合防护策略
  • 大模型在关键社会领域的应用研究:金融、医疗和法律
  • 一种安全实用、准确率高的Text2Sql方案
  • element 跨页选中,回显el-table选中数据
  • 《linux2.4内存管理》第3章 页表管理
  • 《TCP/IP协议卷1》 TCP的坚持和保活定时器
  • vue2为什么不能检查数组的的变化,改怎样解决
  • io_uring的异步IO机制
  • LatentSync V8版 - 音频驱动视频生成数字人说话视频 更新V1.6版模型 支持50系显卡 支持批量 一键整合包下载
  • 集装箱残损识别系统如何检测残损?它的识别率能达到多少?
  • adb 查看android 设备的硬盘及存储空间
  • 积分商城拼团系统框架设计
  • 【ffmpeg】将多段ts视频片段合成一个mp4
  • Django框架认证系统默认在登录成功后尝试重定向到/accounts/profile/
  • 爱普特APT-LINK PROG带电烧录器!STM32/SPI Flash高性能在线编程器详细解析
  • 图像处理控件Aspose.Imaging教程:用Java将 CMX 转换为 PNG
  • 夸克AI高效学习法,打造你的个性化学习引擎
  • 用MATLAB打造智能温度监测系统:从实时绘图到预测分析
  • 【hadoop】实时计算词频案例
  • 商业智能中的地图可视化模板:助力数据高效呈现
  • 55、错误处理-【源码流程】几种异常处理原理
  • 网络安全之RCE简单分析
  • 基于OpenCV实现视频运动目标检测与跟踪
  • hot100滑动窗口无重复字符串
  • 超简单部署离线语音合成TTS和语音识别