/ Модель

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

Контекст
512 токенов
Лицензия
Apache 2.0
Архитектура
vision-encoder-decoder · dense
Базовая модель
trocr-large-uk-handwritten
Библиотека
transformers
Опубликована
30 июн 2026

trocr-large-rukopys

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

Модель TrOCR-Large распознаёт украинский текст на изображениях строк и областей архивных документов, включая рукописные фрагменты.

22скачиваний за 30 дней1лайквеса обновлены30 июл 2026

Бенчмарки

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Hukyl/trocr-large-rukopys — модель распознавания текста на изображениях строк и областей рукописных украинских архивных документов. Её разработчик дообучил архитектуру TrOCR-Large в формате VisionEncoderDecoderModel, содержащую около 558 млн параметров, на размеченных данных Rukopys. Модель принимает обрезанные изображения отдельных текстовых областей; для работы с полной страницей перед ней нужен детектор макета документа. Токенизатор использует расширенный кириллический словарь.

Модель обучена распознавать разные типы областей Rukopys: рукописный и печатный текст, аннотации и таблицы; обучение включало аугментации, имитирующие вариации бумаги, сканирования и почерка. Указанные метрики получены на родственной модели с тем же рецептом обучения, а не на этом чекпойнте: его собственная валидационная выборка была слишком мала для надёжной оценки. Результаты для печатного текста, таблиц и аннотаций особенно ненадёжны из-за небольшого числа примеров.

Модель предназначена для украинских архивных документов; качество может снижаться на других языках, письменностях и современных цифровых текстах. Выход нормализуется под метрики распознавания и может не быть точной дипломатической транскрипцией. Лицензия репозитория — Apache-2.0.

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

  • распознавание рукописных строк в украинских архивных документах
  • извлечение текста из обрезанных областей страниц после детектора макета
  • распознавание украинских архивных аннотаций
  • чтение печатных фрагментов в документах Rukopys
  • экспериментальное распознавание текста в таблицах архивных документов

Ограничения

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

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

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

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

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

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

Открыть на Hugging Face

trocr-large-rukopys

A TrOCR-Large (VisionEncoderDecoderModel, ~558M params) line recognizer for handwritten Ukrainian document text, fine-tuned on the Rukopys dataset.

The training data included handwritten, printed, annotation and table region crops from Rukopys.

TL;DR

value
ArchitectureTrOCR-Large (ViT-L/16 encoder @ 384px + TrOCR decoder), VisionEncoderDecoderModel
Parameters~558M
Init fromHukyl/trocr-large-uk-handwritten (broad mixed pretrain)
Tokenizerextended Cyrillic vocab, size 50336 (ships with this repo)
Handleshandwritten, printed, table, annotation
Trained onnearly all the gold data + weight EMA
Representative gold-val CER / WER0.1072 / 0.2943
Inputa single cropped text region/line (RGB)
Outputthe transcribed string (metric-normalized character set)

Intended use

Recognizing cropped line/region images from handwritten Ukrainian documents, downstream of a layout detector. This recognizer was tuned for robustness across all text region classes.

For better handwritten class CER (~0.075), see sibling model Hukyl/trocr-large-rukopys-hw.

How to use

Note: load the processor from this repo, not from microsoft/trocr-large-handwritten — the tokenizer here is an extended Cyrillic vocabulary (50336 vs stock 50265).

from PIL import Image
from transformers import VisionEncoderDecoderModel, TrOCRProcessor

repo = "Hukyl/trocr-large-rukopys"
processor = TrOCRProcessor.from_pretrained(repo)          # load from THIS repo
model = VisionEncoderDecoderModel.from_pretrained(repo).eval()

crop = Image.open("region_crop.png").convert("RGB")        # one detected line/region
pixel_values = processor(images=crop, return_tensors="pt").pixel_values
generated = model.generate(pixel_values, max_new_tokens=256, num_beams=1)  # greedy
text = processor.batch_decode(generated, skip_special_tokens=True)[0]
print(text)

Lineage & training curriculum

Rukopys gold-only fine-tuning directly from broad pretrain, with no silver/pseudo-labels. Full fine-tune, optimizer: AdamW via the 🤗 Seq2SeqTrainer, cosine LR decay, max_target_length 256, online augmentation, seed 42, single L40S.

  1. Base — Kansallisarkisto/cyrillic-htr-model (Apache-2.0): microsoft/trocr-large-handwritten fine-tuned on ~30k historical Cyrillic rows by the Finnish National Archives; extended tokenizer (vocab 50336).
  2. Mixed pretrain — Hukyl/trocr-large-uk-handwritten (6 ep, LR 4e-5): UkrHandwritten ×3 + Cyrillic Handwriting + part of pumb-ai/synthetic-cyrillic-large. The general Ukrainian/Cyrillic handwriting reader.
  3. Rukopys gold fine-tune (22 ep, LR 2e-5, warmup 0.05, weight decay 0.01 + weight EMA): the human-labeled gold training data, with page-level validation split. Note: to incorporate as much of the Rukopys gold split as possible, this checkpoint had a near-zero validation set (~5 pages): 22,330 train / 105 val crops. The published weights are the EMA average of the training tail.

