Дообучение моделей OCR под специфические шрифты и языки

Сканы договоров, выписки, архивные бланки — типовые модели распознавания спотыкаются на редких шрифтах и языках. Мы дообучаем OCR-модели под ваш корпус документов и передаём готовое решение под ключ: точность на проблемных полях растёт в разы, а ручная проверка сокращается.
Часто задаваемые вопросы

Обучение OCR: сбои на редких шрифтах и языках

Штатные модели распознавания обучены на массовых корпусах: типографские гарнитуры, ровные сканы, один язык на страницу. Как только в поток попадает редкий шрифт — узкий бланковый, исторический, с нестандартными лигатурами, — уверенность по символам падает, а похожие знаки начинают схлопываться в один. Одна подмена буквы в номере счёта или фамилии ломает всё, что построено выше по процессу.

Слабое качество скана усиливает эффект: низкий контраст, шум от копира, перекос строки, залитая печатью область. Предобработка выравнивает такие листы, но не возвращает потерянные пиксели — часть символов модель просто не видит и достраивает по смыслу.

Отдельная категория — рукописный текст в документах: подписи, правки от руки, заполненные от руки поля бланка. Разброс наклона, толщины и слитности штриха в обучающих выборках почти не представлен, поэтому распознавание либо пропускает фрагмент, либо выдаёт правдоподобное, но неверное значение.

Смешанные языки в одном документе усложняют ещё больше: шапка на одном языке, реквизиты на другом, часть строк транслитом. Распознавание с фиксированным словарём вынуждено выбрать один алфавит и переписывает в него остальное. Качество извлечения полей падает сильнее, чем посимвольная точность: одной подмены в дате достаточно, чтобы документ ушёл на ручную проверку.

Разбираем, как это закрывается: где нужна собственная разметка под конкретный шрифт и язык, где — синтетические образцы бланков и рукописных вставок, а где хватает настройки постобработки и правил валидации полей.

Что даёт адаптация модели: измеримые эффекты

Базовая модель распознавания обучена на усреднённом наборе — типовые бланки, печатный шрифт, один язык. На вашем корпусе она спотыкается о то, чего в обучающих данных просто не было: узкий служебный шрифт, рукописные пометки поверх печатного текста, двуязычные формы, где реквизиты идут вперемешку.

Точность извлечения полей

Дообучение на размеченных образцах ваших документов поднимает точность по конкретным полям — номер счёта, дата, сумма прописью, код подразделения. Метрику считаем не по документу целиком, а по каждому полю отдельно: где символ путается с похожим (0/O, 1/l, 3/З), а где теряется граница блока и значение уезжает в соседнюю графу.

Сокращение ручной правки

Оператор проверяет только поля, где уверенность модели ниже заданного порога, — обычно это 5–15% документа вместо всех ста процентов. Система сама помечает сомнительные фрагменты на бланке, и ручная правка превращается в выборочный контроль: время на один документ падает в разы, а не на проценты.

Стабильность на новых типах бланков

Главный эффект — модель не разваливается, когда контрагент присылает форму нового образца. Дообучение с искажениями исходников (поворот, шум сканера, обрыв линий) делает распознавание устойчивым к смене бланка, а два-три десятка новых примеров закрывают незнакомый тип документа без пересборки всей цепочки обработки.

В итоге автоматизация ввода документов перестаёт требовать постоянного ручного сопровождения. Работает это и на открытых движках вроде Tesseract: решает не сама модель, а качество разметки корпуса и логика постобработки под структуру ваших полей.

Подходы к обучению OCR: сравнение вариантов

Базовая модель уверенно читает однотипные печатные бланки, но рассыпается там, где меняется шрифт, появляется рукописная вставка или в одном поле соседствуют два языка. Способ доводки выбирают по составу документов: сколько в потоке разных форм и насколько критична ошибка в конкретной графе.

Варианты не исключают друг друга — их сравнивают по трудозатратам на подготовку и по классу ошибок, который каждый закрывает.

Вариант Когда подходит Ограничения
Дообучение на своей разметке Узкий шрифт, нестандартная вёрстка, однотипный поток документов Нужны размеченные примеры — сотни на класс; переразметка при смене бланка
Постобработка результатов распознавания Ошибки предсказуемы: путаница похожих символов, лишние пробелы, склейка строк Правит следствие, а не причину; сложные искажения всё равно уходят на ручную проверку
Словари и правила полей Есть справочники кодов, наименований, адресов и жёсткие форматы полей Ломается на значениях вне справочника; правила приходится сопровождать
Гибридная схема Разнородный поток: печатные бланки, сканы, рукописные пометки Дольше настройка и больше компонентов, которые тестируют вместе

На практике чаще выигрывает гибрид: дообучение вытягивает распознавание символов, а словари и правила доводят поле до валидного значения — номер документа сверяется с контрольной суммой. Чистая постобработка уместна там, где поток однородный и ошибки однотипные.

