Windows 本地部署MinerU详细教程
📖 项目概述
MinerU是一款由OpenDataLab开发的开源PDF转Markdown工具,可以高质量地提取PDF文档内容,生成结构化的Markdown格式文本。本指南将帮助您在本地部署并使用MinerU。
⭐ 功能特性
MinerU具有以下核心功能:
✨ 文档处理
- 删除页眉、页脚、脚注、页码等元素,确保语义连贯
- 保留原文档的结构,包括标题、段落、列表等
- 提取图像、图片描述、表格、表格标题及脚注
🔄 格式转换 - 自动识别并转换文档中的公式为LaTeX格式
- 自动识别并转换文档中的表格为HTML格式
💻 运行环境 - 支持纯CPU环境运行
- 支持GPU加速,提升处理效率
💻 Windows10/11
📌 注意:一定要仔细看好每个软件及环境的版本
1. 安装cuda和cuDNN
需要安装的版本 CUDA 11.8 + cuDNN 8.7.0
- CUDA 11.8 https://developer.nvidia.com/cuda-11-8-0-download-archive
- cuDNN v8.7.0 (November 28th, 2022), for CUDA 11.x https://developer.nvidia.com/rdp/cudnn-archive
- 安装教程参考:https://zhuanlan.zhihu.com/p/32400431090
2. 安装anaconda
如果已安装conda,可以跳过本步骤
下载链接:
https://mirrors.tuna.tsinghua.edu.cn/anaconda/archive/Anaconda3-2024.06-1-Windows-x86_64.exe
安装教程:https://blog.csdn.net/m0_66047447/article/details/141110995
3. 使用conda 创建环境
需指定python版本为3.10
📌 方案一:创建默认环境
conda create -n MinerU python=3.10
conda activate MinerU
📌 方案二:指定自定义路径创建环境
conda create --prefix=D:\Computer\Anaconda\envs\mineru python=3.10
conda activate mineru
4. 安装应用
pip install -U magic-pdf[full] --extra-index-url https://wheels.myhloli.com -i https://pypi.tuna.tsinghua.edu.cn/simple
❗️下载完成后,验证版本信息:
magic-pdf --version # 当前版本:1.3.11
5. 下载模型
首次使用需下载模型文件,提供两种下载方式:
📥 方法一:从Hugging Face下载模型(国际用户推荐)
pip install huggingface_hub
curl -o download_models_hf.py https://gcore.jsdelivr.net/gh/opendatalab/MinerU@master/scripts/download_models_hf.py
python download_models_hf.py
📥 方法二:从ModelScope下载模型(国内用户推荐)
pip install modelscope
curl -o download_models.py https://gcore.jsdelivr.net/gh/opendatalab/MinerU@master/scripts/download_models.py
python download_models.py
📁 模型默认存储路径示例:
model_dir: C:\Users\用户名\.cache\modelscope\hub\models\opendatalab\PDF-Extract-Kit-1___0/models
layoutreader_model_dir: C:\Users\用户名\.cache\modelscope\hub\models\ppaanngggg\layoutreader
💡 提示:下载完成后,系统会自动在用户目录下生成magic-pdf.json
配置文件
用户目录位置:
- 🪟 Windows:
C:\Users\用户名
- 🐧 Linux:
/home/用户名
- 🍎 macOS:
/Users/用户名
- ⚡下载后请将models目录移动到空间较大的ssd磁盘目录
❗️模型下载后请务必检查模型文件是否下载完整
请检查目录下的模型文件大小与网页上描述是否一致,如果可以的话,最好通过sha256校验模型是否下载完整
❗️务必确保配置文件在【用户目录】下,否则程序将无法运行
windows用户目录为 “C:\Users\用户名”
在用户目录中找到magic-pdf.json
文件并配置"models-dir"为下载的模型权重文件所在目录
❗️务必正确配置模型权重文件所在目录的【绝对路径】,否则会因为找不到模型文件而导致程序无法运行
windows系统中此路径应包含盘符,且需把路径中所有的
"\"
替换为"/"
,否则会因为转义原因导致json文件语法错误。例如:模型放在D盘根目录的models目录,则model-dir的值应为"D:/models"
{"models-dir": "/tmp/models"
}
6. CUDA加速
如果您的NVIDIA显卡显存≥8GB,可配置CUDA加速:
1.覆盖安装支持cuda的torch和torchvision
pip install --force-reinstall torch==2.3.1 torchvision==0.18.1 --index-url https://download.pytorch.org/whl/cu118
❗️务必在命令中指定以下版本,当前 magic-pdf 版本为 1.3.11(如果不是这个版本请查阅最新的官方安装文档) MinerU
torch==2.3.1 torchvision==0.18.1
这是我们支持的最高版本,如果不指定版本会自动安装更高版本导致程序无法运行
2.修改【用户目录】中配置文件magic-pdf.json中"device-mode"的值
{"device-mode":"cuda"
}
3.运行以下命令测试cuda加速效果
magic-pdf -p demo1.pdf -o ./output
-p 为本地pdf文件路径或目录
-o 输出本地目录
提示:CUDA加速是否生效可以根据log中输出的各个阶段cost耗时来简单判断,通常情况下,
layout detection cost
和mfr time
应提速10倍以上。
magic-pdf --help
Usage: magic-pdf [OPTIONS]Options:-v, --version display the version and exit-p, --path PATH local pdf filepath or directory [required]-o, --output-dir TEXT output local directory-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 pdffrom ocr and txt.without method specified, auto will be used by default.--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
4.执行命令可能遇到NumPy 版本不兼容问题问题
🚨 报错关键信息如下:
A module that was compiled using NumPy 1.x cannot be run in
NumPy 2.1.2 as it may crash....Traceback (most recent call last):
...
magic_pdf.tools.cli:parse_doc:134 - Numpy is not available
🔍 问题分析
✅ 当前环境:
- 已安装 numpy==2.1.2(最新版本)
- 使用了依赖于旧版 NumPy(1.x)的模块或库(如 ultralytics, magic-pdf 等)
❌ 问题原因:
- 某些 Python 包(例如 ultralytics 或其依赖项)是在
NumPy 1.x
上编译的。而你现在使用的是NumPy 2.x
,它们之间存在ABI 兼容性问题
,导致这些包无法正常加载或运行。
✅ 解决方案:降级 NumPy 到 1.x 版本
✅ 推荐操作步骤:
pip uninstall numpy -y
pip install numpy==1.26.4
✅ NumPy 1.26.4 是目前最稳定且与大多数包兼容的最后一代 1.x 版本。
💡 额外建议(防止意外升级)
你可以冻结当前环境中的 numpy 版本,防止后续 pip 安装其他包时自动升级:
numpy==1.26.4
或者创建一个 constraints.txt 文件,内容如下:
pip install -r requirements.txt --constraint constraints.txt
🧪 验证是否修复成功
执行以下命令验证 numpy 是否已正确降级:
python -c "import numpy; print(numpy.__version__)"
输出应为:
1.26.4
然后再重新运行你的 magic-pdf 命令:
magic-pdf -p {some_pdf} -o {some_output_dir}
7. 为ocr开启cuda加速
❗️以下操作需显卡显存大于等于16G才可进行,否则会因为显存不足导致程序崩溃或运行速度下降
1.下载paddlepaddle-gpu, 安装完成后会自动开启ocr加速
pip install paddlepaddle-gpu==2.6.1
2.运行以下命令测试ocr加速效果
magic-pdf -p small_ocr.pdf -o ./output
提示:CUDA加速是否生效可以根据log中输出的各个阶段cost耗时来简单判断,通常情况下,
ocr cost
应提速10倍以上。
相关文章:
Windows 本地部署MinerU详细教程
📖 项目概述 MinerU是一款由OpenDataLab开发的开源PDF转Markdown工具,可以高质量地提取PDF文档内容,生成结构化的Markdown格式文本。本指南将帮助您在本地部署并使用MinerU。 ⭐ 功能特性 MinerU具有以下核心功能: ✨ 文档处理…...

