PDF文档格式转换处理工具MinerU
前言
🚀MinerU 官网入口→✅ 免装在线版 ✅ 全功能客户端 ✅ 开发者API在线调用,省去部署麻烦,多种产品形态一键get,速冲!
本项目值得学习一下,特别是文档格式处理功能的实现。未选择的路~
项目简介
MinerU是一款将PDF转化为机器可读格式的工具(如markdown、json),可以很方便地抽取为任意格式。
MinerU诞生于书生-浦语的预训练过程中,我们将会集中精力解决科技文献中的符号转化问题,希望在大模型时代为科技发展做出贡献。
主要功能
- 删除页眉、页脚、脚注、页码等元素,确保语义连贯
- 输出符合人类阅读顺序的文本,适用于单栏、多栏及复杂排版
- 保留原文档的结构,包括标题、段落、列表等
- 提取图像、图片描述、表格、表格标题及脚注
- 自动识别并转换文档中的公式为LaTeX格式
- 自动识别并转换文档中的表格为HTML格式
- 自动检测扫描版PDF和乱码PDF,并启用OCR功能
- OCR支持109种语言的检测与识别
- 支持多种输出格式,如多模态与NLP的Markdown、按阅读顺序排序的JSON、含有丰富信息的中间格式等
- 支持多种可视化结果,包括layout可视化、span可视化等,便于高效确认输出效果与质检
- 支持纯CPU环境运行,并支持 GPU(CUDA)/NPU(CANN)/MPS 加速
- 兼容Windows、Linux和Mac平台
快速开始
如果安装或使用中遇到任何问题,请先查询 FAQ如果遇到解析效果不及预期,参考 Known Issues
在线体验
官网在线应用
官网在线版功能与客户端一致,界面美观,功能丰富,需要登录使用
基于Gradio的在线demo
基于gradio开发的webui,界面简洁,仅包含核心解析功能,免登录
本地部署
[!WARNING] 安装前必看——软硬件环境支持说明
为了确保项目的稳定性和可靠性,我们在开发过程中仅对特定的软硬件环境进行优化和测试。这样当用户在推荐的系统配置上部署和运行项目时,能够获得最佳的性能表现和最少的兼容性问题。
通过集中资源和精力于主线环境,我们团队能够更高效地解决潜在的BUG,及时开发新功能。
在非主线环境中,由于硬件、软件配置的多样性,以及第三方依赖项的兼容性问题,我们无法100%保证项目的完全可用性。因此,对于希望在非推荐环境中使用本项目的用户,我们建议先仔细阅读文档以及FAQ,大多数问题已经在FAQ中有对应的解决方案,除此之外我们鼓励社区反馈问题,以便我们能够逐步扩大支持范围。
| 解析后端 | pipeline (精度1 82+) | vlm (精度1 90+) | ||||
|---|---|---|---|---|---|---|
| transformers | mlx-engine | vllm-engine / vllm-async-engine | lmdeploy-engine | http-client | ||
| 后端特性 | 速度快, 无幻觉 | 兼容性好, 速度较慢 | 比transformers快 | 速度快, 兼容vllm生态 | 速度快, 兼容lmdeploy生态 | 适用于OpenAI兼容服务器6 |
| 操作系统 | Linux2 / Windows / macOS | macOS3 | Linux2 / Windows4 | Linux2 / Windows5 | 不限 | |
| CPU推理支持 | ✅ | ❌ | 不需要 | |||
| GPU要求 | Volta及以后架构, 6G显存以上或Apple Silicon | Apple Silicon | Volta及以后架构, 8G显存以上 | 不需要 | ||
| 内存要求 | 最低16GB以上, 推荐32GB以上 | 8GB | ||||
| 磁盘空间要求 | 20GB以上, 推荐使用SSD | 2GB | ||||
| python版本 | 3.10-3.137 | |||||
1 精度指标为OmniDocBench (v1.5)的End-to-End Evaluation Overall分数,基于MinerU最新版本测试
2 Linux仅支持2019年及以后发行版
3 MLX需macOS 13.5及以上版本支持,推荐14.0以上版本使用
4 Windows vLLM通过WSL2(适用于 Linux 的 Windows 子系统)实现支持
5 Windows LMDeploy只能使用turbomind后端,速度比pytorch后端稍慢,如对速度有要求建议通过WSL2运行
6 兼容OpenAI API的服务器,如通过vLLM/SGLang/LMDeploy等推理框架部署的本地模型服务器或远程模型服务
7 Windows + LMDeploy 由于关键依赖ray未能在windows平台支持Python 3.13,故仅支持至3.10~3.12版本
[!TIP] 除以上主流环境与平台外,我们也收录了一些社区用户反馈的其他平台支持情况,详情请参考其他加速卡适配。
如果您有意将自己的环境适配经验分享给社区,欢迎通过show-and-tell提交或提交PR至其他加速卡适配文档。
安装 MinerU
使用pip或uv安装MinerU
| |
通过源码安装MinerU
| |
[!TIP]
mineru[core]包含除vLLM/LMDeploy加速外的所有核心功能,兼容Windows / Linux / macOS系统,适合绝大多数用户。 如果您需要使用vLLM/LMDeploy加速VLM模型推理,或是有在边缘设备安装轻量版client端等需求,可以参考文档扩展模块安装指南。
使用docker部署Mineru
MinerU提供了便捷的docker部署方式,这有助于快速搭建环境并解决一些棘手的环境兼容问题。 您可以在文档中获取Docker部署说明。
使用 MinerU
最简单的命令行调用方式:
| |
您可以通过命令行、API、WebUI等多种方式使用MinerU进行PDF解析,具体使用方法请参考使用指南。
TODO
- 基于模型的阅读顺序
- 正文中目录、列表识别
- 表格识别
- 标题分级
- 手写文本识别
- 竖排文本识别
- 拉丁字母重音符号识别
- 正文中代码块识别
- 化学式识别(https://mineru.net)
- 图表内容识别
Known Issues
- 阅读顺序基于模型对可阅读内容在空间中的分布进行排序,在极端复杂的排版下可能会部分区域乱序
- 对竖排文字的支持较为有限
- 目录和列表通过规则进行识别,少部分不常见的列表形式可能无法识别
- 代码块在layout模型里还没有支持
- 漫画书、艺术图册、小学教材、习题尚不能很好解析
- 表格识别在复杂表格上可能会出现行/列识别错误
- 在小语种PDF上,OCR识别可能会出现字符不准确的情况(如阿拉伯文易混淆字符等)
- 部分公式可能会无法在markdown中渲染
Acknowledgments
- PDF-Extract-Kit
- DocLayout-YOLO
- UniMERNet
- RapidTable
- TableStructureRec
- PaddleOCR
- PaddleOCR2Pytorch
- layoutreader
- xy-cut
- fast-langdetect
- pypdfium2
- pdftext
- pdfminer.six
- pypdf
- magika
- vLLM
- LMDeploy
Links
- Easy Data Preparation with latest LLMs-based Operators and Pipelines
- Vis3 (OSS browser based on s3)
- LabelU (A Lightweight Multi-modal Data Annotation Tool)
- LabelLLM (An Open-source LLM Dialogue Annotation Platform)
- PDF-Extract-Kit (A Comprehensive Toolkit for High-Quality PDF Content Extraction)
- OmniDocBench (A Comprehensive Benchmark for Document Parsing and Evaluation)
- Magic-HTML (Mixed web page extraction tool)
- Magic-Doc (Fast speed ppt/pptx/doc/docx/pdf extraction tool)
- Dingo: A Comprehensive AI Data Quality Evaluation Tool