MinerU 1.2.2 本地离线环境一键整合包 使用教程 (无需安装部署,解压即用)

易小灯塔
2024-10-12 / 2 评论 / 567 阅读 / 正在检测是否收录...
温馨提示:
本文最后更新于2025年03月13日,已超过21天没有更新,若内容或图片失效,请留言反馈。

20240927234324

更新概览

2025.3.12 我做了个桌面GUI版本,还对官方的网页版进行了优化调整。此次更新新增了批量处理功能,支持多种文件格式,提升了在文档处理方面的效率和灵活性。

工具介绍

MinerU是一款开源免费的大语言模型语料处理工具,尤其适用于RAG等应用场景。它能够将PDF文档准确地转化为markdown格式,目前在市面上的PDF文档提取效果中表现出色。最新版本的MinerU还增加了对PDF中表格的识别功能,进一步丰富了其处理能力。

MinerU 官方仓库: https://github.com/opendatalab/MinerU

以下是MinerU官方的部分更新记录:

  • 2025/03/03 1.2.1 发布,修复了一些问题:

    • 修复在字母与数字的全角转半角操作时对标点符号的影响
    • 修复在某些情况下caption的匹配不准确问题
    • 修复在某些情况下的公式span丢失问题
  • 2025/02/24 1.2.0 发布,这个版本我们修复了一些问题,提升了解析的效率与精度:

    • 性能优化

      • auto模式下pdf文档的分类速度提升
      • 在华为昇腾 NPU 加速模式下,添加高性能插件支持,常见场景下端到端加速可达 300%
    • 解析优化

      • 优化对包含水印文档的解析逻辑,显著提升包含水印文档的解析效果
      • 改进了单页内多个图像/表格与caption的匹配逻辑,提升了复杂布局下图文匹配的准确性
    • 问题修复

      • 修复在某些情况下图片/表格span被填充进textblock导致的异常
      • 修复在某些情况下标题block为空的问题
  • 2025/01/10 1.0.1 发布,这是我们的第一个正式版本,在这个版本中,我们通过大量重构带来了全新的API接口和更广泛的兼容性,以及全新的自动语言识别功能:

    • 全新API接口

      • 对于数据侧API,我们引入了Dataset类,旨在提供一个强大而灵活的数据处理框架。该框架当前支持包括图像(.jpg及.png)、PDF、Word(.doc及.docx)、以及PowerPoint(.ppt及.pptx)在内的多种文档格式,确保了从简单到复杂的数据处理任务都能得到有效的支持。
      • 针对用户侧API,我们将MinerU的处理流程精心设计为一系列可组合的Stage阶段。每个Stage代表了一个特定的处理步骤,用户可以根据自身需求自由地定义新的Stage,并通过创造性地组合这些阶段来定制专属的数据处理流程。
    • 更广泛的兼容性适配

      • 通过优化依赖环境和配置项,确保在ARM架构的Linux系统上能够稳定高效运行。
      • 深度适配华为昇腾NPU加速,积极响应信创要求,提供自主可控的高性能计算能力,助力人工智能应用平台的国产化应用与发展。
    • 自动语言识别

      • 通过引入全新的语言识别模型, 在文档解析中将lang配置为auto,即可自动选择合适的OCR语言模型,提升扫描类文档解析的准确性。
  • 2024/11/22 0.10.0发布,通过引入混合OCR文本提取能力,
  • 2024/10/31 0.9.0发布,这是我们进行了大量代码重构的全新版本,解决了众多问题,提升了性能,降低了硬件需求,并提供了更丰富的易用性:

    • 重构排序模块代码,使用 layoutreader 进行阅读顺序排序,确保在各种排版下都能实现极高准确率
    • 重构段落拼接模块,在跨栏、跨页、跨图、跨表情况下均能实现良好的段落拼接效果
    • 重构列表和目录识别功能,极大提升列表块和目录块识别的准确率及对应文本段落的解析效果
    • 重构图、表与描述性文本的匹配逻辑,大幅提升 caption 和 footnote 与图表的匹配准确率,并将描述性文本的丢失率降至接近0
    • 增加 OCR 的多语言支持,支持 84 种语言的检测与识别,语言支持列表详见 [OCR 语言支持列表]
    • 增加显存回收逻辑及其他显存优化措施,大幅降低显存使用需求。开启除表格加速外的全部加速功能(layout/公式/OCR)的显存需求从16GB降至8GB,开启全部加速功能的显存需求从24GB降至10GB
    • 优化配置文件的功能开关,增加独立的公式检测开关,无需公式检测时可大幅提升速度和解析效果
    • 集成 PDF-Extract-Kit 1.0

      • 加入自研的 doclayout_yolo 模型,在相近解析效果情况下比原方案提速10倍以上,可通过配置文件与 layoutlmv3 自由切换
      • 公式解析升级至 unimernet 0.2.1,在提升公式解析准确率的同时,大幅降低显存需求
  • 2024/07/05 首次开源