动态范围调整(SEF算法实现)
一、背景介绍 继续在整理对比度调整相关算法,发现一篇单帧动态范围提升的算法:Simulated Exposure Fusion,论文表现看起来很秀,这里尝试对它进行了下效果复现。 二、实现流程 1、基本原理 整体来说,大致可以分为两步…...

SpringCloud微服务开发与实战
本节内容带你认识什么是微服务的特点,微服务的拆分,会使用Nacos实现服务治理,会使用OpenFeign实现远程调用(通过黑马商城来带你了解实际开发中微服务项目) 前言:从谷歌搜索指数来看,国内从自201…...

WAS和Tomcat的对比
一、WAS和Tomcat的对比 WebSphere Application Server (WAS) 和 Apache Tomcat 是两款常用的 Java 应用服务器,但它们有许多显著的区别。在企业级应用中,它们扮演不同的角色,各自有其特点和适用场景。以下是它们在多个维度上的详细对比&…...
Rust 数据结构:String
Rust 数据结构:String Rust 数据结构:String什么是字符串?创建新字符串更新字符串将 push_str 和 push 附加到 String 对象后使用 运算符和 format! 宏 索引到字符串字符串在内存中的表示字节、标量值和字形簇 分割字符串遍历字符串的方法 R…...

IntelliJ IDEA打开项目后,目录和文件都不显示,只显示pom.xml,怎样可以再显示出来?
检查.idea文件夹 如果项目目录中缺少.idea文件夹,可能导致项目结构无法正确加载。可以尝试删除项目根目录下的.idea文件夹,然后重新打开项目,IDEA会自动生成新的.idea文件夹和相关配置文件,从而恢复项目结构。 问题解决࿰…...

