Для чего используются программы оптического распознавания текста кратко

Обновлено: 05.07.2024

Представьте, вам надо оцифровать журнальную статью или распечатанный договор. Конечно, вы можете провести несколько часов, перепечатывая документ и исправляя опечатки. Либо вы можете перевести все требуемые материалы в редактируемый формат за несколько минут, используя сканер (или цифровую камеру) и программу для оптического распознавания символов (OCR).

Что подразумевают под технологией оптического распознавания символов

Оптическое распознавание символов (англ. Optical Character Recognition – OCR) – это технология, которая позволяет преобразовывать различные типы документов, такие как отсканированные документы, PDF-файлы или фото с цифровой камеры, в редактируемые форматы с возможностью поиска.

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

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

Какие принципы лежат в основе технологии finereader OCR?

Наиболее совершенные системы распознавания символов, такие как ABBYY FineReader OCR, делают акцент на использовании механизмов, созданных природой. В основе этих механизмов лежат три фундаментальных принципа: целостность, целенаправленность и адаптивность (принципы IPA).

Изображение, согласно принципу целостности, будет интерпретировано как некий объект, только если на нем присутствуют все структурные части этого объекта и эти части находятся в соответствующих отношениях. Иначе говоря, ABBYY FineReader не пытается принимать решение, перебирая тысячи эталонов в поисках наиболее подходящего. Вместо этого выдвигается ряд гипотез относительно того, на что похоже обнаруженное изображение. Затем каждая гипотеза целенаправленно проверяется. И, допуская, что найденный объект может быть буквой А, FineReader будет искать именно те особенности, которые должны быть у изображения этой буквы. Как и следует поступать, исходя из принципа целенаправленности. Принцип адаптивности означает, что программа должна быть способна к самообучению, поэтому проверять, верна ли выдвинутая гипотеза, система будет, опираясь на накопленные ранее сведения о возможных начертаниях символа в данном конкретном документе.

Какая технология лежит в основе OCR?

Компания ABBYY, опираясь на результаты многолетних исследований, реализовала принципы IPA в компьютерной программе. Система оптического распознавания символов ABBYY FineReader – единственная в мире система OCR, действующая в соответствии с вышеописанными принципами на всех этапах обработки документа. Эти принципы делают программу максимально гибкой и интеллектуальной, предельно приближая ее работу к тому, как распознает символы человек. На первом этапе распознавания система постранично анализирует изображения, из которых состоит документ, определяет структуру страниц, выделяет текстовые блоки, таблицы. Кроме того, современные документы часто содержат всевозможные элементы дизайна: иллюстрации, колонтитулы, цветной фон или фоновые изображения. Поэтому недостаточно просто найти и распознать обнаруженный текст, важно с самого начала определить, как устроен рассматриваемый документ: есть ли в нем разделы и подразделы, ссылки и сноски, таблицы и графики, оглавление, проставлены ли номера страниц и т. д. Затем в текстовых блоках выделяются строки, отдельные строки делятся на слова, слова на символы.

Важно отметить, что выделение символов и их распознавание также реализовано в виде составных частей единой процедуры. Это позволяет в полной мере использовать преимущества принципов IPA. Выделенные изображения символов поступают на рассмотрение механизмов распознавания букв, называемых классификаторами.

После этого в соответствии с принципами IPA ABBYY FineReader проводит проверку выдвинутых гипотез. Это делается с помощью дифференциального признакового классификатора.

Кроме того, следует отметить, что ABBYY FineReader поддерживает 192 языка распознавания. Интеграция системы распознавания со словарями помогает программе при анализе документов: распознавание происходит более точно и упрощает дальнейшую проверку результата с учетом данных об основном языке документа и словарной проверки отдельных предположений. После подробной обработки огромного числа гипотез программа принимает решение и предоставляет пользователю распознанный текст.

Распознавание цифровых фотографий

Изображения, полученные при помощи цифровой камеры, отличаются от отсканированных документов или PDF, представляющих собой изображение.

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

