【读点论文】General OCR Theory: Towards OCR-2.0 via a Unified End-to-end Model很有潜力的一个项目,希望有更多的开发者赋能,文档更完善

General OCR Theory: Towards OCR-2.0 via a Unified End-to-end Model

Abstract

  • 随着人们对人工光学字符的智能处理需求日益增长,传统的OCR系统(OCR-1.0)已越来越不能满足人们的使用需求。本文,我们将所有人工光学信号(例如纯文本、数学/分子式、表格、图表、乐谱甚至几何图形)统称为“字符”,并提出了通用OCR理论以及一个优秀的模型GOT,以推动OCR-2.0的到来。GOT拥有580M参数,是一个统一、优雅、端到端的模型,由高压缩编码器和长上下文解码器组成。作为OCR-2.0模型,GOT可以在各种OCR任务下处理上述所有“字符”。在输入端,该模型支持切片和整页样式的常用场景和文档样式图像。在输出端,GOT可以通过简单的提示生成纯文本或格式化结果(markdown/tikz/smiles/kern)。此外,该模型还具有交互式OCR功能,即通过坐标或颜色引导的区域级识别。此外,我们还将动态分辨率和多页OCR技术应用于GOT,以提高实用性。在实验中,我们提供了足够的结果来证明我们模型的优越性。
  • 项目地址:GOT-OCR2.0/GOT-OCR-2.0-master at main · Ucas-HaoranWei/GOT-OCR2.0 · GitHub
  • 研究团队称,尽管GOT模型表现不错,但也存在一些局限,如更多的语言支持,更复杂的几何图,chart上的OCR性能。研究团队表示OCR-2.0的研究还远的很,GOT也还有不小提升空间(该项目在数据和算力资源上都是非常受限的)。GOT的通用具体表现为:在输入方面,模型支持Scene Text OCR、Document OCR、Fine-grained OCR、More General OCR等任务。输出方面,模型同时支持plain texts输出以及可读性强、可编辑的formatted文本输出,如markdown等
  • 论文地址:[2409.01704] General OCR Theory: Towards OCR-2.0 via a Unified End-to-end Model (arxiv.org)

