Что такое распознавание рукописного текста?
Распознавание рукописного текста — технология, которая превращает изображение написанного от руки текста в машиночитаемые символы, учитывая индивидуальные особенности почерка. В отличие от печатного текста с фиксированной формой букв, рукопись у каждого человека выглядит по-своему, поэтому задача требует отдельных моделей и обучающих данных, а не просто настройки классического OCR.
Специализированное направление технологий для этой задачи называют HTR (Handwritten Text Recognition) — распознавание рукописного текста. Оно охватывает как отдельные рукописные пометки в печатных документах (подписи, исправления, комментарии на полях), так и сплошной рукописный текст — исторические архивы, письма, заполненные от руки анкеты и бланки.
Спрос на технологию растёт вместе с объёмом задач по оцифровке архивов, обработке заполненных вручную форм и извлечению данных из рукописных медицинских записей — везде, где печатный OCR даёт заметно худший результат просто потому, что текст на входе не печатный.
Отдельно выделяют задачу распознавания смешанных документов, где печатный бланк дополнен рукописными пометками, — например, заполненная от руки анкета на типографском бланке. Здесь система должна сначала определить, какая часть страницы напечатана, а какая написана от руки, и обработать эти зоны разными моделями.
Почему рукописный текст сложнее распознавать, чем печатный?
Рукописный текст сложнее печатного, потому что форма букв у каждого человека индивидуальна и непостоянна даже в границах одного документа: наклон, размер, соединение букв в слове меняются от строки к строке. Печатный шрифт всегда одинаков и предсказуем, а почерк — нет, поэтому модель не может просто выучить фиксированный набор эталонных форм символов, как в классическом OCR.
Добавляют сложности слитное написание букв в слове (в отличие от чётко разделённых печатных символов), сокращения и индивидуальные росчерки, а также состояние оригинала: выцветшие чернила, помарки, неровная бумага архивных документов. Даже человеку иногда трудно разобрать чужой почерк — а модели нужно учиться делать это по тысячам разных вариантов написания одной и той же буквы.
Ещё один фактор — контекст: там, где печатный OCR может опираться на строго определённую форму символа, распознавание рукописи часто требует анализа слова или строки целиком, потому что отдельная буква вне контекста соседних символов бывает попросту неразличима.
Свой вклад вносит и инструмент письма: рукопись шариковой ручкой, карандашом или перьевой ручкой выглядит по-разному даже у одного автора, а качество бумаги и её возраст влияют на контраст между чернилами и фоном. Все эти факторы модель должна учитывать одновременно, а не по отдельности.
Чем HTR отличается от OCR?
OCR изначально проектировали для печатного текста с фиксированной формой символов, а HTR (Handwritten Text Recognition) — специализированное направление именно для рукописи, которое учитывает вариативность почерка и слитное написание букв. Современные нейросетевые системы часто объединяют оба направления в одной модели, но обучающие данные и точность распознавания для печатного и рукописного текста всё равно заметно различаются.
На практике границу между терминами часто стирают: разработчики называют такую комбинированную систему просто «OCR», хотя внутри она задействует разные модели или разные режимы работы для печатного и рукописного текста. Различие становится важным именно тогда, когда нужно выбрать или обучить модель под конкретную задачу — распознавание почерка требует отдельного набора обучающих примеров, которого нет в стандартном датасете печатных документов.
Точность HTR на сопоставимых по качеству исходниках почти всегда ниже, чем точность OCR на печатном тексте — это нормально для задачи такого уровня сложности, а не признак низкого качества конкретной модели.
Разница между HTR и OCR особенно заметна в требованиях к обучающей выборке: для OCR достаточно относительно небольшого набора образцов шрифта, а для HTR нужны тысячи размеченных строк рукописного текста, чтобы модель увидела достаточно вариантов написания одних и тех же букв у разных людей.
Как обучают модели распознавания рукописного текста?
Модели HTR обучают на больших массивах размеченных изображений рукописного текста: для каждой строки или слова указана точная транскрипция — какой текст на самом деле написан от руки на этом участке изображения. Чем разнообразнее датасет по почеркам, авторам, инструментам письма и качеству оригинала, тем увереннее модель распознаёт новый, ранее не встречавшийся почерк.
Разметка для HTR сложнее, чем для печатного OCR: разметчику нужно не только выделить границы строки или слова, но и верно расшифровать сам почерк — а неразборчивый рукописный текст иногда требует привлечения нескольких аннотаторов и сверки результата, прежде чем транскрипция попадёт в обучающую выборку.
Обучающая выборка обычно собирается из смеси источников: заполненных вручную бланков и форм под конкретную задачу, архивных документов и специально организованного сбора образцов почерка у разных людей — так модель видит достаточно вариативности, чтобы не переобучиться на почерк узкой группы авторов.
Качество итоговой модели проверяют на отложенной выборке почерков, которые не участвовали в обучении, — так видно, насколько хорошо модель обобщает опыт на новых авторов, а не просто запомнила конкретные образцы из тренировочного набора. Это особенно важно для задач, где почерк заранее неизвестен, например при обработке входящей корреспонденции.
В чём специфика распознавания русской рукописи?
Русская рукопись добавляет отдельный слой сложности: кириллические буквы менее стандартизированы в школьном письме, чем латиница, скорописное написание сильнее меняет форму букв, а некоторые буквы («ш» и «щ», «и» и «ц») отличаются друг от друга только небольшой деталью, которую легко потерять при быстром письме. Для модели русской рукописи нужен датасет, собранный именно на кириллических образцах, а не адаптация английской модели.
Дополнительная сложность — архивные документы дореформенной орфографии с буквами, которых нет в современном алфавите («ѣ», «і», твёрдый знак на конце слов), и разные почерковые традиции разных эпох: канцелярское письмо XIX века выглядит совсем не так, как современный почерк студента, заполняющего анкету.
Из-за такой специфики обучающие датасеты для распознавания русской рукописи нужно собирать и размечать отдельно — под конкретный тип задачи, эпоху документа и круг авторов, а не рассчитывать на то, что модель, обученная на английской или европейской рукописи, перенесётся на кириллицу без потери точности.
Практическая задача часто требует не распознать рукопись в вакууме, а извлечь конкретные поля — фамилию, дату, сумму — из заполненного вручную документа на русском языке. Для такой задачи датасет размечают не только транскрипцией текста, но и привязкой каждой рукописной записи к нужному полю формы.