一般OCR理论:通过统一的端到端模型迈向OCR-2.0
Haoran Wei 1 , ∗ {}^{1, * } 1,∗ , Chenglong Liu 3 , ∗ {}^{3, * } 3,∗ , Jinyue Chen 3 {}^{3} 3 , Jia Wang 1 {}^{1} 1 , Lingyu Kong 3 {}^{3} 3 , Yanming Xu 1 {}^{1} 1 , Zheng G e 1 {\mathrm{ {Ge}}}^{1} Ge1 , Liang Zhao 1 {}^{1} 1 , Jianjian Sun 1 {}^{1} 1 , Yuang Peng 4 {}^{4} 4 , Chunrui Han 2 {}^{2} 2 , Xiangyu Zhangy 1 , 2 {}^{1,2} 1,2 1StepFun 2Megvii科技 3 {}^{3} 3 中国科学院大学 4 {}^{4} 4 清华大学
论文地址:https://arxiv.org/abs/2407.10240
Github: https://github.com/Ucas-HaoranWei/GOT-OCR2.0
摘要
传统的光学字符识别系统(OCR-1.0)由于对人造光学字符智能处理需求的不断增长,越来越无法满足人们的使用需求。本文中,我们统称所有人工光学信号(例如,普通文本、数学/分子公式、表格、图表、乐谱,甚至几何形状)为“字符”,并提出通用OCR理论以及一个优秀的模型,即GOT,以促进OCR-2.0的到来。GOT具有 580 M {580}\mathrm{M} 580M 参数,是一个统一的、优雅的、端到端的模型,由一个高压缩编码器和一个长上下文解码器组成。作为OCR-2.0模型,GOT能够处理上述所有“字符”在各种OCR任务下的需求。在输入端,该模型支持常用的场景和文档风格的图像,包括切片和整页样式。在输出端,GOT可以通过简单的提示生成普通或格式化的结果(markdown/tikz/smiles/kern)。此外,该模型还具备交互式OCR功能,即通过坐标或颜色引导的区域级识别。此外,我们还将动态分辨率和多页OCR技术适配到GOT中,以提高其实用性。在实验中,我们提供了充足的结果来证明我们模型的优越性。
1 引言
光学字符识别(OCR)是一种广泛使用的技术,它将嵌入在光学图像中的字符提取为可编辑格式。OCR-1.0时代的典型OCR系统[10]主要基于多模块管道风格设计,通常包括元素检测、区域裁剪和字符识别部分。每个模块容易陷入局部最优,使整个系统产生高维护成本。此外,传统的OCR方法具有不足的通用能力,表现为不同的OCR-1.0网络通常为不同的子任务设计。然而,从多样的OCR模型中选择适合特定任务的模型对于用户来说总是很不方便。
在过去一年中,大型视觉语言模型(LVLMs)[5, 9, 24, 27, 36, 46, 49] 发展迅速,并展示了令人印象深刻的性能。作为一种备受期待的能力,目前LVLM的OCR性能正在不断提高。基于CLIP [37],LLaVA [24] 在指令调优阶段自然获得了英语OCR能力。为了提高OCR准确性并支持其他语言,例如中文,Qwen-VL [5] 解冻了其图像编码器(CLIP-G),并在其第二阶段训练中使用了大量OCR数据。创新性地,Vary [46] 生成了一种新的高分辨率OCR视觉词汇,与CLIP分支并行,以处理文档级密集OCR。相比之下,
以区域聚焦OCR、高分辨率OCR和多页OCR为主。GOT主要支持英语和中文,并可以通过提示控制结构结果(Mathpix markdown/tikz/smiles/kern)。
InternVL-1.5 [9] 和其他模型 [27, 50] 采用滑动窗口的方式将整个图像裁剪成多个子补丁,以进行高分辨率OCR。因此,普遍共识是,光学字符感知和识别是基于文本的图像理解的基础,吸引了许多研究人员更加关注LVLM的OCR增强能力。
然而,流行的 LVLM 设计可能不适合多样化的 OCR 任务,原因如下:1)感知与推理之间的冲突。LVLM 主要关注视觉推理性能,例如 VQA [33, 42],因为这是 LLM 擅长的领域。为了快速获得来自 LLM 的 QA 增益,大多数 LVLM [15, 24, 49] 将图像标记与文本标记对齐。然而,对于纯感知的 OCR 任务,尤其是高密度文本场景,这样做是不合理的,因为每个对齐的视觉标记(偏向于文本标记)无法压缩足够的字符。想象一下,使用数千个图像标记,例如图像裁剪方式 [9, 23],来编码相同数量的光学字符(例如,仅在 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模型的另一个重要点是多功能性,包括识别更一般的人工光学“字符”,例如乐谱、图表、几何形状等。此外,该模型应支持具有更强可读性的输出格式,例如用于公式和表格的LTEX/Markdown格式。
基于提出的一般OCR理论,我们提出了一个初步的OCR-2.0模型(GOT),旨在弥合OCR-1.0模型与人们更高光学字符处理需求之间的差距。在架构上,我们采用了简单的编码器-解码器范式。具体而言,GOT具有高压缩率的编码器,将光学图像转换为标记,以及具有较长上下文长度的解码器,以输出相应的OCR结果。编码器大约有 80 M {80}\mathrm{M} 80M 个参数,处理 1024 × 1024 {1024} \times {1024} 1024×1024 输入大小,足以应对常用的照片/文档输入样式。每个输入图像将被压缩为具有 256 × 1024 {256} \times {1024} 256×1024 维度的标记。GOT的解码器具有 0.5 B {0.5}\mathrm{\;B} 0.5B 个参数,支持 8 K 8\mathrm{\;K} 8K 最大长度的标记,以确保能够处理长上下文场景。我们为GOT设计了一种有效且高效的训练策略,可以分为三个程序,即编码器的解耦预训练、编码器与新解码器的联合训练,以及解码器的进一步后训练。此外,为了进一步提升GOT的实用性,我们还适应了细粒度的OCR特征以增强交互性,动态分辨率策略以处理超高分辨率图像(例如,超过2K),以及多页OCR技术,以缓解在PDF图像-文本对中打破页面的困难(例如,.tex文件中的分页)。为了支持每个训练阶段,我们进行了许多数据引擎的合成数据生产,这对于GOT的成功至关重要,并将在本文中详细描述。我们的模型支持的主要输入数据格式如图1所示。
作为构想 OCR-2.0 的模型,GOT 在我们各种 OCR 任务的实验中表现出色。我们希望这个简单而优雅的 GOT 能够吸引更多研究人员投入到 OCR-2.0 的研究中。当然,通往 OCR-2.0 的道路仍然漫长,GOT 也有很大的改进空间,例如支持更多语言、更多通用人工信号和更复杂的几何形状。在这个由 LVLMs 引领的新纪元中,我们相信纯粹的 OCR 模型并没有结束,它甚至可能是一个新的开始。
2 相关工作
2.1 传统 OCR
光学字符识别(OCR)是一个经典的研究主题,旨在将图像的光学内容转换为可编辑格式,以便进行进一步的下游处理。传统的OCR系统称为OCR-1.0,通常使用由多个专家模块组装而成的框架。例如,为了处理多样的光学字符,OCR系统 [10] 通常通过整合多个领域专家网络来开发,如布局分析 [54]、文本检测 [18, 19, 26, 30, 43, 45, 52 , 55 ] {52},{55}\rbrack 52,55] 、区域提取和内容识别 [11,14,16]。使用这种管道方案的原因在于文本识别模块(OCR部分)未能成功扩展,只能处理小片段的图像格式,导致整个OCR过程的形式是先检测文本/裁剪区域,然后在片段内识别结果。然而,具有复杂程序的系统可能会遭受潜在的系统性错误和高维护成本。尽管一些OCR-1.0模型,例如Nougat [6],可以直接处理整页文档,但它们通常是为特定子任务设计和训练的,导致通用能力不尽如人意。在OCR-1.0时代,一个不便之处是我们通常需要根据不同的OCR需求切换不同的模型。
2.2 基于LVLM的OCR
大型视觉语言模型 (LVLMs) [5, 9, 20, 24, 27, 46, 49] 因其强大的泛化能力而在人工智能社区引起了广泛关注。对于当前拥有感知-推理综合能力的 LVLMs,光学字符识别 (OCR) 能力已成为随着对文本驱动的视觉理解需求增加而备受关注的热点。大多数 LVLM 的 OCR 能力来自现成的 CLIP [37],尤其是那些在整个 LVLM 训练中冻结 CLIP 编码器的模型 [24]。对于此类模型,主要具有英语场景文本知识的原始 CLIP 是其在跨领域任务(如其他语言或文档)中 OCR 性能的瓶颈。一些其他 LVLMs [ 5 , 49 ] \left\lbrack {5,{49}}\right\rbrack [5,49] 选择解冻编码器并冻结 LLM 进行训练,以增强 CLIP 编码器并将图像标记与文本标记对齐。这些模型将面临低光学字符压缩率的问题,因为冻结的 LLM 难以从对齐的图像标记中解码过多文本。为缓解此问题,一些模型 [ 9 , 27 , 50 ] \left\lbrack {9,{27},{50}}\right\rbrack [9,27,50] 采用滑动窗口的方式将输入图像分解为更小的补丁。尽管这种动态分辨率方法在处理高分辨率输入图像(例如 PDF)时非常有效,但它将导致过多的图像标记,并在一定程度上限制生成的 OCR 结果的最大长度。
3 一般 OCR 理论
在本工作中,我们提出了一般 OCR 理论,即 OCR-2.0(在第 1 节中阐述),以促进 OCR 领域的发展。基于提出的新理论,我们提出了一种新颖的 OCR 模型(GOT)。在本节中,我们将介绍我们模型的技术细节,包括框架、多阶段训练策略以及相应的数据引擎。
3.1 框架
如图2所示,GOT由三个模块组成,即图像编码器、线性层和输出解码器。线性层作为连接器,用于映射视觉编码器和语言解码器之间的通道维度。我们在优化整个GOT模型时采用三个主要步骤。首先,我们进行纯文本识别任务以预训练视觉编码器。为了提高训练效率并节省GPU资源,我们选择一个小型解码器将梯度传递给编码器。在这一阶段,我们将包含场景文本的图像和包含文档级字符的手动图像输入模型,以使编码器能够收集两种最常用字符的编码能力。在下一阶段,我们通过将训练好的视觉编码器连接到一个新的更大解码器来形成GOT的架构。我们准备了大量更通用的OCR数据(例如乐谱、数学/分子公式和几何形状),以扩大这一阶段的OCR-2.0知识。在最后阶段,我们打算进一步提高GOT的泛化能力和适用性。具体而言,生成并添加了细粒度和多裁剪/页面合成数据,以支持区域提示OCR [20]、大图像OCR和批量PDF OCR功能。
图2:所提出的GOT框架。阶段1:我们使用小型OPT-125M对视觉编码器进行预训练,以有效适应OCR任务。阶段2:GOT通过将视觉编码器连接到Qwen-0.5B构建,并在此阶段使用了足够的OCR-2.0知识以处理更通用的光学字符。阶段3:视觉编码器无需修改,GOT被定制为新的字符识别功能。
3.2 预训练OCR标记的视觉编码器
如前所述,GOT 采用了编码器-解码器结构。受到 LVLMs 设计的启发,解码器可以通过一个训练良好的语言模型进行初始化。然而,我们没有找到适合 OCR-2.0 模型的预训练编码器,因此我们必须自己训练一个。我们希望新的 OCR 编码器能够在各种输入形状(包括切片和整页)上,良好地处理常用的场景和文档文本识别。
3.2.1 视觉编码器生成
我们选择的编码器结构是 VitDet [17](基础版本约有 80 M {80}\mathrm{M} 80M 个参数),因为其局部注意力可以大大降低高分辨率图像的计算成本。我们遵循 Vary-tiny 设置 [46] 来设计编码器的最后两层,这将把 1024 × 1024 × 3 {1024} \times {1024} \times 3 1024×1024×3 输入图像转换为 256 × 1024 {256} \times {1024} 256×1024 图像标记。然后,这些图像标记通过一个 1024 × 768 {1024} \times {768} 1024×768 线性层投影到语言模型(OPT-125M [53])的维度。与仅关注单一文档任务且输入形状相对单一的 Vary 编码器不同,我们在预训练过程中结合了自然场景和裁剪切片。在预处理阶段,每种形状的图像直接调整为 1024 × 1024 {1024} \times {1024} 1024×1024 正方形,因为正方形形状可以适应各种纵横比的图像,达到一定的折中。
3.2.2 数据引擎用于编码器预训练
在这样的编码器预训练阶段,我们使用了大约 500 万对图像-文本对,包括 300 万场景文本 OCR 数据和 200 万文档 OCR 数据。它们的获取方法如下:
对于自然场景数据,英语和中文图像分别从 Laion-2B [40] 和 Wukong [12] 数据集中采样。然后,使用 PaddleOCR [10] 工具捕获这些多样化真实场景中的伪地面真相。总体而言,我们获得了 200 万条数据,其中一半为中文,另一半为英文。对于文本地面真相,我们进行了两种处理:1)去除边界框,并按照从上到下、从左到右的顺序组合每个文本内容。2)根据边界框从原始图像中裁剪文本区域,并将其保存为图像切片。后者方法 2)使我们能够获得另一组 1 M 1\mathrm{M} 1M 切片类型的图像-文本对。
对于文档级数据,我们首先从 Common Crawl 收集开源 PDF 风格文件,并使用 Fitz Python 包提取相应的密集文本内容。在此过程中,我们获得了 120 万个全页 PDF 风格的图像-文本对和 0.8 M {0.8}\mathrm{M} 0.8M 图像切片数据。切片数据,包括行级和段落级,是通过解析的边界框从 PDF 图像中裁剪而来的。
3.3 通过多任务联合训练扩展 OCR-2.0 知识
3.3.1 GOT 的最终架构
在视觉编码器的预训练步骤之后,我们将其连接到一个具有更强大能力的大型语言模型,以构建GOT的最终架构。在这里,我们采用具有5亿参数的Qwen [4] 作为解码器,因为它的参数相对较少,同时融合了多种语言的先验知识。连接器的维度(即线性嵌入层)调整为 1024 × 1024 {1024} \times {1024} 1024×1024 ,以与Qwen-0.5B的输入通道对齐。因此,GOT享有无缝的编码器-解码器范式,总参数约为 580 M {580}\mathrm{M} 580M ,这在计算资源上更加友好,并且更易于在具有4G内存的消费级GPU上部署。编码器的高压缩率 ( 1024 × 1024 \left( { {1024} \times {1024}}\right. (1024×1024 (光学像素到256个图像令牌)为解码器生成新令牌节省了大量令牌空间。同时,解码器令人满意的解码上下文长度(我们使用约 8 K 8\mathrm{\;K} 8K 的最大长度)确保GOT能够在密集场景下有效输出OCR结果。
3.3.2 联合训练的数据引擎
为了将足够的OCR-2.0知识注入GOT,我们在此阶段仔细探索几种合成方法和数据引擎,而不是上述的普通OCR数据,如图3所示。我们将在接下来的段落中深入探讨每种合成数据的细节。
普通OCR数据。我们使用第3.2.2节中提到的数据的 80 % {80}\% 80% 作为普通OCR数据。为了进一步增强GOT的鲁棒性,我们还添加了手写文本识别子任务,该任务涉及来自不同语言的信件和日记的各种手写风格。我们收集了中文CASIA-HWDB2 [1]、英文IAM [2] 和挪威NorHand-v3 [3] 数据集以满足我们的要求。对于具有行级切片格式的原始图像-文本对, 6 ∼ 8 6 \sim 8 6∼8 对被分组并随机粘贴到空白文档页面上,以实现更长文本的手写识别并提高训练效率。
Mathpix-markdown格式的数据。保持光学内容格式对于维护输出结果的可读性至关重要,尤其是对于数学公式和表格。为此,我们使用多种方法尽可能多地收集格式化数据。数据收集和制作的详细信息如下:
-
数学公式。我们在Arxiv上爬取了大量的LTEX源 .tex 文件,并从中提取了大约 1 M 1\mathrm{M} 1M 个公式片段。接下来,我们将公式源转换为Mathpix格式,并使用Chorme-driver调用Mathpix-markdown-it工具将源渲染为HTML格式。然后,我们将HTML文件转换为SVG并保存为PNG图像。我们发现这种渲染方法比直接使用LTEX快了超过 20 × {20} \times 20× 倍。
-
分子公式。我们首先下载包含 2 M 2\mathrm{M} 2M 笑脸源的ChEMBL_25文件。然后,我们使用Mathpix-markdown-it工具和rdkit.Chem包收集了大约 1 M 1\mathrm{M} 1M 个分子公式图像-文本对。
-
表格。我们从爬取的 .tex 文件中提取了大约 0.3M 的表格源,并将其渲染为图像。由于其对高级表格的更好渲染效果,我们直接使用 LATEX 作为渲染工具,而不是 Mathpix-markdown-it。
-
完整页面数据。使用 Nougat [6] 方法,我们获得了大约 0.5M 的英语 markdown PDF-文本对。此外,遵循 Vary [46, 47],我们收集了另外 0.5M 的中文 markdown 对。我们将其内容转换为 Mathpix 格式。此外,我们还额外添加了 0.2M 的内部数据,这些数据是直接使用 Mathpix 标注的,包括书籍、论文和财务报告。
图 3:我们使用六种渲染工具运行数据引擎,使 GOT 能够在各种 OCR 任务中表现良好。我们分别使用 LTEX 处理表格,Mathpix-markdown-it 处理数学/分子公式,Tikz 处理简单几何形状,Verovio 处理乐谱,以及 Matplotlib/Pyecharts 处理图表。
更一般的 OCR 数据。我们希望 GOT 能够处理更一般的光学人工“字符”。因此,我们收集了三个相关的挑战性任务,并生成相应的数据。它们分别是乐谱、几何形状和图表。
-
乐谱。音乐是文化遗产的重要组成部分,光学音乐识别在实现乐谱的自动识别和转录中发挥着重要作用 [7, 38]。我们选择 GrandStaff [39] 数据集作为渲染的来源。该多声部音乐乐谱数据集提供了来自音乐片段的 Humdrum **kern 转录。除了现有的大约 10 w {10}\mathrm{\;w} 10w 图像-文本样本外,我们还提取了一些文本样本,通过 Verovio Python 包进行重新渲染。我们主要将背景从白色更改为真实纸张风格,并随机添加标题和作者信息。请注意,由于我们没有相关领域的专业人士,并且不知道如何将单系统乐谱组装成完整页面,因此我们仅渲染单系统乐谱。渲染后,我们收集了大约 50 万个样本。
-
几何形状。几何是 LVLM 的一个关键能力,是实现 AGI 的必要步骤。GOT 预计将光学几何元素转换为 TikZ [34] 文本格式。TikZ 包含一些简洁的命令来生成基本几何元素,并可以使用 LTEX 编译。我们采用 TikZ 风格的点和线,并使用最简单的点线空间关系来构建简单的基本几何形状(例如,圆形、矩形、三角形和组合形状)以及简单的函数曲线(例如,直线、抛物线、椭圆、双曲线等)。通过这种方法,我们获得了大约 100 万个几何 Tikz 数据。当然,几何渲染是复杂的,我们目前的工作仅是初步尝试。GOT 目前只能识别基本几何,但我们相信,随着合成数据技术和 OCR-2.0 的发展,未来的模型将能够识别复杂的几何形状。
-
图表。图表在多个研究领域的数据可视化和数据分析中至关重要。所提出的GOT将图表结构提取子任务称为“图表OCR”,它将图表图像上的视觉知识(例如标题、来源、x轴标题、y轴标题和数值)转换为可编辑的输出,格式为表格/Python字典。根据OneChart [8],图表图像-文本对使用Matplotlib和Pyecharts工具进行渲染。由于GOT仅是一个OCR模型,我们不需要合成的图表元素在语义上相关。因此,我们只是随机从开放获取的NLP语料库中提取实体文本(如标题、来源、x轴标题、y轴标题等)。数值是受控分布下的随机数。通过这种方法,我们获得了200万条图表数据,其中一半来自Matplotlib,另一半来自Pyecharts。
3.4 通过后训练解码器定制新的OCR功能
在通过上述两个步骤压缩多样化OCR-2.0光学信号的一般视觉信息后,GOT已准备好在各种场景中执行图像级OCR任务。基于这种感知敏锐的视觉编码器,GOT可以轻松调整以满足用户对输入和输出的需求。在这里,我们定制GOT以启用三种新功能,即细粒度、多页和动态分辨率OCR,仅通过后训练解码器部分。
3.4.1 用于交互式OCR的细粒度数据引擎。
作为一种高交互特性,细粒度光学字符识别(OCR)[20] 是由空间坐标或颜色控制的区域级视觉感知。用户可以在问题提示中添加框坐标(框引导OCR)或颜色文本(颜色引导OCR),以请求在感兴趣区域(RoI)内进行识别,从而避免输出其他无关字符。对于自然细粒度OCR,源图像和注释来自开源数据集,包括RCTW [41]、ReCTS [25]、ShopSign [51]和COCO-Text [44]数据集。上述数据集提供文本边界框,因此我们可以直接使用它们生成细粒度(区域/颜色提示)OCR数据。对于文档级细粒度OCR,遵循Fox [20]的方法,我们过滤掉下载的PDF文件中带有扫描格式的部分,并使用Python包(Fitz/PDFminer)解析剩余部分。我们记录页面级图像、每行/段落的边界框及其对应文本,以生成框引导OCR子任务的真实数据。对于此类任务,每个坐标值首先被归一化,然后放大1000倍。对于颜色引导任务,我们选择最常用的颜色(红色、绿色和蓝色)作为框架颜色,并通过在原始图像上绘制相应的边界框来实现。总体而言,我们收集了大约60万样本。
3.4.2 超大图像OCR的多裁剪数据引擎。
GOT 支持 1024 × 1024 {1024} \times {1024} 1024×1024 输入分辨率,这对于常用的 OCR 任务(例如场景 OCR 或 A4 页面 PDF OCR)来说是足够的。然而,对于一些具有巨大图像的场景,例如两页 PDF 水平拼接(在阅读论文时常见),需要动态分辨率。得益于我们高压缩率编码器,GOT 的动态分辨率在大滑动窗口 ( 1024 × 1024 ) \left( { {1024} \times {1024}}\right) (1024×1024) 下实现,确保我们的模型能够以可接受的图像标记完成极高分辨率的 OCR 任务。我们使用 InternVL-1.5 [9] 裁剪方法,最大切片为 12。超分辨率图像是使用上述单页 PDF 数据合成的,包括水平和垂直拼接。通过这种方法,我们获得了总共 50 万对图像-文本。
3.4.3 批量 PDF 文件 OCR 的多页数据引擎。
对于 OCR 任务,使用“for 循环”进行多页处理是合理的。由于某些格式化的 PDF 数据使得难以拆分页面(以获取与每页完全不兼容的文本),我们为 GOT 引入了多页 OCR(不使用“for 循环”)功能,以进一步扩展,例如 Arxiv 中的 .tex。我们希望通过 GOT,研究人员不再需要担心 PDF 真实页面断裂(例如 Nougat [6]),因为他们可以直接在多页上进行训练。为了实现这样的功能,我们随机从我们的 Mathpix 格式化 PDF 数据中抽取 2-8 页,并将它们组合在一起形成一个单一的 OCR 任务。每个选定的页面包含的文本少于 650 个标记,以确保整体长度不超过 8 K 8\mathrm{\;K} 8K 。总的来说,我们生成了大约 20 w {20}\mathrm{\;w} 20w 多页 OCR 数据,其中大部分是中文和英文页面交错的。
4 实验
4.1 实现细节
我们使用 8 × 8 8 \times 8 8×8 L40s GPU 来训练 GOT。在预训练阶段,我们以 128 的全局批量大小优化所有模型参数,并训练 3 个周期。我们利用 AdamW [29] 优化器和余弦退火调度器 [28],起始学习率为 1e-4。在此阶段,最大令牌长度设置为 4096。在联合训练阶段,我们将最大令牌长度设置为 6000,并使用与阶段 1 相同的优化器设置训练模型 1 个周期。在最后的后训练阶段,我们将最大令牌长度扩展到 8192,以支持多补丁/页面 OCR 特性。在此阶段,起始学习率为 2 e − 5 2\mathrm{e} - 5 2e−5 ,周期设置为 1。
在每个训练数据处理过程中,从上一阶段采样 80 % {80}\% 80% 的数据,以确保在添加新特性时基本能力不下降。
表 1:文档级页面上稠密英语 (en) 和中文 (zh) OCR 的性能比较。其他模型的结果来自之前的工作 [20]。
4.2 主要结果
在本节中,我们验证了 GOT 在 5 个不同 OCR 任务上的性能,包括 1) 普通文档 OCR;2) 场景文本 OCR;3) 精细文档 OCR;4) 格式化 (Mathpix markdown) 文档 OCR;5) 更一般的字符 OCR。请注意,每个基准测试的数据经过严格的文本相似性过滤,以确保其不包含在训练数据中。每个测试基准的来源和模型性能分析如下。
4.2.1 普通文档 OCR 性能
我们使用开源的 Fox [20] 基准测试来测试 GOT 在中文和英文 PDF OCR 上的性能。我们使用的指标是 OCR 任务中常用的,即编辑距离、F1 分数、精确度、召回率、BLEU 和 METEOR。由于文档文本较长,我们使用词级别分割来计算每个指标。如表 1 所示,仅使用 580M,GOT 在文档的纯文本 OCR 上取得了先进的性能,证明了其出色的 PDF 文本感知和识别能力。
表 2:场景文本的英文 (en) 和中文 (zh) OCR 性能。
4.2.2 场景文本 OCR 性能
我们收集了 400 张自然图像,其中一半为中文,另一半为英文,作为场景文本 OCR 基准。该基准中的所有真实值均经过人工校正。由于场景图像中的文本相对较短,我们使用字符级别分割来计算各种指标。如表 2 所示,我们可以看到 GOT 在自然图像上也表现良好,展示了该模型在大多数基本 OCR 任务(包括文档和场景文本)上的出色性能。
4.2.3 格式化文档 OCR 性能
将光学 PDF 图像转换为类似 markdown 的格式是 OCR 模型的一项重要功能。为了验证 GOT 的这一能力,我们精心准备了 90 页样本作为高质量基准。该基准包含中文和英文文档页面,首先通过 Mathpix 生成伪标签,然后手动校正错误。在表 3 中,我们可以看到单尺度 ( 1024 × 1024 ) \left( { {1024} \times {1024}}\right) (1024×1024) GOT 可以产生令人满意的结果。当我们使用多裁剪推理时,GOT 的性能进一步提升,尤其是在包含小文本的公式和表格上。
表 3:格式化文档(中文/英文)和更通用的 OCR 性能。单尺度意味着输入为原始图像,而多裁剪代表动态分辨率策略。
结果证明了GOT在格式化输出文档上的有效性。此外,动态分辨率方案在处理高分辨率图像时是一个不错的选择。
4.2.4 细粒度OCR性能
我们报告了GOT的细粒度OCR指标。如表4所示,GOT在基于边界框和基于颜色的参考OCR任务上整体优于Fox [20],这表明我们的模型具有出色的交互式OCR能力。
表4:细粒度文档OCR的比较。
表5:以数字为中心的图表OCR性能比较。
4.2.5 更一般的OCR性能
我们利用乐谱、几何图形和图表基准来验证GOT的更一般的OCR性能。对于前两个任务,我们分别渲染了100和180个额外样本作为基准,从表3可以看出,GOT在这些新的OCR任务上仍表现良好。对于图表OCR,我们使用结构提取版本 [8] ChartQA [32] 和 PlotQA [35] 作为基准。在表5中,GOT的图表OCR能力甚至远优于图表特定模型和流行的LVLM。所有结果都证明了我们模型在更一般的OCR任务上的有效性。
5 结论
本文提出了一种结构上比OCR-1.0系统更简单的初级OCR-2.0模型,更多地关注纯OCR任务而非LVLM,并且性能优越。OCR-2.0将各种全OCR任务整合为一个模型,是模型设计、数据工程和应用场景中的一个有价值的研究方向。我们希望简单、优雅、高效且前景广阔的GOT OCR-2.0模型能吸引更多人关注这一任务。