MinerU 0.10.0 环境整合一键包(无需安装部署) 使用教程

介绍

最近发现了一款工具大语言语料处理神器-MinerU, 非常适合在RAG等应用场景中使用, 开源免费

MinerU其中的一个功能是将 PDF 转化为 markdown 格式的工具, 对PDF文档提取的效果目前是市面上效果比较好的, 最新的版本还支持了PDF中表格的识别

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

MinerU 版本更新记录

  • 2024/11/22 0.10.0发布,通过引入混合OCR文本提取能力,
    • 在公式密集、span区域不规范、部分文本使用图像表现等复杂文本分布场景下获得解析效果的显著提升
    • 同时具备文本模式内容提取准确、速度更快与OCR模式span/line区域识别更准的双重优势
  • 2024/11/15 0.9.3发布,为表格识别功能接入了RapidTable,单表解析速度提升10倍以上,准确率更高,显存占用更低
  • 2024/11/06 0.9.2发布,为表格识别功能接入了StructTable-InternVL2-1B模型
  • 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,在提升公式解析准确率的同时,大幅降低显存需求
      • 因 PDF-Extract-Kit 1.0 更换仓库,需要重新下载模型,步骤详见 如何下载模型
  • 2024/09/27 0.8.1发布,修复了一些bug,同时提供了在线demo的本地化部署版本和前端界面
  • 2024/09/09 0.8.0发布,支持Dockerfile快速部署,同时上线了huggingface、modelscope demo
  • 2024/08/30 0.7.1发布,集成了paddle tablemaster表格识别功能
  • 2024/08/09 0.7.0b1发布,简化安装步骤提升易用性,加入表格识别功能
  • 2024/08/01 0.6.2b1发布,优化了依赖冲突问题和安装文档
  • 2024/07/05 首次开源

装环境相对麻烦, 为此我制作了Windows系统的环境一键整合包, 下面就介绍下这个环境一键包的使用

下载地址

MinerU环境一键整合包下载地址

链接: https://pan.quark.cn/s/f57a7b0f0232

搞不定环境的可以用这个 里面有使用说明文档(在Windows11正常运行, 其他系统未测, 如有问题, 可以留言)

使用

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

使用之前需要安装里面的cuda, 安装cuda的教程自行百度, 如果已经安装请忽略

如果之前安装有cuda这个报错的, 可以卸载之前的cuda, 安装里边的cuda11.8版本

解压后即可运行

但要注意: 解压的路径最好不要带中文, 或者带空格的文件夹, 以免导致各种疑难杂症

点击运行Gradio简易版界面.bat, 运行Gradio简易版界面, 页数限制改成了100000

和 https://www.modelscope.cn/studios/OpenDataLab/MinerU 功能一样

点击Gradio完整版界面.bat, 运行Gradio完整版界面, 把页数限制改成了100000

点击运行web版.bat 运行web网页版

功能和 https://opendatalab.com/OpenSourceTools/Extractor/PDF 一样

文件说明

目录python为嵌入版的环境, 已经安装了所有依赖

想深入使用, 可以配合官方说明文档使用, 下面是一些简要说明

magic-pdf.json

为配置文件, 使用的方式和官方一样

small_ocr.pdf

为测试用pdf文件

app.py

为gradio网页在线版 和 https://www.modelscope.cn/studios/OpenDataLab/MinerU 功能一样

运行方式, 在MinerU目录右键启动cmd, 或者启动cmd切换到MinerU目录, 运行下列命令

复制代码
./python/python.exe app.py

demo.py

为官方运行示例

运行方式, 在MinerU目录右键启动cmd, 或者启动cmd切换到MinerU目录, 运行下列命令

复制代码
./python/python.exe demo.py  

如果要对Python环境里边的包进行操作的, 将原有的

复制代码
pip install xxx

换成

复制代码
./python/python.exe -m pip install xxx

就可以了

扩展使用

命令行使用

官方的命令使用

复制代码
magic-pdf -p {some_pdf} -o {some_output_dir} -m auto

在MinerU目录右键启动cmd, 或者启动cmd切换到MinerU目录, 运行下列命令

复制代码
./python/Scripts/magic-pdf.exe -p {some_pdf} -o {some_output_dir} -m auto

例如

复制代码
./python/Scripts/magic-pdf.exe -p small_ocr.pdf

或者路径填magic-pdf.exe所在的绝对路径, 例如

复制代码
G:/MinerU/python/Scripts/magic-pdf.exe -p small_ocr.pdf

如果包损坏了, 可以通过下面两个命令进行重新下载更新

复制代码
./python/python.exe -m pip install -U magic-pdf[full] 



./python/python.exe -m pip install -r ./projects/web_demo/requirements.txt  
开发使用

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

更新版本

更新命令

复制代码
./python/python.exe -m pip install --upgrade magic-pdf

更新后需修改文件

复制代码
python/Lib/site-packages/magic_pdf/libs/config_reader.py

把13-14行红框替换为如下代码

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

在69行最用红框处插入如下代码

复制代码
models_dir = os.path.join(current_dir, models_dir)  
print(f"模型目录为: {models_dir}")

这样路径才不会报错

相关推荐
七夜zippoe9 小时前
Spring AI 是什么?Java 工程师的 AI 开发第一站
java·人工智能·spring·ai·开发
是真的小外套9 小时前
2023年软考中级信息安全工程师|选择题考点+5道案例分析真题解析(含答案)
java·服务器·网络
会编程的吕洞宾9 小时前
Spring AI 2.0 结构化输出实战:让大模型返回精准 JSON 不再“抽风“,准确率从 78% 拉到 99%
java·后端
项目題供诗9 小时前
ai大模型(三)
java
wangjialelele10 小时前
一文梳理 Spring Cloud 核心组件:Eureka、Nacos、OpenFeign、LoadBalancer 与 Gateway
java·spring boot·spring·spring cloud·微服务·nacos
用户62228840481910 小时前
站在JDK的角度理解线程池:从execute 到 getTask 一篇讲透
java·面试
Wang's Blog10 小时前
Java 项目实战: 交友项目 - 个人资料管理的需求分析与接口设计
java·开发语言·交友
北风toto10 小时前
Linux 服务器如何判断 CPU 是否支持 x86-64-v2 指令集
java·linux·服务器
萧瑟余晖10 小时前
Spring Security综合实战与安全加固详解
java·安全·spring
imDwAaY10 小时前
操作系统如何管理程序运行?从线程、进程到内存隔离与用户态切换:CS162 Note2
android·java·redis