环境配置与使用

考虑到MinerU的环境配置相对复杂,特此制作了Windows系统的环境一键整合包,方便用户使用。该整合包包含使用说明文档,适用于Windows11系统(其他系统未测试,如有问题可留言反馈)。

下载地址

MinerU环境一键整合包下载地址 (含历史版本)
链接: https://pan.quark.cn/s/83422734cb89

使用说明

使用非常简单,无需复杂安装部署,下载后解压即可使用。已经包含了模型,整合了Python单独的环境以及所需的包,独立不干扰系统环境,小白也能轻松上手,也可用于二次开发。

  • 使用前准备:需要安装里面的cuda,安装cuda的教程可自行百度,如果已经安装请忽略。如果之前安装有cuda报错,可卸载之前的cuda,安装整合包中的cuda11.8版本。
  • 解压注意事项:解压后可运行,可解压到任意位置,但路径最好不要包含中文或有空格的文件夹,以免导致各种问题。

Pasted_image_20250312215729

网页版

点击运行运行网页版.bat, 运行网页版界面,
https://www.modelscope.cn/studios/OpenDataLab/MinerU 功能一样

除此之外, 将页数限制改成了100000, 新增支持一次处理多个文件, 文件格式支持多种

Snipaste_2025-03-12_21-51-17

桌面版

点击运行桌面版.bat, 运行桌面版界面, 功能和网页版的差不多, 喜欢用哪个选哪个

Pasted_image_20250308173255

目录说明

models  # 模型目录
output # 输出文件夹
projects # 项目文件夹
python # 环境文件夹
magic-pdf.json # magic-pdf配置文件
small_ocr.pdf # PDF测试文件
运行桌面版.bat # 桌面版运行脚本
运行网页版.bat # 网页版运行脚本

脚本说明

如果需要使用脚本命令, 或需要是二次开发, 请解压到D:\MinerU, 因为生成的exe硬编码了路径, 所以只能解压到这个位置, 不然路径会出错.

运行脚本方式1

可以先把D:\MinerU\pythonD:\MinerU\python\Scripts 这两个目录添加到系统环境变量, 这样可以直接运行官方命令

magic-pdf --help
Usage: magic-pdf [OPTIONS]

Options:
  -v, --version                display the version and exit
  -p, --path PATH              local filepath or directory. support PDF, PPT,
                               PPTX, DOC, DOCX, PNG, JPG files  [required]
  -o, --output-dir PATH        output local directory  [required]
  -m, --method [ocr|txt|auto]  the method for parsing pdf. ocr: using ocr
                               technique to extract information from pdf. txt:
                               suitable for the text-based pdf only and
                               outperform ocr. auto: automatically choose the
                               best method for parsing pdf from ocr and txt.
                               without method specified, auto will be used by
                               default.
  -l, --lang TEXT              Input the languages in the pdf (if known) to
                               improve OCR accuracy.  Optional. You should
                               input "Abbreviation" with language form url: ht
                               tps://paddlepaddle.github.io/PaddleOCR/en/ppocr
                               /blog/multi_languages.html#5-support-languages-
                               and-abbreviations
  -d, --debug BOOLEAN          Enables detailed debugging information during
                               the execution of the CLI commands.
  -s, --start INTEGER          The starting page for PDF parsing, beginning
                               from 0.
  -e, --end INTEGER            The ending page for PDF parsing, beginning from
                               0.
  --help                       Show this message and exit.


