文档布局检测
概述
文档布局检测(Document Layout Detection)是从 PDF 页面中识别和定位不同语义区域(文本区、图像、表格、公式框等)的计算机视觉任务,是高质量 PDF 解析的关键环节。
关键内容
为什么需要布局检测
即使有了 PyMuPDF 提取的所有字符坐标,我们依然不知道: - 哪些字符属于同一个段落? - 哪里是图片的图注,哪里是正文? - 这是一个单栏 PDF 还是双栏 PDF? - 这个区域是表格还是普通文字? - 公式在哪里?
传统方法试图用纯规则(启发式)来解决:比如"Y 坐标接近的 Span 属于同一行","行间距大于某阈值则换段落"。但这类规则在面对复杂学术论文布局时极其脆弱。
解决方案:先用深度学习模型对整个页面图像做语义分割式的区域检测,再基于检测结果组织内容。这是一个典型的"先视觉理解,后文字处理"的架构哲学。
任务定义
输入:PDF 页面(原始或渲染为图像) 输出:带类别标签的边界框列表,类别包括: - 文本区(title / text / abstract / reference 等) - 图像区域(figure) - 表格区域(table) - 公式框(formula) - 页眉页脚(header / footer) - 图注/表注(figure_caption / table_caption) - 公式编号(equation_caption)
在 MinerU 流水线中的位置
文档布局检测是 MinerU 七层流水线的第三层,承接底层 PDF 解析,为后续内容专项识别提供检测框。整体架构是"先视觉理解,后文字处理"。
主要模型
- DocLayout-YOLO:基于 YOLO 架构的 One-Stage 检测器,推理速度快,专为文档布局场景优化,支持 11 类检测
- LayoutLMv3:微软多模态文档理解模型,结合视觉和文本特征,精度更优但推理成本更高
与下游环节的协同
布局检测输出的 layout_bboxes 直接驱动第四层的内容专项识别:
- 文本区 → OCR(PaddleOCR)
- 公式框 → 公式识别(UniMERNet)
- 表格区域 → 表格识别(TableMaster)
布局框后处理
检测完成后还需要一系列后处理: - Span 对齐:将底层提取的 Span 通过中心点 + IoU 分配到对应布局框 - 孤儿 Span 处理:未落入任何布局框的 Span 通过就近原则分配或丢弃 - 布局框合并与拆分:相邻 text 框水平对齐且间距小于行高 → 合并;text 框内存在明显分栏 → 拆分 - 分栏检测:通过 text 框 x 中心分布推断单栏/双栏,为后续阅读顺序重建提供结构信息
来源
- raw/assets/MinerU/minerU_01_architecture.md — MinerU 深度解析系列 · 第一篇
- raw/assets/MinerU/minerU_03_layout.md — MinerU 深度解析系列 · 第三篇:布局检测系统
相关
- MinerU — 第三层流水线
- DocLayout-YOLO — 布局检测模型
- LayoutLMv3 — 布局检测模型
- PDF解析 — 所属问题域
- PyMuPDF — 底层解析引擎,提供字符坐标
- 阅读顺序重建 — 布局检测为阅读顺序排序提供分栏信息