Hot100-链表-JS
160.相交链表 160. 相交链表 已解答 简单 相关标签 相关企业 给你两个单链表的头节点 headA 和 headB ,请你找出并返回两个单链表相交的起始节点。如果两个链表不存在相交节点,返回 null 。 图示两个链表在节点 c1 开始相交: 题目数据 保证 整…...

事件驱动架构:从传统服务到实时响应的IT新风潮
文章目录 事件驱动架构的本质:从请求到事件的范式转变在EDA中: 事件驱动架构的演进:从消息队列到云原生标配核心技术:事件驱动架构的基石与工具链1. 消息队列:事件传递的枢纽2. 消费者:异步处理3. 事件总线…...

网络流量分析 | NetworkMiner
介绍 NetworkMiner 是一款适用于Windows(也适用于Linux/Mac)的开源网络取证分析工具。它可被用作被动网络嗅探器/数据包捕获工具,也可被用于检测操作系统、会话、主机名、开放端口等,还能被用于解析pcap文件进行离线分析。点击此…...
弦理论的额外维度指的是什么,宇宙中有何依据
弦理论中的额外维度是解释微观世界与宏观宇宙矛盾的关键假设之一。它们并非科幻中的平行宇宙,而是通过严谨的数学框架提出,并可能留下可观测的宇宙学痕迹。以下是具体解析: 一、弦理论为何需要额外维度? 数学自洽性要求 弦理论中…...
std::tuple 用法
std::tuple 是 C11 引入的模板类,用来存储多个不同类型的值,类似于 Python 的元组。你可以把它看作是一种“组合多个变量在一个对象中”的方式。 ✅ 基本用法 #include <tuple> #include <iostream>int main() {std::tuple<int, std::st…...

深入理解 Git 分支操作的底层原理
在软件开发的世界里,Git 已经成为了版本控制的标配工具。而 Git 分支功能,更是极大地提升了团队协作和项目开发的效率。我们在日常开发中频繁地创建、切换和合并分支,但是这些操作背后的底层原理是怎样的呢?在之前的博客探秘Git底…...

Excel MCP: 自动读取、提炼、分析Excel数据并生成可视化图表和分析报告
最近,一款Excel MCP Server的开源工具火了,看起来功能很强大,咱们今天来一探究竟。 基础环境 最近两年,大家都可以看到AI的发展有多快,我国超10亿参数的大模型,在短短一年之内,已经超过了100个&…...

