/ Модель

Характеристики

Контекст
128 000 токенов
Параметры
3,1 млрд
Размер весов
7,5 ГБ
Лицензия
CC BY-NC 4.0
Архитектура
qwen2_5_vl · dense
Базовая модель
Qwen2.5-VL-3B-Instruct
Библиотека
transformers
Опубликована
22 янв 2026

GutenOCR-3B

Изображение и текст → текст9 профессий

GutenOCR-3B распознаёт текст в документах по изображению, сохраняет структуру страницы и находит указанные фрагменты с координатами.

336скачиваний за 30 дней27лайковвеса обновлены10 мар 2026

Бенчмарки

Как модель справилась с задачами пользователей ailist и что о ней публикуют открытые лидерборды

Тесты пользователейпока нет

Никто ещё не опубликовал тест этой модели. Соберите бенчмарк из своих задач — результат появится здесь.

  1. Добавьте модель в бенчмарк

    Вместе с другими моделями категории «Изображение → текст» — сравнение идёт внутри одной категории.

  2. Опишите свои задачи

    Напишите запросы, при необходимости приложите файлы и эталонные ответы.

  3. Запустите и опубликуйте

    Модели ответят на каждую задачу, судья оценит ответы. Опубликованный результат появится на этой странице.

Публичные оценки

Из открытых лидербордов. Сравнивайте результаты одного теста при одинаковых условиях — отсутствие оценки не значит, что модель хуже.

В подключённых источниках результатов для этой модели пока нет.

Что умеет модель

Описание составлено по карточке модели и метаданным Hugging Face

GutenOCR-3B — мультимодальная модель распознавания и локализации текста в документах, созданная дообучением Qwen2.5-VL-3B-Instruct. Модель на 3,1 млрд параметров использует архитектуру Qwen2.5-VL и принимает изображения с текстовыми запросами; поддерживает контекст длиной до 128 000 токенов.

Модель предназначена для чтения целых страниц с сохранением структуры, распознавания текста в заданной области и поиска слов или строк с выдачей координат ограничивающих рамок. Она также обнаруживает области с текстом, включая строки, абзацы и математические выражения. Ответы могут быть представлены обычным текстом, Markdown или структурированным JSON; интерфейс управляется шаблонами запросов.

Модель обучалась на деловых документах, научных статьях и синтетических данных для локализации. По описанию авторов, на отложенных тестах она улучшает распознавание текста на уровне областей и строк, а также полноту обнаружения текста по сравнению с базовой моделью. Карточка приводит английский как язык модели. Лицензия CC BY-NC 4.0 разрешает использование с указанием авторства, но запрещает коммерческое использование.

Сценарии применения

  • извлечение текста со страниц документов с сохранением строк и структуры
  • распознавание текста внутри заданной области изображения
  • поиск слова или фразы в документе с возвратом координат
  • обнаружение текстовых областей, строк, абзацев и математических выражений
  • преобразование содержимого документа в структурированный JSON

Ограничения

Для управления форматами ответа и координатами модель полагается на шаблоны запросов, автоматически добавляемые chat template. Лицензия CC BY-NC 4.0 запрещает коммерческое использование.

Для каких профессий подходит9

Разделы каталога профессий, в задачах которых используется эта модель

Все профессии

Также подходит для

Карточка модели

README от автора на Hugging Face, как он его опубликовал

Открыть на Hugging Face

GutenOCR-3B

GutenOCR-3B is a grounded OCR front-end obtained by fine-tuning Qwen2.5-VL-3B. The resulting single-checkpoint vision-language model exposes reading, detection, and grounding through a unified, prompt-based interface.

Paper | GitHub | Demo

Overview

Trained on business documents, scientific articles, and synthetic grounding data, the model supports full-page and localized reading with line- and paragraph-level bounding boxes and conditional "where is x?" queries. On held-out benchmarks, GutenOCR demonstrates substantial improvements in region- and line-level OCR as well as text-detection recall compared to its base model.

Key capabilities:

  • Full Text Reading: Transcribe documents with layout preservation.
  • Grounded Detection: Locate specific words or lines (returning bounding boxes).
  • Localized Reading: Read text within a specific user-provided bounding box.

Quick Start (Transformers)

import torch
from transformers import Qwen2_5_VLForConditionalGeneration, AutoProcessor
from qwen_vl_utils import process_vision_info
from PIL import Image

# 1. Load model and processor
model_id = "rootsautomation/GutenOCR-3B"
model = Qwen2_5_VLForConditionalGeneration.from_pretrained(
    model_id, 
    torch_dtype=torch.bfloat16, 
    device_map="auto"
)
processor = AutoProcessor.from_pretrained(model_id)

# 2. Prepare inputs
image = Image.open("document.png")

# Example: Read all text
prompt = "Read all text in {image} and return a single TEXT string, linearized left-to-right/top-to-bottom."

messages = [
    {
        "role": "user",
        "content": [
            {"type": "image", "image": image},
            {"type": "text", "text": prompt},
        ],
    }
]

# 3. Process and Generate
text = processor.apply_chat_template(
    messages, tokenize=False, add_generation_prompt=True
)
image_inputs, video_inputs = process_vision_info(messages)
inputs = processor(
    text=[text],
    images=image_inputs,
    videos=video_inputs,
    padding=True,
    return_tensors="pt",
)
inputs = inputs.to("cuda")

