Prompt 语宙Prompt 语宙
  • 首页
  • AIGC 资讯
    • AIGC 早报Hot
    • 最新趋势
    • AI 工具
    • 热门资源
  • AI 绘图
    • Prompt 实战
    • AI 绘画教程
    • 模型精选
  • 强化 AI 学习
  • AI 图库
    • 人物
    • 展台场景
    • Banner
    • 游戏
    • 动物
    • 食物
    • 自然
    • 背景
    • 海报
    • 建筑
    • 室内设计
  • Remaker AI
    • Free Image Splitter
    • AIGC 工具
    • Prompt 咒语生成器
  • 社区
    • 知识星球
    • 公众号
Search
  • Contact
  • Blog
  • Complaint
  • Advertise
© 2024 Prompt 语宙. HalfPX. All Rights Reserved.
阅读: 深入探索:AI 驱动的 PDF 布局检测引擎源代码解析 [译]
Share
登陆
通知 阅读更多
Font Resizer字体
Font Resizer字体
Prompt 语宙Prompt 语宙
Search
  • 首页
  • AIGC 资讯
    • AIGC 早报Hot
    • 最新趋势
    • AI 工具
    • 热门资源
  • AI 绘图
    • Prompt 实战
    • AI 绘画教程
    • 模型精选
  • 强化 AI 学习
  • AI 图库
    • 人物
    • 展台场景
    • Banner
    • 游戏
    • 动物
    • 食物
    • 自然
    • 背景
    • 海报
    • 建筑
    • 室内设计
  • Remaker AI
    • Free Image Splitter
    • AIGC 工具
    • Prompt 咒语生成器
  • 社区
    • 知识星球
    • 公众号
已有帐户? 登陆
  • Contact
  • Blog
  • Complaint
  • Advertise
© 2023 Prompt 语宙. Paooo.com. All Rights Reserved.
深入探索:AI 驱动的 PDF 布局检测引擎源代码解析
Prompt 语宙 > 强化 AI 学习 > 深入探索:AI 驱动的 PDF 布局检测引擎源代码解析 [译]
强化 AI 学习

深入探索:AI 驱动的 PDF 布局检测引擎源代码解析 [译]

宝玉的分享
最近更新: 2024年5月11日 下午6:18
SHARE

2023 年 12 月 10 日 • Shrijith Venkatramana

阅读目录
Marker 是什么?工作流程概览实例展示示例:简单教科书转换前(PDF 格式)转换后(Markdown 格式)双栏布局的转换转换前(PDF 格式)转换后(Markdown 格式)科研论文中的数学公式转换前(PDF 格式)转换后(Markdown + Latex 格式)标记工具的直观工作原理解析第一步:准备阶段第二步:光学字符识别(OCR)第 3 步:布局检测第 4 步:排序第 5 步:公式和方程式的转化第 6 步:后处理与优化如何开始使用?项目中引入的有趣模型、库和工具Ray: 扩展人工智能工作的利器PyMuPDF: PDF 文件的多功能工具包Nougat:科学文献中方程式的探测器LayoutLMv3:书籍与文件布局检测T5: PDF 后处理模型性能简介准确性速度内存使用结论

深入探索:AI 驱动的 PDF 布局检测引擎源代码解析
深入探索:AI 驱动的 PDF 布局检测引擎源代码解析

上周,PDF 转 Markdown 的工具 Marker 成为 Hacker News 首页的热门话题。作为一个对机器学习(ML)充满好奇的学生,我觉得这是一个绝佳的机会,深入了解这款出色的文档 AI 工具的内部机制。

Marker 是什么?

用一个形象的比喻,Marker 就像一个高智能的抄写员,它能够阅读那些复杂的书籍和科学论文 PDF,并将它们转化为清晰、易读的 Markdown 文档。它就像是帮助你进行文档数字化的智能小助手。

官方对这款工具的描述更加专业,具体如下:

Marker 能够将 PDF、EPUB 和 MOBI 文件转换成 Markdown 格式。它的转换速度比 nougat 快 10 倍,准确度更高,且几乎没有误解风险。

  • 支持多种类型的 PDF 文档(尤其适用于书籍和科学论文)

  • 能够去除文档中的页眉、页脚和其他无关内容

  • 将大部分数学公式转换为 Latex 格式

  • 格式化代码块和表格

  • 支持多种语言(主要测试语言为英语)。更多语言设置可在 settings.py 中查看。

  • 可在 GPU、CPU 或 MPS 上运行

