数字化文档:企业转型的核心驱动力

数字化文档:企业转型的核心驱动力

检测布局

检测PDF文件布局(DocLayout-YOLO)
检测行内公式布局(YOLOv8)
支持解析PDF、PPT等

检测公式

教育场景

教育场景相比通用场景需要额外解决的挑战是什么?
Versatile-OCR-Program给出的解决方案,相比较其他PDF读取工具有何优势?

视觉Agent方案

##Agentic Document Extraction

核心功能

可视化定位 (Visual Grounding)

可视化定位是 Agentic Document Extraction的基石。它不仅仅识别文档中的文本,更重要的是精确定位每个视觉元素和文本在文档中的确切位置。它可以准确识别文档中的段落、表格、图片、复选框等,并知道它们之间的空间关系。

更进一步,可视化定位技术实现了答案验证。API的响应结果可以链接回文档的原始位置,用户可以清晰地看到提取的信息来源于文档的哪个部分,这对于需要审计跟踪、确保数据来源可靠性的应用场景至关重要。

复选框提取 (Checkbox Extraction)

对于包含大量复选框的文档,如调查问卷、申请表格等,传统OCR处理起来往往效率低下且容易出错。Agentic Document Extraction 专门强化了 复选框提取 功能,能够准确识别和提取文档中的复选框状态 (选中或未选中),极大地方便了表单数据的自动化处理。

高级图像分析 (Advanced Image Analysis)

现代文档往往包含丰富的图像信息,例如 logo、图表、照片等。Agentic Document Extraction 具备 高级图像分析能力,能够处理文档中的图像,例如从图像中提取文本 (例如图片中的文字水印),甚至识别图像的内容 (例如识别合同中的印章)。这使得它可以处理更复杂、信息更丰富的文档。

PDF to ASCII 转换 (PDF to ASCII Conversion)

PDF 是常见的文档格式,但直接处理PDF文件中的文本有时会比较困难。Agentic Document Extraction 支持 PDF to ASCII 转换,可以将 PDF 文档转换为纯文本格式,方便后续的文本分析、信息检索等操作。

文档解析工具

格式层

结构层

语义层

文档分割

结构化文档分割与非结构化文档分割

常用PDF处理工具与推荐

  • 提取表格

    • pdftables
    • camelot
  • 提取内容(文本、图片、形状)

    • pdfplumber
    • pdfminer.six
      • pdfminer
      • pdfminer3k
  • 操作页面(合并、分割、旋转)

    • PyPDF4
    • PyPDF2
    • PyPDF
    • pdfrw
    • pikepdf
  • 新建内容(文本、图、表)

    • ReportLab
    • PyMuPDF

总的来说,选择使用哪个库取决于任务的性质

  • 如果只需要基本的 PDF 文件处理,可以选择 PyPDF2
  • 如果需要从 PDF 中提取结构化数据,pdfplumber 是一个不错的选择
  • 如果需要进行更高级的处理、分析以及对 PDF 文件进行详细操作,PyMuPDF 可能更适合
  • PyMuPDF 既能新建内容,也能操作页面、提取内容

总结:

  • 基础处理推荐 PyPDF2
  • 结构化数据提取推荐 pdfplumber
  • 高级处理和详细操作推荐 PyMuPDF
  • 还有如 pdftables、camelot(表格)、pdfminer.six(内容提取)、ReportLab(新建内容)、pikepdf、pdfrw 等工具可根据需求选择。

技术方案

评估指标

ragas

应用方案&成本评估

技术方向 方法示例
格式解析 PDFminer, pdfplumber, PyMuPDF, PDFBox
表格抽取 Camelot, Tabula, DocAI, LLM + LayoutLM
OCR识别 Tesseract, PaddleOCR, Google DocAI
多模态建模 LayoutLMv3, Donut, Pix2Struct
长文档问答 RAG + Chunking + rerank,或者使用 Longformer、Claude、GPT-4o 这类支持超长上下文模型

开源工具

MinerU

Steps:

  1. 文档预处理
    PyMuPDF过滤掉不能处理(比如加密文档)的文档,提取PDF metadata:文档分类、语言类型、页码等
    语言识别
    主要支持中、英文识别,作为OCR识别的参数。
    乱码识别
    提前识别乱码,保证OCR识别文字的效果。
    扫描PDF识别
    基于文本的PDF,直接使用PyMuPDF。
    扫描件PDF,需要开启OCR。
    页面metadata抽取
    比如:总页数,页面的宽度、高度。

  2. 文档内容解析
    PDF-Extract-Kit model library检测不同的region并识别相应region的内容。

