GOT-OCR2.0
专用模型

GOT-OCR2.0

GOT-OCR 2.0 (General OCR Theory 2.0) 是一种先进的开源 OCR 模型,能够以端到端的方式识别和理解包括文本、公式、表格和图表等多种视觉语言。它在多个 OCR 基准测试中表现出色,并支持多种输入和输出格式,适用于处理各种复杂的 OCR 任务。

快点收藏起来

什么是 GOT-OCR 2.0

GOT-OCR 2.0 (General OCR Theory 2.0) 是一种先进的光学字符识别(Optical Character Recognition, OCR)模型,代表了 OCR 技术的下一代发展方向,有时也被称为 OCR 2.0。与传统的 OCR 系统主要关注于识别图像中的纯文本不同,GOT-OCR 2.0 旨在理解和处理更广泛的“视觉语言”,包括格式化文档、数学公式、化学结构、音乐符号、图表甚至简单的几何形状。其核心理念是采用一个统一的端到端模型,能够直接从输入图像生成各种格式的输出,从而简化处理流程并提高效率。该模型由 Ucas-HaoranWei 团队开发,并在 Hugging Face 等平台上开源。

got-ocr-2.0

GOT-OCR 2.0 的功能

GOT-OCR 2.0 具备多种创新功能,使其在处理复杂的 OCR 任务时表现出色:

  • 统一的端到端处理: 采用单一模型完成从图像输入到结果输出的整个过程,无需像传统 OCR 那样进行文本检测和识别等多个独立步骤。
  • 广泛的视觉语言支持: 不仅限于识别普通文本,还能处理包括表格、图表、数学公式、化学公式、几何图形和乐谱等多种视觉元素。
  • 多种输入样式支持: 可以处理场景文本图像(如街景照片中的文字)和文档样式图像(如扫描的文档页面)。
  • 灵活的输出格式: 支持生成纯文本、Markdown、LaTeX 等多种格式的输出,能够更好地保留原始文档的结构和格式。
  • 交互式 OCR: 允许用户通过坐标或颜色指定感兴趣的区域进行 OCR,实现更精细化的识别。
  • 动态分辨率和多页 OCR: 能够处理超高分辨率图像,并支持对多页文档进行 OCR 处理。
  • 强大的基准测试表现: 在 TextVQA、DocVQA、ChartQA 和 OCRbench 等多个基准测试中表现出色,超越了许多其他开源和商业模型。
  • 处理历史文档能力: 通过在大量文化遗产档案数据上进行训练,能够准确识别和校正来自旧的、损坏的或低质量的文档中的文本。
  • 快速高效: 尽管功能强大,GOT-OCR 2.0 在处理图像时速度很快,适用于需要快速处理的应用场景。

如何使用/快速开始

要开始使用 GOT-OCR 2.0,可以按照以下步骤进行操作:

  1. 安装 Transformers 库: GOT-OCR 2.0 在 Hugging Face 的 Transformers 库中提供,因此首先需要安装该库:
    pip install transformers
  2. 加载模型和处理器: 使用 AutoProcessorAutoModelForImageTextToText 类加载预训练模型和处理器:
    from transformers import AutoProcessor, AutoModelForImageTextToText
     import torch
    
     device = "cuda" if torch.cuda.is_available() else "cpu"
     model = AutoModelForImageTextToText.from_pretrained("stepfun-ai/GOT-OCR-2.0-hf", device_map=device)
     processor = AutoProcessor.from_pretrained("stepfun-ai/GOT-OCR-2.0-hf")
  3. 准备输入图像: 您可以提供图像的 URL 或本地图像文件的路径。
  4. 进行推理(Plain Text): 对于识别纯文本,可以使用以下代码:
    image_url = "https://huggingface.co/datasets/hf-internal-testing/fixtures_got_ocr/resolve/main/image_ocr.jpg"
     inputs = processor(image_url, return_tensors="pt").to(device)
     generate_ids = model.generate(**inputs, do_sample=False, tokenizer=processor.tokenizer, stop_strings="<|im_end|>", max_new_tokens=4096)
     predicted_text = processor.decode(generate_ids[0, inputs["input_ids"].shape[1]:], skip_special_tokens=True)
     print(predicted_text)
  5. 进行推理(Formatted Text): 对于生成格式化文本(如 Markdown 或 LaTeX),需要在处理输入时指定 format=True
    image_url = "https://huggingface.co/datasets/hf-internal-testing/fixtures_got_ocr/resolve/main/latex.png"
     inputs = processor(image_url, return_tensors="pt", format=True).to(device)
     generate_ids = model.generate(**inputs, do_sample=False, tokenizer=processor.tokenizer, stop_strings="<|im_end|>", max_new_tokens=4096)
     predicted_text = processor.decode(generate_ids[0, inputs["input_ids"].shape[1]:], skip_special_tokens=True)
     print(predicted_text)
  6. 处理输出: 根据您的需求,您可以直接使用生成的文本,或者将其渲染为 HTML 等格式进行展示。

GOT-OCR 2.0 的强大功能和易用性使其成为处理各种 OCR 任务的理想选择,尤其是在需要识别复杂文档结构和多种视觉元素时。建议参考 Hugging Face 的模型文档和示例代码,以获取更详细的使用说明和高级功能的应用方法。

相关导航