国产开源PDF解析工具MinerU

news/2025/2/23 13:44:24

在这里插入图片描述

前言

PDF的数据解析是一件较困难的事情,几乎所有商家都把PDF转WORD功能做成付费产品。

PDF是基于PostScript子集渲染的,PostScript是一门图灵完备的语言。而WORD需要的渲染,本质上是PDF能力的子集。大模型领域,我们的目标文件格式一般是markdown,markdown相较于WORD更加简单,是WORD的子集。

子集向父集转换是容易的,因为子集有的功能,父集都有。而父集向子集转换是困难的,因为父集的众多功能,子集并不具备。

通过元素映射的方式来实现PDF的解析,是不现实的。于是,上海人工智能实验室的研发人员提出利用多种深度学习算法,来直接分析和识别PDF上的文字、图片、公式、表格等,再反向合并成最终的markdown文件。

总的来说,PaddleOCR 负责文本的检测与识别,而 TableMaster 负责表格的结构解析和内容整合,二者结合实现了对文档图像中表格的全面识别和理解。

MinerU涉及的模型

模型名称模型功能模型详情
LayoutLMv3布局检测模型unilm/layoutlmv3 at master · microsoft/unilm (github.com)
UniMERNet公式识别模型opendatalab/UniMERNet: UniMERNet: A Universal Network for Real-World Mathematical Expression Recognition (github.com)
StructEqTable表格识别模型Alpha-Innovator/StructEqTable-Deploy: A High-efficiency Open-source Toolkit for Table-to-Latex Task (github.com)
YOLO公式检测模型ultralytics/ultralytics: Ultralytics YOLO11 🚀 (github.com)
PaddleOCROCR模型PaddlePaddle/PaddleOCR: Awesome multilingual OCR toolkits based on PaddlePaddle (practical ultra lightweight OCR system, support 80+ languages recognition, provide data annotation and synthesis tools, support training and deployment among server, mobile, embedded and IoT devices) (github.com)
DocLayout-YOLO布局检测模型opendatalab/DocLayout-YOLO: DocLayout-YOLO: Enhancing Document Layout Analysis through Diverse Synthetic Data and Global-to-Local Adaptive Perception (github.com)

将DeepSeek V2论文输入到MinerU中,得到下列输出内容:

  • 1.images目录
    pdf中的图片![[Pasted image 20250221095616.png]]

  • 2.DeepSeek-AI 等 - 2024 - DeepSeek-V2 A Strong, Economical, and Efficient M.md
    最终输出的markdown文件![[Pasted image 20250221100942.png]]

  • 3.DeepSeek-AI 等 - 2024 - DeepSeek-V2 A Strong, Economical, and Efficient M_content_list.json
    未知

  • 4.DeepSeek-AI 等 - 2024 - DeepSeek-V2 A Strong, Economical, and Efficient M_layout.pdf
    版面分析结果![[Pasted image 20250221095951.png]]

  • 5.DeepSeek-AI 等 - 2024 - DeepSeek-V2 A Strong, Economical, and Efficient M_middle.json
    包含以下字段信息:

字段名解释
pdf_infolist,每个元素都是一个dict,这个dict是每一页pdf的解析结果,详见下表
_parse_typeocr | txt,用来标识本次解析的中间态使用的模式
_version_namestring, 表示本次解析使用的 magic-pdf 的版本号
  • 6.DeepSeek-AI 等 - 2024 - DeepSeek-V2 A Strong, Economical, and Efficient M_model.json
    所有元素的检测框坐标
