文章目录
前言
GOT-OCR 2.0 引入了一种新的通用光学字符识别理论——OCR 2.0,旨在革新和优化传统 OCR 系统(OCR-1.0)和大型视觉语言模型(LVLM)在 OCR 任务中的应用,突破其现有的限制。OCR 2.0 理论的核心理念在于构建一个统一、灵活且高效的 OCR 模型架构,使得光学字符识别不再依赖于繁琐的多模块流程,从而提升模型的易用性、精度和扩展性。
传统的 OCR 系统(即 OCR 1.0)通常采用分模块的流水线架构,包含字符检测、区域裁剪、字符识别等多个步骤。虽然这些模块各自具备一定的识别能力,但分散的模块结构导致系统整体易受误差累积的影响,维护成本较高,且不同模块之间的优化复杂。此外,OCR 1.0 模型的应用场景局限于特定任务,难以适应多样化的需求,例如处理数学公式、分子结构、表格和图形等内容。因此,用户往往需要根据不同需求切换不同的 OCR 模型,使用上非常不便。
随着大型视觉语言模型(LVLM)在视觉理解任务中表现出色,其在 OCR 领域也得到了广泛关注。然而,LVLM 主要侧重于视觉推理任务,例如视觉问答(VQA),在光学字符识别方面并未达到预期效果。LVLM 的 OCR 性能存在一些问题,如视觉与语言信息之间的冲突、字符压缩能力不足等。此外,由于 LVLM 参数量庞大(通常在数十亿级别),在 OCR 特定任务上的迭代和部署成本极高。因此,当遇到语言扩展或新任务时,需要大量的计算资源进行重新训练,这在实际应用中不太现实
权重文件:https://www.modelscope.cn/models/stepfun-ai/GOT-OCR2_0
代码地址:https://github.com/Ucas-HaoranWei/GOT-OCR2.0
一、算法架构
1.创新点
GOT-OCR 2.0 提出了通用光学字符识别理论 OCR 2.0,旨在突破传统 OCR 系统和 LVLM 的瓶颈,使模型能够在高效完成字符识别任务的同时具备灵活性和扩展性。OCR 2.0 具有以下核心特点:
-
端到端的统一架构:OCR 2.0 的模型采用端到端设计,去除传统 OCR的多模块流程,避免了不同模块之间可能产生的误差累积和冗余操作。模型内部通过高效的图像编码器和语言解码器无缝协作,使得识别过程更加简洁。
-
低训练和推理成本:OCR 2.0强调感知和识别的高效性,减少了模型参数量,以降低训练和推理的计算成本,使得模型适合在常规硬件上运行。这使得用户能够在不依赖昂贵计算资源的情况下,轻松地进行模型训练和微调。
-
广泛的适用性:OCR 2.0 能够识别更广泛的人工光学字符,如乐谱、图表、几何图形等,能够输出 LATEX、Markdown 等格式的结果,以便于文本结构的读取和复现
二、架构详情
GOT 采用编解码器结构,包含三个主要模块:
-
图像编码器:基于ViT的高压缩编码器,将输入图像转换为低维度的视觉标记。
-
线性层:连接图像编码器和语言解码器,确保通道维度匹配。
-
语言解码器:采用Qwen-0.5B语言模型,具备8K的最大解码上下文长度,可以处理长文本OCR任务(GOT-OCR-2.0-paper)。
在 GOT-OCR 2.0 中使用图像编码器主要是为了克服传统 OCR 系统和大型视觉语言模型 (LVLM) 的局限性,使模型在处理各种 OCR 任务时更加高效和通用。以下是图像编码器在 GOT-OCR 2.0 中的具体优势:
1. 高效的特征提取和压缩
图像编码器在处理高分辨率图像时可以有效地提取视觉特征,并通过高压缩率降低计算成本。GOT 的图像编码器采用了 ViTDet(Vision Transformer Detection)架构,支持局部注意力机制,图像编码器生成的每个视觉标记(token)包含丰富的图像内容信息,类似于文本模型中的词向量。这带来了以下优势:
- 特征表达能力:ViTDet将 1024×1024 的输入图像分块并处理,提取每个块的特征向量,捕获局部细节和全局信息。 通过自注意力机制,对不同分块之间的关联信息进行建模,以捕捉图像中的复杂结构和内容。使模型在处理复杂视觉内容(如公式、表格和图表)时更具准确性。
- 图像内容表征:每个标记包含了图像分块的特征表示,能够反映图像中的局部信息(如文本字符的轮廓、位置等)和全局信息(如文本的排版、字体样式等)。视觉标记的顺序与图像的空间布局相对应,模型可以通过序列顺序还原图像中的空间关系。由于图像编码器生成的视觉标记包含图像的局部和全局信息,语言解码器可以在解码过程中获取上下文,确保字符和段落的连贯性。
- 减少计算量:图像编码器将 1024×1024 的图像压缩为 256 个标记,大幅度降低了模型的计算负担,使得整体推理过程更加快速且资源友好。
2. 支持多样化的输入场景
GOT-OCR 2.0 的图像编码器支持处理多种类型的图像输入,包括常见的文本图像、数学公式、分子式、几何图形等。这种灵活性使 GOT 成为一个通用的 OCR 2.0 模型,不需要为不同任务分别设计多个模型模块,简化了模型结构:
- 端到端统一架构:相比传统 OCR-1.0 的多模块架构,图像编码器能够在端到端的单一架构中完成字符检测和识别,显著降低了系统的复杂性和维护成本。
- 通用性:图像编码器的设计不仅支持常见文本,还能处理音乐谱、几何图形等非典型字符,使得模型在更多领域具备适用性。
3. 改善 OCR 任务的泛化能力
图像编码器提供了强大的视觉特征表征能力,使模型能够适应不同的 OCR 场景,如文档 OCR、场景文本 OCR、公式识别和图表识别等。特别是通过图像编码器的多阶段训练和多任务优化,模型能够泛化到各种 OCR 任务,减少特定任务下的性能瓶颈:
- 提高精度:图像编码器通过多阶段训练(包括预训练、联合训练和后训练),逐步增强在不同场景下的识别能力,使得模型在处理高密度文本和复杂排版时依然表现出色。
- 增强鲁棒性:图像编码器结合多种合成数据(如手写体、数学公式、表格等)进行训练,有助于模型在面对非标准字符或罕见字符时具备更强的鲁棒性和稳定性。
4. 提供更长的上下文支持和更高的分辨率能力
GOT 的图像编码器在处理长文本和高分辨率图像时表现优异。这种能力特别适用于需要长上下文理解和动态分辨率的 OCR 场景:
- 长上下文支持:GOT 的图像编码器将图像压缩为少量标记,这使得语言解码器能够处理更长的上下文,对于处理大型文档或多页文档非常有用。
- 动态分辨率处理:图像编码器支持滑动窗口的分块处理方法,能够适应超高分辨率的图像输入,从而实现多页文档和复杂图像的高效 OCR。
5. 降低计算资源消耗
相比拥有数十亿参数的 LVLM(如 CLIP 或 GPT-4V),GOT 的图像编码器具有更小的参数量(约80M参数),但却保留了有效的视觉表征能力。这样设计带来的优势包括:
- 节省计算资源:在模型推理时减少了对 GPU 或内存的需求,使其能在消费级 GPU(如 4G 内存)上高效运行。
- 可扩展性:图像编码器的轻量化设计使得模型可以灵活地进行特定任务的微调和拓展(如增加更多语言的 OCR 支持),而无需耗费大量资源重新训练整个模型。
在 GOT-OCR 2.0 模型中,语言解码器的使用对于将图像中的视觉信息转换为结构化、可读的文本至关重要。使用语言解码器带来了多方面的优势,使模型能够高效且准确地完成 OCR 任务。
1. 自然语言生成能力
语言解码器通常是预训练的语言模型,具备强大的自然语言理解和生成能力。利用这些能力,GOT-OCR 2.0 能够实现对图像中视觉信息的文字描述生成,包括复杂的内容和格式:
- 准确生成文本:语言解码器可以将视觉标记解码为自然语言文本,生成的文字具有语法正确性、上下文连贯性和准确性,使 OCR 结果符合人类的阅读习惯。
- 支持多种输出格式:通过适当的提示(prompt)设置,语言解码器不仅能输出纯文本,还可以生成特定格式的文本(如 Markdown、TikZ 和 LaTeX),适合数学公式、图表、表格等内容的识别。
2. 提高 OCR 输出的结构化和格式化能力
OCR 不仅需要识别字符,还要保持字符之间的结构关系和排版格式。语言解码器在解码过程中可以捕获视觉标记中的结构信息,生成结构化的输出:
- 保持文本结构:在处理多行文本或复杂文档时,语言解码器能够根据视觉标记的顺序生成有层次的文本结构,例如段落、列表、表格等,使得输出的内容具备更强的可读性和可操作性。
- 格式化内容:通过对不同标记的解码,语言解码器可以生成符合特定需求的格式化文本,比如公式、分子式、几何图形等内容,便于后续的自动处理和编辑。
3. 长上下文处理能力
GOT-OCR 2.0 的语言解码器支持长上下文处理,最多可处理 8K 个标记。这在处理长文档、多页 PDF 或者高密度文本时尤为重要:
- 处理长段落和复杂文档:对于长文档,解码器能够连续读取视觉标记,确保文本输出的上下文一致性,避免因长度限制导致的信息丢失。
- 适应多页 OCR:通过一次性解码多个页面的标记,语言解码器能生成多页文档的连续输出,简化了处理长文档的流程。
4. 增强模型的通用性和扩展性
语言解码器使得模型具有很强的通用性,能够适应不同的 OCR 任务场景。尤其是预训练的语言模型通过微调可以快速适应新领域的任务需求,降低了重新训练的成本:
- 高扩展性:可以轻松通过提示词改变解码器的输出风格,比如在不同的语言、格式化需求之间切换,而无需重新训练整个模型。
- 适应更多任务:语言解码器在处理纯文本 OCR 外,还可以处理涉及表格、公式、乐谱、几何图形等多种类型的数据,因此模型能够在更多场景下应用,适应更广泛的 OCR 需求。
5. 降低计算资源消耗,提高解码效率
相比将视觉标记直接映射为字符输出,使用语言解码器可以有效减少生成过程中的资源消耗,同时提高解码效率:
- 减少解码时间:语言解码器将压缩后的视觉标记快速解码为文本,比逐像素或逐字符处理的方式更加高效。
- 优化模型资源:GOT-OCR 2.0 的语言解码器通过与视觉标记交互,在保证准确性的同时,消耗较少的计算资源,因此模型能够在消费者级 GPU 上高效运行。
6. 提高复杂字符和多语言 OCR 任务的适用性
语言解码器能够较容易地支持多种语言和字符识别需求,这在全球化和多样化的 OCR 任务中非常关键:
- 支持多语言文本识别:可以通过增加多语言数据进行微调,扩展模型对不同语言字符的识别能力,从而适应全球市场的需求。
- 复杂字符识别:语言解码器在解码时能够处理复杂字符(如中文、数学符号等),无需对每种字符进行特别训练,使得模型更具通用性。
在 GOT-OCR 2.0 中,模型通过多阶段训练策略和多样化的数据生成方法,逐步提升编码器和解码器的能力,使得模型不仅具备高精度的光学字符识别能力,还能广泛适应多种复杂的场景和格式需求。以下是模型的多阶段训练策略、数据引擎支持以及自定义功能的详细介绍:
多阶段训练策略
GOT-OCR 2.0 的训练过程分为三个主要阶段,旨在最大化模型的学习效率和泛化能力。
-
预训练阶段:
在该阶段,主要任务是训练图像编码器的基础字符识别能力。模型使用一个较小的解码器(如 OPT-125M)来传递梯度,从而在训练中为编码器提供足够的反馈信息。通过在场景文本和文档级别字符图像上进行大量的文本识别任务预训练,编码器能够逐步学习在不同场景中处理光学字符的核心能力。这一阶段确保了编码器在视觉表征方面的初步稳定性,同时降低了计算资源的使用,为后续联合训练打下基础。 -
联合训练阶段:
在该阶段,模型将训练后的图像编码器与更强大的语言解码器(Qwen-0.5B)相连接。为扩展模型的适用性,引入了丰富的 OCR-2.0 数据,包括普通文本、数学公式、分子式、几何形状和表格等复杂字符类型的数据。联合训练通过丰富的多样化任务数据进一步提升了模型的通用 OCR 能力,使其不仅能处理标准文本,还能应对结构化表格和公式识别等高要求场景。这一阶段的重要目标是将编码器和解码器的能力深度融合,使模型能够高效、准确地完成多种 OCR 任务。 -
后训练阶段:
后训练阶段的重点是模型的适用性和泛化能力的进一步提升。此阶段的训练目标包括增强模型的细粒度识别、超高分辨率图像处理和多页 OCR 支持等特性。通过添加细粒度、动态分辨率和多页数据,模型具备了更加灵活的操作能力,例如精确识别指定区域的文本、处理大尺寸图像,以及直接从多页 PDF 文件中提取完整的文本内容。后训练阶段使模型能够自如应对复杂的 OCR 应用场景,确保其在不同分辨率和多页环境下都能保持高识别率和低误差。
数据引擎支持
为了支持多阶段训练策略,GOT-OCR 2.0 在不同阶段使用了多种数据生成方法,确保模型的泛化能力。
-
普通 OCR 数据:
这些数据主要用于基础的字符识别任务,包含常见的打印文本和手写体字符数据。通过使用英文、中文等多语言的手写体和印刷体文本,模型能够在预训练阶段积累字符识别的基本能力。这些数据有助于提升模型在场景文本 OCR 和文档 OCR 中的适应性和识别精度。 -
格式化 OCR 数据:
针对数学公式、表格、分子式等需要特定格式的文本,模型生成了大量 LATEX、Markdown 等格式化数据。这些数据通过渲染工具生成,涵盖数学、科学文献、金融报表等复杂文档中的结构化内容,使模型可以准确识别公式、表格和图表等排版内容。这一数据生成过程帮助模型在联合训练阶段具备对复杂格式的识别和输出能力。 -
更通用的 OCR 数据:
为了扩展模型的适用性,还添加了乐谱、几何形状、图表等 OCR 数据。这类数据通过多种专业渲染工具生成,例如 TikZ 用于几何图形,Verovio 用于乐谱,Matplotlib 和 Pyecharts 用于图表。通过引入这些通用数据,模型在应对非典型字符(如几何图形和图表)时也能保持较高的识别精度,从而提升其在科学研究、音乐和图形识别领域的表现。
新功能自定义
GOT-OCR 2.0 引入了一系列增强的 OCR 功能,以满足不同应用场景的需求。
-
细粒度交互 OCR:
这一功能允许用户通过特定的坐标或颜色提示控制识别区域,支持区域级别的 OCR 操作。用户可以在图像中标记感兴趣的区域(例如某一表格或段落),模型根据这些提示仅输出该区域的识别结果。这种交互式 OCR 功能为复杂文档的局部内容识别提供了灵活性,尤其适用于需要高精度定位和内容提取的场景。 -
动态分辨率 OCR:
GOT-OCR 2.0 支持动态分辨率处理,通过滑动窗口的方式,模型可以对超高分辨率图像(如双页 PDF 或大型图纸)进行分块处理。此功能确保了模型在处理高分辨率场景时的计算效率,同时保证了识别的准确性。这种动态分辨率 OCR 对于科研文献、工程图纸等大尺寸文档的处理尤为重要。 -
多页 OCR:
针对多页文档的识别需求,GOT-OCR 2.0 具备无需循环调用的多页 OCR 功能,使得模型可以直接处理多页 PDF 文件,实现一键式的文本提取。这一功能减少了处理多页文档时的重复操作和资源消耗,适合长篇学术论文、书籍扫描件等场景,显著提升了处理效率。
总结
GOT-OCR 2.0 的 OCR 2.0 理论和模型设计标志着 OCR 领域的一个新起点,通过统一架构、端到端流程和低计算需求,显著提高了 OCR 的精度、扩展性和应用广度。OCR 2.0 不仅简化了传统 OCR 的繁琐流程,还具备了更高的灵活性,能够适应更广泛的光学字符识别需求。未来,随着数据合成技术的发展和模型的不断改进,OCR 2.0 有望在科研、出版、教育等各个领域得到更广泛的应用,推动光学字符识别技术的进步。
未完待续