Introduction

  • 光学字符识别 (OCR) 是一种广泛使用的技术,可将光学图像中嵌入的字符提取为可编辑格式。OCR-1.0 时代的典型 OCR 系统 [Pp-ocrv2] 主要基于多模块流水线风格设计,通常包括元素检测、区域裁剪和字符识别部分。每个模块都容易陷入局部最优,导致整个系统的维护成本很高。此外,传统的 OCR 方法缺乏通用能力,表现为不同的 OCR-1.0 网络通常针对不同的子任务进行设计。然而,从众多 OCR 模型中选择适合某一特定任务的模型对用户来说总是不方便的

  • 在过去的一年中,大型视觉语言模型 (LVLM) 发展迅速,表现出色。作为一项备受期待的能力,当前 LVLM 的 OCR 性能正在不断提高。基于 CLIP ,LLaVA 在指令调整阶段后自然获得了英文 OCR 能力。为了提高 OCR 准确率并支持其他语言(例如中文),Qwen-VL 解冻了其图像编码器(CLIP-G)并在其第二阶段训练中使用了大量 OCR 数据。创新的是,Vary 生成了一个与 CLIP 分支并行的新型高分辨率 OCR 视觉词汇表,以处理文档级密集 OCR。相比之下,InternVL-1.5 和其他模型 利用滑动窗口的方式将整个图像裁剪成多个子块,以实现高分辨率 OCR。因此,人们一致认为光学字符感知和识别是文本驱动图像理解的基础,这吸引了许多研究人员更加关注 LVLM 的 OCR 助推器

  • 然而,流行的 LVLM 设计可能不适合各种 OCR 任务,原因如下:

    • 1)感知和推理之间的冲突。LVLM 主要关注视觉推理性能,例如 VQA ,因为这是 LLM 所擅长的。为了快速从 LLM 中获得 QA 增益,大多数 LVLM 将图像标记与文本标记对齐。然而,对于纯感知 OCR 任务(尤其是高密度文本场景)这样做是不合理的,因为每个对齐的视觉标记(偏向文本标记)无法压缩足够的字符。想象一下,使用数千个图像标记(例如图像裁剪方式 )来编码等量的光学字符(例如,仅在 A4-PDF 页面内的文本)是多么浪费。
    • 2)高迭代和部署成本。 LVLM 通常拥有数十亿个参数,导致后期训练和部署成本过高。一般来说,对于 LVLM 来说,一旦我们想要添加新的 OCR 模式(例如,一种新的语言),微调是不够的,而没有足够的 GPU 资源进行预训练。然而,重新运行具有数十亿个参数的预训练只是为了引入一个新的 OCR 特征,这也是一种浪费。
  • 因此,我们提出了通用的OCR理论,即OCR-2.0,以突破传统方法和LVLM方法在OCR任务上的瓶颈。我们认为OCR 2.0模型应具备以下基本特征:

    • 端到端。相较于流程复杂的OCR-1.0模型,OCR-2.0模型应具有统一的端到端架构,以确保更低的维护成本。在2.0时代,初学者可以快速掌握整个OCR系统,这很酷。

    • 训练和推理成本低。OCR-2.0 模型不应该像 LVLM 那样专注于推理任务的聊天机器人。它的重点应该是对光学字符的强大感知和识别,因此它需要合理数量的模型参数来换取较低的训练和推理成本

    • 通用性。OCR-2.0模型的另一个重点是通用性,包括识别更通用的人工光学“文字”,例如乐谱、图表、几何图形等。此外,模型还应支持可读性更强的输出格式,例如公式、表格的LATEX/Markdown格式。

  • 基于所提出的通用 OCR 理论,我们提出了一个主要的 OCR-2.0 模型(GOT),以弥合 OCR-1.0 模型与人们更高的光学字符处理需求之间的差距。在架构上,我们为模型采用了简单的编码器-解码器范式。具体而言,GOT 拥有一个高压缩率编码器将光学图像转换为标记,以及一个长上下文长度解码器以输出相应的 OCR 结果。编码器具有大约 80M 个参数,输入大小为 1024×1024,足以处理常用的照片/文档输入样式。每个输入图像将被压缩为 256×1024 尺寸的标记。GOT 的解码器具有 0.5B 参数,支持最大长度 8K 的标记,以确保它能够处理长上下文场景

  • 我们为 GOT 设计了一种有效且高效的训练策略,该策略可分为三个过程,即编码器的解耦预训练、编码器与新解码器的联合训练以及解码器的进一步后训练。此外,为了进一步提升 GOT 的实用性,我们还采用了细粒度 OCR 功能以提高交互性,针对超高分辨率图像(例如超过 2K)的动态分辨率策略,以及多页 OCR 技术来缓解 PDF 图像-文本对中分页困难的问题(例如,.tex 文件中的分页符)。为了支持每个训练阶段,我们为合成数据生产做了许多数据引擎,这是 GOT 成功的关键,将在本文中详细描述。我们的模型支持的主要输入数据格式可以在图 1 中看到。

    • 在这里插入图片描述

    • 图 1:在输入端,GOT 支持各种光学图像类型,例如常用的照片和文档。此外,作为通用的 OCR-2.0 模型,GOT 可以处理更多任务,例如乐谱、分子式、简单几何形状、图表等。此外,该模型可以适应区域聚焦 OCR、高分辨率 OCR 和多页 OCR。GOT 主要支持英文和中文,并可以通过提示控制结构化结果(Mathpix markdown/tikz/smiles/kern)。

  • 作为 OCR-2.0 的设想模型,GOT 在我们各种 OCR 任务的实验中表现出色。我们希望提出的简洁优雅的 GOT 能够吸引更多研究人员投入到 OCR-2.0 的研究。当然,通往 OCR-2.0 的道路仍然很长,GOT 还有很大的改进空间,例如支持更多语言、更通用的人工信号和更复杂的几何图形。在这个由 LVLM 引领的新时代,我们坚信纯 OCR 模型并没有结束,甚至可能是一个新的开始

  • 模型的结构和训练方法,采用vision encoder+input embedding layer+decoder的pipeline。Encoder后两层采用Vary的双卷积设计方案。整个Encoder将1024×1024×3的图像压缩为256×1024的image tokens,足以做好A4纸级别的dense OCR。研究团队将整个训练过程分为三个步骤,没有一个阶段锁LLM,过程中没有存在图像到文本的对齐阶段,进而导致损害image token的文字压缩率

    • 第一阶段:高效预训练encoder,GOT在整个训练过程中,没有A100级别的卡,为了节省资源,该阶段使用小型OPT-125M作为decoder为encoder提供优化方向,快速灌入大量数据。
    • 第二阶段:联合训练encoder-decoder,该阶段GOT的基本结构搭建完成,为上一阶段预训练好的encoder,以及Qwen团队预训练好的Qwen0.5B。
    • 第三阶段:锁住encoder,加强decoder以适配更多的OCR应用场景,如支持坐标或者颜色引导的细粒度OCR(点读笔可能会用到),支持动态分辨率OCR技术(超大分辨率图可能会用到),多页OCR技术。
  • 面对整个GOT模型设计中最困难的数据工程环节。研究团队为了构造各种各样的数据,还学习了众多数据渲染工具,包括Latex,Mathpix-markdown-it,Matplotlib,Tikz,Verovio, Pyecharts等等。

  • 盘一下AI-1.0 OCR系统和LVLM OCR的缺点:

    • 首先是AI-1.0流水线式的OCR系统,缺点不用多说,各个模块比较独立,局部最优,维护成本也大。最重要的是不通用,不同OCR任务需路由不同模型,不太方便。那么多模态大模型在pure OCR任务上有什么缺陷呢?我们认为有以下两点:
      • 为Reasoning让路必然导致image token数量过多,进而导致在纯OCR任务上存在bottle-neck。Reasoning(VQA-like)能力来自LLM(decoder),要想获得更好的VQA能力(至少在刷点上),就要充分利用起LLM来,那么image token就得越像text token(至少高维上,这样就会让LLM更舒服)。试想一下,100个text token在LLM词表上能编码多少文字?那么一页PDF的文字,又需要多少token呢?不难发现,保VQA就会导致在做OCR任务上,尤其是dense OCR任务上,模型搞得比较丑陋。 例如,一页PDF图片只有A4纸大小,很多LVLM要都需要切图做OCR,切出几千个image token。单张都要切图,拿出多页PDF拼接图,阁下又当如何应对?我们认为对于OCR模型这么多token大可不必
      • 非常直观的一点就是模型太大,迭代困难。要想引入新OCR feature如支持一项新语言,不是SFT一下就能训进模型的,得打开vision encoder做pre-training或者post-training,这都是相当耗资源的。对于OCR需求来说太浪费了。有人会说,小模型能同时做好这么多OCR任务吗?我们的答案是肯定的,而且甚至还能更好。

