
Проект реализуется командой: Константин Кожин — руководитель проекта; Павел Шерстнев — ML-инженер; Антон Михалев — ML-инженер; Анна Пятаева — научный руководитель проекта; Владислава Жуковская — специалист по разметке данных; Алина Нуриманова — специалист по разметке данных. Работа ведётся при поддержке гранта (Фонд содействия инновациям, конкурс «Код-ИИ», VII очередь, декабрь 2024 – декабрь 2025).
Manuscript OCR — это open-source проект, опубликованный на GitHub и GitVerse.
Примечание: библиотека находится в активной разработке. На момент публикации представлена промежуточная версия Manuscript OCR, над которой мы продолжаем эксперименты и тестирование. Финальные результаты и обновлённые модели планируем выложить к декабрю 2025 года.
Старина и нейросети: зачем мы учим ИИ читать рукописи
Представьте: перед вами пожелтевший лист рукописи XIX века. Строчки выведены красивым витиеватым почерком — но понять, что там написано, почти невозможно. Непривычные буквы, дореволюционная орфография, странные сокращения. И всё это — на фоне пятен, потёртостей и разрывов бумаги.

Если попробовать распознать такой текст с помощью обычной OCR-системы (например, Tesseract или EasyOCR), результат будет... грустным. Вместо связного текста — каша из символов. Почему? Проблема в самом материале:
дореформенная кириллица содержит символы, которых больше нет в языке (ѣ, і, ѳ и др.);
тексты написаны от руки — и каждый почерк по-своему «уникален»;
сами страницы повреждены, выцветшие, кривые и с тенями от переплёта.
Современные OCR-инструменты на таких документах распознают в лучшем случае 30–40% символов. А бывает, и вовсе не могут ничего прочитать. Потому что они просто не обучены на таком материале.
Что мы решили сделать
Мы создали бесплатную и открытую OCR-библиотеку, специально обученную распознавать рукописные документы дореформенной России. Проект уже включает в с��бя:
поддержку дореволюционной орфографии, включая редкие символы и титла (надстрочные сокращения);
устойчивую работу с низким качеством сканов — со сгибами, пятнами, потёртостями и другими архивными артефактами;
возможность дообучения модели под конкретные почерки и фонды.
Мы называем это «цифровым ключом» — инструментом, который открывает доступ к историческим документам, до сих пор остававшимся неприступными для машин.
400 тысяч слов вручную — и всё ради науки
Идея была простой: чтобы нейросеть научилась читать старинные рукописи, ей нужны примеры. Много примеров. А вот с этим и была главная трудность.
Мы начали с архивных сканов из волонтёрского проекта FromThePage, где энтузиасты вручную расшифровывали документы XIX века. Это большая и ценная работа, и мы с благодарностью ссылаемся на неё как на источник. Однако для обучения нейросети таких данных оказалось недостаточно: нужны были точные координаты каждого слова на изображении — а такая разметка в проекте не велась.
Поэтому мы использовали именно сканы, а всю разметку — расшифровки и координаты — создали самостоятельно.
Чтобы ускорить этот процесс, мы разработали собственный инструмент — Anno OCR. Это локальный и бесплатный редактор разметки, который легко адаптировать под конкретные задачи. С ним можно быстро отрисовывать bounding box-ы, вводить текст, перемещаться по страницам и экспортировать всё в формат для обучения.