C语言:深入理解指针(4)
目录 一、字符指针变量 二、数组指针变量 三、二维数组传参的本质 四、函数指针变量 五、typedef 类型重命名 六、函数指针数组 一、字符指针变量 我们常见的字符指针变量是这样的: char a w; char* p &a; char arr[] "abcd"; char* pa ar…...
Gensim 是一个专为 Python 设计的开源库
Gensim 是一个专为 Python 设计的开源库,其核心代码和生态系统均基于 Python 构建,目前官方仅支持 Python 语言。如果你需要在其他编程语言中实现类似功能(如词向量训练、主题模型等),通常需要使用对应语言的替代库或通…...
质量管理工程师面试总结
今天闲着无聊参加了学校招聘会的一家双选会企业,以下是面试的过程。 此次面试采用的是一对多的形式。(此次三个求职者,一个面试官) 面试官:开始你们每个人先做个自我介绍吧。 哈哈哈哈哈哈哈哈,其实我们…...
python 爬虫框架介绍
文章目录 前言一、Requests BeautifulSoup(基础组合)二、Scrapy(高级框架)三、PySpider(可视化爬虫)四、Selenium(浏览器自动化)五、Playwright(新一代浏览器自动化&…...
window 显示驱动开发-使用有保证的协定 DMA 缓冲区模型
Windows Vista 的显示驱动程序模型保证呈现设备的 DMA 缓冲区和修补程序位置列表的大小。 修补程序位置列表包含 DMA 缓冲区中命令引用的资源的物理内存地址。 在有保证的协定模式下,用户模式显示驱动程序知道 DMA 缓冲区和修补程序位置列表的确切大小,…...
蓝牙协议架构与调试工具详解(含 BLE、HCI 命令、调试命令)
本文介绍蓝牙协议从物理层到应用层的完整通信流程,并详解了 Linux 下主流蓝牙调试工具的使用方法,适用于嵌入式蓝牙驱动开发、BLE调试、通信协议分析等场景。 🔧 1. 蓝牙架构概览 ✅ 芯片架构 单模芯片:仅支持 BLE 或 Classic 蓝…...
预测模型开发与评估:基于机器学习的数据分析实践
在当今数据驱动的时代,预测模型已成为各行各业决策制定的核心工具。本文将分享我在COMP5310课程项目中开发预测模型的经验,探讨从数据清洗到模型优化的完整过程,并提供详细的技术实现代码。 ## 研究问题与数据集 ### 研究问题 我们的研究聚焦…...
提高表达能力
你遇到的这种情况其实很常见,背后的原因可能涉及思维模式、心理状态和表达习惯的综合作用。以下是具体分析和解决方案: 1. 原因分析:为什么讨论时流畅,独自表达却卡壳? 外部反馈缺失:讨论时对方的提问、反…...

【更新】全国省市县-公开手机基站数据集(2006-2025.3)
手机基站是现代通信网络中的重要组成部分,它们为广泛的通信服务提供基础设施。随着数字化进程的不断推进,手机基站的建设与布局对优化网络质量和提升通信服务水平起着至关重要的作用,本分享数据可帮助分析移动通信网络的发展和优化。本次数据…...

基于MNIST数据集的手写数字识别(CNN)
目录 一,模型训练 1.1 数据集介绍 1.2 CNN模型层结构 1.3 定义CNN模型 1.4 神经网络的前向传播过程 1.5 数据预处理 1.6 加载数据 1.7 初始化 1.8 模型训练过程 1.9 保存模型 二,模型测试 2.1 定义与训练时相同的CNN模型架构 2.2 图像的预处…...
MYSQL创建索引的原则
创建索引的原则包括: 表中的数据量超过10万以上时考虑创建索引。 选择查询频繁的字段作为索引,如查询条件、排序字段或分组字段。 尽量使用复合索引,覆盖SQL的返回值。 如果字段区分度不高,可以将其放在组合索引的后面。 对于…...
运行Spark程序-在shell中运行
Spark Shell运行程序步骤 启动Spark Shell 根据语言选择启动命令: Scala版本(默认):执行spark-shellPython版本:执行pyspark 数据加载示例 读取本地文本文件: // Scala版本 val textData sc.textFile(…...

idea Maven 打包SpringBoot可执行的jar包
背景:当我们需要坐联调测试的时候,需要对接前端同事,则需要打包成jar包直接运行启动服务 需要将项目中的pom文件增加如下代码配置: <build><plugins><plugin><groupId>org.springframework.boot</gr…...

HarmonyOs开发之——— ArkWeb 实战指南
HarmonyOs开发之——— ArkWeb 实战指南 谢谢关注!! 前言:上一篇文章主要介绍HarmonyOs开发之———合理使用动画与转场:CSDN 博客链接 一、ArkWeb 组件基础与生命周期管理 1.1 Web 组件核心能力概述 ArkWeb 的Web组件支持加载本地或在线网页,提供完整的生命周期回调体…...

国标GB/T 12536-90滑行试验全解析:纯电动轻卡行驶阻力模型参数精准标定
摘要 本文以国标GB/T 12536-90为核心框架,深度解析纯电动轻卡滑行试验的完整流程与数据建模方法,提供: 法规级试验规范:从环境要求到数据采集全流程详解行驶阻力模型精准标定:最小二乘法求解 ( FAv^2BvC ) 的MATLAB实…...

初识——QT
QT安装方法 一、项目创建流程 创建项目 入口:通过Qt Creator的欢迎页面或菜单栏(文件→新建项目)创建新项目。 项目类型:选择「Qt Widgets Application」。 路径要求:项目路径需为纯英文且不含特殊字符。 构建系统…...
几何_平面方程表示_点+向量形式
三维平面方程可以写成: π : n ⊤ X d 0 \boxed{\pi: \mathbf{n}^\top \mathbf{X} d 0} π:n⊤Xd0 📐 一、几何直观解释 ✅ 平面是“法向量 平面上一点”定义的集合 一个平面可以由: 一个单位法向量 n ∈ R 3 \mathbf{n} \in \mat…...