Windows系统下MinerU的CUDA加速配置指南
快速解锁GPU性能,提升文档解析效率
1、简介
MinerU是一款高效的文档解析工具,支持通过CUDA加速显著提升处理速度。本指南详细说明如何在Windows系统中配置CUDA环境,并启用MinerU的GPU加速功能,帮助用户充分利用NVIDIA显卡的计算能力,优化复杂文档的解析效率。
2、前提条件
在开始配置前,请确保满足以下条件:
硬件要求:
NVIDIA显卡(支持CUDA计算能力≥5.0,推荐RTX 20/30/40系列)。
显卡驱动版本≥522.06(通过nvidia-smi命令查看)。
软件要求:
Windows 10/11 64位系统。
Python 3.8或更高版本(建议使用Anaconda管理环境)。
CUDA Toolkit 11.7或11.8(与PyTorch版本兼容)。
MinerU最新代码(GitHub仓库克隆)。
3、配置步骤
3.1. 安装CUDA Toolkit
下载CUDA Toolkit:
访问NVIDIA CUDA下载页面,选择与PyTorch兼容的版本(如11.7)。
运行安装程序,按默认选项完成安装。
验证CUDA安装:
打开命令提示符,输入以下命令:
nvcc --version
若显示CUDA版本(如11.7),则安装成功。
3.2. 配置Python环境
创建虚拟环境:
conda create -n mineru_cuda python=3.8
conda activate mineru_cuda
安装PyTorch(支持CUDA):
根据CUDA版本选择PyTorch安装命令:
# CUDA 11.7
pip3 install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu117
验证PyTorch的CUDA支持:
运行Python解释器,执行以下代码:
import torch
# 检查CUDA是否可用
if torch.cuda.is_available():
# 打印可用的CUDA设备数量
print(f"Number of CUDA devices: {
torch.cuda.device_count()}")
# 打印每个设备的详细信息
for i in range(torch.cuda.device_count()):
print(f"Device {
i}: {
torch.cuda.get_device_properties(i)}")
else:
print("CUDA is not available.")
4、Mineru环境准备
4.1、安装所需的库
pip install magic-pdf
pip install ultralytics
pip install doclayout_yolo
pip install rapid_table
pip install ftfy
pip install pyclipper
pip install omegaconf
如果还有需要的库未安装,同样的方法操作即可,还有就是本文是在python环境下直接安装的,未安装anaconda,如果是采用conda环境,道理是一样的;
conda create -n mineru 'python>=3.10' -y
conda activate mineru
4.2、下载模型权重
!pip install huggingface_hub
!wget https://github.com/opendatalab/MinerU/raw/master/scripts/download_models_hf.py -O download_models_hf.py
!python download_models_hf.py
完成下载模型后,脚本会自动生成用户目录下的magic-pdf.json文件,并自动配置默认模型路径。 可在【用户目录】下找到magic-pdf.json文件。
windows用户目录为 “C:/Users/用户名”
linux用户目录为”root”
4.3、demo测试
方法一:
wget https://github.com/opendatalab/MinerU/raw/master/demo/pdfs/small_ocr.pdf -O small_ocr.pdf
magic-pdf -p small_ocr.pdf -o ./output
方法二:api调用
import os
from magic_pdf.data.data_reader_writer import FileBasedDataWriter
from magic_pdf.model.doc_analyze_by_custom_model import doc_analyze
from magic_pdf.data.read_api import read_local_images
def process_images(in_dir, md_dir, json_dir):
# 创建输出目录
os.makedirs(md_dir, exist_ok=True)
os.makedirs(json_dir, exist_ok=True)
# 初始化数据写入器
md_writer = FileBasedDataWriter(md_dir)
json_writer = FileBasedDataWriter(json_dir)
# 遍历输入目录中的所有文件
for filename in os.listdir(in_dir):
if filename.lower().endswith(('.png', '.jpg', '.jpeg', '.bmp', '.gif')):
input_file = os.path.join(in_dir, filename)
input_file_name = os.path.splitext(os.path.basename(input_file))[0]
print(f"Processing {
input_file}...")
# 创建数据集实例
ds = read_local_images(input_file)[0]
# 应用文档分析
if ds is not None:
ds.apply(doc_analyze, ocr=True).pipe_ocr_mode(md_writer).dump_md(md_writer, f"{
input_file_name}.md", in_dir)
# 获取中间 JSON
middle_json_content = ds.apply(doc_analyze, ocr=True).pipe_ocr_mode(json_writer).get_middle_json()
# 保存中间 JSON
if middle_json_content:
ds.apply(doc_analyze, ocr=True).pipe_ocr_mode(json_writer).dump_middle_json(json_writer, f'{
input_file_name}.json')
else:
print("Failed to read the image file.")
# 设置输入和输出目录
in_dir = "D:/content/识别测试集/公式" # 替换为实际图像目录
md_dir = "D:/content/mineru/公式/markdown" # 替换为Markdown输出目录
json_dir = "D:/content/mineru/公式/json" # 替换为JSON输出目录
# 调用函数处理图像
process_images(in_dir, md_dir, json_dir)
具体的测试图像的结果就分别保存为不同格式markdown和json格式
4.4、magic-pdf.json
这个是magic-pdf.json自动下载的
{
"bucket_info": {
"bucket-name-1": [
"ak",
"sk",
"endpoint"
],
"bucket-name-2": [
"ak",
"sk",
"endpoint"
]
},
# 模型下载保存地址,如果想用最新的模型,重复上一步的模型下载步骤即可
"models-dir": "C:/Users/用户名/.cache/huggingface/hub/models--opendatalab--PDF-Extract-Kit-1.0/snapshots/14efd64068741c8e1d79d635dd236a80a9db66ba/models",
"layoutreader-model-dir": "C:/Users/用户名/.cache/huggingface/hub/models--hantian--layoutreader/snapshots/641226775a0878b1014a96ad01b9642915136853",
"device-mode": "cpu", # 可以用显卡cuda,最低要求6G显存
"layout-config": {
"model": "doclayout_yolo"
},
"formula-config": {
"mfd_model": "yolo_v8_mfd",
"mfr_model": "unimernet_small",
"enable": true
},
"table-config": {
"model": "rapid_table",
"sub_model": "slanet_plus",
"enable": true,
"max_time": 400
},
"llm-aided-config": {
"formula_aided": {
"api_key": "your_api_key",
"base_url": "https://dashscope.aliyuncs.com/compatible-mode/v1",
"model": "qwen2.5-7b-instruct",
"enable": false
},
"text_aided": {
"api_key": "your_api_key",
"base_url": "https://dashscope.aliyuncs.com/compatible-mode/v1",
"model": "qwen2.5-7b-instruct",
"enable": false
},
"title_aided": {
"api_key": "your_api_key",
"base_url": "https://dashscope.aliyuncs.com/compatible-mode/v1",
"model": "qwen2.5-32b-instruct",
"enable": false
}
},
"config_version": "1.2.0"
}
注意:本文没有涉及cuda的安装配置过程,这部分可以参考其他博客。





















暂无评论内容