Чтобы выбрать схему, разбираем ваши образцы: считаем долю полей, прочитанных неверно, и раскладываем ошибки по типам. Так видно, где хватит правил, а где нужна своя разметка.

Как проходит работа: этапы от аудита до передачи

Начинаем не с выбора модели, а с разбора того, что реально приходит на вход. Документы редко однородны: печатные бланки соседствуют с рукописными вставками, сканы различаются разрешением и наклоном, а редкая гарнитура встречается в единичных экземплярах. От этой картины зависит и схема разметки, и то, какие метрики вообще имеет смысл считать.

  1. Аудит корпуса документов. Разбираем образцы по типам, языкам, гарнитурам и качеству носителя, считаем доли страниц в каждой группе. Так видно, что редкий класс — доли процента и потребует синтетики или добора примеров.

  2. Схема разметки. Фиксируем гранулярность (строки, слова, блоки), формат аннотаций и правила для спорных мест: переносов, штампов, зачёркнутого текста. Договариваемся об этом до старта.

  3. Подготовка разметки. Часть страниц размечаем дважды и сверяем — расхождения показывают, где инструкция неоднозначна. Редкие шрифты и языки добираем синтетикой с реалистичными искажениями.

  4. Дообучение модели. Подбираем искажения и порядок подачи примеров по валидационной части корпуса. Проверочный набор при этом не трогаем — иначе метрика перестаёт что-либо значить.

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

  6. Передача модели в эксплуатацию. Отдаём веса, конфигурации, регламент повторного дообучения и метрики мониторинга, подключаем модель к учётной системе. Настраиваем порог уверенности, ниже которого фрагмент уходит оператору на проверку.

Комплект передачи: модель, разметка, документация

Комплект передачи определяет, сможете ли вы развивать решение своими силами. Модель без разметки, конфигураций и описания слабых мест — чёрный ящик: смена бланка или шрифта превращается в новый проект. Поэтому передаём не только веса, но и весь контур воспроизведения.

Комплект собирается по ходу работ, а не перед сдачей — на приёмке вы уже видели каждый артефакт в деле.

  • Состав документации на модель: карточка с областью применимости, метриками по типам документов (сканы, фото, факсы), перечнем известных классов ошибок и границ применимости.
  • Разметка и версионирование разметки: исходные изображения, аннотации, словарь символов и правило связи «ревизия разметки — версия модели», чтобы метрики сравнивались на одном и том же наборе.
  • Конфигурации обучения и распознавания: параметры предобработки, искажений, пороги уверенности — прогон воспроизводится на вашей стороне.
  • Схема интеграции с учётной системой: точки вызова, форматы обмена, поведение при недоступности сервиса, повторная обработка без дублей.
  • Регламент переобучения: триггеры (просадка точности на контрольной выборке, новый тип бланка), периодичность, кто размечает и в какие сроки.
  • Контур мониторинга: доля распознаваний с низкой уверенностью, очередь на ручную проверку, автоматическая выгрузка спорных случаев обратно в разметку.
  • Окружение и запуск: контейнеры, зависимости, инструкция по развёртыванию и обучению на вашем оборудовании.
  • Передача знаний: разборы с вашей командой и журнал решений, где зафиксировано, почему выбраны такие архитектуры и пороги.

Кейс: архив договоров на трёх языках

Заказчик принёс архив договоров за десять лет — около 400 тысяч страниц на трёх языках, больше половины в сканах с печатных бланков. Бланки набраны нестандартной гарнитурой: узкие засечки, лигатуры, сжатые цифровые поля. Готовое распознавание на таких страницах разваливалось — похожие глифы путались, реквизиты уезжали в свободный текст.

Базовая Tesseract без дообучения давала 11–16% ошибок на символ именно в полях с номером и суммой. Для юридически значимого документа это означает ручную сверку каждой страницы: доля страниц, которые оператор правил руками, держалась на 30–35%, а поток сканов рос быстрее, чем штат проверяющих.

Что изменили

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

Что стало

На контрольной выборке в 20 тысяч страниц ошибки на символ упали с 13% до 1,2–1,8% в зависимости от языка. Доля страниц, уходивших на ручную правку, сократилась с 33% до 4%, точность извлечения реквизитов — номера, даты, стороны, суммы — вышла на 97–99%. Полный проход архива занял недели вместо месяцев ручного ввода.

Отдельный результат — воспроизводимость. Добавление четвёртого языка заняло дни: менялся только набор образцов и словарь, а не вся схема распознавания. Новые гарнитуры подключаются как отдельные наборы примеров и не ломают качество на старых бланках — обучение OCR из разового проекта превращается в настраиваемый процесс.

Что делать, если модель уже работает в вашем контуре