[

    {

        "layout_dets": [

            {

                "category_id": 1,

                "poly": [

                    193,

                    793,

                    1462,

                    793,

                    1462,

                    1354,

                    193,

                    1354

                ],

                "score": 0.983

            },

            {

                "category_id": 0,

                "poly": [

                    319,

                    314,

                    1340,

                    314,

                    1340,

                    424,

                    319,

                    424

                ],

                "score": 0.968

            },

            {

                "category_id": 3,

                "poly": [

                    207,

                    1410,

                    1444,

                    1410,

                    1444,

                    1976,

                    207,

                    1976

                ],

                "score": 0.966

            },
  • 7.DeepSeek-AI 等 - 2024 - DeepSeek-V2 A Strong, Economical, and Efficient M_origin.pdf
    原始pdf文件

  • 8.DeepSeek-AI 等 - 2024 - DeepSeek-V2 A Strong, Economical, and Efficient M_spans.pdf
    不同元素的检测框可视化![[Pasted image 20250221095844.png]]

Miner功能

  • 删除页眉、页脚、脚注、页码等元素,确保语义连贯
  • 输出符合人类阅读顺序的文本,适用于单栏、多栏及复杂排版
  • 保留原文档的结构,包括标题、段落、列表等
  • 提取图像、图片描述、表格、表格标题及脚注
  • 自动识别并转换文档中的公式为LaTeX格式
  • 自动识别并转换文档中的表格为HTML格式
  • 自动检测扫描版PDF和乱码PDF,并启用OCR功能
  • OCR支持84种语言的检测与识别
  • 支持多种输出格式,如多模态与NLP的Markdown、按阅读顺序排序的JSON、含有丰富信息的中间格式等
  • 支持多种可视化结果,包括layout可视化、span可视化等,便于高效确认输出效果与质检
  • 支持纯CPU环境运行,并支持 GPU(CUDA)/NPU(CANN)/MPS 加速
  • 兼容Windows、Linux和Mac平台

Miner效果实测

最令人惊叹的是公式识别,例如输入pdf样式如下:
![[Pasted image 20250221100703.png]]

输出markdown样式如下:
![[Pasted image 20250221100901.png]]
基本上没什么问题,但是小状况还是挺多的,例如将 R d h n h × d \mathbb{R}^{d_h n_h\times d} Rdhnh×d识别成了 R d h n h \   × d \mathbb{R}^{d_h n_h\backslash\ \times d} Rdhnh\ ×d

但是,表格的识别比较差,例如,输入pdf表格为:![[Pasted image 20250221101330.png]]
输出markdown样式为:
![[Pasted image 20250221101250.png]]
每一大类(English)中的所有行内容都混在一起了。

另外,对PDF中算法栏的识别也比较差
输入PDF:
![[Pasted image 20250221101601.png]]
输出markdown:
![[Pasted image 20250221101706.png]]
缺少了算法栏的边框信息,以及一些符号也不太准确。

MinerU使用

MinerU支持如下三种部署方式:

  • 在线体验
  • CPU体验
  • GPU体验

详见MinerU/README_zh-CN.md at master · opendatalab/MinerU (github.com)

总结

MinerU尽管在表单、算法栏识别效果一般,但已经是开源项目中效果最好的一档了。希望持续进步,继续为开源PDF解析社区做出贡献!!!


http://www.niftyadmin.cn/n/5863445.html

相关文章

C++算法基础笔记

算法学习 C语法字符和字符串输出输出字符串拼接和扩充检查字符串是否存在大写、小写字母字符数组换行 C语法 字符和字符串输出输出 在C 中使用如下语法实现对容器中的对象进行遍历,类似于js或python的for in语法 for (element_declaration : container)#include …

L2-【英音】地道语音语调

文章目录 英音音标节奏节奏感体现词重音句重音音节的划分音节的突出元音单元音/ɑː//ɔ://u://i://ɜː////ʌ//ɒ//ʊ//ɪ//ə//e/双元音/eɪ//aɪ//aʊ//əʊ//ɔɪ//ɪə//ʊə//eə/目标 1.相较于之前有较大进步的语音面貌; 2.自己可以为自己纠正发音; 3.在听到一篇文章…

【Agent的革命之路——LangGraph】工作流中的 Command 模式

这篇文章我们将 LangGraph中的控制流(边)和状态更新(节点)结合起来使用。比如,我们希望同时执行状态更新并决定下一步要转到哪个节点,且这些操作在同一个节点中完成。而正好 LangGraph 提供了一种方法&…

3D Gaussian Splatting 数学原理与推导

概述 3D Gaussian Splatting源于EWA的理论基础,本文重点从EWA模型出发,详细推导3D GS中的数学原理,加深对鱼眼相机畸变场景下3D GS渲染结果的理解。 引言 神经辐射场(NeRF)的出现,在新视图合成领域引起了广泛关注,显著提高了合成结果的质量。然而,NeRF 训练和渲染速…

EasyX图形库使用教程

文章目录 EasyX 图形库基础使用教程(快速上手)前言:本文简单详细的介绍了EasyX图形库的常用函数和操作,帮助EasyX的快速上手1、绘制简单的图形窗口1.1头文件1.2创建图形化窗口initgraphy函数closegraph函数 1.3窗口坐标 2、设置图…

go 环境准备

配置路径: GOROOT:D:\GoGOPATH:go的工作目录 D:\workspacego 验证版本:go version 配置第三方仓库: GO111MODULE:开启mod模式GOPROXY:go语言三方库地址GOSUMDB:go语言软件包的M…

【ORB-SLAM3】鲁棒核函数的阈值设置

问题背景 阈值 δ \delta δ 是 Huber 鲁棒核函数的重要参数。首先给出结论,在ORB-SLAM系列中,该阈值选取的原则为: 单目情况下,根据95%置信水平下两自由度卡方检验的临界值, δ \delta δ 设置为 5.991 \sqrt{5.9…

Qt中QRadioButton的样式设置

在 Qt 中,可以使用 Qt 样式表(QSS) 来自定义 QRadioButton 的外观。样式表类似于 CSS,允许你设置控件的颜色、字体、边框、背景等属性。 以下是如何为 QRadioButton 设置样式表的详细说明和示例。 1. 基本样式设置 你可以通过 s…