Автоматизация30 сентября · MakeBiz · 6 минут

Оптическое распознавание документа: как это работает

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

Оптическое распознавание документа (OCR, Optical Character Recognition) это превращение изображения в текст. Внутри это не один приём, а последовательность: картинку чистят, выравнивают, разбирают на блоки, строки и символы, каждый символ опознают, а результат проверяют по языку.

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

Шесть шагов от пикселя до буквы

ШагЧто происходитЧто ломается
1. Подготовка изображенияКартинку переводят в чёрно-белую, убирают шум, пятна и фонНеровный свет: часть страницы уходит в тень и текст в ней пропадает
2. ВыравниваниеСтраницу поворачивают в горизонт и убирают перспективу от съёмки под угломСильный наклон и загиб листа: строки перестают быть прямыми
3. Разбор страницыЛист делят на блоки: колонки, таблицы, колонтитулы, печатиДве колонки склеиваются в одну ленту, таблица читается поперёк
4. СегментацияБлоки режут на строки, строки на слова, слова на отдельные символыСлипшиеся буквы, мелкий шрифт, подчёркивание, печать поверх текста
5. Опознание символаКаждый фрагмент сопоставляют с известными начертаниями: раньше по эталонам, теперь нейросетьюПохожие знаки: ноль и буква О, единица и палочка, русская С и латинская C
6. Проверка по языкуРезультат сверяют со словарём и контекстом, для каждого слова считают уверенностьАртикулы и аббревиатуры: словарь здесь не помогает, а иногда мешает

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

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

Поэтому сравнивать системы по «движку распознавания» бессмысленно. Разница между хорошим и плохим результатом на одном и том же документе чаще возникает на подготовке изображения и разборе страницы, о которых в описании обычно не пишут.

Почему один и тот же счёт читается по-разному

Что влияетПочемуЧто можно сделать
Разрешение сканаМелкому шрифту не хватает точек, чтобы отличить похожие буквыСканировать документы в 300 точек на дюйм, в режиме «текст», а не «фото»
Свет и теньПосле перевода в чёрно-белое затемнённая часть страницы становится пятномСнимать при ровном освещении, без вспышки в упор
Угол съёмкиПерспективу приходится выпрямлять, и часть деталей при этом теряетсяДержать камеру над документом, а не сбоку
Печати и подписи поверх текстаЛинии печати сливаются с буквами, и сегментация их теряетНичего: с этим работает система, но такие места стоит проверять
Сжатие файлаJPEG с сильным сжатием съедает тонкие детали буквСохранять сканы в PDF или PNG и не пережимать перед отправкой
Копия копииКаждое повторное копирование и факс добавляют шум и теряют контрастПросить у контрагента исходный файл, а не скан распечатки

Если распознавание работает плохо, сначала посмотрите на исходники, а не на систему. Пачка ровных сканов и пачка фотографий под углом это два разных проекта с разным результатом.

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

Уверенность распознавания: самый практичный показатель

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

Польза прямая. Уверенность позволяет не перепроверять всё подряд, а показать человеку только сомнительные места. Работы становится меньше там, где она бесполезна, и она остаётся там, где действительно нужна.

Поэтому вопрос «какая у вас точность» полезен меньше, чем вопрос «видно ли, где система не уверена, и можно ли поправить это место, не переделывая документ». Про границы технологии в целом мы написали в статье об OCR.

Почему цифры и артикулы ошибаются чаще текста

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

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

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

Что происходит после того, как буквы прочитаны

На этом оптическое распознавание заканчивается: дальше есть текст и координаты слов на странице. Что делать с этим результатом, зависит от задачи.

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

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

В IntDoc оптическое распознавание это первый шаг из четырёх: документ читается построчно, из него вытягиваются поля, предложения приводятся к единому виду и сравниваются, лучшее показывается с обоснованием. Работает со сканами и фотографиями с телефона, результат выгружается в Excel, CRM и Битрикс24.

Коротко

Вопросы и ответы

Что значит оптическое распознавание документа?

Это превращение изображения документа в текст, который может прочитать программа. Слово «оптическое» здесь означает, что система работает с картинкой: со сканом, фотографией или PDF, внутри которого лежит изображение. Результат это символы и их координаты на странице, а не смысл написанного.

Как система понимает, где на странице буква?

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

В каком разрешении сканировать документы для распознавания?

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

Почему фотография документа распознаётся хуже скана?

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

Что такое уверенность распознавания?

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

Распознаются ли документы с печатями и подписями?

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

← Все статьи