Related Work

Traditional OCR

  • 光学字符识别 (OCR) 是一个经典的研究课题,旨在将图像的光学内容转换为可编辑格式,以便进一步进行下游处理。传统的 OCR 系统称为 OCR-1.0,通常使用由多个专家模块组装而成的框架。例如,为了处理不同的光学字符,OCR 系统 通常通过集成多个领域专家网络来开发,例如布局分析 、文本检测、区域提取和内容识别。使用这种流水线方案的原因是文本识别模块(OCR 部分)无法成功扩展,只能处理小切片的图像格式,导致整个 OCR 流程为首先检测文本/裁剪区域,然后识别切片内的结果。然而,程序复杂的系统可能会遭受潜在的系统错误和高昂的维护成本。虽然有些 OCR-1.0 模型,例如 Nougat 可以直接在整页级别处理文档,但它们往往是针对某个特定的子任务进行设计和训练的,导致通用能力不尽如人意。在 OCR-1.0 时代,一个不方便的地方是我们通常需要根据不同的 OCR 需求切换不同的模型。

LVLM-driven OCR

  • 大型视觉语言模型 (LVLM) 因其强大的泛化能力而引起了人工智能社区的广泛关注。对于目前具有感知推理综合能力的 LVLM,随着对文本驱动的视觉理解的需求不断增长,OCR 能力已成为热点。大多数 LVLM 的 OCR 能力来自现成的 CLIP ,尤其是那些冻结 CLIP 编码器 来完成整个 LVLM 训练的模型。对于此类模型,主要包含英文场景文本知识的 vanilla CLIP 是 OCR 对域外任务(例如其他语言或文档)性能的瓶颈。 其他一些 LVLM 选择解冻编码器并冻结 LLM 进行训练,以增强 CLIP 编码器并将图像标记与文本标记对齐。这些模型将面临光学字符压缩率低的问题,因为冻结的 LLM 很难从对齐的图像标记中解码过多的文本。为了缓解这个问题,一些模型 采用滑动窗口方式将输入图像分解为较小的块。虽然这种动态分辨率方法在处理高分辨率输入图像(例如 PDF)时非常有效,但它会导致过多的图像标记并在一定程度上限制生成的 OCR 结果的最大长度。