generated_ids = model.generate(**inputs, max_new_tokens=4096)
generated_ids_trimmed = [
    out_ids[len(in_ids) :] for in_ids, out_ids in zip(inputs.input_ids, generated_ids)
]
output_text = processor.batch_decode(
    generated_ids_trimmed, skip_special_tokens=True, clean_up_tokenization_spaces=False
)

print(output_text[0])

Task Gallery & Examples

GutenOCR is steered by specific prompt templates. Below are the supported tasks and how to invoke them.

Full OCR Reading

Extract text from the entire page. Outputs can be plain text, markdown-formatted, or structured JSON.

Prompt Example:

Return a layout-sensitive TEXT2D representation of the image.

Example Output:

This is the text found in the document.
It preserves line breaks.

Text Detection

Locate regions of text (lines, paragraphs, math) without transcribing them. Returns JSON bounding boxes.

Prompt Example:

Highlight all math in the image by returning their bounding boxes as a JSON array.

Example Output:

[
  [100, 200, 400, 250],
  [500, 600, 800, 650]
]

Localized Reading

Read the text contained strictly within a specific bounding box provided in the prompt.

Prompt Example:

What does it say in [100, 200, 500, 600] of the image?

Example Output:

Content of the specific box.

Conditional Detection (Search)

Find the bounding box locations of a specific query string within the image.

Prompt Example:

Ground "Invoice #12345" in the image.

Example Output:

[
  [100, 200, 400, 250],
  [500, 600, 800, 650]
]

System Prompt

This model relies on a specific system prompt to enforce output formats (JSON, bounding box normalization, etc.). This prompt is automatically injected by the chat template, so you generally do not need to set it manually.

Your task is to read and localize text data from documents and images.

GEOMETRY:
    - Coordinates: integer pixels; origin (0,0) top-left; [x1,y1,x2,y2] with x1<x2, y1<y2.
    - Clip all boxes to the image bounds; drop boxes with zero/negative area.
    - Reading order: read text in natural reading order: top-to-bottom, left-to-right.
    - Rotated/angled text: return the axis-aligned bounding box of the minimal enclosing rectangle (no rotated boxes).

TASK TYPES:
    - reading: a full-text reading task on the entire image.
    - localized_reading: read text within a specified bounding box in the image.
    - detection: detect text regions in the image without transcription.
    - conditional_detection: detect text regions in the image based on a provided text query.

OUTPUT TYPES:
    - TEXT: one plain string; collapse multiple spaces to one; preserve line breaks. Non-grounded output only.
    - TEXT2D: one plain string; preserve whitespace as layout cue (spaces + `\n` only; no coordinates). Non-grounded output only.
    - LINES: JSON array of objects, corresponding to line-by-line OCR: `{"text": string, "bbox": [x1,y1,x2,y2]}`. When locally reading, only return the text: `string`.
    - WORDS: JSON array of objects, corresponding to word-by-word OCR: `{"text": string, "bbox": [x1,y1,x2,y2]}`.
    - PARAGRAPHS: JSON array of objects, corresponding to paragraph-wise OCR: `{"text": string, "bbox": [x1,y1,x2,y2]}`. When locally reading, only return the text: `string`.
    - LATEX: JSON array of objects, corresponding to LaTeX expressions: `{"text": string, "bbox": [x1,y1,x2,y2]}`. When locally reading, only return the latex: `string`.
    - BOX: JSON array of bounding boxes only: `[ [x1,y1,x2,y2], ... ]`. For detection and conditional_detection tasks only.

OUTPUT FORMAT
    - For non-grounded outputs, return a string: 

        ```text
        Recognized text goes here.
        ```

        ```text2d
            ABSTRACT
        
        Recognition of text in a 2D layout.
        ```

        If the output is empty, return an empty string:
        
        ```text
        ```

        ```text2d
        ```

    - For grounded outputs, return a JSON array of objects when performing reading tasks.
      Each object is expected to have two keys: "text" and "bbox". 
      The "text" key is the what and the "bbox" key is the where.

        ```json
        [
            {"text": "First line of text", "bbox": [100, 200, 400, 250]},
            {"text": "Second line of text", "bbox": [100, 500, 400, 600]}
        ]
        ```

        ```json
        [
            {"text": "\\frac{a}{b}", "bbox": [525, 558, 755, 620]}
        ]
        ```

        If the output is empty, return an empty JSON array:

        ```json
        []
        ```
    - For detection tasks, return a JSON array of bounding boxes only.

        ```json
        [
            [100, 200, 400, 250],
            [100, 500, 400, 600]
        ]
        ``` 
    - For localized reading tasks, return the recognized text within the specified bounding box.

        ```text
        Recognized text within the bounding box.
        ```

        If no text is recognized within the bounding box, return an empty string:

        ```text
        ```

Citation

If you use this model in your research, please cite our paper:

@misc{heidenreich2026gutenocrgroundedvisionlanguagefrontend,
      title={GutenOCR: A Grounded Vision-Language Front-End for Documents}, 
      author={Hunter Heidenreich and Ben Elliott and Olivia Dinica and Yosheb Getachew},
      year={2026},
      eprint={2601.14490},
      archivePrefix={arXiv},
      primaryClass={cs.CV},
      url={https://arxiv.org/abs/2601.14490}, 
}

Как запустить

На своей GPU в ailist. Цена — по текущим предложениям провайдеров

GPU в ailist

Универсальный рантайм · transformers

Можно запустить

Подбираем GPU…

Класс архитектуры
Qwen2_5_VLForConditionalGeneration
Ревизия весов
fd16c80

0 моделей