Как пользоваться OCR-программами

Технология ABBYY FineReader OCR проста в использовании – процесс распознавания в целом состоит из трех этапов: открытие (или сканирование) документа, распознавание и сохранение в наиболее подходящем формате (DOC, RTF, XLS, PDF, HTML, TXT и т. д.) либо перенос данных напрямую в офисные программы, такие как Microsoft® Word®, Excel® или приложения для просмотра PDF.

Кроме того, последняя версия ABBYY FineReader позволяет автоматизировать задачи по распознаванию и конвертации документов с помощью приложения ABBYY Hot Folder. С помощью него можно настраивать однотипные или повторяющиеся задачи по обработке документов и увеличить производительность работы.

Какие преимущества вы получаете от работы с OCR-программами

Высокое качество технологий распознавания текста ABBYY OCR обеспечивает точную конвертацию бумажных документов (сканов, фотографий) и PDF-документов любого типа в редактируемые форматы. Применение современных OCR-технологий позволяет сэкономить много сил и времени при работе с любыми документами. С ABBYY FineReader OCR вы можете сканировать бумажные документы и редактировать их. Вы можете извлекать цитаты из книг и журналов и использовать их без перепечатывания. С помощью цифровой фотокамеры и ABBYY FineReader OCR вы можете моментально сделать снимок увиденного постера, баннера, а также документа или книги, когда под рукой нет сканера, и распознать полученное изображение. Кроме того, ABBYY FineReader OCR можно использовать для создания архива PDF-документов с возможностью поиска.

Весь процесс преобразования из бумажного документа, снимка или PDF занимает меньше минуты, а сам распознанный документ выглядит в точности как оригинал!

Мы разобрались с принципами работы систем оптического распознавания символов. Кратко ознакомились с историей развития технологий OCR. В публикации рассмотрим, зачем нужны программы для распознавания текста, назовём наиболее распространённые из них. Какие приложения для работы со сканами знаете вы? А кроме FineReader?

Цель применения приложений

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

Использовать скан книги, выдержки из периодического издания в качестве цитаты или исходника для работы (реферата, доклада, курсовой работы) можно после превращения картинки в текст. Для этого следует осуществить распознавание документа. Помогут в этом системы оптического распознавания информации – приложения, которые извлекают из графических файлов текстовую информацию, передают её в текстовый редактор или документ. Вследствие появляется возможность её редактирования, обработки.

Цель применения приложений

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

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

Сколько времени займёт набор на клавиатуре пары цитат длиной в несколько абзацев? Считанные минуты. Если для выполнения курсовой или дипломной работы нужно набрать с десяток страниц, уйдут часы. Программы распознавания текста (OCR) решат проблему за десятки секунд, причём они справляются с сохранением структуры документа. Приложения определяют наличие таблиц, картинок, диаграмм, списков, справляются с текстом на нескольких языках, формулами. Они сохраняют тип и размер шрифта, способны очищать исходное изображение от дефектов: потёртости, желтизна бумаги, огрехи печати, перегибы страниц и прочее.

Примеры

  • CuneiForm;
  • SimpleOCR;
  • MyScript Stylus;
  • Office Lens;
  • Readiris 17;
  • Readiris Pro;
  • Freemore OCR;
  • Scanitto Pro.

Самой известной программой оптического распознавания текстов является FineReader от компании ABBYY. Из инструмента для оцифровки файлов она превратилась в мощный инструмент для работы с цифровыми документами. Также разработаны десятки веб-сервисов для решения поставленной задачи.

Для быстрого перевода текста с бумажных носителей в электронный вид используют сканеры и программы распознавания символов .

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


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

Наиболее широко известна и распространена такая программа отечественных производителей — ABBYY FineReader .

