Введение в оптическое распознавание символов [OCR] для начинающих

Опубликовано: 2021-02-08

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

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

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

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

Тем не менее, часто для определения занятости символа на изображении используются сверточные нейронные сети (CNN). Тексты можно рассматривать как непротиворечивую последовательность символов. Обнаружение и идентификация этих символов с большей точностью представляет собой трудность, которую можно решить с помощью специального типа нейронной сети, а именно рекуррентных нейронных сетей (RNN) и долговременной кратковременной памяти (LSTM).

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

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

Чтобы свести к минимуму шум или улучшить качество изображения, можно выполнить предварительную обработку изображения с использованием библиотеки OpenCV. Такие этапы предварительной обработки могут включать в себя обнаружение ROI или интересующей области, кадрирование изображения, удаление шума (или нежелательных областей), определение порога, расширение и эрозию, обнаружение контуров или краев. После того, как эти шаги будут выполнены, механизмы OCR могут прочитать изображение и извлечь из него соответствующие тексты.

Оглавление

Используемые инструменты

1. Открыть резюме

OpenCV — это библиотека, изначально совместимая с языками C/C++ и python. Он обычно используется для обработки данных с образцами изображений. В библиотеке присутствует множество предопределенных полезных функций, которые реализуют необходимые преобразования образцов изображений. Все вышеупомянутые функции, такие как расширение, эрозия, нарезка, обнаружение краев и многие другие, можно легко выполнить с помощью этой библиотеки.

2. Механизм распознавания текста Tesseract

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

Шаги, связанные с процессом извлечения текста

(1) Во-первых, к входному зашумленному образцу изображения применяются возможные методы обработки изображения, такие как обнаружение контуров, удаление шума, а также функции эрозии и расширения.

(2) После этого шага выполняется удаление водяных знаков и теней с купюры.

(3) Кроме того, вексель разбит на части.

(4) Сегментированные части пропускаются через механизм распознавания текста Tesseract для получения полного текста.

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

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

Их можно рассматривать как шум, поскольку движок Tesseract распознает текст любого размера в строке. Как и водяные знаки, тени также снижают точность движка для эффективного извлечения текстов. Тени удаляются за счет повышения контрастности и яркости изображения.

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

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

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

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

Для оптического распознавания символов мы должны выполнить локализацию текста, затем сегментацию символов, а затем распознавание символов. Все эти шаги выполняет Tesseract OCR. Механизм распознавания текста Tesseract оказался очень точным при использовании с печатным текстом, а не с рукописным.

Получение соответствующей информации

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

Точность

Точность поиска текста может быть определена как отношение правильного количества информации, полученной Tesseract OCR и уже имеющейся в счете-фактуре, к совокупному количеству слов, фактически присутствующих в текстовом изображении. Более высокая точность означает более высокую эффективность методов предварительной обработки и способность Tesseract OCR извлекать информацию.

Что дальше?

Если вам интересно узнать больше о машинном обучении, ознакомьтесь с дипломом PG IIIT-B и upGrad в области машинного обучения и искусственного интеллекта, который предназначен для работающих профессионалов и предлагает более 450 часов тщательного обучения, более 30 тематических исследований и заданий, IIIT- Статус B Alumni, 5+ практических проектов и помощь в трудоустройстве в ведущих фирмах.

Изучите курс машинного обучения в лучших университетах мира. Заработайте программы Masters, Executive PGP или Advanced Certificate Programs, чтобы ускорить свою карьеру.

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

Подать заявку на участие в программе Advanced Certificate Program в области машинного обучения и НЛП