当前位置: 首页 > article >正文

国产开源PDF解析工具MinerU

在这里插入图片描述

前言

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.kler.cn/a/556290.html

相关文章:

  • 网络运维学习笔记 013网工初级(HCIA-Datacom与CCNA-EI)DHCP动态主机配置协议(此处只讲华为)
  • 【C语言】结构体内存对齐问题
  • 前端ES面试题及参考答案
  • Node.js 的 http 模块
  • Vue 3 和 Vite 从零开始搭建项目的详细步骤
  • 在 Flutter 中实现文件读写
  • LeetCode刷题---二分查找---441
  • Web Scraper,强大的浏览器爬虫插件!
  • 软件架构设计:架构风格
  • Python Cookbook-2.4 从文件中读取指定的行
  • 朴素贝叶斯法
  • AB-02 AUTOSAR builder创建工程
  • c#编程:学习Linq,重几个简单示例开始
  • 优化 Flink 消费 Kafka 数据的速度:实战指南
  • 游戏引擎学习第113天
  • Prompt-提示词越狱
  • 如何用deepseek快速生成思维导图和流程图?
  • 2024系统编程语言风云变幻:Rust持续领跑,Zig与Ada异军突起
  • 《论系统需求分析方法》写作心得 - 系统分析师
  • Dify怎么创建数据交易的智能体