工作流程概览

Marker 主要通过以下六个阶段来工作:

  1. 准备阶段: 利用 PyMuPDF 工具,可以把各种格式的文档转换成 PDF 文件。

  2. 文本识别(OCR): 使用 Tesseract 或 OCRMyPDF 进行文字识别;也可以选择用 PyMuPDF 进行基本的文字抓取。

  3. 布局识别: 运用专门定制的 LayoutLMv3 模型 来识别文档中的表格、图表、标题、图说、页眉和页脚。

  4. 列的检测和排序: 再用一个定制的 LayoutLMv3 模型来识别文档中的列,并按照正确的顺序(上到下,左到右)进行排列。

  5. 公式/代码处理: 通过 Nougat 工具,把公式图片转换成对应的 latex 代码,并利用启发式方法准确识别和调整代码及表格内容。

  6. 文本清理与优化: 使用定制的 T5ForTextClassification 模型进行文本清理,比如去掉不必要的空格和奇怪的字符,确保以一种保守且保留原意的方式进行优化。

借助这六个阶段,Marker 能够把任何文档转化为格式整洁的 Markdown 文件。

实例展示

示例:简单教科书

转换前(PDF 格式)

转换后(Markdown 格式)

双栏布局的转换

转换前(PDF 格式)

转换后(Markdown 格式)

科研论文中的数学公式

转换前(PDF 格式)

转换后(Markdown + Latex 格式)

标记工具的直观工作原理解析

从宏观视角来看,这个转换过程结合了众多手动策略和四个专门的人工智能/机器学习模型来完成任务。

文档会在不同阶段被不同程序多次扫描,每个阶段都会对页面增加有用信息或注释,或者去除多余的元素。

第一步:准备阶段

使用工具:PyMuPDF

标记工具能够接受 epub、mobi 和 PDF 文件作为转换流程的输入。它利用 PyMuPDF 将 epub 或 mobi 文件转换成 PDF,作为准备阶段的一部分。整个流程接下来完全基于 PDF 格式内容进行。

第二步:光学字符识别(OCR)

使用工具:OCRMyPDF,Tesseract

例如,在第一步中增加的信息是 OCR,它能够为我们提取文档中的文字行。标记工具在这一步骤中会使用 OCRMyPDF 或 Tesseract 来进行文字识别。

第 3 步:布局检测

工具:LayoutLMv3(定制模型 – layout_segmenter)

通过使用 LayoutLMv3,我们增加了一个识别不同布局块的功能。Marker 能够识别以下类型的布局块:

{
"id2label": {
"0": "Caption",
"1": "Footnote",
"2": "Formula",
"3": "List-item",
"4": "Page-footer",
"5": "Page-header",
"6": "Picture",
"7": "Section-header",
"8": "Table",
"9": "Text",
"10": "Title"
}
}

第 4 步:排序

工具:LayoutLMv3(定制模型 – column_detector)

本步骤运用一系列规则来排除诸如页眉和页脚等多种元素类型。

第 5 步:公式和方程式的转化

工具:Nougat

接下来,我们利用 nougat 模型将图像中的公式和方程式转换成 latex 代码。

第 6 步:后处理与优化

工具:T5(定制模型 – pdf_postprocessor_t5_base)

最后一步,我们使用一个模型对处理后的文本进行清理和优化,将其转换成 Markdown 格式,并保存到磁盘上。

如何开始使用?

您可以在 GitHub 页面 上找到 Marker 的官方安装指南。

要将 PDF 文件转换为 markdown 格式,您可以执行以下命令:

python convert_single.py --parallel_factor 2 --max_pages 10 input.pdf output.md

项目中引入的有趣模型、库和工具

Ray: 扩展人工智能工作的利器

Ray 的官方定义是这样的:

Ray 是一个旨在扩展人工智能和 Python 应用的统一框架。它由一个核心的分布式运行环境和一系列用于加快机器学习工作的 AI 库组成。

如果你觉得这个定义有些晦涩,那你并不孤单。我深入研究了一番,才弄清楚为何在构建 AI/ML 驱动的软件时会用到 Ray。

最能说明 Ray 用途的例子,出自《用 Ray 扩展 Python》这本书。

