
Проект реализуется командой: Константин Кожин — руководитель проекта; Павел Шерстнев — 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 года.