General OCR Theory

  • 在本文中,我们提出了通用的 OCR 理论,即 OCR-2.0(如第 1 节所述),以促进 OCR 领域的发展。基于提出的新理论,我们提出了一种新颖的 OCR 模型(GOT)。在本节中,我们将介绍我们模型的技术细节,包括框架、多阶段训练策略和相应的数据引擎。

Framework

  • 如图 2 所示,GOT 包含三个模块,即图像编码器、线性层和输出解码器。线性层充当连接器,用于映射视觉编码器和语言解码器之间的通道维度。我们利用三个主要步骤来优化整个 GOT 模型。
    • 首先,我们进行纯文本识别任务来预训练视觉编码器。为了提高训练效率并节省 GPU 资源,我们选择一个微型解码器将梯度传递给编码器。 在此阶段,我们将包含场景文本的图像和包含文档级字符的手册图像输入模型,以允许编码器收集两个最常用字符的编码能力。

    • 在下一个阶段,我们通过将训练好的视觉编码器连接到新的更大的解码器来形成 GOT 的架构。我们准备了大量更通用的 OCR 数据(例如,乐谱、数学/分子式和几何形状)来扩展此阶段的 OCR-2.0 知识。

    • 在最后阶段,我们打算进一步提高 GOT 的泛化和适用性。具体来说,生成并添加细粒度和多裁剪/页面合成数据,以用于 GOT,以支持区域提示 OCR 、大图像 OCR 和批量 PDF OCR 功能。

    • 在这里插入图片描述

    • 图 2:所提出的 GOT 的框架。第 1 阶段:我们使用微型 OPT-125M 对视觉编码器进行预训练,以有效地适应 OCR 任务。第 2 阶段:通过将视觉编码器连接到 Qwen-0.5B 构建 GOT,并在此阶段使用更通用光学字符的足够 OCR-2.0 知识。第 3 阶段:不需要修改视觉编码器,并且 GOT 针对新的字符识别功能进行了定制。

Pre-train the OCR-earmarked Vision Encoder

  • 如上所述,GOT 采用编码器-解码器结构。受 LVLM 设计的启发,解码器可以由训练有素的语言模型初始化。但是,我们没有找到适合 OCR-2.0 模型的预训练编码器,因此我们必须自己训练一个。我们希望新的 OCR 编码器能够在各种输入形状(切片和整页)的常用场景和文档文本识别中表现出色。
The Vision Encoder Generation.
  • 我们选择的编码器结构是 VitDet (基础版本,约 80M 参数),因为它的局部注意力机制可以大大降低高分辨率图像的计算成本。我们遵循 Vary-tiny 设置 来设计编码器的最后两层,将 1024×1024×3 的输入图像转换为 256×1024 的图像标记。然后,这些图像标记通过 1024×768 的线性层投影到语言模型(OPT-125M )维度。与 Vary 编码器在相对单一的输入形状下仅关注单文档任务不同,我们在预训练时加入了自然场景和裁剪切片。在预处理阶段,将每种形状的图像直接调整为 1024×1024 的正方形,因为正方形可以用来折衷适应各种长宽比的图像
Data Engine Towards Encoder Pre-training
  • 在这样的编码器预训练阶段,我们使用了大约5M个图文对,其中包括3M的场景文本OCR数据和2M的文档OCR数据。它们的获取方法如下:
    • 对于自然场景数据,我们分别从 Laion-2B 和 Wukong [Wukong: A 100 million large-scale chinese cross-modal pre-training benchmark] 数据集中采样英文和中文图像。然后,使用 PaddleOCR 工具捕获这些多样化真实场景中的伪 GT。总的来说,我们得到了 2M 的数据,其中一半是中文,一半是英文。对于文本 GT,我们执行两种类型的处理:1)移除边界框并按照从上到下、从左到右的顺序组合每个文本内容。2)根据边界框从原始图像中裁剪文本区域并将其保存为图像切片。后一种方法 2)允许我们获得另外 1M 个切片类型的图像-文本对。
    • 对于文档级数据,我们首先从 Common Crawl 收集开源 PDF 样式文件,并使用 Fitz Python 包提取相应的密集文本内容。在此过程中,我们获得了 1.2M 个全页 PDF 样式图文对和 0.8M 个图像切片数据。切片数据(包括行级和段落级)是通过解析后的边界框从 PDF 图像中裁剪出来的。