简而言之,Ray 是一种加强版的多进程处理库。它不仅能并行处理数据列表,还能在多台远程机器上执行操作。因此,当你的 AI/ML 代码开始处理更多数据或追求更快的处理速度时,只需向系统中增加更多机器,就能将计算能力扩展到更多的机器和进程。

PyMuPDF: PDF 文件的多功能工具包

PyMuPDF 是一个快速且功能强大的用于创建和处理 PDF 文件的库。在 Marker 项目中,PyMuPDF 被用作初步处理的第一步。

如果输入的文档格式是 epub 或 mobi,我们会用 PyMuPDF 把它转换成 PDF 文件。

每一页都通过 PyMuPDF 的数据结构来访问和展现。

如果文档不需要进行 OCR,且已经包含了嵌入式文本,我们还会用 PyMuPDF 直接从 PDF 中提取文本内容。

Nougat:科学文献中方程式的探测器

Nougat 是一款基于 Transformer 技术的生成式 AI 模型,专门用于将扫描版和数字原生的 PDF 文件转化为文本格式。

这里所说的数字原生 PDF,指的是那些虽以 PDF 形式存在,但其实质是图像形式展现的文本或内容,而非直接可被机器读取的文字。

Nougat 在识别文档中的方程式图像并将其转换为有效的 LaTeX 代码这一任务上表现出色。

以这张图为例:

Nougat 能够将这样的图像精准地转换成如下 LaTeX 代码:

The well known Pythagorean theorem $x^2 + y^2 = z^2$ was
proved to be invalid for other exponents.
Meaning the next equation has no integer solutions:
$ x^n + y^n = z^n $

Nougat 还能用流行的 Markdown 格式来构建文档的整体结构,同时将公式部分精确转换成 LaTeX 代码。

LayoutLMv3:书籍与文件布局检测

LayoutLMv3 是一种基于 Transformer 技术的视觉模型 (ViT),是 LayoutLMv2 和 LayoutLM 的升级版。

这一新版采用了基于 Transformer 的多模态设计,这意味着,它可以同时理解图像和文本,使用诸如 Patch Embedding,Masked Image Modeling 和 Word-Patch 对齐等技术。在本文中,我们不会深入讨论如何进行训练的技术细节。

首先,重要的是要理解 LayoutLMv3 是一个功能强大的框架,它能够处理众多与文本和图像相关的任务,包括:

  • 表单理解

  • 文档摘要

  • 文档分类

  • 文档问题解答

  • 场景理解

  • 文档内的对象检测

  • 列检测

  • 以及更多

在 Marker,我们特别利用 LayoutLMv3 来识别各类文档元素,如段落、图表、表格、公式等,并用于文档中列顺序的确定。

T5: PDF 后处理模型

T5,又名 文本到文本转换 Transformer(Text-to-Text Transfer Transformer),是 Google AI 研发的一款强大的 AI/ML 模型。它专门设计用于文本间的转换任务,非常适合我们进行文本内容的后期处理。

T5 和 LayoutLMv3 一样,是一个用于处理文本操作任务的统一框架。Marker 利用其专门开发的 PDF 后处理模型对提取的完整文本进行细致的优化:

  1. 清除之前阶段的干扰字符: 通常 OCR 等步骤会引入不必要的噪声字符,这些字符与原文内容无关。

  2. 内容美化或整理: Markup 功能能去除无用的缩进、空格等,使元素周围更整洁。

  3. 保留原始含义: Marker 在进行修改时非常谨慎,只对最显而易见的错误进行更正,以维护原始文件的完整性。

性能简介

详细的 性能基准测试结果 可以在 Marker 的仓库中找到。以下是关于速度、准确性和内存使用情况的快速概览:

准确性

Marker 的准确性与 nougat 相当。 虽然 nougat 在处理科学论文方面略胜一筹,但总体上,nougat 和 marker 的准确性分别为 65% 和 63%。相比之下,原生的 get text 方法的准确性仅为 28%。

速度

在处理页面/文档方面Maker 的处理速度是 nougat 的大约 10 倍。nougat 处理每页大约需 3 秒,而 Marker 仅需大约 0.3 秒。

内存使用

Marker 平均每项任务需要大约 2 GB VRAM。 假设使用 A6000 GPU,平均可以同时处理 24 个文档。

结论