MinerU使用了5个模型,分别用于:layer检测、公式检测、表格检测、公式识别、OCR。
Layerout检测

  1. PDF-Extract-Kit layerout检测算法:实时目标检测算法YOLOv10、Layoutlmv3

  2. 数据集
    2.1 多样化数据选择:学术paper、电子书、textbooks、试卷、杂志、PPT、研究报告等
    2.2 对文档组成部分中涉及的版面标注类型进行分类,包括:标题、正文段落、图片、图片标题、表格、表格标题、图片表格注释、行内公式、公式标签,以及需舍弃的类型。
    2.3 模型训练:
    微调检测模型
    2.4 迭代数据选择和模型训练

  3. 模型结构

  4. 评估指标

公式检测
公式如果不能提前被检测,后续的文本识别很容易将公式部分识别为乱码。

  1. 模型:公式检测单独训练了一个基于YOLO的检测模型。
  2. 数据:行内公式、

公式识别
UniMERNet

  1. 数据集
    训练集:: UniMER-1M:1061791 latex-image对,
    测试集:UniMER-Test

  2. 模型结构
    模型结构基于Swin-Transformer编码器和mBART解码器。
    输入:公式图片,公式图片经过数据增强模块,转换成多个图像。编码器将图像编码成特征向量。解码器通过交叉注意力机制将图像特征向量和输出的文本序列进行交互生成公式。解码器的输入为:图像特征向量、token向量、位置编码。
    UniMERNet-Encoder,UniMERNet-Decoder在结构上做了优化提高推理速度,精度稍有损失。

  3. 任务类型
    语言模型任务。

  4. 损失函数
    交叉熵损失。

  5. 评估指标
    bleu
    编辑距离
    表达式识别率(Expression Recognition Rate)

表格识别

从表格中提取结构化数据。
表格转Latex
表格转html
TableMaster:使用PubTabNet数据集。
TableMaster将表格识别分解为四个子任务:表结构识别、text line检测、text line识别、box assignment。
StructEqTable:使用DocGenome benchmark数据集。
StructEqTable:采用端到端的方式进行表格识别。

OCR识别
使用集成到PDF-Extract-Kit中的Paddle-OCR进行文本识别。
直接对整页进行OCR识别有时会导致跨列的行被识别为一行,导致错误的语序。
对layerout检测识别出的文本块进行OCR文本识别。
对有行内公式公式的文本,先通过公式检测模型检测出公式的坐标,将公式mask掉,再执行OCR识别文字,再将公式插回识别结果。

  1. 文档内容后处理
    解决内容顺序的问题。模型识别出文本、图像、公式块等可能会有overlap,OCR识别的文字也可能会有overlap。
    后处理主要处理边界框的关系:
    3.1 处理边框包含关系:移除图像和表格区域中的公式和文字,以及公式块中的边框。
    3.2 部分覆盖关系:使用分割算法(segmentation algorithm)

  2. 格式转换
    识别结果为:meta Json,可按需转为markdown或Json格式。

实测效果

MinerU相比paddlepaddle:行内公式识别还可以;表格也比pp要准点;序号经常错;标题层级基本不分;页眉页脚几乎没有;

安装

MacOS
参考安装

问题:65536 not supported at the MPS device

Linux

MinerU MCP

不适应场景

  1. 阅读顺序基于模型对可阅读内容在空间中的分布进行排序,在极端复杂的排版下可能会部分区域乱序
  2. 对竖排文字的支持较为有限
  3. 目录和列表通过规则进行识别,少部分不常见的列表形式可能无法识别
  4. 代码块在layout模型里还没有支持
  5. 漫画书、艺术图册、小学教材、习题尚不能很好解析
  6. 表格识别在复杂表格上可能会出现行/列识别错误
  7. 在小语种PDF上,OCR识别可能会出现字符不准确的情况(如阿拉伯文易混淆字符等)
  8. 部分公式可能会无法在markdown中渲染

MonkeyOCR

结构分析

使用doclayout_yolo进行版面检测(标题、段落、表格、图片区域等)

关系理解

处理版面多个内容块之间的关系

内容识别

使用视觉理解模型进行内容识别

实测效果

linux

成本

评估调用API的成本与部署开源方案的成本

公司

bright data

Github Projects

MonkeyOCR
Agentic Document Extraction
MinerU
PDF-Extract-Kit
NGTR表格识别
Versatile-OCR-Program

开源文档

Google Tesseract
Baidu PaddleOCR
Stirling-PDF
olmocr
PDF-Craft
RAG-Flow
Versatile-OCR-Program
Microsoft Excel AI Agents
MinerU
MonkeyOCR
Mistral AI

表格识别

TC-OCR: TableCraft OCR for Efficient Detection & Recognition of Table Structure & Content


数字化文档:企业转型的核心驱动力
https://summerchengh.github.io/tech-blog/2023/08/20/大模型-数据-数字化文档/
Author
Your Name
Posted on
August 20, 2023
Licensed under