e
gcw_GSiqzzLf/pdf-processing-cpu-npu
模型介绍文件和版本Pull Requests讨论分析
下载使用量0

pdf-processing-cpu (MinerU PDF Extract Kit) - 昇腾 NPU 适配

模型介绍

pdf-processing-cpu 是基于 MinerU 的 PDF 文档解析工具模型集合,支持将 PDF 文档转换为 Markdown 格式。该模型集包含了 PDF 解析所需的全部子模型权重文件。

  • 模型名称: pdf-processing-cpu
  • 中文名称: 基于本地 MinerU 的 PDF 文档解析工具
  • 原始模型地址: https://www.modelscope.cn/models/a3213105/pdf-processing-cpu/files
  • 任务类型: 文档解析 / PDF to Markdown / 表格识别
  • 模型框架: ONNX / OpenVINO / PyTorch(多模型混合)
  • 输入格式: PDF 文档
  • 输出格式: Markdown / JSON / HTML
  • 开源协议: Apache License 2.0

模型架构

该模型集包含了 MinerU PDF 解析管道的全部子模型:

子模型功能框架模型格式
Layout文档布局检测YOLOv8OpenVINO
MFD数学公式检测YOLOv8OpenVINO
MFR数学公式识别UniMERNetOpenVINO
OCR文字识别PaddleOCRPyTorch
TabRec表格识别SLANet+ONNX/OpenVINO
layoutreader阅读顺序BERTOpenVINO
langdetect语言检测YOLOv11PyTorch

NPU 适配说明

该模型集使用 MinerU (magic-pdf) 作为推理框架,通过配置 device-mode 参数支持 CPU/NPU 切换:

{
    "models-dir": "/path/to/models",
    "device-mode": "npu"  // 或 "cpu"
}

magic-pdf 原生支持 NPU 模式(device-mode: "npu"),会自动将模型加载到昇腾 NPU 上进行推理。

环境准备

系统要求

  • Python >= 3.10
  • Ascend NPU 驱动和固件(CANN 8.5.1+)
  • 系统库:libGL.so.1(OpenCV 依赖)

Python 依赖

pip install magic-pdf
pip install torch torchvision transformers
pip install opencv-python-headless
pip install openvino onnx onnxruntime
pip install ultralytics paddlepaddle

推理命令

# CPU 推理
magic-pdf -p input.pdf -o output_dir -m auto

# NPU 推理(配置 device-mode 为 npu)
magic-pdf -p input.pdf -o output_dir -m auto

或使用 Python API:

from magic_pdf.tools.common import do_parse
from magic_pdf.data.data_reader_writer import FileBasedDataReader

disk_rw = FileBasedDataReader(pdf_dir)
pdf_bytes = disk_rw.read(pdf_name)
do_parse(
    output_dir=output_dir,
    pdf_file_name="output",
    pdf_bytes_or_dataset=pdf_bytes,
    model_list=[],
    parse_method="auto",
)

适配状态

当前环境限制

在本适配环境中,由于缺少系统库 libGL.so.1,magic-pdf 的完整管道无法运行。OpenCV (cv2) 依赖该库进行图像处理操作。

错误信息:

ImportError: libGL.so.1: cannot open shared object file: No such file or directory

解决方案:

# 需要 root 权限安装系统依赖
sudo apt-get install libgl1

验证的子模型

虽然完整管道无法运行,但以下子模型已验证可以独立加载和推理:

子模型格式状态
Layout (YOLOv8)OpenVINO可加载(需安装 openvino)
MFR (UniMERNet)OpenVINO可加载
TabRec (SLANet+)ONNX可在 CPU/NPU 通过 onnxruntime 运行
layoutreaderOpenVINO可加载

ONNX 子模型的 NPU 推理

对于 ONNX 格式的子模型(如 TabRec 的 SLANet+),可以使用 onnxruntime-cann 在 NPU 上运行:

pip install onnxruntime-cann
import onnxruntime as ort

# NPU 推理
sess = ort.InferenceSession("model.onnx", providers=["CANNExecutionProvider"])
outputs = sess.run(None, {input_name: input_data})

推理结果

由于系统库依赖问题,完整管道的推理测试无法在本环境中完成。请在有 libGL 的环境中运行。

失败原因总结

项目状态说明
模型下载✅ 成功已从 ModelScope 下载全部模型文件
环境检查✅ 完成NPU、torch_npu、ONNX Runtime 可用
magic-pdf 安装✅ 成功安装至自定义路径
模型配置✅ 完成配置文件准备就绪
完整管道推理❌ 失败缺少 libGL.so.1 系统库
CPU/NPU 对比❌ 未执行管道未运行,无法对比

模型标签

  • #+NPU
  • #+文档解析
  • #+PDF处理
  • #+OCR
  • #+昇腾
  • #+OpenVINO
  • #+ONNX

推理截图

运行日志

文件清单

  • inference.py - 推理脚本
  • compare_cpu_npu.py - CPU/NPU 精度对比脚本
  • requirements.txt - Python 依赖
  • README.md - 本文档
  • screenshot.png - 运行截图