MinerU是一款将PDF转化为机器可读格式的工具(如markdown、json),可以很方便地抽取为任意格式。A high-quality tool for convert PDF to Markdown and JSON.一站式开源高质量数据提取工具,将PDF转换成Markdown和JSON格式。主要功能- 输出符合人类阅读顺序的文本,适用于单栏、多栏及复杂排版
- 自动检测扫描版PDF和乱码PDF,并启用OCR功能
- 支持多种输出格式,如多模态与NLP的Markdown、按阅读顺序排序的JSON、含有丰富信息的中间格式等
- 支持多种可视化结果,包括layout可视化、span可视化等,便于高效确认输出效果与质检
- 支持纯CPU环境运行,并支持 GPU(CUDA)/NPU(CANN)/MPS 加速
- MinerU 2.0 是一次从架构到功能的全面重构与升级,带来了更简洁的设计、更强的性能以及更灵活的使用体验。
- Python 包名从
magic-pdf更改为mineru,命令行工具也由magic-pdf改为mineru,请同步更新脚本与调用命令。 - 出于对系统模块化设计与生态一致性的考虑,MinerU 2.0 已不再内置 LibreOffice 文档转换模块。如需处理 Office 文档,建议通过独立部署的 LibreOffice 服务先行转换为 PDF 格式,再进行后续解析操作。
- 小模型,大能力:模型参数不足 1B,却在解析精度上超越传统 72B 级别的视觉语言模型(VLM)。
- 多功能合一:单模型覆盖多语言识别、手写识别、版面分析、表格解析、公式识别、阅读顺序排序等核心任务。
- 极致推理速度:在单卡 NVIDIA 4090 上通过
sglang加速,达到峰值吞吐量超过 10,000 token/s,轻松应对大规模文档处理需求。 - 在线体验:您可在我们的huggingface demo上在线体验该模型:

- 去除第三方依赖限制:彻底移除对
pymupdf的依赖,推动项目向更开放、合规的开源方向迈进。 - 开箱即用,配置便捷:无需手动编辑 JSON 配置文件,绝大多数参数已支持命令行或 API 直接设置。
- 模型自动管理:新增模型自动下载与更新机制,用户无需手动干预即可完成模型部署。
- 离线部署友好:提供内置模型下载命令,支持完全断网环境下的部署需求。
- 代码结构精简:移除数千行冗余代码,简化类继承逻辑,显著提升代码可读性与开发效率。
- 统一中间格式输出:采用标准化的
middle_json格式,兼容多数基于该格式的二次开发场景,确保生态业务无缝迁移。
- 全新架构:MinerU 2.0 在代码结构和交互方式上进行了深度重构,显著提升了系统的易用性、可维护性与扩展能力。
- 全新模型:MinerU 2.0 集成了我们最新研发的小参数量、高性能多模态文档解析模型,实现端到端的高速、高精度文档理解。
- 不兼容变更说明:为提升整体架构合理性与长期可维护性,本版本包含部分不兼容的变更:
功能性上: 1. 传统的 PDF 解析库功能性上支持比较差,在 OCR, 提取表格内容,保留文本顺序,提取图片,保存为md格式上会缺少支持; 比如:pymypdf,pdfminer,pdfplumber, pypdf2; 2. 比较新,比较常用的 PDF 开源工具,*** deepdoc, MinerU*** 的 功能性支持比较好; 当前被使用度: 整体来说 deepdoc 和 MinerU 比较有名,很多 RAG 项目有在用: 1. 比如 Ragflow 用的deepdoc; 本身就是同一个开源团队做的工作; 2. 最近,MinerU 现在被很多项目接入了,在通用开源领域的衔接 势头不错;比如dify 联合开发了MinerU 的插件,便于使用; 目 处理流程 和 框架: 处理流程: 1. 预处理: 文档预处理。此阶段使用 PyMuPDF https://github.com/pymupdf/PyMuPDF读取 PDF 文件, 1. 过滤出无法处理的文件(例如加密文件) 2. 包括文档的可解析性(分为可解析 PDF 和扫描 PDF) 3. 语言类型检测(也可手输入);目前只支持 中英文; 4. 提取 PDF 元数据:如总页数、页面尺寸(宽度和高度)以及其他相关属性。 2. 文档内容解析: 此阶段采用 PDF-Extract-Kit,一个高质量的 PDF 文档提取算法库,来解析关键文档内容。 共调用5个模型: 1. 首先进行布局分析,包括布局和公式检测。 选用:doclayout_yolo; 2. 然后针对不同区域应用不同的识别器: 1. OCR 用于文本和标题: 2. 公式检测 和 公式识别 用于公式。分别调用: yolo_v8_mfd, unimernet_small(UniMERNet); 3. 表格识别 用于表格。模型: 调用了 rapidtable库下的 unitable;slanet_plus;老版本还支持:TableMaster和StructEqTable 3.文档内容后处理: 基于第二阶段的输出,本阶段移除无效区域,根据区域定位信息拼接内容,最终获取不同文档区域的定位、内容和排序信息。 后处理阶段主要解决内容排序问题。因为模型输出的文本、图像、表格和公式框之间可能存在重叠,以及通过 OCR 或 API 获取的文本行之间频繁重叠,对文本和元素进行排序是一个重大挑战; 1. 布局识别类型识别框重叠问题: 采用了 BBox 关系的解决方案包括以下方面: 1. 包含关系。移除图像和表格区域以及公式框内包含的框(公式和文本块)。 2. 部分重叠关系。部分重叠的文本框在垂直和水平方向上收缩以避免相互覆盖,确保最终位置和内容不受影响,从而促进后续排序操作。对于文本与表格/图像的部分重叠,通过暂时忽略图像和表格来确保文本的完整性。 2. 顺序问题: 排序基于人类阅读的顺序;上到下,左到右; 4. 格式转换: 根据文档后处理的结果,可以为后续使用生成用户所需的多种格式,例如 Markdown。 |