Scaling Up the OCR-2.0 Knowledge via Multi-task Joint-training

The Final Architecture of GOT
  • 在视觉编码器完成预训练步骤之后,我们将其连接到更大、功能更强大的语言模型,以构建 GOT 的最终架构。在这里,我们采用具有 500M 参数的 Qwen 作为解码器,因为它具有相对较少的参数,同时结合了多种语言的先验知识。连接器(即线性嵌入层)的尺寸调整为 1024×1024,以与 Qwen-0.5B 的输入通道对齐。因此,GOT 享有总共约 580M 参数的无缝编码器-解码器范式,这在计算资源上更加友好,并且更容易在具有 4G 内存的消费级 GPU 上部署。 编码器的高压缩率(1024×1024 光学像素到 256 个图像标记)为解码器节省了大量的标记空间来生成新的标记。同时,解码器令人满意的解码上下文长度(我们使用大约8K的最大长度)保证了GOT可以在密集场景下有效地输出OCR结果。
Data Engine for Joint-training
  • 为了将足够的 OCR-2.0 知识注入 GOT,而不是上述简单的 OCR 数据,我们在此阶段仔细探索了几种合成方法和数据引擎,如图 3 所示。 我们将在以下段落中深入探讨每种类型的合成数据的细节。

    • 在这里插入图片描述

    • 图 3:我们使用六种渲染工具来运行数据引擎,使 GOT 能够很好地完成各种 OCR 任务。我们分别使用 LATEX 来处理表格、Mathpix-markdown-it 来处理数学/分子式、Tikz 来处理简单的几何形状、Verovio 来处理乐谱,以及 Matplotlib/Pyecharts 来处理图表。

  • 普通 OCR 数据。我们使用 3.2.2 节中提到的 80% 的数据作为普通 OCR 数据。为了进一步增强 GOT 的鲁棒性,我们还添加了手写文本识别子任务,该任务涉及不同语言的书信和日记中的各种笔迹。我们收集了中文 CASIA-HWDB2 、英文 IAM 和挪威语 NorHand-v3 数据集来满足我们的要求。对于具有行级切片格式的原始图像-文本对,将 6∼8 对分组并随机粘贴到空白文档页面中以实现较长文本的手写识别并提高训练效率。

  • Mathpix-markdown 格式化数据。保留光学内容格式对于保持输出结果的可读性至关重要,尤其是数学公式和表格。为此,我们使用多种方法收集尽可能多的格式化数据。数据收集和制作的细节如下:

    • 数学公式。我们在 Arxiv 上爬取了大量的 LATEX 源 .tex 文件,并从中提取了大约 1M 的公式片段。接下来,我们将公式源转换为 Mathpix 格式,并使用 Chorme-driver 调用 Mathpix-markdown-it 工具将源渲染为 HTML 格式。然后我们将 HTML 文件转换为 SVG 并保存为 PNG 图片。我们发现这种渲染方法比直接使用 LATEX 快 20 倍以上。
    • 分子式。我们首先下载包含 2M 个笑脸源的 ChEMBL_25 文件。然后我们使用 Mathpix-markdown-it 工具和 rdkit.Chem 包收集了大约 1M 的分子式图文对。
    • 表格。从爬取到的 .tex 文件中,我们提取了约 0.3M 的表格源,并渲染成图片。我们没有使用 Mathpix-markdown-it,而是直接使用 LATEX 作为渲染工具,因为 LATEX 对高级表格的渲染效果更好。
    • 全页数据。使用 Nougat 方法,我们获得了约 0.5M 个英文 markdown PDF-文本对。此外,我们按照 Vary 的方法收集了另外 0.5M 个中文 markdown 对。我们将其内容转换为 Mathpix 格式。此外,我们还添加了 0.2M 个内部数据,这些数据直接使用 Mathpix 进行标注,包括书籍、论文和财务报告。
  • 更通用的 OCR 数据。我们希望 GOT 能够处理更通用的光学人工“字符”。 因此,我们收集了三个相关的挑战性任务并生成相应的数据。它们分别是乐谱、几何形状和图表。

    • 乐谱。音乐是文化遗产的宝贵组成部分,光学音乐识别在实现乐谱的自动识别和转录方面起着重要作用 。我们选择 GrandStaff 数据集作为渲染源。复音乐谱数据集提供了来自音乐摘录的 Humdrum **kern 转录。除了现有的大约 10w 个图像文本样本外,我们还提取了一些文本样本,通过 Verovio Python 包重新渲染。我们主要添加了从白色到真实纸张样式的新背景,并随机添加了标题和作者信息。请注意,我们只渲染单系统乐谱,因为我们没有相关领域的专业人员,也不知道如何将单系统乐谱组装成整页。渲染后,我们收集了大约 0.5M 个样本

    • 几何形状。几何是LVLM的一项关键能力,是迈向AGI的必要步骤。 GOT有望将光学几何元素转换为TikZ 文本格式。TikZ包含一些简洁的命令来生成基本的几何元素,可以使用LATEX进行编译。我们采用TikZ风格的点和线,并使用最简单的点线空间关系构造简单的基本几何形状(例如圆形,矩形,三角形和组合形状)以及简单的函数曲线(例如直线,抛物线,椭圆形,双曲线等)。通过这种方法,我们获得了大约1M几何Tikz数据。当然,几何渲染很复杂,我们目前的工作只是初步尝试。GOT目前只能识别基本几何图形,但我们相信随着合成数据技术和OCR-2.0的发展,未来的模型将能够识别复杂的几何形状

    • 图表。图表在多个研究领域的数据可视化和数据分析中至关重要。提出的 GOT 将图表结构提取子任务称为“图表 OCR”,它将图表图像上的视觉知识(例如标题、来源、x 标题、y 标题和值)转换为具有表格/Python-dict 格式的可编辑输出。遵循 OneChart ,使用 Matplotlib 和 Pyecharts 工具呈现图表图像-文本对。由于 GOT 只是一个 OCR 模型,我们不需要合成图表的元素在语义上相关。因此,我们只是从开放获取的 NLP 语料库中随机提取实体文本(标题、来源、x 标题、y 标题等)。数值是受控分布下的随机数。通过这种方法,我们获得了 2M 图表数据,一半来自 Matplotlib,一半来自 Pyecharts。