## show version
magic-pdf -v

## command line example
magic-pdf -p {some_pdf} -o {some_output_dir} -m auto

比如对一个路径为PDF目录里边的文件进行遍历转换处理, 命令行为

magic-pdf -p PDF目录 -o PDF输出目录 -m auto

运行脚本方式2

如果不添加到环境变量, 在D:\MinerU 目录下, 使用右键打开命令行输入

./python/Scripts/magic-pdf.exe -p PDF目录 -o PDF输出目录 -m auto
或者直接用绝对路径
D:/MinerU/python/Scripts/magic-pdf.exe -p PDF目录 -o PDF输出目录 -m auto

对python的包进行管理, 命令为

./python/python.exe -m pip install xxx
./python/python.exe -m pip install -U "magic-pdf[full]"

如果确实需要放到别的盘使用, 则需要重装pip和magic-pdf等你需要的包, 重装的时候会重新生成所在目录python\Scripts的exe文件

./python/python.exe -m pip install -U "magic-pdf[full]"

更新

如果要自行更新(前提官方模型没更新, api没变动)

可以使用下面更新命令进行更新(不同的源可能magic-pdf版本不一样)

./python/python.exe -m pip install -U "magic-pdf[full]"

更新完需要修改文件, 不然会提示模型路径出错

修改文件

D:\MinerU\python\Lib\site-packages\magic_pdf\libs\config_reader.py

将11行左右

# 定义配置文件名常量  
# CONFIG_FILE_NAME = os.getenv('MINERU_TOOLS_CONFIG_JSON', 'magic-pdf.json')

改为

# 定义配置文件名常量  
# CONFIG_FILE_NAME = os.getenv('MINERU_TOOLS_CONFIG_JSON', 'magic-pdf.json')  
  
# 获取当前目录  
current_dir = os.getcwd()  
print("当前目录为: ", current_dir)  
CONFIG_FILE_NAME = os.path.join(current_dir, "magic-pdf.json")  
print("当前配置路径为: ", CONFIG_FILE_NAME)

将66行左右

models_dir = config.get('models-dir')

改为

models_dir = config.get('models-dir')
models_dir = os.path.join(current_dir, models_dir)
print(f"当前模型目录为: {models_dir}")

QQ20250311-225550
Snipaste_2025-03-11_22-57-14

修改文件D:\MinerU\python\Lib\site-packages\paddleocr\paddleocr.py

将66行左右

BASE_DIR = os.path.expanduser("~/.paddleocr/")

改为

BASE_DIR = os.path.join(os.getcwd(), "models", "paddleocr")  
print(f"paddleocr模型的目录为: {BASE_DIR}")

这样更新完模型的路径才不会报错

开发

在PyCharm里环境变量填python/python.exe所在目录

Snipaste_2025-03-11_20-21-29

疑难解答

如运行遇到报错,建议留言附带电脑配置信息(如i7-11800H, 内存16G, 显卡RTX 3060 12G),所用系统(如Win11、Win10等),显卡驱动版本,cuda版本等,以便更好地排查问题。

0

评论 (2)

取消
  1. 头像
    w
    Windows 10 · Google Chrome

    加个微信,可以吗 WJC05026 安装后启动不了,请教一下

    回复
  2. 头像
    z
    Windows 10 · Google Chrome

    没有独显的情况下运行报错,大佬指导一下

    回复