对于数字原生的 PDF 文件,Marker 展现出了极佳的处理能力。这里所说的“数字原生”,指的是通过 latex 制作的 PDF 文件。同样,在处理各种高品质的扫描文档方面,它也有不俗的表现。但在尝试阅读来自 archive.org 的一本古老书籍时,它似乎遇到了难题。与之形成对比的是,像 Amazon Textract 或 Azure Document AI 这样的商业级解决方案几乎可以完美处理这类文档。

虽然明显地,像 Marker 这样的开源文档 AI 要想赶上商业级解决方案,还有很长的路要走,但与过去的方案相比,Marker 为自由开源软件(FOSS)的文档 AI 领域做出了重要贡献。因此,我们应该对 Marker PDF 的创作者Vikas Paruchur表示感谢。谢谢你,Vikas!

每位经理必须掌握的 10 种领导艺术 [译]
利用 GPT 的视觉能力和 TTS API 来处理视频并添加旁白 [译]
探索检索和评估相关上下文的挑战 [译]
高效大语言模型推理 [译]
数学队——及其他你为了进入斯坦福而做出的疯狂之举 [译]
分享
Email 复制链接 打印
Share
上一篇 利用 AI 进行角色扮演:对作家和教育者来说是个重要工具 [译]
下一篇 开发者视角:项目管理的智慧 [译]
发表评价

发表评价 取消回复

您的邮箱地址不会被公开。 必填项已用 * 标注

Please select a rating!

Ad image
- 入群领取知识星球折扣卷, 仅剩99份 -
Ad imageAd image

最近更新

实战经验:在 GoDaddy 运营 LLM 中学到的 10 个教训 [译]
强化 AI 学习
提示词注入 VS 越狱:有什么区别? [译]
强化 AI 学习
Crowdstrike 分析 [译]
强化 AI 学习
构建生成式 AI 平台 [译]
强化 AI 学习

相关推荐

图 1: 左边是自动 INT4 量化流程的部分:它从一个 FP32 模型开始,使用预设的 INT4 量化规则来评估 INT4 模型的准确性;如果 INT4 模型的准确度已经足够,那么调整规则的步骤可以省略。右边是为高效 LLM 推理设计的简化运行环境,它是建立在一个 CPU 张量库之上,并配有自动选择内核的功能。
强化 AI 学习

在 CPU 上高效执行大语言模型的推理任务[译]

宝玉的分享
强化 AI 学习

从错误中学习:让大语言模型更擅长推理 [译]

宝玉的分享
ong
强化 AI 学习

长故事概要:针对长视频问答的“概括后检索”方法 [译]

宝玉的分享
1次查看
强化 AI 学习

为忙碌人士准备的大语言模型(LLM)速览 [译]

宝玉的分享
/ Prompt 语宙 /

Experience the limitless creative possibilities of generative AI and unlock new levels of innovation.

Quick Link

  • Remaker AI
  • BGRemaker 抠图Hot
  • AIGC 工具
  • Prompt 咒语生成器
  • 去水印工具

Support

  • Contact
  • Blog
  • Complaint
  • Advertise

标签

3D AI AIGC AI人像 AI创作小助手 AI工具 AI换脸 AI海报设计 AI生成视频 AI绘画 AI视频 AI设计 app图标 chatgpt DALL-E3 excel GPT meta Midjourney openai Pika prompt runway SDXL stable diffusion UI设计 专业 丛林 乐高 人像 人物 光晕 动物 吉卜力 咒语 图标设计 圣诞 壁纸 女性 奶牛 实验室 宠物 客厅 室内设计 家居 局部重绘 展台 山景 帅哥 建筑 建筑设计 影谱科技 微摄影 怪物 提示词 摄影 教程 新闻 日本排放核污水 早报 星光 枯木 植物 模特 水果 泳池 海报 海报设计 清华大学 温馨的家 游戏 游戏美术 炫光 炫彩 玻璃 白茶花 矢量插画 研究报告 破碎 科幻 穿搭 窗 美食 背景 节日 芭比 花 花卉 茶园一角 草原 荷兰奶源 表情包 赛博朋克 超现实主义 软件 运动 金毛 风景 食物 香水
Prompt 语宙Prompt 语宙
Follow US
© 2009-2023 Prompt 语宙. Paooo.com. All Rights Reserved.
Welcome Back!

Sign in to your account

Username or Email Address
Password

忘记密码