MinerU、Magic-PDF、Magic-Doc

文章目录


一、关于 MinerU

MinerU 是一款一站式、开源、高质量的数据提取工具,主要包含以下功能:



二、Magic-PDF


1、简介

Magic-PDF 是一款将 PDF 转化为 markdown 格式的工具。支持转换本地文档或者位于支持S3协议对象存储上的文件。

主要功能包含

  • 支持多种前端模型输入
  • 删除页眉、页脚、脚注、页码等元素
  • 符合人类阅读顺序的排版格式
  • 保留原文档的结构和格式,包括标题、段落、列表等
  • 提取图像和表格并在markdown中展示
  • 将公式转换成latex
  • 乱码PDF自动识别并转换
  • 支持cpu和gpu环境
  • 支持windows/linux/mac平台

使用示例


2、项目全景


3、流程图


4、子模块仓库


三、Magic-PDF 上手指南


1、配置要求

python >= 3.9

推荐使用虚拟环境,以避免可能发生的依赖冲突,venv和conda均可使用。

例如:

shell 复制代码
conda create -n MinerU python=3.10
conda activate MinerU

开发基于python 3.10,如果在其他版本python出现问题请切换至3.10。


2、安装配置


1. 安装Magic-PDF

使用pip安装完整功能包:

受pypi限制,pip安装的完整功能包仅支持cpu推理,建议只用于快速测试解析能力。

如需在生产环境使用CUDA/MPS加速请参考使用CUDA或MPS加速推理

shell 复制代码
pip install magic-pdf[full-cpu]

❗️已收到多起由于镜像源和依赖冲突问题导致安装了错误版本软件包的反馈,请务必安装完成后通过以下命令验证版本是否正确

复制代码
magic-pdf --version

如版本低于0.6.x,请提交issue进行反馈。


完整功能包依赖detectron2,该库需要编译安装,如需自行编译,请参考 facebookresearch/detectron2#5114

或是直接使用我们预编译的whl包(仅限python 3.10):

shell 复制代码
pip install detectron2 --extra-index-url https://myhloli.github.io/wheels/

2. 下载模型权重文件

详细参考 如何下载模型文件

下载后请将models目录移动到空间较大的ssd磁盘目录


3. 拷贝配置文件并进行配置

在仓库根目录可以获得 magic-pdf.template.json 文件

shell 复制代码
cp magic-pdf.template.json ~/magic-pdf.json

在magic-pdf.json中配置"models-dir"为模型权重文件所在目录

json 复制代码
{
  "models-dir": "/tmp/models"
}

4. 使用CUDA或MPS加速推理

如您有可用的Nvidia显卡或在使用Apple Silicon的Mac,可以使用CUDA或MPS进行加速


CUDA

需要根据自己的CUDA版本安装对应的pytorch版本

以下是对应CUDA 11.8版本的安装命令,更多信息请参考 https://pytorch.org/get-started/locally/

shell 复制代码
pip install --force-reinstall torch==2.3.1 torchvision==0.18.1 --index-url https://download.pytorch.org/whl/cu118

同时需要修改配置文件magic-pdf.json中"device-mode"的值

shell 复制代码
{
  "device-mode":"cuda"
}

MPS

使用macOS(M系列芯片设备)可以使用MPS进行推理加速

需要修改配置文件magic-pdf.json中"device-mode"的值

shell 复制代码
{
  "device-mode":"mps"
}

3、使用说明


1) 通过命令行使用

直接使用
shell 复制代码
magic-pdf pdf-command --pdf "pdf_path" --inside_model true

程序运行完成后,你可以在 /tmp/magic-pdf 目录下看到生成的markdown文件,markdown目录中可以找到对应的 xxx_model.json 文件

如果您有意对后处理pipeline进行二次开发,可以使用命令

shell 复制代码
magic-pdf pdf-command --pdf "pdf_path" --model "model_json_path"

这样就不需要重跑模型数据,调试起来更方便


更多用法
shell 复制代码
magic-pdf --help

2) 通过接口调用

本地使用
python 复制代码
image_writer = DiskReaderWriter(local_image_dir)
image_dir = str(os.path.basename(local_image_dir))
jso_useful_key = {"_pdf_type": "", "model_list": model_json}
pipe = UNIPipe(pdf_bytes, jso_useful_key, image_writer)
pipe.pipe_classify()
pipe.pipe_parse()
md_content = pipe.pipe_mk_markdown(image_dir, drop_mode="none")