Customizing New OCR Features by Post-training the Decoder

  • 通过以上两个步骤压缩各种 OCR-2.0 光信号的一般视觉信息后,GOT 已准备好在各种场景中执行图像级 OCR 任务。基于这种感知敏锐的视觉编码器,GOT 可以轻松调整以满足用户的输入和输出需求。在这里,我们定制了 GOT,只需对解码器部分进行后训练即可实现三个新功能,即细粒度、多页和动态分辨率 OCR
Fine-grained Data Engine for Interactive OCR.
  • 细粒度 OCR 是一种高交互性功能,是由空间坐标或颜色控制的区域级视觉感知。用户可以在问题提示中添加框坐标(框引导 OCR)或颜色文本(颜色引导 OCR),以请求在感兴趣区域 (RoI) 内进行识别,避免输出其他不相关的字符。对于自然细粒度 OCR,源图像和注释来自开源数据集,包括 RCTW 、ReCTS 和 ShopSign 以及 COCO-Text 数据集。上述数据集提供了文本边界框,因此我们可以直接使用它们来生成细粒度(区域/颜色提示)OCR 数据。 对于文档级细粒度 OCR,我们按照 Fox 的做法,从下载的 PDF 文件中过滤掉具有扫描格式的文件,并使用 Python 包(Fitz/PDFminer)解析剩余部分。 我们记录页面级图像、每行/段落的边界框以及相应的文本,以生成框引导 OCR 子任务的地面实况。对于这样的任务,每个坐标值首先被归一化,然后放大 1000 倍。对于颜色引导任务,我们选择最常用的颜色(红色、绿色和蓝色)作为框架颜色,并通过原始图像上的相应边界框绘制它们。总的来说,我们收集了大约 60w 个样本。
