
什么是 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 具备多种创新功能,使其在处理复杂的 OCR 任务时表现出色:
- 统一的端到端处理: 采用单一模型完成从图像输入到结果输出的整个过程,无需像传统 OCR 那样进行文本检测和识别等多个独立步骤。
- 广泛的视觉语言支持: 不仅限于识别普通文本,还能处理包括表格、图表、数学公式、化学公式、几何图形和乐谱等多种视觉元素。
- 多种输入样式支持: 可以处理场景文本图像(如街景照片中的文字)和文档样式图像(如扫描的文档页面)。
- 灵活的输出格式: 支持生成纯文本、Markdown、LaTeX 等多种格式的输出,能够更好地保留原始文档的结构和格式。
- 交互式 OCR: 允许用户通过坐标或颜色指定感兴趣的区域进行 OCR,实现更精细化的识别。
- 动态分辨率和多页 OCR: 能够处理超高分辨率图像,并支持对多页文档进行 OCR 处理。
- 强大的基准测试表现: 在 TextVQA、DocVQA、ChartQA 和 OCRbench 等多个基准测试中表现出色,超越了许多其他开源和商业模型。
- 处理历史文档能力: 通过在大量文化遗产档案数据上进行训练,能够准确识别和校正来自旧的、损坏的或低质量的文档中的文本。
- 快速高效: 尽管功能强大,GOT-OCR 2.0 在处理图像时速度很快,适用于需要快速处理的应用场景。
如何使用/快速开始
要开始使用 GOT-OCR 2.0,可以按照以下步骤进行操作:
- 安装 Transformers 库: GOT-OCR 2.0 在 Hugging Face 的 Transformers 库中提供,因此首先需要安装该库:
pip install transformers
- 加载模型和处理器: 使用
AutoProcessor
和AutoModelForImageTextToText
类加载预训练模型和处理器: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")
- 准备输入图像: 您可以提供图像的 URL 或本地图像文件的路径。
- 进行推理(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)
- 进行推理(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)
- 处理输出: 根据您的需求,您可以直接使用生成的文本,或者将其渲染为 HTML 等格式进行展示。
GOT-OCR 2.0 的强大功能和易用性使其成为处理各种 OCR 任务的理想选择,尤其是在需要识别复杂文档结构和多种视觉元素时。建议参考 Hugging Face 的模型文档和示例代码,以获取更详细的使用说明和高级功能的应用方法。
本文采用 CC BY-NC 4.0 许可协议。商业转载、引用请联系本站获得授权,非商业转载、引用须注明出处。
链接:https://appmark.cn/sites/got-ocr2-0.html -APPMARK
MAmmoTH2 是一个开创性的大语言模型(LLM)项目,旨在通过创新的指令微调技术来提升模型的推理能力。MAmmoTH2 提供 7B、8B、8x7B 等模型版本。