在对象存储上使用
python 复制代码
s3pdf_cli = S3ReaderWriter(pdf_ak, pdf_sk, pdf_endpoint)
image_dir = "s3://img_bucket/"
s3image_cli = S3ReaderWriter(img_ak, img_sk, img_endpoint, parent_path=image_dir)
pdf_bytes = s3pdf_cli.read(s3_pdf_path, mode=s3pdf_cli.MODE_BIN)
jso_useful_key = {"_pdf_type": "", "model_list": model_json}
pipe = UNIPipe(pdf_bytes, jso_useful_key, s3image_cli)
pipe.pipe_classify()
pipe.pipe_parse()
md_content = pipe.pipe_mk_markdown(image_dir, drop_mode="none")

详细实现可参考 demo.py


4、常见问题处理解答

参考 FAQ


四、Magic-Doc

1、简介

Magic-Doc 是一个轻量级、开源的用于将多种格式的文档(PPT/PPTX/DOC/DOCX/PDF)转化为 markdown 格式的工具。支持转换本地文档或者位于 AWS S3 上的文件

主要功能包含

  • Web网页提取
    • 跨模态精准解析图文、表格、公式信息
  • 电子书文献提取
    • 支持 epub,mobi等多格式文献,文本图片全适配
  • 语言类型鉴定
    • 支持176种语言的准确识别


2、安装

前置依赖: python3.10

安装依赖

linux/osx

shell 复制代码
apt-get/yum/brew install libreoffice

windows

shell 复制代码
安装 libreoffice 
添加 "install_dir\LibreOffice\program" to 环境变量 PATH

安装 Magic-Doc

shell 复制代码
pip install fairy-doc[cpu] # 安装 cpu 版本 
或 
pip install fairy-doc[gpu] # 安装 gpu 版本

3、使用示例

python 复制代码
# for local file
from magic_doc.docconv import DocConverter, S3Config
converter = DocConverter(s3_config=None)
markdown_content, time_cost = converter.convert("some_doc.pptx", conv_timeout=300)
python 复制代码
# for remote file located in aws s3
from magic_doc.docconv import DocConverter, S3Config

s3_config = S3Config(ak='${ak}', sk='${sk}', endpoint='${endpoint}')
converter = DocConverter(s3_config=s3_config)
markdown_content, time_cost = converter.convert("s3://some_bucket/some_doc.pptx", conv_timeout=300)

4、性能

环境:AMD EPYC 7742 64-Core Processor, NVIDIA A100, Centos 7

文件类型 转化速度
PDF (digital) 347 (page/s)
PDF (ocr) 2.7 (page/s)
PPT 20 (page/s)
PPTX 149 (page/s)
DOC 600 (page/s)
DOCX 1482 (page/s)

2024-07-21(日)

相关推荐
南风微微吹19 小时前
最新国考《行测+申论》历年真题及答案解析电子版pdf(2000-2026年)
pdf
wujian831119 小时前
豆包导出pdf方法
人工智能·ai·pdf·豆包·deepseek·ai导出鸭
俊哥工具1 天前
鼠标自动连点怎么设置?详细教学,简单易懂!
python·django·pdf·计算机外设·virtualenv·pygame
2601_950316061 天前
塞尔达攻略+塞尔达设定集+塞尔达传说攻略
游戏·pdf·电视盒子
SunnyDays10111 天前
Java 实现 PDF 附件的添加与删除:四种实用方法
java·pdf·附件
小小尚@1 天前
AI 加持!Adobe Acrobat DC 2026 解锁 PDF 高效办公新体验
人工智能·pdf
竹之月1 天前
【Auto CAD 2020】单张打印输出PDF图纸A0、A1尺寸,黑白颜色
经验分享·pdf·auto cad2020
SunnyDays10111 天前
Java 实现 PDF 中文文本查找与高亮的四种方法
java·pdf·查找文字
wujian83111 天前
千问 文心 元宝 Kimi导出pdf方法
人工智能·ai·pdf·豆包·deepseek
凌云若寒2 天前
BarTender许可 | 关于PDF打印数量说明
学习·pdf·产品经理·制造·软件需求