Multi-crop Data Engine for Ultra-large-image OCR.
  • GOT支持1024×1024的输入分辨率,这对于常用的OCR任务来说已经足够了,例如场景OCR或者A4页的PDF OCR。但是对于一些图片巨大的场景,比如两页PDF横向拼接(读报纸的时候经常出现),就需要动态分辨率了。 得益于我们的高压缩率编码器,GOT的动态分辨率是在很大的滑动窗口(1024×1024)下实现的,确保我们的模型可以在可接受的图像token的情况下完成极高分辨率的OCR任务。我们使用InternVL-1.5 的裁剪方法,tile最大为12。超分辨率图像是使用上面提到的单页PDF数据合成的,包括横向和纵向拼接。通过这种方法,我们总共获得了50w个图文对。
Multi-page Data Engine for Batched PDF-file OCR.
  • 对于OCR任务,使用for循环进行多页处理是合理的。我们为GOT引入了多页OCR(不使用for循环)功能,因为有些格式的PDF数据很难分页(获得与各个页面完全不兼容的文本)以进一步扩大规模,比如Arxiv中的.tex。我们希望有了GOT,研究人员不再需要担心PDF ground truth分页符(例如Nougat ),因为他们可以直接在多页上进行训练。为了实现这样的功能,我们从Mathpix格式的PDF数据中随机抽取2-8页,并将它们连接在一起形成一轮OCR任务。每个选定的页面包含少于650个token的文本,以确保整体长度不超过 8K。总的来说,我们生成了大约20w个多页OCR数据,其中大部分是中英文页面交错的。

Experiments

Implement Details

  • 我们使用 8×8 L40s GPU 来训练 GOT。在预训练阶段,我们优化所有模型参数,全局批次大小为 128,训练 3 个 epoch。我们使用 AdamW 优化器和余弦退火调度程序 ,起始学习率为 1e-4。此阶段的最大 token 长度设置为 4096。在联合训练阶段,我们将最大 token 长度设置为 6000,并使用与阶段 1 相同的优化器设置对模型进行 1 个 epoch 的训练。在最后的后训练阶段,我们将最大 token 长度扩展为 8192,以允许模型支持多 patch/page OCR 功能。在此阶段,起始学习率为 2e-5,epoch 设置为 1。
  • 每次训练数据过程中,都会从前一阶段采样 80% 的数据用于下一阶段,以确保在添加新特征时基本能力不会下降。

Main Results

  • 在本节中,我们验证了 GOT 在 5 个不同 OCR 任务上的性能,包括 1)纯文本 OCR;2)场景文本 OCR;3)细粒度文档 OCR;4)格式化(Mathpix markdown)文档 OCR;5)更通用的字符 OCR。注意,每个基准的测试数据都经过严格的文本相似性过滤,以确保它不包含在训练数据中。每个测试基准的来源和模型性能分析如下。
Plain document OCR performance
  • 我们使用开源的 Fox 基准测试了 GOT 在中文和英文 PDF OCR 上的性能。我们使用的指标是 OCR 任务中常用的指标,即编辑距离、F1-score、准确率、召回率、BLEU 和 METEOR。由于文档文本较长,我们使用词级分词来计算每个指标。如表 1 所示,GOT 在仅 580M 的体积下,在文档的纯文本 OCR 上取得了先进的性能,证明了出色的 PDF 文本感知和识别能力
    • 在这里插入图片描述

    • 表 1:文档级页面上密集英语 (en) 和中文 (zh) OCR 的性能比较。其他模型的结果来自先前的研究 。

Scene text OCR performance
  • 我们收集了 400 张自然图像,一半是中文,一半是英文,作为场景文本 OCR 基准。 此基准中的所有基本事实都是手动校正的。由于场景图像中的文本相对较短,我们使用字符级分割来计算各种指标。如表 2 所示,我们可以看到 GOT 在自然图像上也表现良好,证明了该模型在大多数基本 OCR 任务(文档和场景文本)上的出色性能。
    • 在这里插入图片描述

    • 表 2:场景文本的英语 (en) 和中文 (zh) OCR 性能。