Так мы разметили около 400 тысяч слов. Основа корпуса — Отчёты губернаторов Енисейской губернии за конец XIX века. Эти рукописи отражают жизнь региона: от золотых приисков до судопроизводства. И для модели они оказались настоящим вызовом. Что делает эти документы особенно сложными:
Формальный канцелярский стиль с длинными фразами и устаревшими оборотами;
Дореформенная орфография: символы вроде ѣ, і, ѳ, надстрочные титла, редкие знаки;
Неоднородный почерк: на одной странице может быть сразу несколько стилей письма;
Повреждения: пятна от чернил, выцветшие участки, складки, заломы;
Скан-артефакты: кривые строки, тени от переплёта, смазанные чернила, обрезанные края.
Даже с таким объёмом данных модель всё ещё с трудом распознавала редкие символы и нестандартные формы. Мы поняли: без синтетики не обойтись.
Когда буквы рисует нейросеть: зачем мы придумали свои слова
Когда исторических сканов мало, а редкие символы вроде «ѳ» встречаются раз в сто лет — пора создавать свои. Мы подошли к этому как к генеративной задаче: нужно научить нейросеть рисовать фразы в дореволюционном стиле, будто их писал архивный клерк из 1860-х.
Мы применили два подхода: ScrabbleGAN и StackMix.
ScrabbleGAN: как будто написал человек
ScrabbleGAN собирает слово из отдельных глифов — картинок букв. Он варьирует шрифт, искажения, толщину, шум. Мы дообучили его на рукописях с дореформенной кириллицей, добавили исторические артефакты — и он начал выдавать удивительно убедительные строчки.
Плюс в том, что можно генерировать любые слова и подгонять частоту нужных символов. Именно так мы «накормили» модель сотнями примеров ѣ и нестандартных титл — вместо редких случайностей в оригинальных данных.
Что приятно удивило: некоторые сгенерированные слова начали выглядеть «уставшими» — будто их действительно писал человек.
StackMix: собрать слово из обломков
А это — совсем другой путь. StackMix берёт реальные слова, режет их на буквы, мешае��, вставляет фрагменты страниц и случайные дефекты. Он не придумывает буквы, а как бы «лепит» новые слова из старых — идеально для симуляции архивного хаоса. Особенно выручал при тренировке устойчивости модели к потёртостям и теням.
Что нас особенно порадовало: строки, собранные StackMix, выглядели так, будто их вырезали из настоящих ветхих отчётов и склеили заново. Получился такой цифровой «документ из лоскутков» — и именно такой шумный хаос помог модели лучше понимать реальную архивную грязь.
Почему синтетика сработала
Такие данные помогли модели наконец «понять» редкие символы, улучшили устойчивость к артефактам и дали нам возможность сбалансировать корпус. Вместе с ручной разметкой это стало прочной основой для следующего этапа — обучения нейросетей.
Под капотом Manuscript OCR: как работает наша библиотека
Как научить ИИ читать дореформенные рукописи? Мы выстроили для этого целую цепочку из модулей — от поиска слов на странице до финального текста. Назовём это не просто архитектурой, а мозговым пайплайном библиотеки.
Далее — краткий обзор ключевых компонентов. Если вам интересно подробнее — мы описали техническую сторону проекта в научной статье.
Шаг 1: Найти текст на странице
Сначала нужно определить, где именно на изображении находятся слова. Это задача детекции.
Мы реализовали собственную версию алгоритма на основе архитектуры EAST — одной из самых быстрых и надёжных для сегментации текста. Модель была адаптирована под особенности архивных сканов: добавили учёт складок, теней, потёртостей, обучили на собственных разметках. В итоге детектор стабильно работает даже на сложных фрагментах с дореволюционным почерком.
Шаг 2: Распознать, что написано
Когда найдены bounding box-ы слов, на сцену выходит блок распознавания. Мы построили пайплайн на основе TPS-ResNet-BiLSTM-Attention — но реализовали его полностью вручную и под свои задачи. Здесь модель выравнивает слова, считывает их «слева направо», понимает, где заканчивается ѣ и начинается і, и выдаёт итоговый текст. Это — сердце системы.
Шаг 3: Сделать текст читаемым
Следующий этап (находится в разработке) — постобработка текста. Мы строим корректирующую языковую модель, натренированную на дореформенной кириллице. Она поможет исправлять ошибки и делать текст ближе к оригинальному написанию, с сохранением старой орфографии. То есть, если модель случайно распознала "и" вместо "і" — корректор подскажет, что это не тот случай.
Всё это объединено в модульный пайплайн, где каждый блок можно использовать отдельно. Хотите встроить только распознаватель в архивный сайт — можно. Хотите обучить свою модель — пожалуйста, весь код открыт. Библиотека легко подключается к другим системам.
Что пошло не так — и как мы с этим справились
Вот несколько подводных камней, с которыми мы столкнулись (и обошли):
Внутри одного документа — разная орфография. Авторы XIX века не особо любили стандарты. Это сильно мешало модели, но помог гибкий препроцессинг.
Архитектуры OCR не работают “как есть”. Пришлось переписывать всё вручную, чтобы учесть специфику дореформы.
Нехватка данных. Выход — в собственном корпусе и генерации рукописной синтетики (ScrabbleGAN и StackMix).
Сбор и разметка. 400 тысяч слов руками, в своем инструменте — Anno OCR (репозиторий в статье выше). Заняло сотни часов.
Финальный шаг — и новый этап: цифровой ключ в действии
Manuscript OCR — это открытая библиотека для распознавания рукописей с дореформенной кириллицей. Мы обучили её на собственных данных, адаптировали под архивные реалии и выложили с открытым кодом и документацией. Сейчас библиотека уже используется:
для распознавания архивных документов и создания цифровых коллекций;
в образовательных проектах по истории, лингвистике и цифровым гуманитарным наукам;
в научных исследованиях, связанных с историей дореволюционной России.
Проект начался как студенческая инициатива, а сегодня стал частью диссертационной работы и серьёзной исследовательской практики. Мы продолжаем развивать систему: расширяем поддержку новых источников, улучшаем архитектуры, исследуем возможности VLM и языковых моделей для корректировки и генерации дореформенных текстов.
Библиотека создана с одной целью — сделать исторические рукописи доступными для людей и машин. Теперь у исследователей, архивистов и преподавателей появился удобный цифровой инструмент, который помогает «расслышать» документы, молчавшие десятилетиями.
Manuscript OCR — это open-source проект, опубликованный на GitHub и GitVerse.
Примечание: библиотека находится в активной разработке. На момент публикации представлена промежуточная версия Manuscript OCR, над которой мы продолжаем эксперименты и тестирование. Финальные результаты и обновлённые модели планируем выложить к декабрю 2025 года.