Первым делом разложите ошибки по полкам — менять движок сразу не нужно. Соберите эталонную выборку реальных документов и посчитайте долю верных полей отдельно по шрифтам, языкам и качеству сканов: часто модель путает не текст, а табличную зону или не переносит наклон — тогда помогает предобработка, а не дообучение.

Если ошибки держатся именно на специфических шрифтах и языках, путей два: достраивать уже развёрнутую модель распознавания или ставить новую. Дообучение сохраняет текущие настройки, но требует своей разметки и упирается в архитектуру: классические движки класса Tesseract хорошо учатся на одном начертании и проседают на смешанных страницах с таблицами и вставками другого языка.

Совместимость с текущим контуром проверяют до старта работ: формат ответа и координаты блоков, кодировки, порядок чтения, поведение при сбоях и пустых ответах, справочники для валидации. Дальше ставим слой-адаптер, который приводит ответы любого движка к одному виду — тогда замена движка распознавания не превращается в переписывание интеграций.

Поэтапный переход без простоя держится на теневом режиме: новая модель идёт по тому же потоку параллельно, расхождения с эталоном разбираются, а её доля растёт от единиц процентов до полного объёма. Откат — одно переключение, старый контур остаётся рабочим.

На практике это редко «или-или»: дообучаем на своих шрифтах, добавляем словарную проверку по справочникам, а на проблемные типы ставим вторую модель. Опишите, что уже развёрнуто и где именно ошибается, — вернёмся с оценкой и планом.

Технические сомнения: разметка, языки, приватность

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

Сколько данных нужно разметить?

Объём зависит от расстояния между целевым шрифтом и базовой моделью: рукопись, типографский бланк и стандартный печатный текст требуют разного. Мы не размечаем «на глаз» — берём первую партию, замеряем посимвольную и пословную точность на отложенной выборке и наращиваем объём, пока прирост не выйдет на плато. Разметка останавливается там, где перестаёт давать качество.

Что с персональными данными в документах?

Обучение можно вести, не вынося сканы за контур заказчика: разметка и дообучение идут на выделенном сервере внутри вашей инфраструктуры, наружу передаются только параметры модели. Если страницы нужны нам, они обезличиваются — вырезаются поля с именами, номерами и адресами, а исходники удаляются после приёмки.

Как добавляется новый язык?

Новая письменность — это расширенный алфавит, словарь постобработки и отдельный набор разметки. Перенос признаков с уже обученной модели закрывает большую часть работы, поэтому добавление языка к существующей модели и запуск с нуля занимают разное время — срок называем после теста на ваших образцах.

Что с моделью после запуска?

Модель — не разовый артефакт: мы следим за долей уверенных распознаваний и долей страниц, ушедших на ручную проверку. Сомнительные страницы автоматически попадают в очередь — исправления операторов становятся разметкой для следующего дообучения. Версии модели сохраняются, поэтому откат на предыдущую остаётся доступным.

Обсудим задачу: что прислать для оценки

Чтобы вернуться с оценкой, а не с вилкой «от и до», нужны ваши документы в том виде, в котором они приходят в работу. Хватит 20–30 образцов на каждый тип — этого достаточно, чтобы увидеть разброс качества и посчитать точность на реальных данных, а не на демонстрационном наборе.

  • образцы документов в исходном качестве, обязательно с проблемными случаями: бледная печать, наклон, печати и рукописные пометки поверх текста;
  • перечень типов документов и полей: что читаем построчно, что вытаскиваем отдельным реквизитом;
  • языки и алфавиты, включая смешанные строки и транслитерацию внутри одного документа;
  • нестандартные шрифты — узкие, дореформенные, рукописные, матричные: то, на чём текущее решение спотыкается;
  • требования к точности: где ошибка недопустима, где она допустима и какая доля расхождений считается рабочей;
  • условия эксплуатации: закрытый контур или внешняя сеть, поток страниц в сутки, кто разбирает спорные случаи;
  • текущий процесс: чем распознаёте сейчас, как проверяете результат и куда уходит готовый документ.

По этим данным описываем план: на какой выборке обучаем, где хватает правил проверки, где нужна ручная разметка, — и в какие сроки выходит первый рабочий результат на ваших документах. Опишите задачу и пришлите образцы — вернёмся с оценкой, этапами и сроками.

Направления AI-разработки

Последние работы

  • Разработка сайта компании B2B ADVANCE
    Разработка сайта компании B2B ADVANCE
    1542
  • Разработка веб-приложения для компании FEEDME
    Разработка веб-приложения для компании FEEDME
    1393
  • Разработка веб-сайта для компании БЕЛФИНГРУПП
    Разработка веб-сайта для компании БЕЛФИНГРУПП
    1081
  • Разработка интернет магазина для компании FURNORO
    Разработка интернет магазина для компании FURNORO
    1368
  • Разработка логотипа компании B2B Advance
    Разработка логотипа компании B2B Advance
    815
  • Разработка веб-приложения для компании Enviok
    Разработка веб-приложения для компании Enviok
    1139