Эта программа предназначена для распознавания текстов на русском, английском, немецком, украинском, французском и многих других языках (на 179 языках), а также для распознавания смешанных двуязычных текстов.

  • Работает с разными моделями сканеров.
  • Позволяет из бумажных документов, PDF-файлов и цифровых фото сделать редактируемый текст.
  • Позволяет объединять сканирование и распознавание в одну операцию, работать с пакетами документов (многостраничными документами) и с бланками.
  • Позволяет редактировать распознанный текст и проверять его орфографию.
  • Сохраняет внешний вид документа, а также его структуру, то есть, расположение слов, абзацев, таблиц, изображений, заголовков и нумерация страниц останутся такими же, как и в оригинале.
  • Экспортирует тексты в Word, Excel, PowerPoint или Outlook.

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

  1. Сканирование документа (кнопка Сканировать).
  2. Сегментация документа (кнопка Сегментировать).
  3. Распознавание документа (кнопка Распознать).
  4. Редактирование и проверка результата (кнопка Проверить).
  5. Сохранение документа (кнопка Сохранить).

1) На этапе сканирования производится получение изображений при помощи сканера и сохранение их в виде, удобном для последующей обработки. Чтобы начать сканирование, надо включить сканер и щелкнуть на кнопке Сканировать.

2) Второй этап работы — сегментация , разбиение страницы на блоки текста. Если страница содержит колонки, иллюстрации, врезки, подрисуночные подписи или таблицы, то порядок распознавания требует коррекции. Содержимое страницы разбивается на блоки, внутри каждого из которых распознавание осуществляется в естественном порядке. Блоки нумеруются, исходя из порядка включения их в документ. При автоматической сегментации (кнопка Сегментировать) определение границ блоков осуществляется автоматически. При этом учитываются поля документа, просветы между колонками, рамки.

3) Процесс распознавания текста после сегментации начинается с щелчка на кнопке Распознать и полностью автоматизирован.

4) Когда распознавание данной страницы завершается, полученный текстовый документ отображается в окне Текст. Заключительные этапы работы позволяют отредактировать полученный текст с помощью средств, напоминающих текстовый редактор WordPad. Провести проверку орфографии с учетом трудностей распознавания позволяет кнопка Проверить.

5) По щелчку на кнопке Сохранить запускается Мастер сохранения результатов. Он позволяет сохранить распознанный текст или передать его в другую программу (например, в Microsoft Word) для последующей обработки полученный текст можно сохранить в виде форматированного или неформатированного документа.

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

В 2020 году нам тоже пришлось решать проблему качественной оцифровки документов, и над этим проектом мы с коллегами работали совместно с компанией Verigram. Вот как мы проводили оцифровку документов на примере заказа клиентом SIM-карты прямо из дома.

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

Для преобразования различных типов документов (отсканированные документы, PDF-файлы или фото с цифровой камеры) в редактируемые форматы с возможностью поиска мы используем технологию оптического распознавания символов – Optical Character Recognition (OCR).


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

Заказ SIM-карты для пользователя выглядит так:

пользователь решает заказать SIM-карту;

фотографирует удостоверение личности для автоматического заполнения анкеты;

курьер доставляет SIM-карту.

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

Цель проекта OCR: построить быструю и точную кросc-платформенную модель, занимающую небольшой объем памяти на устройстве.


Верхнеуровневая последовательность обработки изображения стандартного документа выглядит так:

Выделяются границы документа, исключая не интересующий нас фон и исправляя перспективу изображения документа.

Выделяются интересующие нас поля: имя, фамилия, год рождения и т.п. На их основе можно построить модель предсказания соответствующего текстового представления для каждого поля.

Post-processing: модель вычищает предсказанный текст.

Локализация границ документа

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


Предварительно делаем pre-processing обработку изображения и в результате ряда морфологических операций получаем соответствующее бинарное (черно-белое) представление.

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

Так выглядит подбор подходящей маски

Так выглядит подбор подходящей маски

исправляется перспектива изображения;

определяется тип документа;

изображение обрезается по найденной маске c удалением фона.

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


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

Распознавание текста

Данные для обучения

Мы подготавливаем данные для обучения одним из следующих способов.

