> ## Content Index
> Fetch the complete content index at: https://www.hubwiz.com/blog/llms.txt
> Use this file to discover other available public pages before exploring further.

# GOT-OCR-2.0 通用字符识别
- URL: https://www.hubwiz.com/blog/got-ocr-2-0/
- Published: 2024-11-03T02:16:51.000Z
- Updated: 2024-11-03T03:01:53.000Z
- Description: GOT-OCR-2.0代表着 OCR 技术的重大飞跃。它拥有 5.8 亿个参数，是一个大型、统一、端到端的解决方案，旨在一个框架内处理各种 OCR 任务。
- Author: admin
- Tags: MODEL-ZOO, GOT-OCR-2.0, TRANSFORMERS, PDF2IMAGE, #Import 2026-10-14 14:41

在光学字符识别 (OCR) 领域，传统系统 (OCR-1.0) 难以满足日益增长的智能处理需求。随着输入数据的多样性和复杂性不断增加，从纯文本到更复杂的信号（如数学公式、表格甚至几何形状），显然需要一种更统一、更复杂的方法。

这就是GOT (通用 OCR 理论) 模型的用武之地。在这篇文章中，我们将探讨 OCR-2.0 背后的理论，介绍[ GOT OCR 2.0 模型](https://github.com/Ucas-HaoranWei/GOT-OCR2.0/?ref=hubwiz.com)，并引导你如何使用[我的 GitHub 存储库](https://github.com/fnando1995/ocr2.0%5FGOT.git?ref=hubwiz.com)开始使用它。

## 1、对 OCR-2.0 的需求

OCR-1.0 系统虽然仍可运行，但并非为处理现代应用程序所需的输入和输出多样性而构建。对 OCR 的期望不再局限于从扫描文档中提取文本。当今的应用程序要求 OCR 能够处理：

- 纯文本
- 数学公式
- 表格和图表
- 乐谱
- 几何形状

OCR-1.0 系统通常比较死板，只能很好地处理特定任务。向 OCR-2.0 的演进代表着一种范式转变，即向能够处理各种光学字符的模型转变。

## 2、GOT 模型：统一的端到端解决方案

GOT （**G**eneral **O**CR **T**heory）模型代表着 OCR 技术的重大飞跃。它拥有 5.8 亿个参数，是一个大型、统一、端到端的解决方案，旨在一个框架内处理各种 OCR 任务。其一些主要功能包括：

- 高压缩编码器和长上下文解码器，可实现高效处理。
- 能够处理各种输入，例如：
- 场景图像
- 文档样式图像
- 整页和切片输入
- 支持多种格式的输出，包括纯文本、markdown、TikZ 和 SMILES。
- 交互式 OCR 功能，例如由坐标或颜色引导的区域级识别。
- 动态分辨率和多页 OCR 功能可增强可用性。

GOT 模型用途广泛，支持各种输入类型并生成结构化输出，非常适合复杂的 OCR 任务。

## 3、开始使用 GOT

为了帮助你深入了解下一代 OCR 技术，我创建了一个 [GitHub 存储库](https://github.com/fnando1995/ocr2.0%5FGOT.git?ref=hubwiz.com)，演示如何实现和测试 GOT 模型。以下是你将在存储库中找到的内容以及如何开始：

### 3.1 加载模型

可以使用 Hugging Face 的 `transformers` 包轻松导入模型，这简化了加载和与 GOT 模型交互的过程。

```
from transformers import AutoModel, AutoTokenizer

tokenizer = AutoTokenizer.from_pretrained('ucaslcl/GOT-OCR2_0', trust_remote_code=True)
model = AutoModel.from_pretrained('ucaslcl/GOT-OCR2_0', trust_remote_code=True, low_cpu_mem_usage=True, device_map='cuda', use_safetensors=True, pad_token_id=tokenizer.eos_token_id)
model = model.eval().cuda()
```

### 3.2 在数字 PDF 上测试

我在两种类型的数字 PDF 上测试了该模型。为了将 PDF 转换为图像，我使用了 PDF2Image 包：

```
# read pdf as images and save
images = convert_from_path("test_pdf_ocr/sample_file.pdf")
images_paths = []
for i in range(len(images)):
    images_paths.append(f"test_pdf_ocr/image-{i}.jpg")
    cv2.imwrite(images_paths[-1],np.array(images[i]))
```

医学示例 — 包含表格的文档，用于查看 GOT 处理结构化数据的能力。

科学论文 — 一种用于评估其如何处理文本信息的论文格式。

```
# read each image and read with ocr model
for path in images_paths:
    a = dt.now()
    res = model.chat(tokenizer, path, ocr_type='format', render=True, save_render_file = path.replace('.jpg','.html'))
    b = dt.now()
    with open(path.replace(".jpg",f"_{round((b-a).total_seconds(),2)}.txt"),"w") as f:
        f.write(res)
```

我使用开发人员提到的 ocr\_type 格式，以便在格式化文件上获得更好的结果，就像你在医学结果或论文中看到的那样。

在这次初步测试中，我专注于每份文件的第一页。结果证明了 GOT 能够处理复杂表格和连续文本。

### 3.3 输出注意事项

到目前为止，我还没有将任何 PDF 上传到存储库，但你可以按照存储库中的代码和说明轻松复制实验：

![](https://www.hubwiz.com/blog/content/images/2024/11/image-186.png)

用于测试的论文标题

![](https://www.hubwiz.com/blog/content/images/2024/11/image-187.png)

html 渲染中的 GOT 模型结果

## 4、我对 GOT 模型的印象

在测试 GOT 后，我可以自信地说，它是 OCR 任务的出色开箱即用解决方案。以下是我的想法：

- 易用性：GOT 模型非常用户友好，尤其是与 Tesseract 等其他 OCR 工具相比。只需进行最少的设置，你就可以高效运行它，这使其成为开发人员和研究人员的理想选择。
- 多功能性：该模型处理多种格式（markdown、TikZ、SMILES 等）的能力令人印象深刻。它为处理从学术论文到科学图表等不同领域的 OCR 开辟了新的可能性。
- 结果质量：在我的测试中，GOT 模型产生了更好的比传统 OCR 工具的结果更好。它在准确性方面表现出色，尤其是表格等结构化数据。
- 挑战：虽然 GOT 模型总体表现良好，但也存在一些挑战。例如，在纸质测试的脚注中，处理非常小的文本时存在轻微问题。虽然这是一个小缺点，但我相信随着更多改进，该模型会随着时间的推移而改进。

## 5、结束语

GOT 模型标志着 OCR 技术向前迈出了重要一步。凭借其统一的端到端设计，它能够处理现代 OCR 任务复杂多样的需求。无论你处理的是纯文本、数学公式还是更复杂的图形数据，GOT 模型都能满足你的需求。

我相信这个模型将成为我未来所有 OCR 项目工作流程中的关键工具。对于那些希望探索下一代 OCR 技术的人，我强烈建议你尝试一下 GOT。

---

原文链接：[Introducing GOT: The Unified Model Revolutionizing OCR-2.0](https://medium.com/@fnando1995/introducing-got-the-unified-model-revolutionizing-ocr-2-0-d734436a0859?ref=hubwiz.com)

汇智网翻译整理，转载请标明出处