Распознавание документов (OCR) — перевод изображения документа — скана, фотографии, кадра видеопотока — в машиночитаемый текст с координатами блоков, строк и слов. В ИИ-системах это этап подготовки данных: пока текст не распознан, невозможны ни поиск, ни индексация документов, ни извлечение полей.
Конвейер: предобработка, распознавание, постобработка
Предобработка снимает до половины потерь качества. Типовой набор: определение и выравнивание поворота на 90 или 180 градусов, устранение перекоса на несколько градусов, обрезка полей и разворотов, нормализация контраста и освещения, бинаризация, укрупнение мелкого шрифта до рабочего размера. Ошибки на этом этапе дороже всего: фото с тенями и перспективой без предобработки теряет в качестве распознавания в разы, а исправить это после символьного этапа нельзя — можно только переснять.
Распознавание — ядро конвейера. Классический движок последовательно находит текстовые блоки, строки, слова и символы, затем классифицирует изображения фрагментов. Мультимодальная модель получает страницу целиком и возвращает текст вместе со структурой: колонки, таблицы, подписи. Различие не только в точности, но и в характере ошибок — об этом ниже.
Постобработка чинит предсказуемые дефекты. Словарные поправки для естественной речи, регулярные выражения для дат, номеров и сумм, нормализация пробелов, дефисов и переносов, восстановление порядка чтения при двухколоночной вёрстке. Без постобработки даже высокий посимвольный результат содержит даты в трёх написаниях и склеенные слова, которые ломают последующий разбор полей.
Классический OCR или мультимодальная модель
Классический OCR выбирают за цену и предсказуемость. Он работает на процессорах без GPU, обрабатывает тысячи страниц в час на одном сервере, на печатном тексте с чистого скана допускает доли процента посимвольных ошибок. Ограничение — вёрстка: объединённые ячейки таблиц, подписи под иллюстрациями и текст поверх фона распознаются как независимые фрагменты без связей между собой.
Мультимодальная модель понимает страницу как целое. Порядок чтения при сложной структуре, шапки и итоговые строки таблиц, колонтитулы входят в результат, а не достраиваются отдельно (подробнее — мультимодальность). Плата за это — оплата инференса токенами за каждое изображение и риск галлюцинаций: на размытой странице модель может уверенно дописать то, чего на изображении нет, тогда как классический движок в этом месте честно поставит символ-заменитель.
Выбор проверяется пилотом, а не чужими бенчмарками. Массовый поток однотипных печатных документов — обычно классический OCR плюс постобработка; таблицы и сложная вёрстка — мультимодальная модель; встречается гибрид: классика для основного текста, модель для табличных частей.
От чего зависит качество
Источник изображения — главный фактор. Скан 300 DPI с печатного оригинала даёт единичные посимвольные ошибки на страницу. Фото с телефона добавляет тени, перспективу, блики, смаз и артефакты сжатия — ошибки вырастают с долей процента до единиц процентов. Рукописное заполнение (распознавание рукописного ввода, ICR) на порядок труднее печатного: аккуратные печатные буквы распознаются удовлетворительно, скоропись — нет, такие поля стоит сразу направлять человеку.
Разрешение и чистота файла. Ниже 200 DPI мелкий шрифт не восстанавливается: на символ остаётся меньше данных, чем требует модель. Многократное перекодирование в JPEG с потерями оставляет блочные артефакты вокруг цифр, где ошибки дороже всего; «копия копии» в архивах — типовой источник тихих искажений.
Словарь определяет, что можно починить. Поля с узким форматом — даты, номера счетов, суммы — исправляются постобработкой почти полностью. Свободный текст с фамилиями и названиями словарём не чинится: имена собственные не покрываются словарём, и опечатка в фамилии остаётся в результате.
Метрики: посимвольная точность и точность по полям
Посимвольная точность показывает долю верных символов. Обратная метрика — коэффициент ошибок (CER): доля замен, вставок и удалений. 99% посимвольной точности на странице в 2000 знаков — это порядка 20 ошибок: для поиска терпимо, для цитирования реквизитов в ответе клиенту — нет.
Точность по полям всегда ниже посимвольной. Поле считается верным только при полном совпадении, а посимвольные ошибки перемножаются: если каждый символ распознаётся верно с вероятностью 0,99, десятизначный номер верен примерно в 90% случаев, а при 0,95 — примерно в 60%. Поэтому отчёт «точность OCR 99%» не отвечает на вопрос, годится ли результат для учётной системы: ответ даёт только точность по полям.
Метрики считаются на своей выборке. Порядка 50–200 страниц из реального потока, эталонная расшифровка вручную, разрезы по источникам (скан, фото, рукописные поля) и по типам полей. Чужие бенчмарки переносятся плохо: распределение ошибок зависит от вёрстки и качества съёмки конкретного потока.
Где уместно и когда нужно
OCR нужен, когда цифрового исходника нет, а текст нужен системам. Оцифровка архива для поиска, входящий поток сканов от контрагентов, рукописные анкеты и заявления. Если исходник цифровой — текстовый слой PDF, документ Word, письмо, — распознавание не нужно и вредно: оно только добавит ошибки в уже корректный текст.
Ошибки распознавания не остаются на этом этапе. Они уходят в индекс: слово, распознанное с ошибкой, не находится поиском, эмбеддинг фрагмента размывается, а RAG может процитировать искажённую сумму или реквизит как факт из документа. Поиск причин таких сбоев разобран в статье «RAG не находит документ».
Распознавание текста и извлечение данных — разные этапы. OCR возвращает текст; превращение текста в поля со схемой и валидацией — отдельная задача со своими метриками и точками отказа, она разобрана в статье «Извлечение данных из документов».
Типичные ошибки
- Средняя точность вместо разбора хвоста. Если 95% страниц распознаются с качеством 99%, а 5% — на 75%, среднее выглядит приемлемым, но каждая двадцатая страница заносит искажённые данные в учётную систему. Смотреть надо на перцентили и худшие разрезы, а не на среднее.
- Сканирование в 150 DPI «для экономии места». Экономия на мегабайтах оборачивается потерей мелкого шрифта; восстановить его постобработкой нельзя, а пересъём архива дороже хранения.
- Игнорирование уверенности в потоке. Если движок возвращает оценку уверенности по словам и полям, низкую уверенность можно направлять человеку. Без этого контроль строится только на случайной выборке и пропускает локальные сбои — например, партию сканов с замятым листом.
- Проверка «на глаз». Читабельность текста на экране не равна точности по полям: дата с переставленными цифрами и верная дата выглядят одинаково правдоподобно. Оценка без эталонной расшифровки выборки — не оценка.
- OCR для цифровых документов. Извлечение текста из PDF с текстовым слоем штатными средствами точнее любого распознавания; прогон через OCR добавляет ошибки туда, где их не было.
Частые вопросы
Какое разрешение сканирования достаточно?
Для печатного текста обычного кегля — 300 DPI; для мелкого шрифта, таблиц и рукописных полей — 400–600 DPI. Ниже 200 DPI распознавание мелкого текста не работает: данных на символ недостаточно.
Можно ли распознавать фото с телефона?
Да, если съёмка контролируется: рамка выравнивания, проверка резкости и освещения до отправки, передача без повторного сжатия. Для потребительских сценариев этого обычно достаточно; в учётных процессах фото-поток прогоняется через контроль по порогу уверенности.
Почему текст распознан верно, а таблица развалилась?
Посимвольная точность и структура страницы — независимые вещи. Классический OCR читает ячейки как фрагменты текста и не восстанавливает связи: объединённые ячейки и многоуровневые шапки теряются первыми. Для таблиц нужны модели с пониманием вёрстки либо шаблоны под конкретный формат документа.
Как измерить качество на своих документах?
Случайная выборка 50–200 страниц из реального потока, эталонная расшифровка вручную, посимвольная точность и точность по ключевым полям с разрезами по источникам изображения. Замер занимает дни и стоит дешевле, чем выбор движка по маркетинговым материалам.
Чем OCR отличается от извлечения данных?
OCR превращает изображение в текст; извлечение данных превращает текст или страницу в структурированные поля со схемой и проверками. Это разные этапы с разными метриками и разными причинами отказов.
Сколько стоит распознавание?
Классический OCR на собственных серверах стоит в основном железом и сопровождением: при больших объёмах — доли копейки за страницу. Мультимодальные модели через API оплачиваются токенами за изображение и обычно на порядок дороже за страницу. Конкретный порядок затрат проверяется пилотом на своём потоке.
Нужен ли OCR, если документы приходят в PDF?
Зависит от PDF: с текстовым слоем — нет, достаточно штатного извлечения текста; скан внутри PDF-обёртки — да. Быстрая проверка — попытаться выделить текст курсором: если выделяется, слой есть.
Что почитать по теме
- Индексация документов — что происходит с текстом после распознавания.
- Извлечение данных из документов — от распознанного текста к полям со схемой и валидацией.
- Мультимодальность — как модели работают с изображениями напрямую.
- Апскейл и реставрация изображений — улучшение исходников до распознавания.
- RAG не находит документ — как ошибки OCR проявляются в поиске.