Первый способ используется, если достаточно реальных данных. Тогда мы выделяем и маркируем поля с помощью аннотационного инструмента CVAT. На выходе получаем XML-файл с названием полей и их атрибутами. Если вернуться к примеру, для обучения модели по распознаванию текста, на вход подаются всевозможные локализованные поля и их соответствующие текстовые представления, считающиеся истинными.


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

Примеры 2D-трансформаций

Примеры 2D-трансформаций

Показательный пример 2D-трансформации представлен в библиотеке для Python Text-Image-Augmentation-python. На вход подается произвольное изображение (слева), к которому могут применяться разные виды искажений.

Применяем разные виды искажений

Применяем разные виды искажений Дисторсия, перспектива и растяжение изображения с помощью библиотеки Text-Image-Augmentation-python

После 2D-трансформации на изображение текста добавляются композитные эффекты аугментации: блики, размытия, шумы в виде линий и точек, фон и прочее.

Пример изображений в сформированной нами обучающей выборке на основе применения аугментации

Пример изображений в сформированной нами обучающей выборке на основе применения аугментации

Так можно создать обучающую выборку.

Обучающая выборка

Обучающая выборка

Распознавание текста

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

Посимвольное распознавание текста


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

Предсказывание локального текста без сегментации (end-2-end-решение)


Мы использовали второй вариант — распознавание текста без сегментирования на буквы, потому что этот метод оказался для нас менее трудозатратным и более производительным.

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

Отличие результатов распознавания реальной и идеальной модели

Отличие результатов распознавания реальной и идеальной модели

два и более повторяющихся символа, встретившиеся до следующего спецсимвола, удаляются, остается только один;

повторение спецсимвола удаляется.

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


Истинное значение получает различные представления с соответствующей вероятностью за счет СТС-кодировки. Задача обучения — максимизировать сумму всех представлений истинного значения. После распознавания текста и выбора его представления проводится декодировка, описанная выше.

Архитектура модели по распознаванию текста

Мы попробовали обучить модель на разных архитектурах нейросетей с использованием и без использования рекуррентных слоев по схеме, описанной выше. В итоге остановились на варианте без использования рекуррентных слоев. Также для придания ускорения inference части, мы использовали идеи сетей MobileNet разных версий. Граф нашей модели выглядел так:

Схема итоговой модели

Схема итоговой модели

Методы декодирования

Хочу выделить два наиболее распространенных метода декодирования: CTC_Greedy_Decoder и Beam_Search.

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

Post-processing


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

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

Оптимизация модели

Техники оптимизации

На предыдущем этапе мы получили модель размером 600 килобайт, из-за чего распознавание были слишком медленным. Нужно было оптимизировать модель с фокусом на увеличение скорости распознавания текста и уменьшение размера.

В этом нам помогли следующие техники:

Квантование модели, при котором вычисления вещественных чисел переводятся в более быстрые целочисленные вычисления.

Для увеличения скорости распознавания текста используются мобильные версии архитектур нейросеток, например, MobileNetV1 или MobileNetV2.

Так, в результате оптимизации мы получили снижение качества всего на 0,5 %, при этом скорость работы увеличилась в 6 раз, а размер модели снизился до 60 килобайт.

Вывод модели в продуктив

Процесс вывода модели в продуктив выглядит так:


Рекомендации

На этапе развертывания задавайте статическое выделение тензоров в графе модели. Например, в нашем случае скорость увеличилась в два раза после указания фиксированного размера пакета (Batch size).

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

Аккуратно подбирайте шрифты для обучающей выборки. Подготовьте для вашего словаря набор шрифтов, допустимых для отрисовки интересующих символов. Например, шрифт OCR B Regular не подходит для кириллического словаря.

Пробуйте тренировать собственные модели, поскольку не все opensource-библиотеки могут подойти. Перед тем как тренировать собственные модели, мы пробовали Tesseract и ряд других решений. Так как мы планировали развертывать библиотеку на Android и iOS, их размер был слишком большим. Кроме того, качество распознавания этих библиотек было недостаточным.

Читайте также: