PubMed-OCR:PubMed Central 开放获取语料库的 OCR 标注数据集 PubMed-OCR: PMC Open Access OCR Annotations
首个基于 PMCOA 的 OCR-first 科学文档数据集,提供词级/行级/段落级边界框标注
前置知识
OCR(光学字符识别)
OCR 是将扫描图像或照片中的文字转换为机器可编辑文本的技术。传统 OCR 管线包括文本检测(定位文字区域)和文本识别(将图像区域转为字符序列)两个阶段。现代 OCR 系统如 Google Cloud Vision、Amazon Textract 等商业引擎,不仅能输出纯文本,还能提供每个词、行、段落的精确坐标位置(边界框),支持空间布局信息的保留。这种带有坐标的 OCR 输出对于文档理解任务至关重要,因为它保留了文字在页面上的物理位置关系。
本文的核心贡献就是使用 Google Cloud Vision 对科学文献进行 OCR 标注,理解 OCR 的工作原理和输出格式是理解本文的基础。
边界框(Bounding Box)
边界框是用于定位图像中目标区域的矩形表示。在 OCR 语境中,每个识别出的文字单元(词、行、段落)都会附带一个边界框,通常表示为左上角和右下角两个顶点的坐标 $[X_1, Y_1, X_3, Y_3]$。本文中,Google Vision API 返回的是四顶点多边形,作者将其规范化为轴对齐的矩形边界框。不同粒度的边界框(词级、行级、段落级)为下游任务提供不同层次的空间信息。
本文的核心创新在于提供多粒度(词/行/段落)的边界框标注,这是区别于以往纯文本数据集的关键特征。
PMCOA(PubMed Central Open Access)
PMCOA 是美国国家医学图书馆维护的开放获取全文文献库,收录了大量生物医学领域的学术论文,提供 PDF 和 JATS XML 两种格式。由于其开放性和规模(约 200 万篇 PDF),PMCOA 成为文档理解研究的重要数据来源。以往的数据集如 GROTOAP2、PubLayNet、PubTables-1M 都基于 PMCOA 构建,但它们主要依赖 PDF 解析和 XML 对齐来获取标注,而非直接对页面图像进行 OCR。
本文使用的源数据就是 PMCOA PDF,理解这个数据源的特点(开放获取、生物医学领域、有 PDF 和 XML)对于理解本文的贡献和局限性至关重要。
布局感知模型(Layout-Aware Models)
布局感知模型是一类能够同时处理文本内容和空间布局信息的文档理解模型。典型代表包括 LayoutLM、LiLT、DocLLM 等,它们将 OCR 识别的文字与对应的边界框坐标一起编码,使模型能够理解文字在页面上的位置关系(如标题在顶部、正文在中间、脚注在底部)。这类模型在文档分类、信息提取、视觉问答等任务上显著优于纯文本模型,因为科学文献中的数学公式、表格、图表等元素的位置信息对理解至关重要。
本文构建 PubMed-OCR 的主要动机就是为布局感知模型提供高质量的训练数据,理解这类模型的需求有助于理解本文的设计决策。
JATS XML
JATS(Journal Article Tag Suite)XML 是一种用于表示学术期刊文章结构化内容的标准格式。PMCOA 提供的 JATS XML 包含文章的标题、摘要、正文、参考文献等结构化信息,但不包含页面布局信息。以往的 PMCOA 数据集通过将 PDF 解析结果与 JATS XML 对齐来获取标注,但这个对齐过程容易产生误差。本文绕过 JATS XML,直接从页面图像进行 OCR,避免了对齐问题。
理解 JATS XML 的特点有助于理解为什么作者选择 OCR-first 方法而非 parser-first 方法。
研究动机
现有的科学文档数据集存在根本性的质量问题。以 PMCOA 为基础的数据集(如 GROTOAP2、PubLayNet、PubTables-1M)主要依赖 PDF 解析和 JATS XML 对齐来获取标注,这种方法存在三个严重缺陷:第一,PDF 解析器(如 PDFMiner)在处理扫描页面(无文本覆盖层的图像页面)时会完全丢失文字,导致召回率下降;第二,XML 与 PDF 的对齐过程依赖启发式规则,容易产生对齐错误和文本遗漏;第三,对于非数字化页面(纯扫描件),解析方法完全失效。以 IIT-CDIP 为例,虽然拥有 650 万文档、3550 万页面的庞大规模,但原始数据完全没有边界框标注,后续的 Tesseract OCR 叠加仅覆盖了 82.5 万页面的子集。OCR-IDL 虽然使用了 Amazon Textract 商业引擎,覆盖 2600 万页面,但缺少段落级标注,且在科学文献领域的适用性有限。这些局限性使得现有数据集无法满足布局感知模型对高质量、多粒度 OCR 标注的需求。
本文的目标是本文的目标是构建一个 OCR-first 的科学文档数据集 PubMed-OCR,直接对 PMCOA 页面图像进行 OCR 标注,绕过脆弱的 PDF/XML 对齐流程。具体而言,作者希望:(1)使用高质量商业 OCR 引擎(Google Cloud Vision)对科学文献页面进行标注,提供词级、行级和段落级的边界框;(2)构建一个规模足够大(20 万文档量级)、覆盖足够广(2000+ 期刊)的数据集;(3)以标准化 JSON 格式发布数据,便于下游研究使用;(4)提供详细的语料库统计和定性分析,帮助研究者理解数据特征。最终目标是为布局感知模型训练、文档问答系统评估、OCR 管线基准测试等任务提供一个可靠的数据基础设施。
与已有工作不同的是,本文的独特切入角度是「OCR-native」——直接从页面图像生成标注,而非从 PDF 对象或 XML 标签中提取。这种方法的核心优势在于:第一,能够处理扫描页面(无文本覆盖层),这是解析方法无法做到的;第二,避免了 PDF 解析器引入的对齐误差和文本遗漏;第三,商业 OCR 引擎(Google Vision)的质量通常优于开源解析器,特别是在处理复杂布局(多栏、公式、表格)时。此外,本文填补了一个重要的领域空白:虽然 OCR-IDL 等数据集在一般文档领域提供了商业 OCR 标注,但科学文档领域一直缺乏类似的高质量资源。PubMed-OCR 的定位是连接「基于解析器的 PMCOA 数据集」和「基于 OCR 的一般文档数据集」之间的桥梁,为科学文献理解提供 OCR-first 的标注范式。
核心方法
本文的方法论可以概括为「数据采集 - OCR 标注 - 后处理 - 标准化输出」四阶段流程。首先,作者从 PMCOA 的 FTP/OAI 端点下载 PDF 文件,并根据许可证筛选允许再分发的文档(约 60% 的 200 万 PDF 符合条件,约 120 万篇)。然后,从这 120 万篇中随机均匀采样 209,500 篇文档进行标注。对于每篇文档的每一页,作者将 PDF 渲染为 150 DPI 的图像,调用 Google Cloud Vision 的 document_text_detection API 进行 OCR。从返回的 full_text_annotation 中,遍历页面-段落-词的层级结构,提取每个词的文本和四顶点多边形坐标。由于 Google Vision 只提供词级和段落级边界框,作者设计了一个启发式算法来重建行级标注。最后,将所有标注转换为标准化的 JSON 格式输出,包含词、行、段落三个层次的轴对齐边界框。
本文的核心创新在于两个方面:第一,采用 OCR-first 而非 parser-first 的标注策略。以往的 PMCOA 数据集(GROTOAP2、PubLayNet)都依赖 PDF 解析和 XML 对齐,这种方法在处理扫描页面时会完全失效,且对齐过程容易引入误差。本文直接对页面图像进行 OCR,能够处理所有类型的页面(数字化和扫描),且避免了中间环节的误差累积。第二,设计了一个简单但有效的行重建算法。由于 Google Vision API 只返回词级和段落级边界框,不直接提供行级信息,作者基于垂直对齐启发式(y 坐标差异不超过 5 像素)将词聚类成行,并通过段落索引约束避免跨栏合并。这种方法虽然简单,但在实践中效果良好,为布局感知建模提供了完整的三层粒度标注。
方法步骤详情
方法的具体步骤如下:(1)数据采集:通过 PMCOA 的 FTP/OAI 端点下载 PDF 文件,筛选许可证允许再分发的文档(约 120 万篇),从中随机采样 209,500 篇。(2)图像渲染:将每页 PDF 渲染为 150 DPI 的图像,不做手动去倾斜处理。(3)OCR 标注:调用 Google Cloud Vision 的 document_text_detection API(2024 年 12 月 19 日版本),价格为每 1000 页 1.50 美元,总成本约 2300 美元(完整 OCR 成本约 12000 美元)。从返回的 full_text_annotation 中遍历页面-段落-词的层级结构,提取每个词的文本和四顶点多边形。(4)坐标规范化:将四顶点多边形转换为轴对齐的矩形边界框(左上角和右下角),段落的边界框是其所有词顶点的最小外接矩形。(5)行重建:对于每个词 w,计算其 y 坐标的最小值和最大值。维护行组,每个组有代表性的 y 坐标范围。词加入现有组的条件是 y 坐标差异不超过 5 像素,否则创建新组。为避免跨栏合并,将包含不同段落词的组进行拆分。在每个组内,按 x 坐标从左到右排序,拼接形成行文本,行的边界框取所有词的最小/最大坐标。(6)标准化输出:为每页生成 JSON 文件,包含 text.words、text.lines、text.paragraphs 三个数组,每个元素包含文本内容和边界框,以及图像元数据(路径、宽度、高度、DPI)。
技术新颖性
本文的技术新颖性体现在以下几个方面:首先,这是首个完全基于商业 OCR 引擎(Google Vision)标注的 PMCOA 科学文档数据集。以往的 PMCOA 数据集都依赖 PDF 解析和 XML 对齐,而本文直接从页面图像生成标注,这是一个范式转换。其次,行重建算法虽然简单,但设计巧妙:通过 y 坐标的 5 像素阈值进行词聚类,并通过段落索引约束避免跨栏合并,既保证了行的连贯性,又避免了错误合并。第三,数据集的规模和粒度达到了新的平衡:209.5K 文档、150 万页面、13 亿词,同时提供词/行/段落三级边界框,这在科学文档领域是前所未有的。第四,标准化的 JSON 输出格式使得数据易于使用,降低了下游研究的门槛。最后,作者公开了完整的语料库统计和定性分析,为研究者提供了全面的数据画像。
实验结果
本文的核心发现可以从规模、质量和应用价值三个维度来分析。在规模方面,PubMed-OCR 包含 209,500 篇文档、150 万页面(平均每篇 7.4 页),产生 6100 万段落、1.643 亿行、13 亿词。与 OCR-IDL 相比,虽然文档数少 22 倍(209.5K vs 4.6M),页面数少 17 倍(1.5M vs 26M),但行标注数量是其 3.6 倍(164.3M vs 46M),词标注数量是其 7.8 倍(1.3B vs 166M),这说明科学文献的密度远高于一般文档。在质量方面,使用 Google Vision 商业引擎保证了标注质量,每个页面平均包含 39.5 段落、106.3 行、844 词,反映了科学文献的丰富内容。在分布特征方面,每页和每文档的元素数量都呈现右偏分布,反映了短通讯和长文章的混合。期刊覆盖方面,数据集涵盖 2478 种期刊,虽然前三名(J Cell Biol 9.7%、J Exp Med 9.4%、Nucleic Acids Res 3.9%)占约 23%,但 637 种期刊(25.7%)只有一篇文档,显示了较好的多样性。在布局特征方面,通过对 4 万页面的定性分析发现,约 25% 的页面包含公式,22% 包含图像,18% 包含表格,16% 包含图表,这些复杂元素正是科学文档理解的难点所在。
查看结构化数据
| 任务 | 指标 | 本文 | 基线 | 提升 |
|---|---|---|---|---|
| 文档规模 | 文档数 | 209.5K | GROTOAP2: 13.2K, PubLayNet: 360K pages | 文档数是 GROTOAP2 的 15.9 倍 |
| 页面规模 | 页面数 | 1.5M | GROTOAP2: 119.3K, PubTables-1M: 575.3K | 页面数是 GROTOAP2 的 12.6 倍,是 PubTables-1M 的 2.6 倍 |
| 词标注密度 | 词数/页面 | 844 | OCR-IDL: 62.5 | 每页词数是 OCR-IDL 的 13.5 倍 |
| 行标注数量 | 总行数 | 164.3M | OCR-IDL: 46M | 总行数是 OCR-IDL 的 3.6 倍,尽管文档数少 22 倍 |
| 标注粒度 | 边界框层级 | 词/行/段落 | OCR-IDL: 词/行, IIT-CDIP: 无 | 提供段落级标注,比 OCR-IDL 多一个粒度层级 |
局限与改进
本文明确承认了以下几个局限性:第一,依赖单一 OCR 引擎(Google Cloud Vision),这意味着所有标注都带有该引擎特有的偏差和错误模式,无法通过引擎集成来纠错。第二,行标注是通过启发式算法从词边界框重建的,而非 OCR 引擎直接输出,这可能在阅读顺序和分组方面引入偏差,特别是在处理复杂的多栏布局、脚注和数学公式时。第三,缺少字符级边界框,这限制了在需要细粒度定位的任务中的应用。第四,没有显式的数学表达式或图表结构表示,对于科学文献中常见的公式和表格,仅提供文本和位置信息,缺乏语义结构。第五,数据集的覆盖范围受限于 PMCOA 的许可证和期刊分布,前三名期刊占 23%,且 637 种期刊只有一篇文档,可能导致某些领域的代表性不足。此外,作者还指出,虽然商业 OCR 引擎质量较高,但并非完美,特别是在处理手写内容、扫描伪影和低质量图像时仍会出错。最后,150 DPI 的渲染分辨率可能在某些细粒度任务中显得不足,特别是对于包含小字体或密集公式的页面。
独立分析的弱点
基于对论文的深入分析,我识别出以下几个弱点:第一,行重建算法过于简单。当前的 5 像素阈值是硬编码的,没有考虑页面分辨率、字体大小和行间距的变化。在处理不同期刊的排版风格时,这个固定阈值可能导致过度合并或过度分割。改进方向是设计自适应阈值,根据页面 DPI 和局部行间距动态调整。第二,缺乏质量评估机制。作者没有对 OCR 标注的质量进行系统性评估,没有与人工标注进行对比,也没有量化 Google Vision 在科学文献上的错误率。改进方向是抽样进行人工验证,计算词级和行级的准确率、召回率和 F1 分数。第三,数据集的许可证筛选可能过于保守。作者只保留了允许再分发的文档(约 60%),这可能排除了一些有价值的文献。改进方向是探索更灵活的许可证处理策略,例如提供标注但不提供原始 PDF。第四,没有提供训练/验证/测试集的划分。这对于下游研究的基准测试和结果可比性很重要。改进方向是按照期刊、文档长度和发布时间进行分层划分,确保各子集的分布一致。第五,150 DPI 的渲染分辨率对于科学文献来说可能偏低,特别是对于包含小字体公式或密集表格的页面。改进方向是测试更高分辨率(如 300 DPI)对 OCR 质量的影响。
未来方向
作者在论文中提出了几个未来研究方向:第一,扩展 OCR 引擎覆盖范围,测试其他商业引擎(如 Amazon Textract、Azure OCR)和开源引擎(如 PaddleOCR、Tesseract 5)在科学文献上的表现,进行引擎集成和质量对比。第二,增加字符级标注,通过后处理或专门的字符检测模型为每个字符添加边界框,支持更细粒度的定位任务。第三,引入数学表达式和图表结构的显式表示,例如使用 LaTeX 公式检测模型和表格结构识别模型,为科学文献中的复杂元素提供语义标注。第四,扩展到更多语言和领域的文献,当前数据集主要覆盖英文生物医学文献,未来可以扩展到其他学科(物理、化学、计算机科学)和语言(中文、日文)。第五,探索 OCR 标注与 JATS XML 的融合方法,结合两种数据源的优势,构建更全面的标注。第六,基于 PubMed-OCR 训练专门针对科学文献的 OCR 模型,利用大规模标注数据进行领域适应。最后,可以将数据集用于训练和评估布局感知的大语言模型,如 LayoutLLM、DocLLM 等,探索 OCR 信息在 LLM 预训练和微调中的最佳利用方式。
复现评估
本文的复现性评估如下:在开源方面,作者在 HuggingFace 上发布了完整的数据集(huggingface.co/datasets/rootsautomation/pubmed-ocr),包括 OCR JSON 文件和元数据 CSV,许可证与源文章一致。数据获取相对容易,因为 PMCOA 是公开数据源,但需要 Google Cloud Vision API 的访问权限和约 2300 美元的标注成本。在算力方面,主要成本是 OCR API 调用费用(每 1000 页 1.50 美元),不需要 GPU 计算,但 PDF 渲染和后处理需要一定的 CPU 资源。在复现难度方面,方法论相对简单直接,行重建算法的伪代码在论文中清晰给出,5 像素阈值等关键参数都有明确说明。然而,完全复现存在两个挑战:第一,Google Vision API 的版本更新可能导致输出格式变化,作者使用的是 2024 年 12 月 19 日版本,后续版本可能产生不同结果;第二,PMCOA 的许可证筛选标准可能随时间变化,影响可下载的文档集合。总体而言,复现难度中等,主要障碍是 API 成本而非技术复杂性。
论文图表
比较了 8 个主要文档数据集的规模和标注粒度。PubMed-OCR(本文)有 209.5K 文档、1.5M 页面,提供段落/行/词级边界框(使用 Google Vision OCR)。IIT-CDIP 最大(6.5M 文档、35.5M 页面)但无边界框。OCR-IDL(4.6M 文档、26M 页面)使用 Amazon Textract 提供行/词级标注。GROTOAP2(13.2K 文档、119.3K 页面)使用 PDF 解析提供所有粒度标注。PubTables-1M(575.3K 页面)仅提供词级标注。
这个表格是理解本文贡献的核心,通过横向对比展示了 PubMed-OCR 在规模和粒度上的独特定位,填补了科学文档领域 OCR-first 数据集的空白。
详细对比了 PubMed-OCR 和 OCR-IDL 的语料库统计。PubMed-OCR 有 209.5K 文档、1.5M 页面,每文档 291.3 段落、784.9 行、6229.6 词,每页 39.5 段落、106.3 行、844 词。OCR-IDL 有 4.6M 文档、26M 页面,每文档 101.3 行、360.8 词,每页 17.5 行、62.5 词。尽管 PubMed-OCR 文档数少 22 倍,但总行数是其 3.6 倍(164.3M vs 46M),总词数是其 7.8 倍(1.3B vs 166M)。
这个表格量化了 PubMed-OCR 相对于最可比的现有数据集的优势,特别是展示了科学文献的高密度特征,是理解本文贡献的关键数据支撑。