PDF文档格式转换处理工具MinerU

本文介绍PDF文档格式转换处理工具MinerU。

PDF文档格式转换处理工具MinerU

前言

🚀MinerU 官网入口→✅ 免装在线版 ✅ 全功能客户端 ✅ 开发者API在线调用,省去部署麻烦,多种产品形态一键get,速冲!

GitHub-Repo-MinerU

本项目值得学习一下,特别是文档格式处理功能的实现。未选择的路~

项目简介

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

在线体验

官网在线应用

官网在线版功能与客户端一致,界面美观,功能丰富,需要登录使用

  • OpenDataLab

基于Gradio的在线demo

基于gradio开发的webui,界面简洁,仅包含核心解析功能,免登录

  • ModelScope
  • HuggingFace

本地部署

[!WARNING] 安装前必看——软硬件环境支持说明

为了确保项目的稳定性和可靠性,我们在开发过程中仅对特定的软硬件环境进行优化和测试。这样当用户在推荐的系统配置上部署和运行项目时,能够获得最佳的性能表现和最少的兼容性问题。

通过集中资源和精力于主线环境,我们团队能够更高效地解决潜在的BUG,及时开发新功能。

在非主线环境中,由于硬件、软件配置的多样性,以及第三方依赖项的兼容性问题,我们无法100%保证项目的完全可用性。因此,对于希望在非推荐环境中使用本项目的用户,我们建议先仔细阅读文档以及FAQ,大多数问题已经在FAQ中有对应的解决方案,除此之外我们鼓励社区反馈问题,以便我们能够逐步扩大支持范围。

解析后端pipeline
(精度1 82+)
vlm (精度1 90+)
transformersmlx-enginevllm-engine /
vllm-async-engine
lmdeploy-enginehttp-client
后端特性速度快, 无幻觉兼容性好, 速度较慢比transformers快速度快, 兼容vllm生态速度快, 兼容lmdeploy生态适用于OpenAI兼容服务器6
操作系统Linux2 / Windows / macOSmacOS3Linux2 / Windows4Linux2 / Windows5不限
CPU推理支持不需要
GPU要求Volta及以后架构, 6G显存以上或Apple SiliconApple SiliconVolta及以后架构, 8G显存以上不需要
内存要求最低16GB以上, 推荐32GB以上8GB
磁盘空间要求20GB以上, 推荐使用SSD2GB
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

1
2
3
pip install --upgrade pip -i https://mirrors.aliyun.com/pypi/simple
pip install uv -i https://mirrors.aliyun.com/pypi/simple
uv pip install -U "mineru[core]" -i https://mirrors.aliyun.com/pypi/simple 

通过源码安装MinerU

1
2
3
git clone https://github.com/opendatalab/MinerU.git
cd MinerU
uv pip install -e .[core] -i https://mirrors.aliyun.com/pypi/simple

[!TIP] mineru[core]包含除vLLM/LMDeploy加速外的所有核心功能,兼容Windows / Linux / macOS系统,适合绝大多数用户。 如果您需要使用vLLM/LMDeploy加速VLM模型推理,或是有在边缘设备安装轻量版client端等需求,可以参考文档扩展模块安装指南


使用docker部署Mineru

MinerU提供了便捷的docker部署方式,这有助于快速搭建环境并解决一些棘手的环境兼容问题。 您可以在文档中获取Docker部署说明


使用 MinerU

最简单的命令行调用方式:

1
mineru -p <input_path> -o <output_path>

您可以通过命令行、API、WebUI等多种方式使用MinerU进行PDF解析,具体使用方法请参考使用指南

TODO

  • 基于模型的阅读顺序
  • 正文中目录、列表识别
  • 表格识别
  • 标题分级
  • 手写文本识别
  • 竖排文本识别
  • 拉丁字母重音符号识别
  • 正文中代码块识别
  • 化学式识别(https://mineru.net)
  • 图表内容识别

Known Issues

  • 阅读顺序基于模型对可阅读内容在空间中的分布进行排序,在极端复杂的排版下可能会部分区域乱序
  • 对竖排文字的支持较为有限
  • 目录和列表通过规则进行识别,少部分不常见的列表形式可能无法识别
  • 代码块在layout模型里还没有支持
  • 漫画书、艺术图册、小学教材、习题尚不能很好解析
  • 表格识别在复杂表格上可能会出现行/列识别错误
  • 在小语种PDF上,OCR识别可能会出现字符不准确的情况(如阿拉伯文易混淆字符等)
  • 部分公式可能会无法在markdown中渲染

Acknowledgments

Licensed under CC BY-NC-SA 4.0
comments powered by Disqus
使用 Hugo 构建
主题 StackJimmy 设计