Formatted document OCR performance
  • 将光学 PDF 图像转换为类似 markdown 的格式是 OCR 模型的重要功能。为了验证 GOT 的这一能力,我们精心准备了 90 页样本作为高质量基准。该基准包含中文和英文文档页面,首先通过 Mathpix 生成伪标签,然后手动纠正错误。在表 3 中,我们可以看到单尺度(1024×1024)GOT 可以得到令人满意的结果。当我们使用多裁剪推理时,GOT 的性能进一步提升,尤其是在带有小文本的公式和表格上。结果证明了GOT对格式化输出文档的有效性。此外,动态分辨率方案在处理高分辨率图像时是一个不错的选择
    • 在这里插入图片描述

    • 表 3:格式化文档(中文/英文)和更通用的 OCR 的性能。单次表示输入是原始图像,多次裁剪表示动态分辨率策略。

Fine-grained OCR performance
  • 我们报告了 GOT 的细粒度 OCR 指标。如表 4 所示,GOT 在基于边界框和基于颜色的参考 OCR 任务上都比 Fox 整体表现更好,表明我们的模型具有出色的交互式 OCR 能力。
    • 在这里插入图片描述

    • 表 4:细粒度文档 OCR 比较。

More general OCR performance
  • 我们利用乐谱、几何图形和图表基准来验证 GOT 更通用的 OCR 性能。对于前两个任务,我们分别渲染了 100 和 180 个额外样本作为基准,如表 3 所示,GOT 在这些新的 OCR 任务上仍然表现良好。对于图表 OCR,我们使用结构提取版本 ChartQA 和 PlotQA 作为基准。在表 5 中,GOT 的图表 OCR 能力甚至比图表专用模型和流行的 LVLM 更好。所有结果都证明了我们的模型在更通用的 OCR 任务上的有效性。
    • 在这里插入图片描述

    • 表 5:以数字为中心的图表 OCR 的性能比较。

Conclusion

  • 本文提出了一个基本的 OCR-2.0 模型,该模型在结构上比 OCR-1.0 系统更简单,比 LVLM 更专注于纯 OCR 任务,并且具有卓越的性能。OCR-2.0 将各种泛 OCR 任务集成到一个模型中,是模型设计、数据工程和应用场景中一个有价值的研究方向。我们希望简单、优雅、有效且有前景的 GOT OCR-2.0 模型能够引起人们对此类任务的更多关注。

Appendix

  • 在本节中,我们提供了足够的GOT输出结果来展示其出色的OCR性能。 我们还演示了不同类型的OCR任务对应的输入提示的格式。
    • 在这里插入图片描述

    • 图4:GOT的格式化文本OCR能力。GOT对整页文本和表格/公式切片文本效果很好。这些输入形式是文档OCR中最常用的,这证明了GOT在应用方面有很好的前景。

    • 在这里插入图片描述

    • 图五:GOT的纯文本(文档)OCR能力,对于双栏且文本密度较高的文档,GOT依然可以很好地处理,证明了其优秀的文本感知能力。

    • 在这里插入图片描述

    • 图6:GOT的场景OCR与细粒度OCR结果。我们为GOT配备了更具交互性的细粒度OCR任务,使其能够根据提示输出感兴趣区域的OCR结果。

    • 在这里插入图片描述

    • 图 7:GOT 对高分辨率图像的动态分辨率。在图中所示的双页纸读取模式下,原始 GOT 的输入分辨率不足以处理它。因此,我们采用动态分辨率技术,使模型不再受限于图像的大小

    • 在这里插入图片描述

    • 图 8:GOT 的多页(文档)OCR 能力。利用此功能,研究人员可以继续使用多页 PDF-文本对(例如带有 .tex 文件的 Arxiv 论文)训练 GOT。

    • 在这里插入图片描述

    • 图 9:更通用的 OCR 结果。GOT 可以处理分子式、乐谱和图表。

    • 在这里插入图片描述

    • 图10:我们并没有特别为GOT引入除中文和英文之外的额外OCR能力,但我们爬取的PDF数据中可能含有少量其他语言的文字,导致GOT看似具备识别其他语言的能力,但我们无法保证其他语言的OCR质量,因此如果需要该功能,建议使用相应数据对模型进行微调。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

羞儿

写作是兴趣,打赏看心情

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值