Weight EMA (why the published weights are an average)

At first, an original model with proper validation split (20%) was tested on Rukopys. After ablation on the held out test set (measured by Kaggle leaderboard), smaller validation splits produced better tests results. Therefore, to incorporate the gold-split data into training, we used the best-CER epoch from previous training, and added 2 more epochs (20 -> 22) to accommodate for more training data. The achieved EMA near-zero val model produced best results on the test split.

Hyperparameters (as launched)

hyperparametervalue
epochs22 (= N+2, N=20)
batch size28
learning rate2e-5
warmup ratio0.05
weight decay0.01
weight EMAdecay 0.9995, start at 50% of training
max target length256 tokens
optimizer / scheduleAdamW, cosine decay
online augmentationon (per-region profile)
evalgreedy (num_beams=1)
precision / devicebf16, CUDA (single L40S)
seed42

Fine-tune ran 17,556 steps in ~2.5h.

Online data augmentation

Online augmentation was applied during training. Only training crops were augmented (no augmented validation was measured).

Each crop was transformed once per epoch by one geometric + one or two photometric operations at random. Each class received a separate augmentation profile that was selected to minimize the distribution shift.

region typegeometric (one)photometric (one or two)
handwritten, annotationmargin pad 2–15% / trim 1–5%, rotation ±1–5°, elastic distortion (α=25, σ=5), baseline warp (amp 2–8 px, freq 0.5–2.0)paper-colour shift (LAB a±10 / b±15), Gaussian noise (σ 5–15), JPEG recompression (q 30–65), contrast/gamma (0.7–1.3 / 0.6–1.5), morphological erode/dilate (kernel 2)
printed, tablemargin pad 2–15% / trim 1–5%, rotation ±1–3°paper-colour shift (a±5 / b±10), Gaussian noise (σ 3–10), JPEG recompression (q 40–70), contrast/gamma (0.8–1.2 / 0.8–1.3), morphological erode/dilate (kernel 2)

These simulate scanner/paper variation, ink thinning/bleed, and natural handwriting deformation, widening the range of appearances beyond the raw training crops.

Results

Protocol: greedy decode, max_new_tokens=512, page-level gold validation split, 1000-sample draw, seed 42. Labels are metric-normalized (LaTeX → Unicode, table PSV canonicalized) so CER/WER reflect the scored character set.

Why the numbers come from a sibling

Since this checkpoint included almost all of the gold split, measuring CER on the tiny val split would result in meaningless metrics. Instead, we report CER on the model that used a 20% validation split, i.e. 185 pages. We suspect that this model is strictly equal or better than the reported numbers.

metrictraining-time beststandalone predictor eval (n=1,000)
CER0.10580.1072
WER0.30010.2943
exact-match accuracy—0.3780

Per class

classCERWERaccuracyn
handwritten0.09750.28640.3721954
annotation0.19200.35140.666727
printed0.19290.43510.312516
table0.77641.00000.00003

We also acknowledge that printed/table/annotation n is quite small, so measuring CER against them is quite noisy.

Limitations & biases

  • Handwritten Ukrainian archival document material only; expect degradation on other scripts, languages, or modern born-digital text.
  • The character set and normalization are tuned to the document-OCR metric — outputs are normalized text, not faithful transcription.
  • table is weak and annotation/printed are high-variance (small n).
  • Headline metrics are from a same-recipe sibling, not this exact checkpoint (its own holdout is too small to score); EMA weights are an average, not a single training step.
  • Single seed and validation split — no across-run variance estimate.

Training data & attribution

datasetsourcelicenserole
RukopysUkrainianCatholicUniversity/rukopysCC BY 4.0gold fine-tune
UkrHandwrittenKaggle annyhnatiuk/ukrainian-handwritten-textCC BY-SA 4.0pretrain (lineage)
Cyrillic Handwriting DatasetKaggle constantinwerner/cyrillic-handwriting-datasetCC0pretrain (lineage)
pumb-ai/synthetic-cyrillic-largeHFApache-2.0pretrain (lineage)

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

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

GPU в ailist

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

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

Подбираем GPU…

Класс архитектуры
VisionEncoderDecoderModel
Ревизия весов
9218fa8

0 моделей